Web/Tech

Jan 31, 2011

A few years back, I visited Italy and noticed an interesting phenomena: most of the waiters that served us were middle aged man. Some even senior citizens. This is very different than the situation in most western countries I visited, where waiters are mostly young, usually around 25 years old. In most cases, being a waiter is a temp job, on your way to getting a better job. Many people do it while studying to get their degree or while seeking for a "real" job. But not in Italy. In Italy, a waiter is a proper job. It is a career. It is something you do because you choose to do it, not because you have no other alternatives.

A web rockstar is a master of web technologies. He breaths HTML and CSS. He whistles JavaScript while in the shower. He will be more than happy to engage in a deep discussion on why library X is better than JQuery. He will wear a T-Shirt saying "I trash IE6" (or something similar). He will be send you a bunch of links to his recent work instead of a resume. He can do PHP or Django or Ruby on Rails, but he really shines on the client side. He pities the condescending server side people because deep down he knows that his work is the true art. He is a web rockstar.

How many web rockstars do you know? I don't know that many. I sure know a lot of Java, .Net, PHP and Python rockstars, but not many web rockstars. One could argue that this is a relatively new art. But I don't think that's the problem. For some reason (more on that below), the web developers became the waiters of the software world. There are many young people doing that, students, novice developers all sharing one common aspiration: to get out of the "front-end ghetto" and become a "true developer" on the server side.

It is relatively easy to get started: HTML is simple. It is not programming, it is just markup. You don't need to understand any programming paradigms to do it. Moreover, most people don't care about the quality, as long as the page renders correctly. You move on to CSS, which is a bit more complex, but still not programming. Then, you find that you need to add a dynamic menu, so you read a short intro to JQuery, copy a few lines of code and you are now officially a JavaScript developer.

Those people are willing to work for less, which drives the prices down. This gives strong incentive for people to "move on". Many managers who need those skills think that they can just get the job done for very little. Naturally, the payment comes later. The website stops working in certain browsers, especially on the bosses' new iPad. It takes forever to load. Each modification breaks 10 other pages. The marketing people want to refresh the look and feel for the upcoming holiday season and the job ends somewhere in mid January.

This bad ecosystem changing, for a number of reasons. First, HTML5 and CSS3 gives you a lot more power with the cost of being far less trivial. Second, we see rising popularity of full fledged JavaScript MVC-style frameworks (e.g. JavaScript MVC, MooTools and Backbone.js) which are more than just showing some fancy widgets. Third, the level of interactivity expected from web applications is soaring. The bar has been raised. One needs deeper skills to develop truly remarkable web sites. Finally, JavaScript is becoming a first-class citizen with the introduction of innovative technologies like node.js (which, ironically, takes the JavaScript developers to the server side and give them an incredibly powerful tool).

JavaScript is one of the most important programming language today. On the server-side there are so many alternatives. However, on the browser, JavaScript is king. True, there are some attempts to shield you from the actual JavaScript work (GWT, Cappuccino), but, in many cases, you will end up coding and debugging JavaScript. Those who will choose to master the web technologies will not have any problem finding work in the upcoming years. We need more Italian waiters.

My message to server side developers: respect you colleagues. If you really want to test your skills, let's see you putting up an interactive web-app. I dare you. It is a challenge, perhaps even a bigger one than coding a couple more beans on the server. Be honest, it is possible that you don't like doing web development because it is just too hard (no cushy IDE, cross-browser quirks, etc.).

My message to managers: cheapskates always pay twice. Always. Get the right people for the job and be willing to pay for quality. Get these amazing web rockstars to be part of your team and not just freelancers, thus creating a differentiator for your company.

One final note: we're hiring! if you are a web rockstar, or even a young web developer who wants to become a web rockstar, you live in Israel, and you're looking for a new project, drop me a line. I'm looking for you and I have a project that could take your career to a whole new level.

Jun 03, 2010

Moses had a very significant role in the history of the Jewish people, maybe the most significant. According to the bible, he led the exodus, the departure of the Israeli people from slavery in ancient egypt. Moses then led the people to the promised land, a journey which took 40 years. Along the way, Moses received the Ten Commandments which signify the most important convent between God and the Jewish people. Pretty much the beginning of Judaism as we know it.

Firefox had a similar role. We were all slaves in the hands of Microsoft. Using ancient versions of Internet Explorer which were specifically designed to be proprietary and non-standard, making sure we remain locked in the hands of our dark masters.

Then came Firefox, stood up and said: "let my people go". The IE market share was around 99.99% at that point. It seemed like an impossible task. Many web sites didn't even work properly in Firefox, which preached for standards based internet for all and the freedom to choose your tools. It was a slow campaign, but, luckily, it didn't take 40 years.

