On casual Fridays and a revolution made by women.

Fifteen years ago the dress code in New York firms was “Business Formal rdquo;. Men were wearing white shirts, suits and ties. Women were always nicely dressed, pantyhose were required even in a hot Summer day. Then they came up with casual Fridays, when you could have dressed in whatever made you comfortable. And now, almost every corporation has casual-dress weekdays. Some women took this casuality to the extreme hellip;

In general, women are a lot more revolutionary creatures than men. They can change people’s perception of what “s right and what “s wrong in a very short period of time. Twenty years ago women were hiding stripes of their bras under the clothes and would be very embarrassed if it would stick out. Ten years ago they “ve turned it around 180 degrees. Now they want you to know the color of their bras and the rest of the world is hapily watching.

Let “s move ten inches down. Bear with me, I “m not there just yet. I “m talking about their bellies. At least five inches of the belly must be exposed to the public: six-pack, fat or cellulite ndash; does not matter.

To make better use if this body space, women should deliver some messages in this area by means of tattoo. For example, “Show me your AJAX rdquo;, “I’m into Flash “, or “Ruby on Rails is better than sex in bed rdquo; are suitable tatoos for women working in information technology.

Larger women can fit lots of useful information in such tattoos, for example all 23 design patterns with the code samples. Male programmers will be happy to use such a bulletin board instead of Google. Can’t fit all of them? Try to accomodate the most appropriate ones: Visitor, Singleton, and Observer.

Keep moving down, and let “s look at her majesty from behind. The panties. You can make from eight to ten panties from one handkerchief. And again, women are very creative, and to make sure that every man can enjoy the look and feel of this formerly intimate piece of clothing, the waist cut of their jeans is really low now.

Men are way behind in this area, and I have a proposition. We need to stop zipping up our pants. Or course, this project should be deployed slowly. For the first month, keep a small opening of about one inch. Next month, add another inch, and so on. By the end of the year all women in your office will enjoy the look of your underwear. Male computer programmers should use this extra opening for promoting tools/frameworks of their choice. Ruby on Rails folks are ahead of the game here (I’m not sure which gender is this piece for). If every man will follow these simple instructions, our Fridays will become not only casual, but much more fun!

TGIF!

Mentality Shift: from a RAD tool to Java and back

Mentality of programmers depends on a programming language or tool they use. Should they even try to learn what’s under the hood in a particular framework?

Ten years ago I’ve been programming in PowerBuilder. This is a RAD tool and it does a LOT for you automatically. Creating a simple CRUD application there is a matter of one day (hello from the 90th, RoR). Anyway, I did not care HOW PowerBuilder did it under the hood.

Then I switched to Java and started to spend all time programming this “under the hood stuff “. I’ve learned how to MANUALLY program servlets, JSP, EJB, et al.

Last year, I was working on a project that was using WebLogic’s Workshop 8.1 (not a good tool), which was also providing a lot of auto-generated functionality. But after so many years of writing everything manually, it gave me an uneasy feeling: the tool was instantiating some objects (if I remember correctly they were called handlers) internally, without even providing the Java source code for that. One day we started getting sporadic NullPointerExceptions caused by these internal objects. That time I felt very insecure – nothing depended on me (in my PowerBuilder life this would be perfectly fine – my mentality was different). Tech support guys kept asking me to reproduce the error, but it’s really hard…Neither level1 nor level2 support was able to help me with their own framework

These days Java has fifty frameworks that do the same thing as Struts. This is insane. A couple of days ago I ran into an online posting by a Delphi programmer who wants to switch to Java Web development. He “s asking if he should study Echo2 or Wicket framework. He “s not even planning to learn the basics such as Servlets and JSP. He does not even want to understand how Java Web applications work under the hood. Yet another wannabe framework coder. Yet another dispensable commodity. This was your choice, but do not complain when you lose your job because there are legions of programmers in India having the same or better understanding of what “s going on in a Web application and can do this job for a half price.

