Archive for December, 2008

Grey Line

In this video, Farata’s management is dancing. This dance is our way to thank our past customers and attract the new ones.  This is not to say that we’ll dance to any of your tunes, but rather to ensure that we can choreograph any Flex-related dance on your enterprise floor.

Happy New Year!

Yakov, Anatole, and Victor

http://www.faratasystems.com

P.S. This is a 17Mb MPG file, and if you have a slow connection, download the movie first (right-click, Save Link As)  for smooth performance.

Comments

 

Grey Line

“Have you heard about the crisis?”
“What crisis?”
From a recent conversation with my colleague.

Well, of course we’ve heard about the crisis. I’m one of three partners who run a software boutique, and in early September, I did realized that something was very wrong with the economy.  Back then, we’ve deposited a check from one of our customers, a very large enterprise. A week later, we’ve got the message from the bank – the check bounced.  That company went belly up.

This was an iron clad proof that this is not just a temporary recession.  A friend of mine runs another business – he makes crowns and bridges. He makes fake teeth. He often complains about bounced checks from doctor offices, but our case was different – this was not a doctor’s office.

There is a popular definition: “Recession is when your friend got laid off. Depression is when it happened to you”.  To rephrase, “Recession is when small businesses have bounced checks, depression is when it happens with the large ones”.

There were some other negative signs – postponed software projects. We were about to start several projects with large companies, but they got postponed till better times.

That being said, luckily, we were quite busy all year and already have a queue of interesting projects for the next year.  I’d like to tell you a little bit about our way of running business.
We are a small company with three main activities:
1. Consulting in the RIA development that involves Adobe Flex and AIR
2. Conducting training
3. Software development

The first two activities bring the money in.  Our software (productivity tools for Flex developers and a Web reporter) is given away for free – this is how we show our potential customers that if we can do this stuff, the chances are very high that we’ll be able to program their order tracking system without too much sweat.  This is a proof that we are a low-risk partner.

Let’s talk about the first two activities. How do we sell our services? Guess what, we don’t have sales people. None. Zero.  Instead of spending hundreds of thousand of dollars for multiple attempts to hire THE RIGHT salesman, we decided to heavily invest  into PR and building our own brand. By the way, we didn’t hire a PR person either. We blog, we write technical articles and books, we speak at large conferences and in front of a small group of people at Flex or Java users group sessions.

Our company doesn’t have overhead. Other than a part time office manager who does the invoicing and sends out post cards during holidays, part time accountant and outsourced payroll company for fifty bucks a month, everyone else is billable almost all the time.

For example, if I’m not busy working for a customer, I spend my time writing the next chapter for the upcoming O’Reilly book. Moneywise, writing a technical book is like working for one dollar per hour. But hey, it’s still billable hours isn’t it?

Writing technical publications is different than writing a Harry Potter book (I wish I could do this).  The money you make from selling technical manuscripts is very hard earned dough. But books have very good side effect as long as you are not writing for the  “XYZ …for idiots” series.  Our books show that we are well researched in the RIA space, and having one us on the project will secure the management a couple of extra hours of good sleep at night. We are low risk and low maintenance partner.

You may say, “Yakov, just cut the crap and stop bragging, will you? Let’s talk turkey. Can we afford you?” I’m glad you’ve asked. And let me tell you why we call 2008 “A year of small customers”.

About six months ago, the office phone rang. The person introduced himself and said that his company needs some help with their Flex project. He wanted to meet.
I asked, “Where are you located?”
“North Jersey”
“I’ll be in the area on Friday, and we can meet. Where?”

The guy gave me directions… to a Starbucks located in a so-and-so shopping plaza.  He started the conversation saying that when he dialed our company’s number, he was ready for an answer like “We don’t work with small companies”. This tiny business owner sounded very appreciative and explained that he hired two Flex consultants located somewhere in Mid-West, who are already developing an application for a large company here in Jersey.

