Dynamic languages troubles

I have read http://www.manageability.org/blog/stuff/chandler-failure and I think it is very danger way of exposing concepts.

In the article pointed out, the quite dead Chandler project is compared to the multi-billion Eclipse project. And then a too easy analysis is done against dynamic languages, where Java is the absolute winner.

I will try to fix some of the things said there, and to add also my two cents here :)


First of all, I use Java a lot, but I am also a fan of dynamic languages. Every tool has its place in the world, and I will avoid some holy war here. 

Anyway, it is important to understand major differences between very distant projects.

First of all, Eclipse is a very huge project, developed by IBM and based from the beginning with a very strong hype on plugin modularization.

The effort pushed inside Eclipse is very huge and come also from the San Francisco Project. Other IDEs (like JBuilder and Together) stops fighting Eclipse years ago, and eventually failed even to sell their stuff.

 So there are no similar example to Eclipse in Python/Ruby/Perl world. Even in PHP is hard to find a so huge and well designed program. And the languge here is less important: a company big as IBM can also code in PL/I all its stuff, without so much pain :)

Second, PHP is very successful language, even if a bit too insecure, at the present time.

PHP Language has poor support for modules and so on, but project like Drupal, Joomla and other are full of plugins, quite easy to write.

RubyOnRails is falling down because nobody is understanding why PHP should be abandoned for Rails.

Java architectural model is very well written and Sun worked very hard to it. Java Hot Spot VM is derivered from the Self dynamic language,  and has inside technology difficult to develop in an open source project.

Surely Dynamic languages are strong when there is the one-man-band paradigm: sharing works in Smalltalk was  a bit complex in early days.

Put Perl, python and ruby have a strong modularization concepts, and so this issue is often solved.

I have tried Zope and I think it is weak because:

  • Zope is user is non-existent. Zope user is a super-skilled web master which wants a web CMS without writing so much code.
  • Zope product upgrade is a nightmare
  • A stuck Zope Product can destroy your work. So hosting Zope is a problem
  • A lot of Zope basic objects (like cache accelerators and so on) are poorly minded: they works only on RAM, and are not thinked well. Drupal 5 has more strong theory for this issue, and Drupal is poor PHP code.
  • Zope use a proprietary database, when a simple SQL database with a relational mapper can do the same thing…think twice before reinventing the wheel!
  • Every major Zope releases breaks a lot of the API. This is the most stupid thing you can do as open source developer.

Chandler failed because they tried a very difficult business: calendar software is a very difficult area to address. All operating system (including possibly C/64 :-) has now a huge set of Personal Information Manager software (PIM), and LDAP solves sharing issue for big companies

Even Ximian Evolution is near death.

And your bigger competitor is Microsoft Exchange and… yes… old Unix.

Dynamic lanuages has many lacks, and difficult refactoring is a problem but… remember frefactoring tools was INVENTED under SMALLTALK!

IT is a place where you must be careful… isn't it?

La caduata del governo per interessi personali

Lo scandalo della caduta del governo Prodi sta in questo piccolo fatto: il governo cade perche’ un ministro (Clemente Mastella) ha deciso di fare una stupida ripicca.

Clemente Mastella negli ultimi sei mesi si e’ distinto per essere il piu’ fulgido rappresentante della peggiore casta politica italiana.

E questa affermazione, si badi bene, è solo una constatazione.

Prima si è reso partecipe dello scandalo dell’aereo usato per scopi personali.

Poi ha dimostrato una totale intolleranza verso la satira, adirandosi contro Grillo e Crozza.

Infine, si è lamentato del fatto che la giustizia stia facendo il suo corso, interessandosi a vicende poco chiare

che coinvolgono lui e la moglie.

Infatti tra i distinguo che bisogna fare, di sicuro è esecrabile il fatto che la notizia sia

giunta prima alla stampa che a lui.

Ma questo è normale nel mondo dell’informazione (almeno dal 1950 in poi….).