Moses did not enter Israel. He died in the desert after seeing the promised land from afar. This is tragic, but it is very significant. There are many stories and interpretations around this. Most people agree that this is because of a sin in his past. The whole point of walking in the desert for 40 years, was to "dispose" of the old, sinful generation (what we call "the desert generation") and start fresh and clean. No sins. Moses did his job by bringing the people to the point where they can start fresh. But he had to go, eventually, so they can start fresh.

Firefox has done his job. Now, when the promised land is in sight, it is time for him to go. Firefox is showing its' age. It is no longer innovative, it is now lagging behind. It is slow and consumes a lot of resources.

One of the key benefits of Firefox was plugins. True, IE had plugins, but the open nature of the Firefox community created a massive number of plugins for all purposes. Many of these plugins kept me from moving to other browsers. The same plugins are also responsible for many of the problems, or at least for making them worse. They leak memory, they slow you down and they crash. For the common user, it is impossible to attribute these problems to a specific plugin. It is perceived as Firefox issues.

Firefox played an important role in the history of the web. It did its' part. It is now time for the new generation of browsers to take the stage, the WebKit generation: Chrome and Safari. We will always cherish Firefox for its' role. Farewell old friend.

May 31, 2010

This weekend, the tech blogs were flooded with rumors of a new incarnation for AppleTV. The news were "confident" that we will see a device which is:

Based on iPhone OS 4 (the current device is based on a trimmed down version of OS X): it's like an iPhone in a small box with no screen that can pump out 1080p through HDMI.

Instant on, like the iPhone/iPad.

Based on a cloud service and very light on internal memory: enter iTunes.com.

Can be connected to a Time Capsule for more storage.

Rally cheap at $99.

Here's some of my takes about it...

It can be an Awesome Gaming Console

It is no coincidence that this comes a week after the GoogleTV announcement. This makes the rumors much more substantial. Probably deliberate. Expect a lot more rumors to culminate in the upcoming months. The rumors claim that it will not be revealed in the upcoming WWDC (next week), which makes it even more credible: Apple wouldn't have to leak this information if it was ready for official unveiling.

How do you control the device? Controlling the iPhone with a simple remote seems control would not work. We will probably be getting a Wiimote like device that translate movements to screen gestures (as described here and here). We could see something more advanced like the Playstation Move or even Microsoft's Natal project. It will probably support a bluetooth keyboard as well like the iPad.

It is an Apple Gaming Console! There are so many games in the Apple Store. You could be running them on your TV. True, you won't be getting games with realistic 3D graphics, nevertheless, it is fun, cheap and ready to roll when you are. Sometimes I sit in my living room and play with my iPhone and not my PS3 because I'm too impatient to wait for it to boot and load a game. It will not be Apples' first console.

HD television at 1080p has a resolution of 1920×1080, which is much more than the iPad 1024×768. It will probably be the same transition as it was (still is) from the iPhone to the iPad. Eventually you will see native applications in full HD resolution. This means the current "HD" naming convention in the App Store should stop and wait for the new device. iPad apps should probably be "XL", and TV apps "HD".

A movement sensing controller needs a dedicated sensor or a camera. A camera also opens other options like having a chat running the living room. However, the rumors did not suggest there will be a camera or even a camera port. The patent linked above does not suggest there will be a camera used. It is more likely that we will see a dedicated sensor (like Wii or Natal, unlike PS3 Move).

Another option for control could be through a paired iPad/iPhone/iPod touch, although I find it hard to believe that this will be the only control option.

The connection to the Time Capsule raises some interesting questions. Does this means enabling simple file sharing? Will it support other devices? Currently, Time Capsule does not support UPnp or DLNA protocols for media streaming. This could be added to the Time Capsule using a firmware update. Personally, I would appreciate UPnp in the Time Capsule, which should've been there in the first place (my opinion on the Time Capsule is a subject for a separate post).

The question of UPnp and DLNA is interesting. Having such support means you will be able to serve any content from your PC (or many other compatible devices) to your television. Basically it means you are free to stream any content to your TV. It means you won't have to pay for iTunes.com: simply set up your own streaming server on your home PC that doesn't have to physically be in the living room. There are already apps that support these protocols in the Apple Store. It won't be a surprise to see Apple change its' policy to ban such applications.

The End of the Desktop OS?

There's a wider question here, which I should probably be addressing in a separate post. It is clear that the iPhone OS and the "walled garden" approach is working nicely for Apple. It also feels that Apple reached a certain peek with Mac OS X. There are very few rumors on the next iteration of OS X.

It is ironic: the biggest threat on the Mac OS X is not Windows. In fact, the ill-executed Windows Vista contributed a lot to the Mac market share growth. It is the iPhone OS.

