Who Moved my Web to Mobile?

In our company it became a tradition to run an annual symposium on software development in New York City. This is a technical event with zero marketing, where our engineers are given an opportunity to share their experience gained while develping real-world applications. This year we’ll focus on the Web applications developed with HTML, JavaScript, CSS, and Java. I’ll be making two presentations there.

1. Advanced Introduction to JavaScript

“Advanced Introduction” means that we’ll start from scratch, but the complexity of the materials will rapidly increase, and by the end of the talk you’ll start respecting JavaScript a lot. The thing is that some software developers have an impression that JavaScript is a second-league interpreted language with the main purpose of making Web pages a little prettier. The reality is different though. JavaScript is a powerful, flexible, dynamically typed language that supports object-oriented programming. JavaScript functions are the first class citizen that can live their own lives as opposed to Java’s methods. HTML5 becomes a new buzzword, but 80% of development time on such projects is spent writing JavaScript code.

2. Who Moved My Web to Mobile

IMHO, this topic becomes important and practical for many software developers, team leads, and managers. Sooner or later the budget will be approved, and you won’t be able to postpone the migration of your Web site or application to mobile devices any further. How to start moving your tried and true JSP/Struts Web site to this wild new world of mobile devices? Is it possible to develop one Web site that looks good on desktops, tablets, on smartfones? Should you go with HTML5 or native mobile applications? What about Adobe AIR? In this presentation we’ll discuss pros and cons of various approaches. You’ll also see the comparison of two JavaScript mobile frameworks: JQuery Mobile and Sencha Touch.
Although it may sound immodest of me to say so (what’s new?), this presentation is the most efficient way of getting a hang of all these topicsin a short period of time.

Hope to see you there.

Yakov

Facebook Users in Concert

About three months ago I blogged about an airline company that offered a seat selection Web page where the passengers could identify themselves as Facebook users. Today, I was looking for a concert tickets, and Facebook is already there too offering “See who’s sitting where option”. I was assuming that people want some privacy while attending the show. I was wrong.

Why Grade Students of Vocational Schools?

Yesterday, I started teaching my regular online training to people who want to learn Java programming. This class is not a part of any University program neither it’s paid for by the Unemployment Administration. It’s an open enrollment class – people from various countries either decided to improve their marketability or learning Java would help in their current job assignments.

The class runs online twice a week, and yesterday, I announced that after each lesson they’d be given a homework that should be submitted by our next session. One of the students asked if submitting a homework is mandatory. I said, “No”, and this is what I’d like to discuss in this post.

Students’ motivation (or lack of thereof) is THE most important factor of the success of any training. But what about the instructor’s motivation? Since this training is a private enterprise, I don’t need to report to any organization if my students succeeded in studying Java. I don’t need to prepare reports showing straight A’s and B’s.

Do I really care if my students will succeed in learning Java? Yes I do, because I enjoy teaching software. Yes I do, because I care about my reputation. The Internet made our planet Earth really small. Several bad reviews of my training classes may seriously hurt my reputation and the future business. I don’t want this to happen. In today’s world the users’ reviews and ratings drive business.

Each of my students paid for this training about $700, which for many of them is a vary large chunk of change. Yet the fear of wasting this amount by not studying hard doesn’t seem to be strong enough if people ask if submitting homeworks is mandatory.

They know from the feedbacks of my previous students that the quality of my trainings is high, so they enrolled. Now some of them are making themselves comfortable in front of their monitors located thousand miles away from me getting ready to see how I’m going to turn the water into wine. In every group I teach there are people who enrolled to see a miracle rather than working hard. Do I have to humiliate these people by forcing them to submit homeworks and giving them poor grades? I don’t think so.

As long as I honestly and professionally do my job, I sleep well. And I will deliver a miracle. I will heal all crippled men who really want to be healed, and they will join the huge community of Java professionals. Hopefully those who won’t be healed will be honest enough to post the online reviews witnessing the miracle.

How to Become a Professional Software Developer

I’ve recorded this video about IT career based on my last week’s talk at the Java developers conference in Kiev, Ukraine. This is not a technical presentation, so anybody can listen to it.  You may not agree with what I say, but hey, it’s my today’s opinion formed during my rather long career in IT.

In this presentation I touch upon the following subjects:

  • The process of looking for a job (sending the resume, passing the interview, considering a offer, discussing the salary)..
  • What’s the difference in interviewing Ukrainian and American programmers.
  • Comparing employees and contractors.
  • Are you really a senior developer?
  • Keeping your skills up to date.

You can watch the video here.  If you prefer, just download the mp3 and listen to it on the go. Back in 2008, I self-published a free e-Book titled “Enterprise Development Without the BS“, which is also covering  IT career subjects. Give it a read.

Back From The Java Conference in Kiev, Ukraine