L’italia, paese che io amo, fa purtroppo una magra figura agli occhi dell’europa: il governo cade per gli interessi

di una sola persona, e il paese ne risente per una cosa così stupida.

Entrambi i poli dovranno meditare su questo ennesimo insuccesso, che non porterà vantaggi duraturi a nessuno

statista che sia veramente responsabile

Shopping in the IT

Oracle buys BEA and Sun buys MySql.

In reply,Migrosoft is hungry and is watching Yahoo :-)

<joking> 

Any bets on the next money-based-news?

I'm going for

  • Oracle buys Sun: "We need more hardware to run Oracle and WebLogic together! "
  • Google buys Oracle: "We have *even* more hardware…come on!"
  • Apple buys Google: "So nice LOGO", retrodating a bunch of stock options, I suppose.
  • Microsoft buys Apple ("So annoied their are more cool then us!") and shut down all them all so you will end up using their search engine, I hope.

</joking> 

Surely Oracle needed a good application server to push its db.
Sun move seems  a bit strange in my humble opinion: anyway the big competitors in standard dominance (Sun,Oracle,MS) now have all the same stuff: broad used databases and application servers.

Even Apple has acquired FileMaker, pushing it with the "Bento" single-user-oriented db. 

Google has a different approach and a bit different market scope, so do not enter in the plan drafted here.

Sun move is very strange because MySql is not an "enterprise" stuff as in the Sun-way-of-life; normally Sun wants big software which need big computers, to buy at Sun Shop.

MySql should be acquired by Microsoft because of its very light footprint: but it sounds too much open source stuff for this move.

pyparsing review

This is the sad true: parsing is boring. And writing parser is even worst.

If you can choose a scripting language for parsing you can think to do it in perl.

For this way, take a big breath and go in the black sea  of perl's funny regexp. They are funny only if you have that special love for the regular expressions.

But if you are more confortable with python, pyparser is a better solution.

Pyparser is a library written in Python, for building parser described with a BNF (Backus-Naur Form).

O'Reilly has just published a "Short Cuts" e-book written by Paul McGuire; in less then 70 pages you get a very good insight of pyparser.

Even if you are new to python, the book is very easy to read.

And if you do not know nothing about parser and Backus & Naur, you will find an easy path to understand it. Parsing is a tricky topic because of the grammar theory behind it, but for all-day work, you can follow the McGuire introduction.

After some simple example, you'll dive into a small web page parser.

It is very amazing how you can do extraction from web pages without a complex Sax parser, and using only  a very compact grammar.

After this intro examples,  the manual take us to a more complex task: a lisp-like expression language parser called S-Expression.

This example is important because complex data structure are oftern recursive as S-Expression are.

The last chapter, "Search Engine in 100 Lines of Code", is a well-written example, and show us how to build a small search-engine-grammar.

 So this e-book is a "must" if you need to do even simple parsing and you… do not want to become crazy with too regular expressions :)

Why Open Source is important?

Hi readers,
with the beginning of 2008, ObjectsRoot.com will change a bit its face.

First of all, all Italian article will be moved to the new “vamp” site, thinked as a news site.

Objectsroot will focus on IT Business and it will host only english content: IT article will remain here, at least for a while.


ObjectsRoot.com will focus on publishing and advanced web services for our customers.

I  have done some deep  consideration on Open Source Software  and I will summarize them here.

From the beginning of my Univesity studies, GNU software helped me  to grow in my competence.
Linux was far more advanced the MSWindows in 1993, and helped innovation.

Commercial software is always a bit too expensive, especially in Italy when consulting firms got paid for doing a lot of work, and there is little space for the Independent software vendor (ISV).
Worst, in my last 12 years of experience, quite all of my Cutomers didn’t like the “out of the box” product sold by big companies. I spent about the 80% of my time in customization of already-done things.

Italians want things in a very particular way I think :-)

