Jun 26

Rhtml in Ruby, Template Toolkit in Perl, Python’s Django templates, Java’s JSP or Freemarker, and ASP .Net files. All have the same philosophy – render HTML with data streamed from the corresponding web framework ‘controller’ modules.

It’s a great concept – lets you refactor View Templates and come up with ugly looking prototypes quickly. I say ugly since most enterprise programmers tend to have little or no web design skills. Learning effective UI Design is not trivial and asking your programmers to come up with slick UI is a lost cause.

Then you hire Graphic Designers and UI Developers. And your slick RHTML model starts to break horribly.  Web Designers’ tools such as DreamWeaver etc do not understand the server side Templating languages or they understand parts of it. The Web Developer has absolutely no interest in learning the weird syntax And it’s MUCH harder to design and test web pages in Dreamweaver with pages refactored in mutliple files!

When faced with the stalemate, we went back to basics. Separation of concerns!! Divide and Rule. Let two teams work with their favorite tools and we’ll connect the bridge with good old JSON transport. No need to do server side templating, rendering and refactoring. The backend developers had no need to mess around with HTML, CSS, Gifs and PNGs!

So, here’s our setup which keeps everyone happy. For now.

The only connection between Developers( including  Javascript developers) and designers is via <div> IDs. Once those container blocks are placed in HTML pages, the Programmer renders the UI widgets and takes care of AJAX communication with back end.

The Web Designers can continue using Dreamweaver and it’s associated parameterized templates to manage refactoring.

Going pure JSON also means, we can do away with massive rendering Engines in Rails, Merb or other frameworks and work with much simpler Data Delivery Engines which are REST compliant and serve pure JSON. We’ll talk about building such an Engine using Rack in a separate post.

Tagged with:
Jun 22

The Java Virtual Machine debuted around 1995.  People who are old enough to remember Netscape probably remember very first Applets and claims of how embedded Java bytecode was going to change the world order and eradicate world poverty.

Poor applet died with Netscape and died again when Internet Explorer refused to bundle the JVM.

But JVM lived on and after years of optimizations, it’s probably the best Virtual Machine around. Some benchmarks give it an edge over C++  which is not hard to explain since even memory leak free C++ code suffers from memory fragmentation.  But, I’m excited again with the JVM for an entirely different reason.  While Java was better and cleaner and simpler than C++, it was still quite verbose. Dynamic Languages like Perl, Python and Ruby offered terseness and expressiveness unknown to the Java Programmers. CPUs got faster. Good Programmers got more expensive. It made sense to trade CPU time for programming time. Why waste time writing 10 lines of java code when an one liner Perl would do the same thing? Number of bugs is directly proportional to the number of lines of code. Less code is better code.  For years, the Java world (and the Microsoft world) tried to hide behind ever more complex tools like Eclipse, Netbeans and Visual Studio. Tools might be nice but they rot the programmers’ mind. They dumb  them down and provide a false sense of simplicity. Hiding a Language’s complexity behind even more complex tools is a terrible idea.

I know of many highly paid Microsoft programmers who copied Visual Studio generated DCOM code around without understanding what was it doing.  The technology was so darn complex that hardly anyone understood the guts of it.

So, why am I beginning to like Java again?

It’s not really the Java Language itself. It’s the new crop of JVM based higher level languages that have cropped up recently, that make me believe in this Virtual Machine again.  Take a look at Scala, Groovy and JRuby. All based on the JVM and all are modern languages with the same expressiveness that I’ve come to like in Ruby and Perl. Best of all, these langauges conform to the Java bytecode! The entire Java Library is instantly available to these languages. No need to wait for your favorite Java Library to get ported to any of these.  Given the fact that almost every library has already been ported to Java, it means, you can have your cake and eat it too.

Ruby is beautiful and fast moving. But Scala is beautiful, fast moving and is super rich with libraries!

Finally, we can truly start using the right tool for the job.

The pervasiveness of JVM means truly mobile code is now a possibility.  Imagine code snippets written in Plain Old Java and Scala and Groovy and JRuby being shipped over the Internet for remote execution! Netscape and Applets live on!!

Tagged with:
Jun 12

Most of core software developers tend to brush off ‘user interface’ thingies. ‘HTML developers’ are looked down upon by people working on the cool backend technologies. The mere fact that UI designers get paid far less than their backend counterparts is a proof of my assertion.

Goes on to prove the geeks have it all wrong when it comes to selling!

Good, slick user interface is quite hard to achieve. It requires vision, imagination, training in human psychology AND a quite a bit of technical wizardy. Try navigating all corners of CSS and then make yourself cross browser. You’ll know what I’m talking about. Apple is where it is today simply because of it’s fantastic user interface. There’s nothing one could not do with good old PCs before Macs made a comeback. Yet people rushed to pay extra dollars to get the coolest computer on earth. Ease of use ? Stylish? Marketing? Status Symbol? Be different syndrome? You can call it what you like but if it were not for the beatiful interface, Apple wouldn’t have survived it’s comeback for this long.


Contrary to popular wisdom, Looks ARE everything. People are shallow. The managers controlling the money purse are technologically shallow and ill-informed. Show ‘em your multi-threaded, fault-tolerant, highly scalable database which has an inferior look and feel and you’re sure to lose that sale. Absolutely. It’s guaranteed.
Pay attention to usability and some amount of eye-candy right from the beginning. Even your prototypes have to look slick, even with reduced functionality, if you’ve any hopes of raising capital or generating interest. Don’t discount the shallowness of the masses.

Tagged with:
Jun 12

Web Presence is deceptively easy to establish. I say ‘deceptively’ since most businesses simply do not understand the importance of their own ‘web sites’. We live in post-google world. Opportunities are found and lost in virtual world. Your clients (and chances are you yourself – as a business owner) are doing their research on the Web. If you don’t have an engaging and effective web presence, you’re missing out serious opportunities.

Your web site is not merely a ‘website’. It’s the most effective marketing tool ever invented. It’s the most effective commerce platform today. It’s the most effective advertising platform that you can buy into.

If you’re like most small businesses, you probably have a web presence simply because everyone else has it too. That’s a start but virtually useless in today’s highly competitive online world. Here’s a simple worksheet to help you decide if your site needs a makeover to be effective:

1. Most important: Can your potential customers find you by doing relevant searches on google?
2. Does it load fast enough? Modern technologies like Ajax can make information load on demand – making initial loads much faster.
3. Do you have a ‘web site’ when you what you really need is a ‘web application’? A ‘web site’ has merely informational content. Web Applications are interactive and let your customers engage with you via your site.
4. Do you deliver your updated messages via modern channels like RSS and twitter feeds?
5. Your Home page needs to tell your story simply and clearly. If a stranger lands on your page, does it kill them with information overload or simply delivers your message?
6. You repeat customers need to get hold of you easily via your site. Don’t make them dig through 500 pages to find a contact number or contact email. It should accessible right from your landing page
7. Do you really need that Flash animation on all your pages?
8. Conform to the old geeky wisdom : Make it work first, then make it pretty. Make sure your website delivers it’s punch in as few clicks as possible. Make your ‘Buy It Now’ button the most sought after property. Do you even have an easy to use ‘Buy It Now’ button?

You can hire high school kids and get a yourself a ‘web site’. You need to work with professionals to build engaging and effective ‘web applications’.

Finally, the sales pitch. At Yellowfish, we work with our clients to deliver Applications that work for their business. Actively and Effectively. We monitor the applications after they’re deployed to see how your visitors are interacting with various components. We are your professional partners and peg our success with yours. Send us a message and see what we can do today together.

Tagged with:
preload preload preload