The rest of the story was typical. Flex is very easy to get in, but after a while it became unclear how to do things properly.  This meeting at Starbucks turned into a productive partnership. They got from us a very senior Flex developer/architect from Eastern Europe at a very affordable rate.  And the good part is that their checks don’t bounce.

We have several other small businesses that use our help and are pretty happy with this partnership.  This doesn’t mean that if you have a multi-million dollar project lurking ahead, we can’t handle it. We did it before, and we can do it again.   Even though we are keeping a small number of permanent software developers on staff, over the years we’ve established great relations with a large software company in Eastern Europe. We trust them and they trust us.

If we need to quickly ramp up a team with various skills, we can do it within a short lead-time.  When the project is over, the team boards the large mother ship again, and we remain agile.  Some customers don’t mind having developers overseas, but prefer to have a technical leader and the main point of contact here in the States.  No problem, we offer so-called blended rates. You are getting 10-20% of my time and 80-90% of the job is done remotely using daily emails, instant messaging, conversation over Skype and screen sharing.  Don’t forget, that we  guarantee that all major technical decisions made on your project will be carefully reviewed by us, and the offshore developers are top notch.  These arrangements make the whole engagement attractive and affordable.

Running technical training is yet another way to get new customers. We fly all over the world to conduct Flex training for private customers. During the week of training, attendees can clearly see that we’ve learned our stuff not from the books.

This week signed a contract to run certified Flex  training class for a client in Texas. How do you like this clause from that contract: “Overall instructor’s scores must exceed 7.5 on a 9 point scale, or equivalent thereof.  Evaluations falling below this criterion will result in reduced or zero payment for instruction depending on the shortfall below previously stated guidelines.

When I read this statement first, I said to myself, “I’m going to pass on this one”. I know that I’m a good instructor, and people usually enjoy my classes. But hey, you never know. What if some students just don’t like my personality and will give me lower grades? Bat after a couple of minutes of hesitation, I signed the contract. It’s a challenge, I know I can do it, and I’m up to it.

After re-reading this blog post, I realized that it sounds like a thinly veiled marketing spiel. Sorry, man, gotta do it. Remember, we don’t have sales people, but, somehow,  we need to send our message to the respected RIA world, “Just give us a call, and we’ll figure something out”.

We don’t complain about the business in 2008 and hope that 2009 will be even more prosperous for everyone.

Marry Christmas, Happy Hanukkah, and Happy New Year!

Yakov Fain

Comments (1)

 

Grey Line

Today, we have released a new version of our free Eclipse plugin Clear Data Builder 3.1. This version includes a new feature – CRUD generation based on Java DTO without the need to provide SQL.

During the beta testing of Clear Data Builder (CDB) 3.0  we’ve fixed a couple of  bugs. Now it properly works with Oracle stored procedures returning result sets. This version of CDB has no issues with case-sensitive databases (i.e. Sybase).

But the main reason of the version upgrade from 3.0 to 3.1 is a new feature  now CDB does not need to know anything about the data persistence layer.  It generates the front end for a CRUD application based on the Java Data Transfer Object  a.k.a. Value Object.

Pretty often,  Flex communicates with POJO that does not directly connects to DBMS using JDBC. The enterprises may use some object-relational frameworks, Web Services or any other means of working with data. Due to multiple requests from our customers , Clear Data Builder 3.1 includes a new feature – CRUD generation without the need to use SQL.

In this mode, CDB requires manually written Java class that implements Assembler design pattern similarly to how it’s done in LCDS data management services.  The fill() method of such a class will return a collection of Java Data Transfer Objects (DTO), and the sync() method would receive a collection of ChangeObjects that can be examined by Java code to perform data creation, modification or removal.

In this screencast you’ll see how CDB generates a sample Flex/Java CRUD application based on a provided Java DTO.  Description of this process is available over here.
Since this process is decoupled from accessing data storage, Java developers will be responsible to write the code for  the data persistence and retrieval.

There are several benefits of using CDB for DTO-based code generation :