Now I’m using another RAD tool called Flex 2 from Adobe. It has an XML-based declarative language called MXML that gets compiled into the object-oriented ActionScript 3, which in turn gets compiled into a bytecode and runs in Flash Player, which is a virtual machine. But the good news is that mxml compiler has a special option to keep the generated ActionScript code. Plus, the source code of Flex framework itself is available as well. This gives me some confidence and understanding of what’s under the hood, and I can debug it if need be.

The morale: use a framework or a RAD tool to make your day-to-day life easier, but know how it works internally…just in case

Ruby on Wheels?

Something should happen with a programming language to bring it to life. For example, Jesse James Garrett came out with an acronym AJAX, and JavaScript became popular. David Heinemeier Hansson created Ruby on Rails and Ruby became a household name. ( On a side note…I’m wondering, should I also increase the length of my name to come up with something valuable? Something like Yakov Edson Arantes Do Nascimento Fain? Hmm… not too bad).

I do not know, use, or have an opinion on the Ruby language yet. Aggressive Ruby on Rails marketing did not impress me that much. But now this language climbed up to the 13th place in the Tiobe index hence it deserves to be taken seriously. Why this 13-year old language was not known in the programming community until the Ruby on Rails came about? Why did it take 13 years to rich a respectful 13 place? Can we de-rail Ruby and still use it ?

Bruce Tate is a well know proponent of Ruby. While some people are quick to blame any Java developer who is looking into other languages,in my opinion it’s an attitude of weak people. If we want Java to evolve, we need to look around. I “ve asked Bruce several questions about Ruby, and this is our blitz-interview.

Here’s is another podcast where Bruce Tate talks about Ruby at The Server Side symposium at Barcelona.

Flex Builder Shortcuts

Flex Builder has many convenient keyboard commands and hints that make your programming faster. You can see the complete list of all available shortcuts by pressing Ctrl-Shift-L. But this is a list of Flex Builder shortcuts that I use on a regular basis.

1.If you see a little asterisk in the tab with the your file name, this means that this file has some unsaved code changes.

2.Pressing Ctrl-S saves the file and compiles your code. If saving the file does not generate any messages, it “s the good news: your code does not have compilation errors.

3.Highlight the name of the class or a function and press the button F3 on your keyboard. This will take you to the source code of this class.

4.If some of the lines are marked with red error circles, move the mouse over the circle and Flex Builder will display the text describing this error.

5.Press Ctrl-Space to get context-sensitive help.

6.Alt + / will complete the name of the variable or a class after you typed in a couple of its first letters.

7.Press Ctrl-F11 to run the last-launched program again. Hit the F11 key alone to run the program in a debug mode.

8.Place the cursor after a curly brace and Eclipse will mark the matching brace.

9.Highlight a line or a block of code and press Alt-ArrowUp or Alt-ArrowDown. The selected code will move up or down.

10.Alt and arrow keys moves from one open class tab to the next one.

11.Ctrl-H will open a popup to search on multiple files, and Ctrl-F will let you find text in the open file.

12.To copy a class from one project to another, select the class and press Ctrl-C. Select the destination package and press Ctrl-V.

13.Highlight the MXML tag or ActionScript class and press Shift-F2. This will open a screen with the language reference help on the selected element.

14.Highlight a block of code and press Ctrl-Shift-C to comment out the selected code.

15.Ctrl-Shift-D inserts the lt;![CDATA[ ]] gt; block in your code.

16.To select surrounding containers, select a GUI control and press F4.
<!–[if
!supportEmptyParas]–>
17.If your project relies on the code from external libraries, right-click on the project name, select Properties | Build Path and press the button Add SWC.

18.As you change you code in the editor, Flex Builder puts a vertical purple bar on the left of each modified line. This is quite handy if you “d like to have a quick look at the new code before pressing the button Save.

Did I miss anything? Add your favotites!

I support Israel

