Quartz composer + automator + interface builder -> Preview de mon nouveau projet

2»

Réponses

  • cargocargo Membre
    05:44 modifié #32

    Vraiment très impressionnant.
    Tu devrais participer a des concours et présenter ton logiciel, je ne serais pas étonné que tu gagnes un prix.

    Clair ! Le concours de MacGé par exemple...


    Pour le nom, et après avoir travaillé longtemps avec LabView, Je te conseillerais de prendre un nom du même genre: DataView, FluxView, AppliView .....

    Et pourquoi pas "BoxLab" justement ? ou "BoxFlow" ? ou "Boxes" ? ou "BlueBox" ? ou "BeBoxALula" <3 ... ;)<br />
  • MalaMala Membre, Modérateur
    05:44 modifié #33
    dans 1176703362:

    Tu devrais participer a des concours et présenter ton logiciel, je ne serais pas étonné que tu gagnes un prix.

    Au départ, j'espérais être dans les temps pour le présenter aux apple design awards histoire de le faire connaà®tre mais je n'ai pas eu autant de temps que je le souhaitais pour travailler dessus.

    dans 1176703362:

    Le code source doit être jolie a voir :D

    La gestion de l'affichage des boites commence a être assez sport.  :)

    dans 1176703362:

    Pour la police vectoriel, je crois que leopard apporte les compléments a ce niveau y sont ils me semblent.

    A la vue des méthodes genre "+ (NSFont *)fontWithName:(NSString *)fontName matrix:(const float *)fontMatrix", je pensais que c'était déjà  bon avec une gestion des tailles de police en flotant mais à  l'usage mes  textes variaient par cran (pour les petites tailles de polices). Avec l'arrivée de Léopard, je pense aussi que cela devrait être réglé.

    dans 1176715003:

    Je te conseillerais de prendre un nom du même genre: DataView, FluxView, AppliView .....

    J'ai cherché dans cette direction au début mais on se retrouve vite noyé dans la masse des sites web de logiciels portant le même nom.

    dans 1176715003:

    des routines en C. Est-ce prévu dans ton produit?

    Tu veux dire un peu comme dans QuartzComposer avec les "Core Image Kernel" où l'on peut éditer  directement le code C du noyau à  la volée? Pour le moment ce n'est pas encore prévu, je me limite à  proposer le  concepteur de boà®tes pour la première version.

    dans 1176726198:

    ou "BeBoxALula" <3 ... ;)<br />

    Ha "BeBoxALula" ça c'est inconnu sur le Web. Même Google y sèche!  ;D

    Au passage, ça y est c'est ok pour les boà®tes à  entrées/sorties variables:
    Joujou avec les entrées/sorties variables...
    Cela devrait s'avérer assez pratique pour tout ce qui est boà®tes logiques (et,ou, etc) ainsi que pour pouvoir coder des boites plus complexes.
  • ideaidea Membre
    05:44 modifié #34
    une petite remarque et une question?
    je verrai bien le slider du zoom un peu plus intégré dans la fenêtre (et pas dans la toolbar) en bas a droite (un peu comme dans iTunes) ou comme dans GarageBand.
    Sinon, je voulais savoir combien d'heure tu passes la dessus par jour?
    a plus
  • AliGatorAliGator Membre, Modérateur
    avril 2007 modifié #35
    Hello,
    dans 1176730203:
    Au passage, ça y est c'est ok pour les boà®tes à  entrées/sorties variables:
    Joujou avec les entrées/sorties variables...
    Cela devrait s'avérer assez pratique pour tout ce qui est boà®tes logiques (et,ou, etc) ainsi que pour pouvoir coder des boites plus complexes.
    Heu j'ai du mal à  capter comment concrètement ça peut être utile :
    • Un nombre variable d'entrées (traitées par exemple comme un tableau en interne) ça je vois bien, par exemple pour des opérateurs logiques, des opérateurs de moyenne ou de somme, etc.
    • Un nombre de sortie dépendant du nombre d'entrées, pourquoi pas (donc non réglable à  la main directement, mais si ton nombre d'entrée est modifiable à  la main le nombre de sortie s'adapte automatiquement). Par exemple (au hasard, même si je suis pas sûr que ce soit très pertinant mais c'est pour l'exemple :)) un mélangeur de données qui fait des permutations entre les diverses entrées qu'il a, il aurait autant de sorties que d'entrées
    • Mais un nombre de sorties directement ajustable à  la main, à  part si toutes les sorties sont des clones (mais à  ce moment là  autant faire partir tous tes spaghettis de la même sortie), je vois mal à  quoi ça pourrait servir et ce que ça donnerait concrètement ? Tu as des idées d'exemple d'applications ?
  • MalaMala Membre, Modérateur
    avril 2007 modifié #36
    dans 1176734076:

    je verrai bien le slider du zoom un peu plus intégré dans la fenêtre (et pas dans la toolbar) en bas a droite (un peu comme dans iTunes) ou comme dans GarageBand.

    Oui, c'est une idée. Je me la note dans un coin. 

    dans 1176734076:

    Sinon, je voulais savoir combien d'heure tu passes la dessus par jour?

    Actuellement, j'y suis presque à  plein temps.

    dans 1176748547:

    Mais un nombre de sorties directement ajustable à  la main, à  part si toutes les sorties sont des clones (mais à  ce moment là  autant faire partir tous tes spaghettis de la même sortie),

    Il faut bien comprendre que pour moi (au niveau de l'appli) une boite ajustable à  la main ou par programmation il n'y a pas de différence particulière. Qui peut le plus peut le moins et c'est aussi bien pratique pour faire un jeu de test de validation.

    dans 1176748547:

    je vois mal à  quoi ça pourrait servir et ce que ça donnerait concrètement ? Tu as des idées d'exemple d'applications ?

    Un exemple assez simple en traitement d'image consiste à  découper une matrice en plusieurs bandes que l'on traite en parallèle afin de mieux exploiter une machine multi-cpu ou multi-coeur sur un traitement gourmand. On pourrait donc imaginer une boite qui est en entrée une matrice et une propriété pour définir manuellement autant de sorties que l'on souhaite avoir de bandes. Le filtre qui s'en suit est alors dupliqué pour traiter chaque bande puis une nouvelle  boite avec autant d'entrée va être chargée de recomposer la matrice.



  • AliGatorAliGator Membre, Modérateur
    05:44 modifié #37
    dans 1176764569:
    On pourrait donc imaginer une boite qui est en entrée une matrice et une propriété pour définir manuellement autant de sorties que l'on souhaite avoir de bandes. Le filtre qui s'en suit est alors dupliqué pour traiter chaque bande puis une nouvelle  boite avec autant d'entrée va être chargée de recomposer la matrice.
    Oui c'est pas bête. J'ai pensé aussi finalement tout à  l'heure à  un découpage en fréquence (genre traitement du signal) : tu donnes un signal temporel (genre signal audio) en entrée, et il te fait une FFT pour te découper ça en N bandes, N = nombre de sorties.
    Pratique pour faire des trucs comme les "bargraph" qu'on voit dans les lecteurs audio genre iTunes ;)

    Merci je vois mieux l'intérêt du coup ;)
  • MalaMala Membre, Modérateur
    avril 2007 modifié #38
    Tiens encore plus simple et plus éloquent (je devais être fatigué hier soir pour pas y avoir pensé à  titre d'exemple :p ).

    Imaginons une boite avec:
    En entrée:
    1) - Une entrée variable non typée (un id quoi).
    2) - Une propriété numérique constante à  rentrer manuellement pour définir le nombre de sorties.
    3) - Une entrée numérique constante qui sert d'index.

    En sortie:
    1)- Des sorties non typées.

    En fonction de la valeur de l'index (qui pourrait être connecté par exemple à  une Combobox de l'interface utilisateur qui nous retourne son index sélectionné), on dirige toutes les données arrivant sur l'entrée 1 vers la sortie ayant l'index correspondant. On obtient alors un aiguillage qui a tout d'un "switch case" au sens langage C.

    Alors, elle est pas belle la vie???  ;D



  • MalaMala Membre, Modérateur
    05:44 modifié #39
    Aller, je continue la présentation de mon bébé avec l'introduction de la possibilité de créer des plugins multi-fonctions. L'idée est assez simple: Pourquoi devoir concevoir autant de plugins que de boites alors que bien souvent on est amené à  recoder presque la même chose?  :crackboom:-

    J'ai donc prévu de pouvoir surcharger quelques méthodes afin de transformer un plugin en véritable couteau Suisse. Lors du chargement des plugins, une méthode "+ (BOOL)isMultifunctions" permet de marquer ces plugins. Le logiciel va alors demander la liste de ses  fonctions au plugin via une méthode "+ (NSArray*)functionsNames" puis il vient instancier autant de boites que de fonctions. Quelques méthode surchargées :p plus tard on a une jolie collection de boites à  moindre frais.  8--)

    L'intérêt? Gagner du temps, de la place et simplifier la maintenance. :p Le meilleurs exemple pour illustrer cette fonctionnalité est sans aucun doute la mise en oeuvre de Core Image et des filtres CIFilter. Il suffit ainsi de 300 lignes de code pour créer la centaine de filtres Core Image...
    Démo Core Image :fouf):
    idea, tu auras remarqué le nouvel emplacement du zoom. ;)

    Comble de la luxure, CIFilter étant localisée, on a même droit à  avoir tout ce petit monde en Français. :)


  • ideaidea Membre
    05:44 modifié #40
    je note je note, merci.
    avec les 2 petites icones ca le fait.
    encore bravo
  • AliGatorAliGator Membre, Modérateur
    05:44 modifié #41
    dans 1176845486:

    Tiens encore plus simple et plus éloquent (je devais être fatigué hier soir pour pas y avoir pensé à  titre d'exemple :p ).

    Imaginons une boite avec:
    En entrée:
    1) - Une entrée variable non typée (un id quoi).
    2) - Une propriété numérique constante à  rentrer manuellement pour définir le nombre de sorties.
    3) - Une entrée numérique constante qui sert d'index.

    En sortie:
    1)- Des sorties non typées.

    En fonction de la valeur de l'index (qui pourrait être connecté par exemple à  une Combobox de l'interface utilisateur qui nous retourne son index sélectionné), on dirige toutes les données arrivant sur l'entrée 1 vers la sortie ayant l'index correspondant. On obtient alors un aiguillage qui a tout d'un "switch case" au sens langage C.

    Alors, elle est pas belle la vie???  ;D
    Ca s'appelle un démultiplexeur et je me demande aussi pourquoi je n'ai pas pensé à  cet exemple avant moi non plus  ;) ;D
  • clampinclampin Membre
    05:44 modifié #42
    Lorsque j'ai vu la première vidéo, je me suis dit "wé pas mal... ça ressemble à  quartz composer"

    Mais ensuite après avoir regardé toutes les vidéos.. je me suis dit, "ce programmeur doit y passer ses jours et nuits, c'est 'ouf' cette application"....


    alors bravo  o:)   o:)  

    Continue !
  • MalaMala Membre, Modérateur
    05:44 modifié #43
    dans 1176971695:

    je me suis dit, "ce programmeur doit y passer ses jours et nuits, c'est 'ouf' cette application"....

    Pas toutes les nuits tout de même sinon je pourrais plus faire d'astronomie!  :)
  • MalaMala Membre, Modérateur
    avril 2007 modifié #44
    L'autoflagellation continuant à  porter ses fruits, voici les dernières petites nouveautés.

    Afin d'être plus facilement identifiables les boites d'interfaces sont maintenant vertes (c'était déjà  visible dans la dernière vidéo) et agrémentées de leur icône à  cheval sur la boite. Du coup, désolé Cargo mais exit la proposition de "Blue Box"...  :P
    interface_box.jpeg
    NB: il s'agit ici d'une panthère longibande pour l'icône de cette NSImageView et pas d'un Léopard.  ;)

    L'éditeur de traitement gère maintenant deux types de boites d'interface: celles créées à  la volée dans l'éditeur d'interface (qui sont uniques et qu'on ne peut donc glisser/déposer qu'une fois) et les boites génériques genre boites de dialogue (qu'on peut glisser/déposer autant de fois que l'on veut). A terme, les boites des panneaux d'ouverture et de sauvegarde vont être transférés dans les génériques (pour raison historique, ce sont encore des boites de traitement bidouillées)...
    interface_box_tableviews.jpeg

    Il est dorénavant possible de ralentir les échanges de données pour mieux visualiser les transferts entre les boites.
    speed_slider.jpeg

    Passons à  l'éditeur d'interface!  :)

    Il est possible de paramètrer le comportement des objets lors d'un redimensionnement sur le principe des ressorts d'Interface Buidler...
    object_autosize.jpeg
    Petite subtilité cependant, contrairement à  Interface Builder qui semble émuler les fenêtres que l'on créé, ici les réglages d'autosize s'appliquent en temps réel si on bouge des éléments de l'interface (je trouve ça bien plus pratique).

    Enfin, l'architecture des objets de l'interface graphique peut être visualisée sous forme d'un arbre hiérachique...
    interface_tree.jpeg

    Et pour finir une petite démo en vidéo (avec le son ajouté en voix off)...
    Dernières nouveautés...

    A suivre...  :p


  • tarultarul Membre
    05:44 modifié #45
    Ton logiciel m'impressionne de plus en plus.  Re(x5)-Bravo pour ton boulot.

    Tu doit être une bete en gestion de NSView, non? :D

    Il y a quelque chose que j'ai bien sur ton logiciel, c'est sa dynamique, il fait très vivant, et perso j'aime beaucoup.
  • AliGatorAliGator Membre, Modérateur
    05:44 modifié #46
    Pfff vraiment le soft est nul. Pas beau, on peut rien faire avec, pas prometteur du tout...

    ...

    ... Bon merde, même en mettant tout ça je suis sûr que j'arrive pas à  rééquilibrer la balance par rapport à  tous les compliments (mérités) qu'on t'as fait... mais il fallait que je le fasse, sinon tu aurais pu avoir les chevilles qui enflent  ;D


    Bon plus sérieusement, faut que t'arrêtes, là , tu vas tous nous rendre jaloux et dépités, à  force de voir à  quel point et à  quelle vitesse ça évolue  :) Re-Re-Re-Chapeau, c'est vraiment terrible !
  • MalaMala Membre, Modérateur
    05:44 modifié #47
    dans 1177751716:

    Tu dois être une bete en gestion de NSView, non? :D

    Je commence à  comprendre comment ça marche mais il y a des biens plus doués que moi sur ce forum.  ;)

    dans 1177790357:

    mais il fallait que je le fasse, sinon tu aurais pu avoir les chevilles qui enflent  ;D

    Arfff, en complément je m'autoflagèle chaque matin en m'inslutant pour tout ce qui n'est pas encore codé. Tiens, je m'en remets une couche...  :o et encore ça...  :o et un coup de martifouet pour le bug d'hier...  >:)

    ;D ;D ;D

    dans 1177790357:

    Bon plus sérieusement, faut que t'arrêtes, là , tu vas tous nous rendre jaloux et dépités, à  force de voir à  quel point et à  quelle vitesse ça évolue  :) Re-Re-Re-Chapeau, c'est vraiment terrible !

    Dès que j'ai terminé... j'arrête.  :)

  • MalaMala Membre, Modérateur
    05:44 modifié #48
    Aller, un petit topo d'avancement pour les curieux !  :)

    Le nom :
    Il est maintenant trouvé. Ce sera SAM pour " Smart Automation Maker ". L'analogie avec Quartz Composer et Interface Builder étant très visuelle, j'ai préféré mettre l'accent sur le côté automatisation/automator pour le nom. L'ambassadeur du logiciel sera d'ailleurs le robot SAM en clin d'oe“il à  Automator. Pour l'anecdote amusante, SAM est aussi le diminutif de ma fille Samantha (qui a dit Lisa??? ::) ). Dans la foulée le site Web associé a aussi commencé:
    Site de SAM  :p

    Les boà®tes d'interfaces :
    La gestion côté boà®tes d'interfaces est achevée. Avec une boà®te de traitement, le lancement du processus de la boà®te était conditionné par la vérification de toutes ses entrées. Pour une boà®te d'interface, le fonctionnement est un peu différent dans le sens ou chaque entrée fonctionne de manière autonome. Mon idée était donc de faire une sorte de " binding " car dans la majorité des cas, on veut juste mettre à  jour une propriété de l'élément d'interface graphique. Le principe est donc assez simple. Lors de la conception d'une nouvelle boite d'interface, il suffit de paramètrer les méthodes setter/geter associées à  chaque propriété/entrée de la boite. Le logiciel se charge ensuite de l'aiguillage. Pour un fonctionnement plus complexe, on peut aussi choisir le target (au choix : soit la vue, soit le plugin) afin d'effectuer un traitement particulier au niveau du plugin (ex : stocker un array ou un dictionnaire utilisé par la vue ou bien encore renvoyé une donnée sur une sortie dans la foulée). Autre particularité des boà®tes d'interfaces, pour des raisons de stabilité (OSX supporte mal de faire joujou avec les interfaces hors du thread principal) leur fonctionnement est par défaut monothreadés (mais cela reste paramétrable tout comme pour les boà®tes de traitement). L'impact est néanmoins limité car la surveillance d'arrivée de nouvelles infos reste multi-thread.
    Il me reste à  coder l'assistant pour la création des boà®tes d'interface et ce sera ok.

    La doc :
    Bein oui c'est important la doc tout de même! >:) Surtout que là , chaque boà®te va avoir sa propre documentation et que les développeurs doivent pouvoir faire la leur. Comme je n'étais pas très convaincu par les aides en ligne d'OSX, j'ai décidé de faire ma propre implémentation à  partir d'une webview. L'aide va donc faire partie intégrante du soft qui s'occupe de la générer à  la volée. Chaque éditeur à  sa propre fenêtre d'aide qui s'affiche en faisant pivoter le plan de travail. L'accès à  la doc d'une boà®te se fait soit en se baladant dans les pages html, soit par glisser/déposer sur l'aide de la boà®te qui nous intéresse.
    Côté assistant de création de boà®tes, la documentation se fera par le biais d'un éditeur basé sur des Webviews éditables qui vont générer le code html qui va bien.
    La documentation Français/Anglais des boà®tes ne devrait donc pas tarder à  commencer très sérieusement (Déjà  plus de 200 boà®tes en attente).

    De manière plus générale :
    L'interface se simplifie encore un peu. Out le filtrage par catégorie pour laisser place à  des searchfields uniques qui intègrent la catégorie dans leurs critères. Out aussi la tableview des boà®tes de traitements. Elle est remplacée par un treeview qui se développe de lui-même lors des recherches. Je trouve que ça fait moins touffu et que c'est bien plus clair (il ne manquerait que des petites icônes d'illustration pour agrémenter le tout  ::) ).

    Et pour finir, comme toujours une petite démo vidéo avec la conception d'un petit visualiseur pdf où l'on voit un peu les dernières nouveautés...
    Aperçu de l'aide et conception d'un visualiseur pdf
    NB: le contenu de la doc est encore bidon pour cette démo.

    A suivre.  >:)
  • schlumschlum Membre
    mai 2007 modifié #49
    Attention : "Une nouvelle ère a commencé"  ;)

    Sinon, la gestion de l'aide, top :)
  • MalaMala Membre, Modérateur
    05:44 modifié #50
    Arf!!! Grosse comme elle est, je l'avais pas vu celle là !  ;D C'est corrigé merci.  :p
  • schlumschlum Membre
    05:44 modifié #51
    Un petit truc qui manque, je trouve (il en faut pour garder une marge de perfectibilité  :o !), c'est les guides lors de la construction d'interface.
    Mais c'est peut-être difficile à  implémenter  :-\\
  • JoJoSJoJoS Membre
    05:44 modifié #52
    J'attendais avec impatience les nouvelles vidéos de ton "SAM" !!!
    Tu fais vraiment de l'exellent boulot !!
    C'est vraiment magnique !!!

    J'ai quand même une petite question... pour l'instant, tu lances l'application que tu créés à  travers SAM, mais je suppose qu'il y a, ou aura, moyen de l'exporter en tant qu'application osx indépendante ..???

    En tout cas, j'ai hâte de le voir fini ce petit SAM, et surtout, de pouvoir l'essayer !!!
  • MalaMala Membre, Modérateur
    05:44 modifié #53
    dans 1180000516:

    Un petit truc qui manque, je trouve (il en faut pour garder une marge de perfectibilité  :o !), c'est les guides lors de la construction d'interface.

    Remarque judicieuse. Ma femme m'a fait la même réflexion. Mais bon, on va en garder un peu sous le coude pour les mises à  jour quand même.  :P

    dans 1180000516:

    Mais c'est peut-être difficile à  implémenter  :-\\

    A première vue, j'aurais tendance a dire rien d'insurmontable c'est plus une question de temps dans l'immédiat.

    dans 1180001080:

    J'ai quand même une petite question... pour l'instant, tu lances l'application que tu créés à  travers SAM, mais je suppose qu'il y a, ou aura, moyen de l'exporter en tant qu'application osx indépendante ..???

    Oui, oui c'est prévu mais pas encore codé faute de temps. Je l'avais déjà  indiqué je sais plus où à  je sais plus qui dans la discussion il me semble. Une version light permettra de créer des auto exés mais avec besoin d'avoir SAM sur la machine et une seconde permettra de créer des exe complètement indépendants. Une troisième version était prévue mais je pense que cela va attendre un peu pour basculer sur une version Pro avec des goodies en plus.

  • tarultarul Membre
    05:44 modifié #54
    En voyant ta vidéo, je me demande, mais que va t'il rester a core animation. :D

    Je suis assez bluffé par ce que tu arrives à  faire en terme de dynamique d'interface. Elle est tellement vivante, c'est avec ce genre d'application que l'on voit l'avance que possède Tiger sur les autres OS(mais ces derniers se rattrapent), mais c'est une possibilité sous exploitée (perso ces animations, je n'y arrive pas, mais je n'ai guère le temps de m'y mettre à  fond :()

    en tout cas, encore bravo pour ton boulot, et bien trouvé le nom aussi. :)
  • JoJoSJoJoS Membre
    05:44 modifié #55
    Oui, oui c'est prévu mais pas encore codé faute de temps. Je l'avais déjà  indiqué je sais plus où à  je sais plus qui dans la discussion il me semble. Une version light permettra de créer des auto exés mais avec besoin d'avoir SAM sur la machine et une seconde permettra de créer des exe complètement indépendants. Une troisième version était prévue mais je pense que cela va attendre un peu pour basculer sur une version Pro avec des goodies en plus.


    Arf, au temps pour moi... C'est vrai que tu l'avais déjà  précisé et ca m'étais sorti de la tête, mais maintenant que tu le (re)dis...

    Tout comme tarul, je suis vraiment bluffé !! Je baves de faire une appli aussi belle !!!
    Malheureusement, je n'ai pas suffisement de connaissances en cocoa, et puis pour le moment je n'ai même plus d'ordi...
  • TchouboudouTchouboudou Membre
    05:44 modifié #56
    Ouais, bah rien de bien compliqué... J'peux faire ça "finger in the nose"...

    Non, franchement, c'est génial. Par contre, tu devrais rajouter les lignes bleues, comme dans IB, ça serait bien, je pense.

    Sinon, bravo o:) o:) o:) o:)
  • JoJoSJoJoS Membre
    05:44 modifié #57
    Ca fait un petit moment qu'il n'y a pas eu de nouvelles de ce petit SAM !!

    Il est où ?? Toujours à  l'usine ou ça y est, tu l'as sorti ??
    De nouvelles vidéos à  nous partager ??

    Bref, moi je reste toujours impressionné par ton travail !
  • AntilogAntilog Membre
    05:44 modifié #58
    Il en est ici
    http://www.sam.eliotis.com/

    Disponible été 2007!
    Encore un adepte de la méthode Apple/Micro$oft pour les dates de lancement!
      :o :brule:
  • JoJoSJoJoS Membre
    05:44 modifié #59
    Bin oui justement, on a toujours rien de plus que cet "été 2007".
    Et celui ci vient de passer...

    Je voulais donc savoir ce qu'il est devenu...
  • MalaMala Membre, Modérateur
    05:44 modifié #60
    dans 1191852849:

    Encore un adepte de la méthode Apple/Micro$oft pour les dates de lancement!
      :o :brule:

    Arff, honte sur moi! Je n'ai même pas pris le temps de mettre le site de SAM à  jour. :o

    En fait, j'ai encore pris du retard. Pour la petite histoire, j'ai été recruté pendant quelques temps pour du développement en régie suite à  cet article sur developpez.com:
    http://sebastien-marchand.developpez.com/tutoriels/mac/smart-automation-maker

    Je me remets donc tout juste sur SAM après deux mois d'inactivité mais je risque d'être encore pris sur un autre projet pendant quelques temps.


Connectez-vous ou Inscrivez-vous pour répondre.