1.    CDB automatically keeps track of all the changes made by the user and maintains a collection of the ChangeObjects.
2.    CDB automatically generates Flex code utilizing remoting using AMF protocol. As a part of this process, it automatically generates ActionScript DTO’s based on their Java peers (this can be done on any code modification)
3.    Test applications generated by CDB utilize components from clear.swc component library, which gives you richer components and simplified data form processing.
4.    ANT build and deployment scripts are automatically generated for the selected application server.

You can download the User Guide of Clear Data Builder 3.1  at  http://www.myflex.org/documentation/CDB3.pdf. Clear Data Builder 3.1 is available for  free at http:// www.myflex.org .

Comments (3)

 

Grey Line

Companies lay off people. It may happen to you, it may happen to me. Some laid off people immediately start blogging badmouthing their former employers. These blogs is the worst you can do to your career.

Today, I ran into a blog of a person whose position was cut as a result of Adobe’s recent layoff. I don’t know this person, but I was very impressed by the highly professional manner of how his blog was written . No hatred toward Adobe, no dirty laundry, etc.

It’s sad news, but just by reading this blog entry, I can clearly see that Jason is  a good person and experienced software engineer. People like him don’t even need to apply for unemployment benefits. He’ll find a new job soon. I’m confident.

If you are looking for a software engineer, contact Jason. People like him don’t even need to apply for unemployment benefits. He won’t last long on the job market. It’s easy to find a developer who knows how to write if-statements in the programming language that you use. It’s not difficult to find a person who can code a bubble sort algorithm at the speed of sound.  But it’s extremely difficult to find an experienced and loyal software engineer.

Good luck, Jason!

Yakov Fain

Comments

 

Grey Line

On December 4, JavaFX  arrived to this world with lots of “It’s a Boy” balloons. The family of RIA development tools gets bigger and as a Java programmer, I wish best of luck to this new kid on the block.

But the party is a little spoiled because the baby is premature and will have to spend some time in barocamera to survive. To make myself clear, I’ll mixin here some definitions from Wikipedia in italic:

Human fertilization is the union of a human egg and sperm, usually occurring in the ampulla of the fallopian tube.

Illustration by Yuri Fain.

In my opinion, this definition is OK for bulls and cows, but in the human world it would be nice if the bearers of sperm and egg loved each other and wanted this baby.   In May of 2007, when Sun Microsystems announced JavaFX, I did not see any traces of love there.

This was forced fertilization. Sun, which technically created the first rich Internet application in the form of applets in 1995 did not give enough love to that baby too concentrating its efforts on Java technologies that would help selling Sun’s servers. As a result, Java EE shines as a platform for development and deployment of the server-side enterprise applications.

Java Swing , the client side library, was too difficult to program and most importantly, required large Java runtime that was not too easy to install, had a slow 0-60 acceleration. Java on the client did not have a runtime environment that was feasible for consumer-facing RIA. A trucker from Alabama would not be able to install the proper version of JRE.

In the world of RIA, availability and high penetration of the runtime environment is the most important pre-requisite for any RIA technology or technique.  High penetration of Web browsers supporting DHTML plus XMLHttpRequest object is the explanation of the three years of AJAX craze that’s, thanks God, is coming to an end.
About ten years ago, Sun “won” a lawsuit with Microsoft and made $10B. These bad guys from Redmond wanted to make our Java dirty by quietly introducing their infidel libraries.  Sun went into a fight, got the money… and lost the mechanism for spreading Java runtime. The Internet Explorer, that’s being used by about 75% of the users, even today ships with the ten-year old Java 1.1 runtime.

On the other hand, Adobe’s Flash Player is a runtime for Flash and Flex application that’s small, has seamless installation and has a penetration rate of 98%. Flex 2 was announced three years ago after Adobe has acquired Macromedia, and not only offered nice framework for developing UI, but also came with advanced network protocols and easy integration with Java EE on the server.

