REBOL Duplex | |
rebolfrance | 8-Jan-2011/19:19:16+1:00 |
Comme suggéré par coccinelle, voici topic pour lister les mezzanines extended... REBOL Duplex qui seront incluses dans les versions Ultimate et Entreprise. Je mets une première micro-série... kb?: func [d] [round/to (length? d) / 1024 .1] to-kb: func [d] [round/to (d) / 1024 .1] J'ai une amélioration quelque part. Il faudrait aussi mettre une fonction de logging en standard... Avec des refinement pour affichage sur la console et l'envoi de mail. Nico | |
rebolfrance | 8-Jan-2011/21:27:59+1:00 |
Il y aura peut-être des mezz à reprendre !? http://www.rebol.it/power-mezz/ Et aussi des trucs fait par Chris RG : http://www.ross-gill.com/page/REBOL Nico | |
coccinelle | 10-Jan-2011/10:23:20+1:00 |
Kikou, j'ai fais un peu d'exploration. Y'a beaucoup de truc à moi dans cet inventaire mais c'est normal, c'est le plus facile. C'est pas très bien organisé, faut pas m'en vouloir. SQL protocol - MySQL - SOFTINNOV - softinnov.org - PostgreSQL - SOFTINNOV - softinnov.org - sql-protocol.r - Coccinelle - rebol.org - RebDB - Dobeash Software - www.dobeash.com/rebdb.html - NiComDB - John - www.fys.ku.dk/~niclasen/nicomdb/ - ??? SQL wrapper - mysql-wrapper - SOFTINNOV - softinnov.org - my-sql-object.r - Coccinelle - ??? SQL Console - mysql.r SOFTINNOV - softinnov.org - sql-consol.r - Coccinelle - db-view - François - membres.multimania.fr/rebolfrance/projets/dbf/dbview.zip - MyReSQL - Nicolas - Shadwolf - membres.multimania.fr/myresql/ - ??? IDE/VDE - rebol-viva.r - Shadwolf - my-trac.assembla.com/shadwolforge - vid-build.r - Marco (pas moi l'autre) - rebol.org - MakeDocPro - Robert - www.robertmuench.de/download/ - Rapid - Christophe - sourceforge.net/projects/rapid/ - Anamonitor - Romano - http://www.rebol.it/romano/ Testing tool - RUn.r - Christophe - rebol.org / sourceforge.net/projects/rebol-unit/ - Curecode - ??? Carl ??? - ??? Trace / Log - print-log - Coccinelle - Fonction basique - inform-error - Coccinelle - Fonction basique - ??? config frameworka - ??? Asynchrone framework - Uniserve - SOFTINNOV - softinnov.org - BEER - ??? - ??? HTTP Services - Cheyenne - SOFTINNOV - cheyenne-server.org - Appserver.r - Coccinelle (assez basic) - ??? Cookie - inclu dans magic - Olivier - - ??? inclu dans cheyenne - SOFTINNOV - cheyenne-server.org WWW Authenticate - www-authenticate.r - Coccinelle - ??? Discovery services - upnp-igd.r - Coccinelle - rebol.org - ??? Synchronisation services - ??? Protocol HTTP Protocol -> gestion des cookies côté client -> authentication basic & digest (RFC 2617) -> HTTP 1.1 compliant Dynamic HTML - RSP - SOFTINNOV et d'autres - cheyenne-server.org - REBOL Server Pages - Maartens - http://www.ross-gill.com/techniques/rsp/ - Vanilla - Christian - www.vanillasite.at/space/news - Magic - Olivier - www.auverlot.fr/index.php?perma=1229465684 - ??? Utilitaires - ladybird.r - Coccinelle & Rebprotizer - rdyndns-client.r - Shadwolf - ??? Mail / Forum / Chat / Blog / Wiki / Album - rebforum - Rebprotizer - client GUI pour forum - Didier - rebelBB - Gregory - www.digicamsoft.com/cgi-bin/rebelBB.cgi - RebolForum - ??? - rebolforum.com/index.cgi - blog.r - Carl (mis à jour par Coccinelle - Authorisation) - Hypernote.r - Martin - hem.bredband.net/martinjohannesson/hypernotes/ - Vanilla - Christian - www.vanillasite.at/space/news - HTTPPhotos - Greg - www.digicamsoft.com/softhttphotos.html - ReadMail.r - Phil - rebol.org GUI / VID - RebGui - Dobeash Software - http://www.dobeash.com/rebgui.html - Skin - Etienne - http://etienne.alaurent.free.fr/rebol/tools - border-pane - Coccinelle - tab-pane - Coccinelle - area-tc.r - Shadwolf - http://my-trac.assembla.com/shadwolforge - tdm-style.r - Coccinelle - rtd-style.r - Didier - konka - Jan (3D rendering) - ??? Extension du langage - Prolog.r - Coccinelle - Rebol.org - ??? web-service - soap.r - Coccinelle (essai de mold-xml / load-xml pour SOAP) - easy-soccer.r - Coccinelle - Rebol.org - rugby.r - Maartens - Rebol.org - rebol-service - Gabriele - XML-RPC - Andreas - http://earl.strain.at/space/rebXR - ??? | |
rebolfrance | 10-Jan-2011/17:47:21+1:00 |
Le freemen de Doc : free-mem: func ['word] [set :word make none! recycle] Une version un peu mieux de kb? : kb?: func [d] [ t: type? d either any [t == file! t == url!] [ i: info? d round/to i/size / 1024 .1 ][ round/to (length? d) / 1024 .1 ] ] Par contre, j'ai un peu de mal pour le moment, mais il me semble qu'il y aura des Power Mezz et aussi des modules en tant que tel ? Un cheyenne par exemple, serait plutôt un module...? Nico | |
coccinelle | 10-Jan-2011/19:25:07+1:00 |
Ben moi, je trouverais génial si le langage lui-même intégrait des fonctions comme par exemple un cheyenne au lieu d'avoir disséminé par ci et par là un multitude de module ou de programmes. Je donne un exemple. read-mail que l'on trouve sur rebol.org est un script que j'ai beaucoup utilisé. C'est un client mail sympa comme tout que je conseille d'essayer. Et bien, ce serait vraiment bien si l'on avait intégré directement dans le langage Rebol, une fonction read-mail avec par exemple un paramètre qui me permette de la mettre dans ma propre application. Et y'en a plein des fonctions de ce genre qui existent déjà et qui demanderait peu d'adaptation pour être intégrée dans Rebol lui-même. | |
paullys | 10-Jan-2011/19:27:49+1:00 |
C'est exactement ce que j'avais proposé il y a qq temps avec une version heavy de rebol. Mais l'idée n'a pas été retenue au motif fallacieux que la cohérence de rebol en souffrirait... Attendons le miracle de l'illumination de Carl à ce sujet... | |
none | 10-Jan-2011/20:39:59+1:00 |
Ben au moins, on est deux, c'est mieux que seul. Avec Carl, j'ai vécu la même chose, je lu avais proposé sql-protocol.r et prolog.r sans succès mais Carl avait été très sympathique dans les échanges que nous avions eu. Par contre, je me dis quand mêe que s'il avait passé autant de temps à intégrer de manière cohérente toutes ces belles choses qui ont été ralisées avec son langage, Rebol serait vraiment beaucoup plus largement diffusé. | |
trigram | 10-Jan-2011/22:21:28+1:00 |
Raison pour le faire et de le mettre devant le fait accompli... Le tout étant d'arriver à un système de module, une vrai intégration de super truc comme Cheyenne... Qui soit bien isolé... Pas juste une version de Rebol avec juste une sucession de do %....r rajoutés dans le user.r | |
coccinelle | 11-Jan-2011/17:20:13+1:00 |
Pour les do %....r ajouté dans user.r, je suis d'accord avec toi, ce n'est pas la solution. La solution, c'est évidemment une succession de do %....r dans rebol.r En fait d'accord à terme, mais dans un premier temps, une série de do %....r permet de lancer la chose sans investissement particulier. Et si la mayonnaise prend, alors on peut aller de l'avant avec un système plus performant mais à quoi bon faire comme les autres et imaginer un truc hyper-génial dès le départ et l'abandonner avant même que les fondations ne soient mise en place. Soyons pragmatiques et productifs ... | |
rebolfrance | 12-Jan-2011/0:32:29+1:00 |
Ok je vous fait confiance, vous vous y connaissez plus que moi en Rebol et en architecture logiciel... Il y avait la propal d'Olivier de faire un bootstrap... Pour des fonctions comme kb?, freemem, a priori, pas de problèmes sous-jacent, par contre, il faut quand dans notre système être sûr que la lib est bien étanche... Que l'on apporte pas d'instabilité... Coccinelle tu m'as l'air bien au point sur le sujet, souhaites-tu travailler sur ce point ? Nico | |
shadwolf | 12-Jan-2011/1:18:17+1:00 |
pour la doc on peut aussi ajouter MDP-GUI http://shadwolf.free.fr/mdp-gui-1-4-1.zip (shadwolf) par contre c'est compatible qu'avec une très ancienne version de MakeDoc Pro ... C'est pas complètement incompatible avec mdp 1.3 le dernier faudrait que je passe une journée ou 2 pour en faire l'adaptation au nouveau format je pourait en profiter pour "raffraichir" l'aspect graphique de MDP-GUI... | |
coccinelle | 12-Jan-2011/9:00:01+1:00 |
Dans un premier temps, REBOL Duplex, ça pourrait être quelque chose comme ça plus tout un ensemble de script et de documentation disponibles sur le net (rebol.org et/ou autre). C'est un draft pour montrer l'idée tout en sachant que bien des scripts existant poseraient problème : - les scripts qui se lancent tout seul (ex. makedoc-pro.r, rebmail.r, etc ...) - les scripts publiés dans des .zip, .rar, etc... (ex. rebgui, cheyenne, etc...) - les scripts composés de plusieurs scripts et eventuellement dans plusieurs répertoires (ex. cheyennne, rebgui, etc...) REBOL [ Title: "BUILD Duplex" Date: 12-Jan-2010 Author: "Marco" Version: 1.0.0 Email: mvri@bluewin.ch File: %build-package.r ] build-package: func [ "Build, compress and saves a package to a file or url." where [file! url! binary!] "Where to save it." list [file! url! block!] "List of script to include into the package." header [block! object!] "Header block or object" ][ list: load list block: copy [] foreach [flag item] list [ print ["Loading" item] script: load/header item append block compose/deep [ if (flag) [ if not system/options/quiet [print rejoin [{Script: "} (script/1/title) {" (} (script/1/date) {)"}]] do decompress as-binary ( as-string compress mold/only next script ) ] ] ] save/header where block header ] print "Building the REBOL Duplex" build-package %rebol.r [ yes http://www.rebol.org/download-a-script.r?script-name=run.r yes http://www.rebol.org/download-a-script.r?script-name=sql-protocol.r yes http://www.rebol.org/download-a-script.r?script-name=easy-soccer.r yes http://www.rebol.org/download-a-script.r?script-name=prolog.r view? http://www.rebol.org/download-a-script.r?script-name=rebzip.r ] compose [ Title: "REBOL duplex" Date: (now/date) Author: "Marco" Version: 1.0.0 Email: mvri@bluewin.ch File: %rebol.r Comment: {Please copy the new rebol.r file into the same directory as your rebol.exe} ] print "" print "" print "REBOL Duplex is build" print "" print "Please copy the new rebol.r file into the same directory as your rebol.exe" print "" ask "Thanks for using REBOL Duplex" | |
RebKodeur | 12-Jan-2011/10:40:48+1:00 |
Bon début. J'aime. | |
coccinelle | 12-Jan-2011/15:45:48+1:00 |
Une version à peine améliorée avec : - une ébauche de gestion des dépendances entre script (#need file! | url! | block!) - une ébauche de gestion conditionnelle du chargement (#all condition) - une ébauche de gestion conditionnelle du chargement en fonction du produit (#product core | view | ... | block!]) Par contre on voit que même une script comme le vid tool kit (vid-ext-kit.r) pose problème est fait planter view lorsqu'il est ajouter à rebol.r, c'est con quand même. REBOL [ Title: "BUILD Duplex" Date: 12-Jan-2010 Author: "Marco" Version: 1.0.1 Email: mvri@bluewin.ch File: %build-package.r ] build-package: func [ "Build, compress and saves a package to a file or url." where [file! url! binary!] "Where to save it." list [file! url! block!] "List of script to include into the package." header [block! object!] "Header block or object" /local result scripts ][ append-script: func [ list [file! url! block!] /local item product need condition file ][ list: to-block list parse list [any [ opt [#product set product [word! | block!]] opt [#need set need [file! | url! | block!]] opt [#all set condition [word! | block!]] set item [file! | url!] ( unless find scripts item [ append scripts item print ["Loading" item] item: load/header item if need [append-script need] append result compose/deep [ if all [ (either condition [condition][]) (either product [compose/deep [find [(product)] system/product]][]) ][ unless system/options/quiet [print rejoin [{Script: "} (item/1/title) {" (} (item/1/date) {)"}]] do decompress as-binary ( as-string compress mold/only next item ) ] ] product: condition: need: none ] ) ]] ] result: copy [] scripts: copy [] append-script load list save/header where result header ] print "Building the REBOL Duplex" print "" build-package %rebol.r [ ; Core extension http://www.rebol.org/download-a-script.r?script-name=run.r #product [core] http://www.rebol.org/download-a-script.r?script-name=sql-protocol.r #need http://www.rebol.org/download-a-script.r?script-name=easy-soccer.r http://www.rebol.org/download-a-script.r?script-name=prolog.r #need http://www.rebol.org/download-a-script.r?script-name=easy-soccer.r http://www.rebol.org/download-a-script.r?script-name=age.r ; View extension #all view? http://www.rebol.org/download-a-script.r?script-name=rebzip.r #product [view] http://97.107.135.89/www.hmkdesign.dk/data/projects/vid-ext-kit/downloads/vid-ext-kit.r ] compose [ Title: "REBOL duplex" Date: (now/date) Author: "Marco" Version: 1.0.0 Email: mvri@bluewin.ch File: %rebol.r Comment: {Please copy the new rebol.r file into the same directory as your rebol.exe} ] print "" print "" print "REBOL Duplex is build" print "" print "Please copy the new rebol.r file into the same directory as your rebol.exe" print "" ask "Thanks for using REBOL Duplex" | |
trigram | 13-Jan-2011/0:12:59+1:00 |
Bon je pars m'exiler pendant l'hiver histoire de comprendre ton code... Mon niveau est vraiment trop faible. Néanmoins, on progresse fortement avec des exemples comme cela. Comme Didec avec sa revue de mon code pour la comparaison de répertoire dans le temps... Bravo. J'aimerai bien que les autres donne un peu leur avis... Nico | |
trigram | 22-Jan-2011/1:01:33+1:00 |
Alors personne pour féliciter Marco Est-ce une bonne base pour un R2 Entreprise / Ultimate ? Olivier ? | |
trigram | 27-Jan-2011/12:21:10+1:00 |
Autres fonctions sympa à mettre :;***** Conversion function from/to CSV format csv-to-block: func [ "Convert a string of CSV formated data to a Rebol block. First line is header." csv-data [string!] "CSV data." /separator separ [char!] "Separator to use if different of comma (,)." /without-header "Do not include header in the result." /local out line start end this-string header record value data chars spaces chars-but-space ; CSV format information http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm ] [ out: copy [] separ: any [separ #","] ; This function handle replacement of dual double-quote by quote while copying substring this-string: func [s e] [replace/all copy/part s e {""} {"}] ; CSV parsing rules header: [(line: copy []) value any [separ value] (if not without-header [append/only out line])] record: [(line: copy []) value any [separ value] (append/only out line)] value: [any spaces data any spaces (append line this-string start end)] data: [start: some chars-but-space end: | #"^"" start: any [some chars | {""} | #"," | newline] end: #"^""] chars: complement charset rejoin [ {"} separ newline] spaces: charset exclude { ^-} form separ chars-but-space: exclude chars spaces parse/all csv-data [header any [newline record] any newline end] out ] block-to-csv: func [ "Convert a block of blocks to a CSV formated string." blk-data [block!] "block of data to convert" /separator separ "Separator to use if different of comma (,)." /local out csv-string record value v ] [ out: copy "" separ: any [separ #","] ; This function convert a string to a CSV formated one csv-string: func [val] [head insert next copy {""} replace/all copy val {"} {""} ] record: [into [some [value (append out #",")]]] value: [set v string! (append out csv-string v) | set v any-type! (append out form v)] parse/all blk-data [any [record (remove back tail out append out newline)]] out ] De DideC qui a toujours la solution à tout. http://www.digicamsoft.com/cgi-bin/rebelBB.cgi?thread=%3C5Jan201014243270645100%3E Et merci moteur de recherche du forum qui m'a permit de trouver cette fonction sympa qui va m'aider à résoudre ma problématique rapidement avec REBOL | |
trigram | 27-Jan-2011/16:58:50+1:00 |
Petite correction de DideC :;***** Conversion function from/to CSV format csv-to-block: func [ "Convert a string of CSV formated data to a Rebol block. First line is header." csv-data [string!] "CSV data." /separator separ [char!] "Separator to use if different of comma (,)." /without-header "Do not include header in the result." /local out line start end this-string header record value data chars spaces chars-but-space ; CSV format information http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm ] [ out: copy [] separ: any [separ #","] ; This function handle replacement of dual double-quote by quote while copying substring this-string: func [s e] [replace/all copy/part s e {""} {"}] ; CSV parsing rules header: [(line: copy []) value any [separ value | separ (append line none)] (if not without-header [append/only out line])] record: [(line: copy []) value any [separ value | separ (append line none)] (append/only out line)] value: [any spaces data any spaces (append line this-string start end)] data: [start: some chars-but-space any [some spaces some chars-but-space] end: | #"^"" start: any [some chars | {""} | separ | newline] end: #"^""] chars: complement charset rejoin [ {"} separ newline] spaces: charset exclude { ^-} form separ chars-but-space: exclude chars spaces parse/all csv-data [header any [newline record] any newline end] out ] | |
coccinelle | 27-Jan-2011/17:35:06+1:00 |
Pourquoi pas, mais ça me parait redondant avec le protocol CSV: qui est inclus dans le script sql-protocol.r que l'on trouve sur rebol.org. | |
trigram | 27-Jan-2011/18:33:13+1:00 |
Ok pour la redondance. Par contre, le juste-milieu n'est-il pas de faire les fonctions de Didec csv-to-block et block-to-csv en s'appuyant sur sql-protocol.r ? Perso, je les trouves assez simple et pratique. | |
Login required to Post. |