In the last year, I get stuck because a very bad designed product failed in so many area, the customer eventually decided to cancel the project after 12 months we cannot get basic things working (like for instance search in natural language like GOOGLE!).

That bad stuff is written in Java and is a Knowledge Management System.

I was in pain because the support was poor and they was unable to  give me the documentation.

Even worst , because the project was composed of all closed-source things, the 120MB ear was very difficult to understand.

They rewritten things like Hibernate and Log4J, with poor result in our environment. Worst they supported only AIX and Linux, a very limited platform choice, isn’t it?

(I omit the company name because I am a good guy, and I do not want to put shame on a company with good programmers, bad software archiects and even worst support)
I think these guys never read the JoelOnSoftware‘s WebSite.
Anyway they used all the Java technology out of there, and they wrote a very huge amount of code.

I get the same feelings of this guy, which wrote on his site about a very similar problem:

Once upon a time I had to deal with a company who sell flash charting components, their component had a bug that I needed fixing, so I emailed them about it asking when it’d be fixed. (Remember that I had paid real money for this software.) They were so incompetent, rude and obnoxious that after three or four weeks of emails I thought to myself “I could learn Flash and Actionscript and write my own charting component, release it as Open Source, host it on sourceforge and build up a community of helpful coders faster than they can fix a single bug.” And that is what I did. And that is why it is free. I guess the moral of the lesson is: don’t piss off your customers.

So I understand why open source is important.
Open source is a good way of sharing knowledge, and this is the most important things.

Please note that cost is not the most important thing.

Shared knowledge and examples are the most important things. Let’s see why, dear readers.

Why Shared Knowledge?

In the’80 and also in ’90 a lot of software company failed to true understand what shared knowledge is all about.

Shared kwnowledge is the big force which helped some open source software to survive far beyond its initial developers.
Netscape used it to keep Mozilla source code alive.
Others good things are quite dead (like AmigaOS) because are trying to **sell** an old, outdated things with a very little set of people interested in it.

Closed things can live well but require a very huge set of attention, money and love.
And some things cannot even born in that environment.

Get me at least THREEE EXAMPLES!

I admit it. I am a fan of Emacs. A very nerd thing. And I am also a fan of unix.

But I must learn those things, and while I am working, I have less time then an University guy.
So I’d like to see at least three examples for every stuff I must use.

Now do this joke. Think about three unix command (for example cat, rsync and  ls) and count the examples given in the manual pages.

On Linux you get ZERO examples for ls (you can get some more examples on the info pages,

but three examples are only three more line on the man page!).

You get more then three examples for rsync, and only two poor examples for “cat”.

So I suppose the rsync guys are more smart then others.

Try with another command.
This is the wrost thing of unix, in my own opinion.

Some big software company (like Microsoft)  can teach this lesson very well.
But Microsoft failed poorly about sharing knowledge, and so they avoided new ideas, because they cannot risk to afford so much money in innovation.

So Ideas need other ideas to grow, and must show at least some  good examples, the rationale, to  grow well.

For all this reasons  I will release all my software in double license: free and commercial.
The commercial is for true business man who want a click-and-install software, with paid support.
I mostly resell ready made web sites written for high speclialized customers.

The free one  (mostly GPLv2) is for who cannot afford the software, and wants to look at it, possibly extending it.

Last but not least: Happy new Year!

For the spammers: I really love you, because you do a very sad job, even worst then mine in this last year.
But please keep going on, because I like so much seeing you  working for so a futile task. And bad new year to all of you spammers!

pezzent programming

Si fa un gran parlare di Extreme Programming? Ma se non volete fallire, su quali basi la vostra azienda deve veramente reggersi? In questo articolo vediamo un excursus sul Pezzent Programming, usato nella produzione industriale di Dolci