Last week I spent three days in Kiev, Ukraine participating in a new but rapidly growing Java conference titled JEEConf.  The city of Kiev is more than 1500 years old, and will host the European Football Championship in two three weeks.  During the first two days I was running two hands-on classes: one on JavaScript and another – “Intro to Java EE 6”. The one-day class “JavaScript for Java Developers” was an intensive way to learn this interesting language that requires Java developers to re-think their way of programming. The Intro to Java EE is a quick way for people who know Core Java to get familiar with the server-side technologies. In the last moment, I threw in there some materials explaining what Ajax and JSON are. They’re not the part of Java EE just yet, but play an important part in the architecture of many of the real-world Web applications.

I’ve spent the third day at this 650-attendees-4-track conference. The organization of the event was excellent (thanks to the folks from XP Injection – a training center from Kiev). That day I was delivering a non-technical preso on “How to become a professional Java developer”. It was about how to prepare a resume, minimize failures during the technical interviews, what not to do while resigning… Long story short – it was about actively building your career.

This presentation was taken really well by the 400+ people in the attendance. After presenting for one hour I had to spend another 40 minutes in the corridor answering lots of questions. Even though the vast majority of the audience were appreciative my the honest coverage of how I see the complex game called “Looking for Job”, I need to say that there were a couple of people who didn’t get it. I’ve seen a comment stating that I was teaching people how to lie at the technical interview. It’s like accusing a football coach of teaching the team players how to make tricks with the ball.I guess, from their point of view, a player should hit the ball straight ensuring that the other team always know where the ball goes next.

I didn’t have problems explaining the audience how to negotiate their salary regardless of the fact that I’m recruiting people from Ukraine and these newly acquired skills can cost me. I call this a fair game. In about a month, the video of this presentation will be published at the conference’s Web site, and if you understand Russian, you can form your opinion of what it was about. The English-speaking audience can go through the Powerpoint slides. BTW, I delivered a similar presentation in Bangalore, India at the First Great Developer’s Conference three years ago.

I enjoyed being in Kiev, the city I’m originally from. I enjoyed talking to young Ukrainian developers. I enjoyed seeing how the audience participated in discussions in English with the world-class speakers well known in the Java community (Arun Gupta, Sander Mak, Dejan Bosanac). I enjoyed being at this young, but very promising Java event. You can find photos and more of the feedbacks about JEEConf over here.

Thanks again to the conference organizers.   IMHO, it would be nice if next year you’d create and maintain a full English version of JEEConf’s Web site. Keep growing guys!

User Experience Professional Is Needed Badly

What would you think if a person visited your training registration page shown below and asked you the following question, “Yakov, when the early bird price for your JavaScript training expires?”

A not so savvy Web person could’ve reacted like this, “Helloooo, can’t you read? Sales end on May 29, 2012 ”. But being in the Web business for a while, I’ve responded politely, “The sale end date should be listed on the registration page.” That person was polite too and he replied, “Thanks. It wasn’t on the iOS version of that page”. Sure enough, the iPhone version of this page doesn’t show when the sale ends. Apparently, the version of their CSS layout for iPhones didn’t allocate the room for the sale end dates.

Moral: Don’t think people are stupid. The might be using “a wrong” device.

If you’re running some Web development project yourself, try to allocate just a little bit of an extra cash for the usability expert who could have suggested a way to ensure that your Web site shows all important information no matter what the size of the user’s device is.

Is HTML5 Web 3.0?

About six years ago I wrote a blog titled “I have no idea what  Web 2.0 means“.  That blog had link to a video where IT leaders were helplessly trying to explain what Web 2.0 means. One guy said something like this, “Everyone wants to do it, and you can’t find enough people to do it”.  I still believe Web 2.0 was nothing else but a catchy marketing term, which helped selling such events as Web 2.0 Expo, Web 2.0 Summit, and helped Forrester in selling their typical 7-page-for-1000-bucks-zero-info reports (this one was quietly removed).

The Web 2.0 term is fully milked out and the IT world needs something else for the next big thing. HTML5 perfectly fits the bill. Make no mistake, HTML 5 is not simply a standard of a markup language that will be finalized by 2022 – this would be a hard sell. HTML5 means a set of technologies, techniques, styling elements, APIs, and mainly, JavaScript frameworks that are available now and being used for the development of the today’s Web applications.  It’s like Web 3.0: “Everyone wants to do it, and you can’t find enough people to do it”.

Don’t fight the trend. Join the movement. If you are creating any framework or a product for the Web, ideally, stick the word HTML5 right into its title to help enterprise architects in justifying licensing this software. “See, it’s HTML5-compliant. Everybody does it.” If you can’t, make sure that your marketing brochures and white papers are heavily sprinkled with the HTML5 word.

Five years ago, someone told me that Web 3.0 would be about semantic Web. He was wrong. Web 3.0 is HTML5. The digit five in HTML5 means that this party will last for the next 5 years. Join the party!

P.S. If you didn’t know what HTML5 means before reading this blog and still have no clue, don’t get angry with me. I don’t know what it is either. Just tried to fantasize. Have you ever had Web fantasies? Me to.