It is like driving: in order to drive, you need to understand how to work a steering wheel and the gas pedals. You don't need to understand how to service the engine, install new exhaust system or even change oil. In the near future, we will all be using run-flat tires so you won't even have to understand how to change tires. Sure, there is a specific modders and tuners crowd, people that really like fiddling around and tweaking the machine. But they are a minority. Most of us would simply like the car to do what it was meant to do without interfering us with mundane activities.

The same thing is happening to computing: the average user will need to understand how to work a word processor but not much else. Even the concept of file system is outdated. The common user should not deal with drivers, anti virus programs, firewall settings or video properties. Everything should just work. That's where we are heading. You may not like this, being the uber-geek that you are, but your mom will appreciate it.

May 25, 2010

The other day, I wanted to try out Googles' "DFP for Small Businesses" service. The reason is simple: I want to serve my own ads (for nWire) in my own blog. I could just use a simple HTML banner and get it over with, but I wanted reports on my ads performance and the ability to test out different ads and see how they do. That's what DFP is for.

Cheerfully, I tried logging in to the service with my own Google account, the account I'm using for all the other services, including AdWords, which means I'm paying for my ads to show in searches and other sites. "No so fast", says Google, "you need to have an AdSense account first". AdSense is kind of the opposite side of AdWords, which means you are hosting Google ads on your site.

OK, so I went to the AdWords site and tried logging in. "Wait", says Google, "you need to apply for an AdSense account first". Not a problem. I entered my details. I got to a point where I had to enter my Google credentials, even though I was logged in... and... boom. "You already have an AdSense account associated with this login name", the Google grumbles.

I can't login because I need to open an account, I can't open an account because I already have an account. Sounds logical... if you're in a Joseph Heller book!

That did not break my spirit, I turned to the online help and found nothing useful. I wanted to open a support ticket, however, according to the online help, you need to login before you can open a support ticket. I felt like I was trying to make an appointment with Major Major.

Sending emails to adsense-support@google.com simply yields an automated response. Asking in the forums is a waste of time as well.

Well done, Google. IMHO, that's one of the key pitfalls of this giant. They are very good at scaling their servers, but not nearly as capable when it comes to scaling their customer care.

This may work when it comes to free services. You get something for free so don't expect somebody to pay for supporting you. But that doesn't work with paid services. Example: the unsuccessful attempt to sell the Nexus One through Google channels (yes, this is not the only reason). Another example: Google Apps. I guess not many companies are willing to pay $50 per user per year for bad service.

Mar 23, 2010

For Mac users, software bundles are a hit. The idea is simple: you pay a small price and get about 10 times as much in software. The package is fixed, so you don't have a choice. Some bundles even promise to donate a portion of the income to charity. The most famous is MacHeist, but other sites followed like MacUpdate and others. I'm really not familiar with similar concepts for other OSs, but I'm sure there are.

I am really struggling with this concept. It's a mixed bag and I thought I'd share my cons and pros, just to understand what I missed.

User Perspective

From the user standpoint, it's a bargain. You get tons of good apps for a fraction of the cost and, it's legal. In most cases, the bundle includes several products which cost alone more than the bundle itself. For example, in the current MUPromo Spring Bundle, you get 11 apps including Parallels Desktop for $50 whereas Parallels alone costs $80.

I purchased a MacHeist bundle about 2 years ago and I am very happy with this decision. I still use some of the apps I got like CSSEdit, Pixlemator, Typinator, Speed Download and AppZapper. For me, it was well worth the $32. For example, I paid $50 when I purchased TextMate alone, so you can understand the difference.

Since then, I've been following the MacHeist and other bundles, waiting for the next bundle that will be worth buying and I still didn't find any. Why? Maybe it's because most of my needs are already met. If I need to "scratch the itch", I find a solution, either free or paid. Maybe it's just stuff I don't really need. I have a simple rule in life: I don't buy bargains because they are bargains. I buy the stuff I need and, if I can find a bargain for it, great. It's a bit like throwing the darts and then painting the target where they hit.

So, why you shouldn't buy a bundle:

You get stuff you don't need and you will be inclined to install it. Some apps will just waste disk space. However. there are apps that will have a negative impact on your machine's performance. One such example is Clips from the latest MacHeist bundle.

You might not get the best tools for the job: on occasion, the apps you get in the bundle are inferior to other apps on the market. However, you will probably be using them anyway because you already paid, instead of buying the better product.

In most cases, the bundles are offering many applications for a limited time. This does not offer enough time to properly evaluate each product.

The last bullet can be further emphasized when it comes to "24 hour sales" which I especially dislike. I already bought two products in such sales (PathFinder and ExpanDrive), just to discover later down the road that their performance and quality makes them unusable for me.

So, what do you think? I'm interested in hearing your take as users. I will complete this article by covering the developers' perspective. If you are reading this post and you are a developer which participated in such a sale, drop me a line.