Have you submitted your proposal for Max09?

Tomorrow is the last day for submitting papers for Adobe ‘s main conference called Max ’09.

I ‘ve submitted two proposals – one ‘s called “Practical Flex Design Patterns That Make Sense “, and the other one is titled “Data Synchronization with AIR and BlazeDS “. Hopefully, one of them will be accepted… because I ‘ve never been to LA 🙂

Just found the audio recording of our panel at MAX ’08 called “Flex Architecture faceoff “. I was one of the four panelists on stage. Beside being a practitioner, each of us was an O ‘Reilly book author. Here ‘s the recording: http://tv.adobe.com/?sdid=ELUHV#vi+f15384v1055

As always, the most aggressive panelist is yours truly. Was that joke about the goat a little bit too much? If none of my proposals will be accepted, we ‘ll know who ‘s to blame – the goat.

Flex training in Boston: discount coupons

We ‘ll be a two day training workshop “Flex for Architects ” that will take place in Boston, MA on May 21-22, 2009.

During registration at http://www.eventbrite.com/event/295389518 , enter the discount code flex100 to get $100 of the tuition.

If you are about to start new Java Enterprise project, attending this workshop will definitely save time and money.

Have you ever written a technical book for OReilly?

Here “s how it works:

1. Somehow, an acquisition editor from O ‘Reilly decided that progressive mankind needs a specific book about enterprise development with Flex, and you got an email…

2. You immediately forget your own promise not to write no stinking technical books no more. Why do you forget? Because it “s O “Reilly, you stupid! After a quick discussion with my co-authors, we said, “Sure! rdquo;

3a. The authors write a book proposal that must be approved by several members of Adobe Flex team, just to have a right to have a tiny Adobe icon on the cover and three words: “Adobe Developer Library rdquo;. Only a small number of O ‘Reilly Flex books go through this stage. Just being able to pass this stage is flattering in itself.

3.b. The book is approved by the publisher “s board, the contract is signed, and the schedule is written in stone.

4. You (and your co-authors) write a chapter and format it using the template provided by the publisher.

5. You submit the chapter to a development editor when ready.

6. Development editor fixes your English, makes it more readable and organized and sends it to a technical editor.

7. The tech. editor ensures that you didn ‘t say something obviously stupid from a technical perspective.

8. You get the chapter back and need to respond to tons of comments. This is the most boring part. As a matter of fact, this is the main reason why I decided to write this blog. Just take a look at the snapshot of my screen hellip; The comments are on the right, the comments are inline, and you won “t be able to get away with skipping one.

9. You submit the reviewed chapter back to the development editor. Schedule? What schedule? Nothing is written in stone…

10. The development editor takes another look at your masterpiece and give it to online production team (this part is a bit fuzzy for me).

11. Two weeks later, you receive an email informing you that the Rough Cuts of the chapter X is published on safaribooksonline .

12. People start enjoying reading your wisdom about enterprise development. Even before the book is ready to go to the printer.

Leather, rinse, repeat hellip;

I have great co-authors, I really want you to like this book, but let me tell you, this is my last technical book. Period.

Will present on RIA technologies in Kiev, Ukraine

I ‘ll be in Ukraine on a private visit. Microsoft and Sun Microsystems made arrangements, and I ‘ll be presenting on their joint meeting reviewing technologies for RIA development (AJAX, Flex, Silverlight, JavaFX). This event will take place on May 4, 2009 in the offices of Microsoft Ukraine. My special thanks to Aleksandr Oreshnikov from Microsoft Ukraine for making it happen.

If you live in the area, you can register for the event at http://www.developers.org.ua

It ‘s going to be an interesting experience for me as I ‘ll need to present in Russian – most likely this talk will be heavily sprinkled with English terms, but I ‘m sure Ukrainian developers will forgive me for this.

Is it the time to follow Twitter and learn Scala?

The Register has published an article about Twitter considering moving the mission critical portion of its code from Ruby on Rails to Scala.

This sounded logical to me, even though the article has been dated by April first. But then Artima has confirmed the news a couple of days later.

As usual, the bad part of me goes, “Told, ya! ” as people who read my posts knows that I was never a fan of RoR. I really respect DHH and his followers for doing exceptional job in exciting so many software developers with Ruby and RoR. But when these boring men with cash (BMW$) come into play, things change. The problem is that BMW$ don ‘t get excited that easily. Their low-IQ brains go like this, “I may invest $X into this startup, and on exit in five years (IPO or takeover), it should bring me $Y “. They always had problems with math, and the only formula they ‘ve managed to learn was this:

if ($X gt;$Y){

// Run away

}

