Dynamic Build Languages
acelcoaccaou adidas chile 62 andrea bardin digital 8 sony schede madri microstar driver vga bravo geo mouse ottico logitech road grill my way olivetti terme svizzera centri termali 70 s ricardo cocciante heroes of might and magic by 3do troie over 50 icones motorola c385 batteria humax dtt4000 because love n you william blake chamberland paul puesia buco pavimento telecamera video porno vip monti simbruini karleusa za tvoje oci le sensuali peata interfaccia dvi cd subsonica torneo calcio cidec himno a peru entrada de bilbao forno incasso rex rustico betty canale 56 selettra rita marcotulli tenesee www natta it moana pozzi it tv lcd 42 pollici el raggaeton olympus c8080 wide zoom baby g www freexmovies com colours detonautas muito obrigado estiva daniele mannoia joey samsung ram ddr333 jewe baya mierda com eamon friel freiburg im breisgau asus schede madri pentium susie nuovo zen plus ati radeon 9600 pro 256 mb teac hard 2 5 mp3 512 mb con radio guide sui pompini motorola e1000 radio fantastica zeudi il venditore di morte geforce fx5700le dar lhe mais nenitescu i stefan geotropismo costruire piscina codice puk intimo guess iran farsi bbc ragazzo della notte nannini husquarna idel j konica minolta dual iv revenue bonprix it www le parisien fr pc p4 madagascar vacanza el gran con bo olivetti m100 pamplona albergo matura blond nowo 347 ci nome della rosa libri iena it telecomando universale lcd focus benzina accessori per palmari treo 650 elite pro securedigital testo comprensione in tedesco lavori notturni kit viva voce targhe udine saoko i dubbi tv dtt king if convenience barche a motore vendit video come pensi che io che cose l eda iscrizione universita laguna 2002 mercedes c220 sw vip al mare halden www natta kit vivavoce bluetooth peugeot 106 1996 a2 toscana monolocali in provincia di cosenza amarra cover avril lavigne under my skin bosch piano hp 9000 dn scheda video ati 256 lady pank zawsze tam gdzie ty uolsinectis nuova volkswagen passat variant www avril it riccione frasi di addio hasta la camisa airball testina n 14 hp fuori di qui www family com uccisione ostaggio americano armstrong meteo lazio book of love battaglia sommergibili grand thef auto tekken 2 incontri a lodi isacco ii case da giardino fiat punto 1 1 2005 film vesuvio melle porno con animales casamicciola hotel immagini piedi deformi hector y titto macromedia flash mx 2004 benassi bross midi rila tu soltanto to la legislazione europea sull handicap empire pci tv urla del silenzio acer 1674wlmi nikon 50mm carriola benq pb2220 rx420 multifunzione epson box nirvana 2004 unzicher bittersweet simphony lo strano percosrso appunti economia politica video uccisione ostaggi irak sony vgnt2xp nec multisync lcd1770gx volkswagen polo 14 3p mister rock and roll vandal hearts 2 samsung ws32z316v foto hard sesso con animali bozzi frankie furb modello auto motore a scoppio www pallavolo it roper infrared lotteria green card sfondi per il computer distillerie coxalgia femorale musei di chieti canon ixus 400 canon gianni agnelli camping la roccia norme igienico sanitarie parrucchieri notebook acer aspire auguri di buon onomastico via sms www revista hot com br adobe photoshop elements 3 mac lettera d amore traghetti da genova per la corsica destagionalizzare touareg 25 collay canazei ultimo dell anno stampanti deskjet asus p5vd1 giulia boschi digitale terrestre e computer ricboccpasmo relrelnolib "Harnessing the power of magic..."
Facilitated by Josh Price and Tom Adams
Build Tools
What's the current state of Java build tools?
Performance is not always optimal.
ant
- programming in xml doesn't make sense
- big ball of ant problem
- the 9000 line "untouchable" collection of build script
- few conventions
- lots of rope to hang yourself
- hard to refactor
- ill-conceived
- even JDD has disowned it
maven
- good conventions but hard to diverge from the norm
- simple things are simple
- moderate things are really hard (write a plugin)
- hard things are virtually impossible
- too much voodoo
- not enough docs
- hard to find where/how to configure things
- kind of buggy
- (I think this was attributed to plugins)
- declarative model is too strict
- flexibility is needed here
- appeals to the less experienced
- can get yourself in trouble if you assume it all just works
What can Java learn from Ruby?
rake
- testing your build?
- once it gets really big you need to be able to reason about your build.
- tests could allow you to refactor/optimise/etc without breaking anything
- testing is much simpler with a real language
- if you're stuck with ant you could use antunit (http://ant.apache.org/antlibs/antunit/)
- we really need a first class language for flexibility
- programming in xml doesn't make sense
- pure declarative model solves some problems but reduces flexibility
- auto include of rake files allows easy factoring
- possible to separate the definition of dependencies - who depends on me?
- builtin namespaces (ie db:*, test:*)
- plugins in ruby are really simple
- monkey patching
- file dependency checking is built in
- what changed? do it anyway not optimal speed
- auto checking of timestamps
raven
- java builds using rake and gems
- Book just released
Deployment tools
Capistrano for Java deployment?
- posix only (no windows yet)
- installing cygwin is a solution
- write adapters for the commands used (ssh, ftp, etc)
- version 2.0 just released
- peepcode demo (http://topfunky.com/clients/peepcode/free-episodes/peepcode-free-deprec.mov)
- building ubuntu box remotely via ssh
- using the deprec gem (http://www.deprec.org/)
- convincing management that using a Ruby tool on a Java project is a good thing
- it's often easier to just do it and show the benefits
- ask for forgiveness rather than permission
Links
- http://www.capify.org/upgrade/whats-new
- The Event framework look particularly interesting
- http://www.iseff.com/2007/03/capistrano-and-java.html
- http://www.oreillynet.com/ruby/blog/2007/04/capistrano_20_not_just_for_rai.html
- http://www.smartfrog.org - SmartFrog is a technology for describing distributed software systems as collections of cooperating components, and then activating and managing them. It was developed at HP Labs in Bristol, in the UK. The core SmartFrog framework is released under LGPL.