A Masterpiece From Mozilla’s Documentation

While preparing the courseware for my upcoming JavaScript workshop I ran into the following definition in the Mozilla’s online documentation:

“callee is a property of the arguments object. It can be used to refer to the currently executing function inside the function body of that function.”

Love it! I’ll never be out of work, as long as technical writers keep creating such gems. Thank you, guys for putting bread on my table!

Generating Ext JS and Java CRUD Applications with CDB. Part 1.

Clear Data Builder for Ext JS (CDBExt) is an open source tool that automatically builds Ext JS/Java EE CRUD applications given one or more annotated Java interfaces. The generated JavaScript and Java code enforce best Ext JS and Java EE practices and is deployed on the development version of the Tomcat ready to run. A tiny library of Ext JS components accompanying CDBExt – Clear components – enables transactional data sync with the application server, including deeply nested hierarchical data transaction, features not supported in native Ext JS 4.

This short video opens a series of demos that will describe various modes of generating CRUD applications with the JavaScript clients enriched by the Ext JS framework from Sencha. At the time of this writing, CDBExt is in public beta and your suggestions are welcome. Please post your suggestions and findings at the Clear Data Builder’s forum at Sourceforge. You can also send us your feedback by filling out this form at our company’s site.

We’ve just started documenting CDBExt at the Clear Toolkit’s Wiki.

To add the CDBExt pluging to Exlipse for Java EE IDE, please select the menu Help | Install New Software, then press the button Add and enter the CDBExt in the Name field and http://www.cleartoolkit.com/downloads/plugins/extjs/cleardatabuilder/4.0/site.xml as Location.

In the next video I’ll show you how to quickly create a Web application using the Ext JS framework as a client and MyBatis framework for the data persistence. If you are not familiar with the HTML5 framework Ext JS, consider attending our 2-day workshop on the subject.

What not to Bring to an IT Conference

In May, I’m flying to Kiev, Ukraine to participate in a Java conference there and this won’t be the only conference I’ll be going to this year.  For software developers the ability to attend a major professional conference is a valuable perk given by their employers. OK, all expenses are approved and your air flight and hotel in Kiev, Paris, San Francisco, or New York City are booked.  It’s time to ask yourself, “Why you wanted to go to this conference to begin with?”

Changing daily routines can be a good reason in an of itself. But the main purpose is to sharpen your skills and meet new people, right? So what you shouldn’t bring with you to the conference?

1.    Leave your laptop computer in the hotel room. Don’t bring it to the conference venue unless you’re giving a presentation on this day. Computer is a major distraction in any conference. You’ll be spending a large portion of the day finding a wi-fi hot spot that will give you at least 56Kbps connection.  Internet connections are notoriously bad on any conferences, and this will make you irritated and upset.

Look at all these people sitting on the floor by the electric outlets. Their computers need juice. For what? For checking Facebook, tweeting, and browsing your work emails? Do this experiment for me. When you see such a floor person in a classroom, sit down next to him and ask in a low voice, “Excuse me, do you know what is this presentation about?” In the best case scenario, it’ll take him some time to remember what he’s “learning” in this session.

You may argue, “I’m using my computer to take notes.” Really? What’s wrong with a simple yellow paper notepad? It’s light to carry and doesn’t need power.  Do you really take such detailed notes that the power of word processors is required? I saw a person once who even used some mind mapping software for taking notes. Looks impressive, but I’m not sure if I wanted to check in the code to the same repository with such an over-organized person.

Better bring  a small camera with you and take a quick shot of the presentation slides you like. And no, it doesn’t have to be Nikon D90 – point and shoot will do.

2.    Leave your smartphone (a.k.a. sacred cow) in the hotel room too. “But what if someone will need to call me?”  Cut them lose. You’re not available. You are attending a conference, don’t they know? The world won’t stop without you. “But I could use my smartphone for taking pictures instead of bringing the camera, right?” No, No, and No. While carrying a camera will force you to pay more attention to what’s going on around you, the smartphone will do the opposite.

3.     Don’t let your spouse fly with you to SF, NYC, or wherever the conference takes place. “Honey, if I’ll go with you, we can save on the hotel and your airfare is paid by the employer too!”  And I say “No, no, no!”  You got to be partying with other geeks like you. Having your spouse nearby is a major destruction for networking with your peers. Having a spouse at a conference is even worse than carrying a smartphone on you. Don’t try to kill two birds with one stone. Take her to a romantic vacation after the conference. Let her arrive to this city on the day after the conference is over.

4.    Don’t bring your tux. In IT conferences, to be considered a geek, you have to dress as casual as possible (the clothes must be clean though).  Exposing your body covered with tattoos and piercing is the easiest way to be perceived as a guru especially, if this conference includes the creative people like Flash gamers and Web designers.

5.    And most importantly, don’t bring your ego with you. Who cares if you’ve published a book for dummies, three articles, and the plate on your office reads “Senior VP”?  Here you are just one of many people who devoted their lives to IT – enjoy the moment!