Réflexions pStudio
De Patchwork.
Sommaire |
Introduction
pStudio est un environnement de développement intégré dans patchwork. Lorsqu'il sera opérationnel, il sera activé par défaut pour toutes les applications basées sur Patchwork. Les objectifs de pStudio sont multiples :
- faciliter le respect de la licence GNU/AGPLv3 grâce à l'autorisation faite par défaut de lire le code source (hors fichiers de configuration et données spécifiques)
- possibilité de personnaliser facilement une application, éventuellement par le client final lui-même (thème, micro-adaptations...)
- possibilité de travailler à plusieurs prestataires sur les développements (grâce à des profils d'accès)
- navigation dans l'arborescence du code source facilitée grâce à la prise en compte de la profondeur des applications
- gestion de profils d'utilisateurs lecteurs/éditeurs (designer, traducteur, codeur...)
- éditeurs/lecteurs adaptés pour chaque type de fichier (PHP, images, bases SQLite...)
Boîte à Idées
Navigation dans l'arborescence
- accès WebDAV
Navigation dans les chemins :
- permettre de naviguer facilement dans la profondeur d'un même fichier
- conserver au maximum le contexte lors de la navigation dans l'arborescence
- interface Ajax iPhone-like
- affichage de méta info : icônes, poids...
- ordre de tri
Manipulation des fichiers/dossiers :
-
possibilité d'écraser/ajouter un fichier avec un upload -
possibilité de supprimer un fichier -
possibilité de créer un nouveau dossier - possibilité de renommer un fichier/dossier
- équivalent à http://httpd.apache.org/docs/2.0/mod/mod_autoindex.html#readmename ?
Rechercher/remplacer par regexp (grep/sed)
Gestion des autorisations
- gestion de profils multiples
Lecteurs/éditeurs de fichiers
Lecteurs de fichiers
-
auto-détection des binaires -
insensibilité à la casse de l'extension - possibilité de créer un nouveau fichier (pas pour tous les types : un plugin par type autorisé)
Codes source textuels
-
plugin de coloration syntaxique basé sur GeSHi - remplacer Geshi par un colorateur JavaScript (cf. section liens)
- créer des règles de coloration pour le PTL
Editeur de code avec coloration syntaxique :
Images
Les images supportées par pStudio sont les formats standard les plus usités:
gif, jpeg, jpg, png
l'affichage de l'image est limitée a une taille maximale, d'autres informations sont affichées telles que la taille et le poids de l'image.
ID
-
affichage de l'image avec taille maximale prédéfinie - affichage de méta info :
taille, poids,données exim...
Bases de données
Bases SQLite
le reader SQLite permet de faire des requetes en lecture seule sur la base. pStudio se charge de gérer les clauses limit des requetes afin d'optimiser l'affichage. Si l'utilisateur n'a pas les droits requis pour executer une requete une erreur SQLite est renvoyée, de même si l'utilisateur tente d'utiliser les clauses limit.
ID
-
affichage des tables de la base SQlite -
navigation dans les données de chaque table -
un champ requête simple
Bases CouchDB
le reader CouchDB permettra de faire des requetes en lecture seule sur la base. pStudio se chargera de gérer les MAP et MAPREDUCE poiur optimiser l'affichage. Si l'utilisateur n'a pas les droits requis pour executer une requete un message sera renvoyé, de même si l'utilisateur tente d'écrire ou effacer sans les autorisations requises.
ID
-
un champ requete simple -
vue d'ensemble de la base...MAP VIEW LITE
Vidéo/son/Flash
Les fichiers media ne sont pas directement pris en charge par pStudio. En effet, les types étant nombreux et les normes des wb étant différents, pStudio s'appuie sur les plguins installés sur le browser.
les fichiers de type média audio/vidéo sont encapsulés dans les bornes <embed>...</embed> bien que w3c préconise <object>. Et ce tant que les bornes <object> ne seront pas uniformisées sur les différents browsers.
Il existe des solutions permettant d'embarquer des media avec javascript:
les plugins pStudio implémentés sont:
audio mpg, mp3, wav, mid
video avi, mpeg, mpe, qt, mov, ram, rpm
flash swf
Editeurs de fichiers
-
auto-détection des binaires -
insensibilité à la casse de l'extension - possibilité de créer un nouveau fichier (pas pour tous les types : un plugin par type autorisé)
Images
- un editeur bmp, jpeg paint-like javascript?
petit dev pour faire un petit paint like avec: toolbox (line | circle | ellipse | rectangle | polyline | copy | cut | paste | save) canvas.ptl
<canvas id="canvas" width="400" height="400"></canvas>
- http://www.litha-paint.com/demo.html / non libre mais interressant
- http://developer.mozilla.org/en/docs/Canvas_tutorial
- http://www.silverlight.net/quickstarts/silverlight10/canvas.aspx
- http://www.walterzorn.com/jsgraphics/jsgraphics_e.htm = meilleur solution car js optimisé !!
- http://canvaspaint.org/#
- http://ponderer.org/download/canvas_demo/
Contrôle de version
- système intégré de versioning des fichiers ?
- intégrer SVN ?
- faire des commits
- accéder aux logs
- etc. (voir commandes disponibles)
- basé sur PEAR::VersionControl_SVN
Liens
Static Code Highlighter
- http://qbnz.com/highlighter/
- http://alexgorbatchev.com/wiki/SyntaxHighlighter
- http://shjs.sourceforge.net/
media audio/video/flash
les <object> imbriqués
VLC js embed
- http://www.videolan.org/doc/play-howto/fr/ch04.html
- http://people.videolan.org/~damienf/plugin-0.8.6.html (avec control interressant = blueshoes-4.5/javascript)
- http://blog.revolunet.com/index.php/general/vlcobject-vlc-dans-votre-page-web
- http://code.revolunet.com/VLCobject/FR ?
QT js embed
- http://blog.deconcept.com/2005/01/26/web-standards-compliant-javascript-quicktime-detect-and-embed/ ?
- http://blog.deconcept.com/code/qtobject/qtobject.html