These filthy rich BMW$ don ‘t give a damn what ‘s the name of the programming language is that the startup is using for development of the software that will allow them turn $X into $Y.

Ruby makes developers happy, but if you are entering the business world, you ‘d better use a language that makes BMW$ happy.

Twitter deserves credits for being extremely creative – they hired professional artists who came up with this picture of a little whale laying at the bottom of the ocean shown several times a day when Twitter ‘s servers go over capacity. They ‘ve also created a bunch of other cartoons that were supposed to act as prozac on people learning that Twitter is once again on unscheduled maintenance.

RoR is great when you need quickly create prototypes of a Web CRUD application. It may be a good fit when it comes to developing Web sites for small businesses. But when it ‘s time to architect enterprise-grade mission-critical applications, I ‘d stick to tried and true Java servers. If Scala can run on JVM that ‘s fine as long as some serious performance benchmarks can prove that it ‘s as fast and reliable as Java EE.

Now, I ‘m wondering how long does it take to Twitter to realize that it ‘s time to find a decent stateful replacement for their AJAX client, which will allow further lower the load on their servers? Shouldn ‘t take more than a couple of years.

If my Twitter account won ‘t be banned, it ‘ll remain the same twitter.com/yfain

A Poem About Java

This poem is written by Vadim Rabovsky, a Java developer from Rochester, NY

Advanced topics of object oriented programming.

Presenting the world as a random collection

Of objects is dubious. Far from perfection,

It hardly can pass for a decent expression

Of our senses. (With equal passion

We could be designing a storing procedure

For local morgues.) The essential feature

Of any good system of views, is consensus ndash;

Of rational thought and the deepest of senses ndash;

What “s called intuition. But let “s take a glance at

This seemingly faceless and meaningless concept.

An object in short, is a representation

Of any one thing, (or, in fact, combination

Of things). And despite what the instincts would tell you,

An object can (painfully) have no value,

Thus taking some space to declare an instance

Of nothing that can justify its existence.

The objects are pointers, or space holders, whether

With values or not. And declared together,

They form an array. Take for instance some foxes,

Some household cats and some broken boxes,

Some empty containers and yesterday “s flyers,

Some evil intentions and noble desires,

The solar systems, the planets, the Buddhas –

And add to the pile. An array can be viewed as

A sequence of objects, or simply ideas

Of things ndash; some are pointless, some pointing to trios,

Quartets, even n-tets of others (Beware,

Those others can very well point nowhere,

Which hints that a Thing is related to Nothing

The same way the turkey relates to the stuffing).

This could be a starter. This kind of array,

Expanding language, let “s call “disarray rdquo;.

An infinite size disarray, representing

The Universe. Does it achieve what was meant in

The context? Not quite. It needs something to bind it,

A meaningful purpose, or feeling, behind it.

Religion? Could be, although God doesn “t give us

Too many good answers (forget the believers).

So here we stand: universe in disorder

(Which is, strictly speaking, a different order

unknown to us), and to balance the reason,

The absolute Love (or the absolute Treason,

If seen from a different angle). That Love,

Applied to the order, declared above,

Will give us a picture of almost ideal

Precision – the world, that (let “s call it sub-real)

Is still just a part of the whole ndash; it “s the given.

Add our view of the world, that we live in,

And (this is the point, justifying the project)

It brings us to what we, defying the logic,

Have always been looking for (think of Tomorrow):

The ultimate joy (or the ultimate sorrow),

The unification of us with essence

Of all that exists (or the absolute Absence).

But there is one thing that can cause us to toddle:

Unwittingly, we, by creating the model,

Are changing the source (or the world, which within it

Has now the model itself). It “s the limit

Of logic, that jeopardizes the mission.

The programmers call it a racing condition:

Imagine a person in front of one mirror,

While holding another hellip; the imminent fear

In face of the endless array of reflections,

The open door to infinity. Actions

Like this can effectively lead to a tumor

In sensitive brains. Let “s resort to some humor,

And follow the syntax, as well as the ethics,

Of programming languages (See the appendix).

Appendix.

(To be continued)

Offshore development is a minefield

Yesterday at 6AM I was on my daily meeting with Boris, a software developer from our East European branch. He ‘s a really good developer. Four days ago, I asked him to develop four screen for the demo application. This was not meant to be a real project yet – just the pilot.

Yesterday, while answering my boring question, “How ‘s the demo? “, he simply said, “I need a little more time, because I got stuck with this auto-complete component – it doesn ‘t works properly on holidays “.

I knew it. Another one got carried away. Software developers from former USSR need special treatment – they are different.

THEY KNOW BETTER THAN YOU WHAT HAS TO BE DELIVERED.THEY WANT TO DO BETTER.

