Ruby applications October 04, 2007 09:01 over 4 years ago
Obscure Data Formats, Workflow, and Remote Synchronization
Ved RailsConf i Berlin talte jeg med Chad Thatcher om et projekt hvor han har konverteret et stort katalog der indenholder musik manuscripter fra det 16ende og 18ende århundrede. Musikken ligger i det anerkende format MARK som blev udviklet i 1960erne for digital lager. Formatet er komplekst herakttisk opbygget og bruges stadig overalt hvor kunstværker gemmes i digital form.
Répertoire International des Sources Musicales
Chad har konstrueret ny grænseflade til systemet i Rails med fuld udnyttelse af Ajax, fx Drag and drop and auto-completion af de meget komplekse MARK records hvilket er en stor hjælp for de folk som tilføre data til disse records da de i selv indeholder mere end 2500 keywords. Selve MARK formatet er bibehold men der er tilføjet en ny model som mappe til en en mere normal RDMS løsning som giver flere fordele i henhold til søgninger og editering af records. På grund af den rå mængde af data så man ingen mulighed for at flytte til andet format.
Hver MARC record er nu gemt som tekst i databasen og bliver mappet i real-time til en tree struktur, ved hjælp af composed_of property indbygget ActiveRecord. På denne måde kan navigation og søgning ske umiddelbart i MARK data. Dette har forbedret en søgning fra ca. 43 sekunder til 0.003 sekund.
Jet Fighter Fuel
En sen aften time talte jeg med Rich Kilmer fra Virginia-based InfoEther. Han tale på JAOO om Ruby and the Art of Domain Specific Languages. Han anses som den førende indefor DSL og desktop-based Ruby + Flash applikation. Rich er aktiv medlem af Ruby community har lavet fx. FreeRIDE Ruby IDE, RubyGems package manager, Ruby Java Debugging Library and the Jabber4R Jabber library. Rich hostser også RubyForge.org projekt siden for Ruby community og er medlem af Ruby Central.
Rich viste nogle slides omkring et projekt i 2003 hvor han var indkaldt som redningsmand da projektet var stagneret pga kompleksitet. Systemet skulle håndtere USA’s militær fly brændstof påfyldning simulationer der ligger til grund for hvor og hvornår jet fly tanker i luften.
Rich besluttede at skrive løsningen i Ruby, og gøre det Domain Specific. Så koden blev skrevet i samråd med den ene militær mand som viste helt præcist hvordan denne proces skal forløbe. På tre uger kunne de begge læse den samme kode som ethvert andet A4 dokument med en tekstuel repræsentation af systemets adfærd. Koden skrive i det sprog som forretning eller processen bruger og alle kan derfor forstå forløbet.
By Frank Vilhelmsen - 3 tags: architecture dsl ruby - Add comment