Coder of the Month

 

Search, search, hurry up and search.
Twitter
Monday
08Feb2010

Flash isn't an open standard, it just creates them

So a lot of talk about the death of Flash this month and if you've read any of it, you would know that next month, all the would will embrace as we usher in a new standard, HTML5. It will give us all the power of plugins like Flash, Silverlight, and Unity3D, BUT it will be free, open, and standards based. You may now pour yourself a glass of champaign wile I proceed to ruin your day... 'cause it ain't going to happen.

Full disclosure, I make my living with Flash. And I have heard all of the complaints on the web forums where geeks hang out. Flash is proprietary, crashy, resource intensive, and banner ads use it.

I'll give you a half point each on crashy and resource intensive. Ever since Adobe took over Macromedia ( the original creators of Flash ) they have been way more focused on features than either stability or performance. I think they are finally starting to come around with v10.1 but it is much too little, much too late. Given that, I live in Flash and all I have to say is... quit your whining, it's not that bad. It's certainly not as bad as all of those Firefox plugins you probably have installed. And you have my blessing to install a flash blocked in your browser, I am running one right now.

Which brings me to banner ads. Yeah, they are the worst. But they are definitely NOT going away with HTML5. The HTML5 canvas element was built for banner ads.

So that leaves the proprietary argument. There are a lot of smart people, including me, who think that the web wants to be open and that given the choice, open is always better than proprietary. The problem is that open is slow, reeeeaaaalllllyyyy slow. HTML5 wont be officially ratified in the next year, never mind the next month. Yes, you can use it now, but it's still changing and there are a bunch of different browser incompatibilities. There are also no workable development tools, not to mention it relies on JavaScript which is a tedious programing language at best, so it would reasonably take twice as long for a good developer to code and debug any HTML5 app vs. a Flash app. And probably the biggest issue is that it only delivers the approximate capability of Flash 7, that's 5 years ago. And by the time HTML5 has truely got up to speed as a serious development tool, we will have had at least one, probably two or three new versions of Flash.

My point here is not to beat up on HTML5 because every Flash developer I know is actually really looking forward to it. I don't know any Flash developer who looks forward to building yet another video player. But Flash and similar web plugins are what drives forward progress in web development. The only reason why all of these cool new features are in HTML5 is that they were already in Flash. There will always be a need for plugins because there will always be a need for web developers to push the boundaries. If plugins never existed, we would probably still be using animated GIF's ( I just threw up a little ). I see it as the job of all browser plugins to show us what a standards based web could look like in the years ahead.

Judging but the state of things today, I would say that in five years, we will usher in a new Flash killer called HTML6 which will have true 3D support, a true scripting language ( get lost JavaScript ), one audio and video standard, the ability to tap into computer hardware ( hello full screen mode and web cam usage ), true streaming video, raw binary socket communication, etc. It will be a good day for me because I already have my blog post written ( I hope we still have copy / paste in 5 years ).

i.am

Tuesday
05Jan2010

What we have here is a mess: Security on the internet.

This post was inspired by listening to a fantastic episode of the Security Now Podcast. You can listen to it here: http://twit.tv/sn229

I just spent the better part of two days tearing up a completely good wireframe for a new web site feature because it simply could not be done do to internet security.

An elegant concept turned into a nightmare when I realized that standard browser security would simply not let us implement it. This realization turned into a inter-departmental scramble to redo the specs. And two full days later we are left with a not-as-great-but-functional web product.

So, what was the cost?

There is the cost to my company in man hours. There is the cost to the user in a slightly less optimal experience. There is the cost down the road when those users who find the web product too frustrating and decide not to give the company their credit card.

What was the benefit?

The users are protected from a potential security vulnerability that to my knowledge has never been exploited.

My point is that internet security is a HUGE cost, Both to the web site owners and the users. And for the most part, it doesn't even work.

I'm not saying that we do not need internet security, we absolutely do. What I am saying is that the whole internet infrastructure is such a broken mess, even the best security measures can only barely protect the average user from exploits, password hacks, and phising scams. And the cost is enormous for the user and the internet companies in time and money. The only people who are making out on this arrangement are the people who perpetrate the scams.

My next blog post will be titled: I Just Moved to Russia and I Have your Bank Account Number

i.am

Monday
28Dec2009

Debugging F'in People

Since I'm going to be spending a lot of time with the relatives this week I thought I'd take the opportunity to apply my coders ethic to the non-performant people in my life. I decided to debug them.

I traveled home as I usually do this year. My mom asked me to bring a side dish for the holiday meal. I brought a dessert. The message was clear... Let's get this whole ordeal over with as soon as possible. The sooner we can skip to the dessert, the sooner this whole thing will be over and I can go home and fire up the Playstation.

My sister was a challenge but I knew she would be showing up with her new BF like she does every year. I got her a crock pot. Her cooking is horrible, everybody knows it. Her BF, however, will still be under the impression that she is perfect. This will definitely change his mind.

My dad is the only person in my family that I really get along with. I got him a cordless drill. Before the end of the meal he was already fixing the hinges on the bathroom door, and making a complete mess. My mom didn't even notice that I spilled red wine on her table cloth.

It was a good holiday.

i.am

Thursday
26Nov2009

A shade of gray

Depending on your focus and expertise, the world of the web starts somewhere.

Front End

For Front End developers, the most important part of building a web site is building a great user interface and user experience. The most important parts of the architecture of the code exist around handling events and user gestures. Defining the different states of the experience and defining transitions between those state. What is less important is the data that populates the UI. Flash applications rarely even involved in managing data. Data comes from a database, which is abstracted through an API, which is then abstracted again as Value Objects that the application uses.

Databases

For Database Admins, the foundation of the web is the raw data and a web page is just a visual representation of that data. User Interface is important in that it is key to expressing the data in a way that is clear and accessible but ultimately the data itself will determine the value of the site. Concerns focus around data integrity and speed of access, how different types of data may relate to each other and be queried to provide new sets of data. To a DBA, the front end is almost entirely abstracted by a Business tier that talks tells the database that the user wants to see and translates that data into a format that user can understand.

Server Software ( Business Tier )

Appropriately named Middle-Ware, server software is essentially a medium through which data and presentation communicate. Whether it be Ruby, Java, or PHP, an engineer is not too concerned with either the data or the presentation. Instead they concentrate on getting data, parsing it, and sending it to the user as fast and efficiently as possible. And going the other way around, acting on the users behalf in translating state transition at the presentation level into an intelligent data query. Often this also involves logical decisions about navigation, validation of user submitted data, processing and conversion of user data ( such as images ), and probably decisions about where data is saved ( assuming it is not saved directly to the database ).

Focus

All of these perspectives are myopic. All three interests must be represented in order to create a successful web app but no one interest should be more important than another. Take Google for example.

Google is a very successful company but they are primarily focused on Databases and Business Tier logic. They have notoriously bad Front End design. I would argue that the only truly successful part of Google is their search engine which gained popularity in large part because of the simple and easy to understand front end. The plain white page with a google logo and a search box was as important to the success of the company as all of the technology behind it.

i.am

Sunday
22Nov2009

How to Reduce Sinusoidal Depleneration

Last week I told my boss that there was a problem with the unilateral phase detractors which is why I couldn't meet our deadline... obviously.

 

 

And then he asked the one question he's best at asking. "why?"

KHAAAAAN!

Complexity is the root of all Evil. And Evil is the root of all staying late at work. So I figure the only way to reduce Evil is to reduce work and complexity and work.

i.am