The problem is, that I don ‘t need better product tomorrow. I need a mediocre demo today, otherwise I won ‘t get money for development of this project at all.

I said quietly to Boris, “Boris, imagine a minefield…I need you to get to the other field safe and sound and not later than Thursday! Just strictly follow this path….Step to the left, and you ‘ll lose your leg. Step to the right, and you lose your balls. Please, please, please don ‘t try to fix things at this point. I ‘ll give our demo application to a marketing person and explain her how to walk the walk and present the functionality of the system-to-be “.

I went on, “Boris, don ‘t be a sapper at this point in the game. Just go to to the other side of the minefield. Agree? ”

Boris said “OK “, but I was not convinced.

I was right. This morning Boris told me about another issue that took a little bit more time than expected… ” I repeat my song about the minefield again, and hopefully the things will get start moving. I ‘ll see tomorrow.

There is a big difference in managing local and remote project developers. If Boris would be sitting in the cubicle next to me, I ‘d figure out a lot sooner that during the last three hours he ‘s disarming a sophisticated mine jeopardizing his life…oops, the success of our project. If you won ‘t talk to each of your offshore developers AT LEAST ONCE A DAY, the chance that you ‘ll lose your balls on that minefield are very high.Trust me. Been there. Lost them.

Early Bird discount for Flex seminar in Boston expires on April 6

The early bird discount for the two-day Flex workshop in Boston expires on Monday, April 6. Details at http://www.eventbrite.com/event/295389518. Don “t say I didn “t warn you

Those who are planning to learn Flex during weekends should consider the 2-weekend Adobe Certified Flex training in Edison, NJ. Details at http://www.eventbrite.com/event/314201786.

This Java architecture is a tough sell

Three years ago I ‘ve suggested a light architecture for Web/J2EE applications that was based on a Servlet container with transaction processing, Message Oriented Middleware, and a DBMS: http://java.sys-con.com/node/204697 . This piece was a part of an old and semi-serious Gas Station series published at Java Developer ‘s Journal.

Even though during the last three years I was predominantly involved with the client side part, I ‘ve been watching closely what ‘s happening in the Java EE domain.

Today, I was discussing an architecture of a new Flex/Java application with a colleague, and we came up with even lighter architecture: Flex-AMF protocol-JavaServlet+Transaction support library-DBMS with potential introduction of asynchronous messaging, if need be. I want to stress – only if there will be a need to scale, adding it on the protocol level so the application developers won ‘t even notice it. We ‘ve learned how to seriously scale well designed Jetty ‘s servlet container empowered by Adobe ‘s BlazeDS ( it ‘s a pity that Jetty-based early draftsof JSR 315 has been buried, which deserves a separate article).

No EJB or Spring container, no Hibernate either – just tried and true SQL/JDBC.

After the conversation was over, I ‘ve had this deja vu feeling and recalled that old article. On one hand, I still believe that this is the right way to architect Web applications, but on the other hand I know that it ‘ll be a tough sell – selling an architecture at a gas station is not the same as selling to Wall Street IT architects. This application will be developed for large corporate clients, which implies that I ‘ll need to present and defend this architecture in front of the architecture groups of these corporations.

EJB are out of style these days. In the Java world, the buzzwords of the first decade of this Century are Spring and Hibernate. If the PowerPoint won ‘t include such boxes on the architectural diagram, most likely the enterprise architects won ‘t approve it. Now I need to decide if I want to be 100% honest and jeopardize more efficient design, or be street smart, add these two boxes to the slide show, and when the project will be approved, quietly or with a fist fight remove them one by one.

I need to be very careful.

I need to think hard.

I need to consult with sales people.

I need to be smart.

I need to be politically correct.

Repeat.

Princeton JUG is looking for a new home

Unfortunately, our host can ‘t sponsor our meetings any longer, and I ‘d like to thank them for giving us a place to meet for several years.

If your firm has a large conference room and is willing to purchase pizza and soft drinks about 8 times a year, please let me know.

If you need to talk to your boss about this opportunity, below are some benefits that might help in your “sales pitch “.

What your firm gets:

1. Access to some best and motivated local Java developers.

2. The right to do a five minutes advertisement of any kind in the beginning of the meeting.

3. The right to post your job requirements to the mailing list of Princeton JUG that includes 250 local Java developers.

4. Well known and well researched speakers, often published authors will drive/fly to YOUR FIRM for free to speak to an audience who ‘s eager to learn something new. Employees of your firm are always welcomed to attend these presentation.

What your firm won ‘t get:

They won ‘t get to tell me what are the appropriate technologies that can be presented at a Java User ‘s Group.