I am a technical writer and hate politics. But there are times when you can’t write only about information technology. I’m sure that other IT bloggers have their opinion in this Israel vs. Terrorism fight. Please speak up. Declare your position in this war.

Such a small country as Israel does the dirty job for all civilized countries. If Israel would not be fighting with them, you’d hear more explosions in New York, London, Mumbai… They’d come to YOU, right to your front door.

For those who forgot…all war conflicts between Israel and whoever were started not by Israel. Some political leaders (Putin) say that response should be proportional…What about Chechnya? How many people your army killed there? How many Afgan villages were set on fire by the US army as a response to a terrorist act with “minimal casualties “?

These terrorist-animals understand nothing but force. They put Katyusha’s in a specially equipped apartments in city quarters or in the residential areas . They do not let people leave their villages even after the warnings about expected bombings of Hezbollah properties. They do not care about their own people. These cowards are using women and kids as a live shield, and after the bombing they are happy to show off their grief in front of the TV camera next to a dead body of an innocent kid. Hamas is using the same tactics.

Stop the terror, stop hiding behind the backs of women and kids, and your kids will be alive. Both Israeli and Arab kids should not be raised hating each other.

They brainwash and send someone’s kids to become suicide bombers. They do not send their own kids to blow themselves up in the middle of a shopping center…

Signing bombs “To Hesbollah with love from Israel ” should not be the part of the childhood of Israeli kids or kids in any other country. This is insane!

I’m glad though that this time the Arab Times newspaper have published a sober opinion that points at the real enemies of the Arab nations.

Here’s another interesting interview by a Lebanese woman that may give you a different perspective on the conflict.

Anyway, I am for Israel. What about you?

How to rename a language

AJAX stands for Asynchronous Javascript and XML.

A means asynchronous, which is an attempt to say that an XMLHttpRequest object supports client-server data exchange without the need to refresh the Web page. On the other hand, it does not support server push but uses polling instead. So calling this asyncronous communication is a stretch to say the least.

Ja stands for a programming language called JavaScript, and let’s leave it there.

X stands for XML, but XML is not actually needed for using XMLHttpRequest object. I’d say it’s not even recomended as it increases the amount of data that has to go through the wire and hurts the responsivenes of AJAX applications.

Here comes the puzzle (ask your kids for an answer):

A, Ja, and X were sitting on an axe

A has lost her head,

And X is also dead

Who’s left sitting on the axe?

The answer:

Ja…grim…for now…

Having said all this, I’m taking my hat off to Jesse James Garrett who was able to give a new life to JavaScript by inventing this acronym.

A new breed: Framework Java Coder

While interviewing Java developers, I often ran into people who did not understand how some components of a distributed application operate and interact. In many cases this was caused by the use of one or the other framework that was shielding developers from the nitty-gritty details. It “s OK, as long as this person understands how other moving parts of the Web or enterprise application work.

Today, one of my former clients asked me to interview a job applicant for a position of a senior enterprise Java developer . After the interview I realized that I was talking to a representative of some new breed, which can be called framework coders. The guy had on his resume all required components (JSP, Struts, EJB, databases, application servers) utilized in various projects. The scariest part was that he did not lie on the resume: he really worked on these projects without knowing almost anything about neither Java SE nor Java EE.

Most of my questions were answered the same way: “I called a method on a custom-made framework rdquo;.

– How did you call a session bean (EJB) from your JSP?

– We had this framework, and I had to pass parameters to a special class “s method

– But if you had to call this session bean from a JSP directly, how would you do this?

– Silence…

– How did you get a connection to your database?

– We “ve had an XML file where we stored the data source parameters like user name and password.

– But where was this data source was actually defined/exist?

– We just had to pass data source parameters to a special class from the framework

– What “s the use of Java interfaces?

– It “s a convenient place to store all method signatures.

– What IDE did you use to write JSPs?

– Dreamweaver

– Why?

– This IDE was used by everyone in this company