Microsoft was first to recognize Flex as a new RIA platform leader, and as usually, responded, “Me too.” And when Microsoft says, “Me too”, they really mean it. Some very serious dependency injection (I’m talking about long and green) did the trick, and Silverlight 2.0 may start competing with Flex in a year, if the penetration of the Silverlight’s runtime will reach at least 80%.

During JavaOne 2007, Sun realized that they missed the RIA boat and announced JavaFX loud and clear. They were forced to bed, but the sperm met the egg and the process has begun. Marketing people and executives started make some serious noise about JavaFX.

Pregnancy (latin graviditas) is the carrying of one or more offspring, known as a fetus or embryo, inside the uterus of a female.

But just running around screaming, “I’m pregnant, I’m pregnant!” is not enough for delivering a healthy baby. Pregnant women should have better nutrition, and should be surrounded with love and support. I was following the evolution of JavaFX very closely and I didn’t see this love and support from Sun’s top management. Sun’s executives were trumpeting about new and great product, but I’d rather see them providing some real support to a small group of talented software engineers that were trying to do the bet pushing the product out the door.
Please read the story of an Chris Oliver, creator of JavaFX.  Sun published this strory under the title “Mind-Bendingly Cool Innovation ”. On the surface, it looks like a success story of a boy who didn’t even go to college but became a Senior Stuff Engineer at Sun.  But one of the Oliver’s statements tells me that he had lots of obstacles within Sun while working on JavaFX:
“For us, a bunch of tedious work – what I wanted to do but was obstructed for the last several years. Now I won’t be obstructed, thanks to the new management. Now the path is open for us to walk down it, but we have to actually walk down it,” he says.”

I’m sure, you know that it take a women nine months to deliver a baby. In software, it usually takes a lot longer, and the released version of JavaFX gives me a feeling that it’s premature.

The Web site javafx.com didn’t impress me.  The Web site itself was falling down several times during the opening day – it was not tested well enough. This is yet another evidence of insufficient resource allocated to this project. There is no demos of the UI for enterprise-grade applications that I was expecting to see.  As a matter of fact, long time ago I’ve been sending emails to people who were involved with development of JavaFX asking for at least a Pet Store demo. It didn’t happen yet.
The start of the available demos is still slow. The ugly messages like “Java Starting” and “You may not have the right certificate. Do you trust this application?” will scare that Alabama trucker to death and he’ll run away from this Web site.

On the positive side, JavaFX has pushed Sun to developer Java Kernel, a relatively small JRE that loads faster. The other smart thing is their attention to designer-developer workflow. Sun decided not to re-invent the wheel and create a plugin that should allow designers continue using Adobe Photoshop and Illustrator with automatic JavaFX code generator.

Sun made yet another smart decision – decoupling of the JVM from the browser. You should be able to start JavaFX from the browser, but then kill the browser and your applet should stay alive. You should be able to drag the applet from the browser and drop it right onto yourdesktop. Are there any demos of this features? I’m not sure – have not seen yet.

Yet another feature to watch is the automatic detection of the  JVM version. Inclusion of a small JavaScript piece into the HTML wrapper of your applet should check it out and ensure that the user machine has JVM 1.6U10 or above.  If not, the JVM should be SEAMLESSY upgraded. I haven’t seen this feature in action yet- running available demos on ny MacBook Pro, which has only JVM 1.5, and so far I haven’t been forced or offered to do an upgrade.

Now Sun has to offer tools for developing JavaFX applications. Sure enough, you can use NetBeans 6.5, but for some reason, majority of Java developers use Eclipse. Quick introduction of Eclipse plugin for JavaFX should be a highest priority item for Sun. Just bite the bullet and do it.

Even though I’m using Adobe Flex for development of the UI portion of enterprise RIA, I don’t fall in love with programming languages, and would be gladly using JavaFX too when it’s ready for production.   It may happen in 2010. But Sun has either to put the money where its mouth is or open source JavaFX to allow Java enthusiasts make this language competitive in the RIA world.

Yakov Fain

Comments