Estratti dal manuale del Pezzent Cooking Management:

  1. Formazione. La formazione è importante per la nostra azienda. Però anche quest'anno il nostro obiettivo è produrre utili, e quindi perché dovrei togliere una persona per 5 piccolissimi giorni dalla commessa, e farla divertire ad un corso? Se proprio vuole, si comperi un libro, di tasca sua, e lo legga la sera a casa!
  2. Clienti. Il cliente paga. Per cui il primo giorno l'account sente che cosa vuole, e poi lo si disturba solo e soltanto per avere la firma per il pagamento delle tranche accordate. Non fategli domande sulle specifiche, cheè sintomo di insicurezza e magari poi si scoccia e non firma con regolarità. Se c'è un problema glielo comunichiamo quando ha versato il 90%. Per il resto, cavoli del progett manager
  3. Esterni.  In sintesi gli esterni sono come dei dipendenti, ma sono finti. Possono essere fatti sparire dentro un cappello da mago et similia. E' fondamentale che gli esterni vengano pagati poco. E siccome sono pagati poco, convengono più di qualsiasi altra cosa, inclusa la formazione dei dipendenti veri (vedi punto 1).
  4. Pie Programming (da non confondere con PAIR programming). Sviluppate il software come una torta sorpresa: bella interfaccia con un ripieno di roba che da errore ma che RISULTA emettere quasi sempre il risultato atteso. Mi raccomando i bottoni in FLASH!
  5. TurnOver. Dovevamo assumere tante persone quest'anno, ma più ne assumevamo più se ne andavano. Alla fine abbiamo scoperto che la causa erano le voci sulla qualità del lavoro prodotto in sede. Abbiamo chiuso la sede e ora va tutto fantasticamente. Se uno chiede di cambiare cliente, lo licenziamo!
  6. Se una persona chiede la maternità, avrà le voglie e ci mangierà metà dl prodotto finito! E noi la licenziamo!

Disclaimer: ogni riferimento alla vostra azienda dolciaria è puramente casuale.
Se la Farilla mi fa ancora causa, smetto di comperare i biscotti °Le Macine°!

Citazioni…

La realtà è quella cosa che, quando smetti di crederci, non va più avanti.

Mi accade spesso di svegliarmi di notte e cominciare a pensare a una serie di gravi problemi e decidere di parlarne col Papa. Poi mi sveglio completamente e mi ricordo che io sono il Papa!

Ricordate, c'è gente che pagherebbe per vendersi.
No, tranquilli, anche peggio di voi….

Portfolio

ObjectsRoot.com offers customized  hosting.
All of ObjectsRoot.com software is open source, and you can download it from the master site

Current customers include:

  • Scheggia Book Sharing Accounting Application
  • MyTranslationExpert.com a professional translation service site
  • Sirio, a medical and high secure private application. (for privacy reason no public URL is provided).

To get pricing, send your request describing your needs to our email address

To see a demo of our most powerful site take a look to the Vamp (in italian) 

Will Zend slash rubyonrails?

Let the Zend Framework introduce itself as a Borg would do: 

"Hi dear RubyOnRails. Hi all. I am the Zend Framework, a small work (about  5 tons of code) done by IBM and Zend to destroy you. You think php is not able to build big project?… do you?
So you have dared to develop RubyOnRails or Perl or Python, thinking you can own the web in your way… Dear nerds you are so funny and young!!" in a lamp of light the borg duplicate itselfs in 100 indians programmers, saying together

"Resistence is futile.

Eh eh, we have just emitted a small set of stuff as a demo:

We have cache engine, memory manager, acl, configuration, pdf support, lucene support, all with documentation and examples (!).

Yeah we  are also thinking to integrate php as a WebSphere Frontend, and javalize it. Yeah you now we are already working on it and it is a secret… in a couple of year, you will forced to use our PHP. As Borland destroyed its JBuilder in favour of our small Eclipse Framework you will be absorbed soon.

And yes, http://www.basecamphq.com/ is still closed source!"

PHP is still well supported and a tons of apps are out of there.
PHP is "insecure by design" because of its type juggling system which allow you to inject data in a very easy way. But ruby is not much more secure at the time of writing….and php code library is five times bigger then ruby.