– Where did you program business logic of your application?

– We were coding by the spec, which would explicitly say where to put the code.

I’m sure, this guy will find a job as the Java market is booming in the USA. But our profession is degrading, and it’s sad.

Is programming the right career?

The dress code for programmers in New York is very liberal. Almost every corporation has the dress code called “business casual “. Because of this, I did not purchase a new suit in about six years. I’ve had some before and did not realy need more. But… I work in Manhattan close to a large deparrtment store Saks Fifth Avenue. That day the weather was good, job market was stable, so I decided to treat myself to a new suit.

When I entered the store, I thought for a moment that I went to Wallmart by mistake – the store was crowded. No, it’s Saks. I went straight to the men’s suits section. There were men trying on suits, which did not surprise me, but then I started to look at the price tags…The prices varied from $1000 to $5000. No, I did not add an extra zero by mistake. And there were people trying them on. They did not look like software engineers. OK, I’m not going to buy these suits. The women’s floor, was croweded and most of them had a couple of pair of shoes in their baskets. I decided to check the prices…From $300 and up.These ladies did not look like software developers either. They did not even look like spouses of software engineers!

This is when I started to think about my career choice. I am a software developer with 25 years of experience in the industry and an impressive resume. My salary is pretty high… by programmers standards, but I can’t purchase a $5000 suit. Well, technically I can, but I won’t sleep well, if I do.

My question is what did I do wrong while selecting a trade? Who are all these people waiting in line to pay $500 for a pair of shoes?

On the other hand, young kids with software-related degrees get $55-$60K annual salary on their first jobs. My son has graduated last month with a degree in traditional animation. For him, $55K a year is an unrealistic dream. He’ll have an interesting job, but unless he gets Oscar, he won’t be able to purchase that suit either…

…stop whining, it’s getting late and it’s time to go to bed. Tomorrow is another day, another dollar…I’ll have time to decide if I should purchase a new car or a couple of suits with matching shoes at Saks.

Flex Builder with Charting for $79

That’s right, you can purchase the license of Flex Builder with Charting components for $79 USD as long as you are a full/part time college student, K-12 grader or a home schooler. High school teachers or hi-ed professors can also enjoy this price, which makes me eligible as well. Well done, Adobe! The next goal for your marketing department is to beg colleges to take Flex Builder (and teach it) for free. Learn from Java – this is how it became so popular and widely spread. I was a bit dissapointed that pre-schoolers, librarians, museum rats, and correctional officers were not eligible for this price.

Those who are not teaching/studying (including inmates and correctional officers) can get the same product for $593 USD, which is more than $150 off the list price.

My Upcoming Flex/Java Presentations schedule

I’m planning to make several presentations on using Adobe Flex 2 with or without Java in New York and New Jersey this year.

As the saying goes, “If you want God to laugh, tell him about your plans “, so let me put it this way: this is what I believe I’m going to be doing later this year:

1. The Real World Flex Seminar – Using Flex as a GUI RAD tool for Java Server Side Applications, August 14, 2006.

2. Using Flex 2 with Java, the meeting of New York Java SIG at Google, September 13, 2006.

3. Using Flex 2 with Java, the meeting of the Princeton Java Users Group, New Jersey, October 24, 2006

4. I’ll be teaching a hands-on 5 session evening course at New York University (School of Continuing Education) starting on November 9. This time I’ll roll up my sleeves and will be coding with the students (they are actually real-world programmers working fo various New New York businesses). My goal here is to explain the basics of Flex2/ActionScript3 and show how it can be used to create a front end piece for your business Rich Internet Applications (RIA) written in Java on the server side. If you live/work in the area and would like to have a jump start with this interesting technology, talk to your employers: they usually easily approve and pay for training at NYU, especially if it happens after business hours.

I’ll be missing a couple of other interesting Flex-related events in October, namely AJAX World (it has a Flex track) conference and MAX 2006. Go there, if you can.