Archive for the ‘commentary’ Category

RESTfullness and web-frameworks

September 26th, 2011

After working on an offline mobile web app that integrated with a Grails backend, and after that being prompted to explore options for a new some green field development, which lead me to re-evalutate things like REST to NoSQL to MVC frameworks in general to mobile frameworks, to front-end frameworks in general. I feel like I have started to form a more robust comprehension of where web-app development is headed in general, and most of the web-frameworks I know of seem to be missing it so far. This would be hard to articulate briefly, but blogs are good for taking a wild stab at that sort of thing, right? Disclaimer: this is just me sort of thinking out loud, so take it for what it is.

I am coming to the conclusion that I don’t think I want to use Grails anymore. Either that or I want to gut it of a lot of what it does. Sitemesh, don’t need it. Hibernate, don’t really want SQL database anymore, schema’s are so restricting/un-agile, so don’t need it. GORM, dislike it about as much as I find it useful, so could really take it or leave it. if you end up working with a object DB then it is pretty much an unnecessary abstraction anyway. Groovy, well I like it better than Java, but honestly Scala seems like it might be the most promising language on the JVM, and for that matter other non-JVM languages have plenty of appeal too. Resources plugin, Tablibs (built in or customizable), Scaffolding and Templates, i18n… better handled by a front-end framework.

Or…  RESTfullness and MVC are beautifully simple things, and these plus the idea that next generation web applications can no-longer count on consistent and/or high-speed connectivity, but can count on robust javascript engines on the client side means that pushing as much of the application to the client as possible is now something to strongly consider. . Grails (and lets not just pick on Grails, most web-frameworks I know of) is still stuck in the paradigm where views are generated server-side .

Grails, again, to be fair, this seems to be a pattern for web frameworks in general, has been advancing in ways that make it more powerful and thus more complex, not less. True it does a decent job of hiding that complexity away most of the time, but even so, what if  its being there is all unnecessary in the first place? The trend in the way people are using their computers/devices would seem to me to drive rich apps working on the client-side with relatively simple storage and syncing services that they connect to. Maybe what it means for web-frameworks to evolve at this point means to specialize, simplify, and strip down.

Jan 2010 Ubuntu Browser Benchmarks

January 17th, 2011

A follow-up of this.

Note: I am just comparing Javascript. This is no longer a good way to benchmark a whole browser, if it ever was… but it is just interesting to me, and gives one metric that is an important one.

Environment is Ubuntu 10.10 64bit on Core2Quad@2.66Ghz

Browser Version Sunspider result
Chromium 10.0.634.0 277.2ms +/- 1.8%
Midori 0.2.9 388.5ms +/- 1.0%
Epiphany 2.30.2 382.0ms +/- 2.4%
Opera 11.00 352.6ms +/- 1.8%
Firefox 3.6.14pre 1883.8ms +/- 2.6%
Swiftfox 3.6.12 1068.2ms +/- 2.3%
Firefox 4b10pre 283.6ms +/- 5.0%

All the browsers have advanced pretty well. Once Firefox 4 finally ships I’d say the playing field is pretty level for javascript performance in browsers on Linux. In real world usage I just don’t know that anyone would be able to distinguish a speed difference between the browsers when it comes to javascript. The next pieces browsers need to keep working on are HTML5 and CSS3 implementations, Hardware acceleration for 2D and 3D rendering, and additional browser features, like extensibility and ‘installable’ web apps.

As a web developer I am excited about where things are going, and how the web as a platform is advancing. Native (meaning native to the OS/Desktop environment) applications aren’t gone yet, and probably won’t be for a long time yet, but they are needing a better and better excuse to not move into the browser. What would be the benefit of that you ask? The same that Java Swing, Adobe AIR and others have tried to achieve. OS independence. You write it for Firefox according to defined standards and it should work on all browsers that implement the same standards on all the OS’s. That is a big deal! I think a couple prime candidates for proof of concept browser apps would be all the little games normally included in Ubuntu. Mines, Solitaire, Tetris clones etc. and maybe the social networking client like Gwibber. If only I had more time to play…

Update: I played some with Tetris in a browser idea

A Service is not a Product

October 28th, 2010

A recent article details How Google Is ‘Closed’, Just Like Apple

I have to disagree. They may both have aspects that are closed, but they are definitely not ‘just like’ each other. Apple sells a product that is closed, Google sells a service that is closed. The difference is crucial, and should be obvious to anyone who has taken business 101. Some companies make money on a product some on a service. A closed service is nothing new, and doesn’t offend me (though it may entrap me). A closed product is a new concept. It is offensive because it restricts me in new ways that I am not accustomed to evidenced by new laws that have to be created to enforce the restrictions. I would add that if these restrictions actually were justifiable we wouldn’t need new laws to enforce them and thus wouldn’t feel offended.

Apple has plenty of closed services as well by the way, so they may qualify as doubly closed, or maybe closed squared?

Pragmatism, Idealism, Tension and Balance

September 22nd, 2010

A friend and I got into a brief discussion around audio codecs and licence restrictions today as we talked about working on something together – specifically why Firefox doesn’t support mp3 in their audio tag. Other discussions we have had hit on this idea of pragmatism vs. idealism. Today I was reminded of this now-out-of-date article that still had some interesting points to make (while also making dumb points along the way).

What I gleaned from the article is that there can be a good sort of balance these perspectives can bring each other. That balance is achieved in a tension between not completely ignoring the reality of the situation, and not completely capitulating on principles that matter.
It seems to me this thought can be applied more broadly to things outside the realm of software development. Church practice, politics, family life, etc. In most things I tend to find myself farther to the side of the spectrum of “we can’t compromise on principles”. Some people I have relationships with tend to balance my perspective with their “don’t be unrealistic” perspective. There can be some tension in those relationships in the process, but I am finding myself appreciating that more than I used to. The tension can be a good thing.

IP infringement and definitions

August 31st, 2010

Apparently the current US administration is pushing to ‘reform’ intellectual property laws, and even some popular tech sites have chimed in. Anyone around me for any length of time over the last few years knows that intellectual property is a pet subject of mine, so I can’t help but be annoyed by what they are saying.  Is piracy theft? Well yes, but I don’t agree with what they mean. I think intellectual property is an altogether invalid concept, and even find the term ‘intellectual property’ itself objectionable because the word ‘property’ can’t legitimately be applied to ideas, patterns, or arrangements. Property by definition needs to be able to be owned in an exclusive manner. I suppose that is why they had to add the word ‘intellectual’ in front of it – to distinguish it from actual property, in which case they may as well have called it ‘imaginary property’! The argument is framed by the terms used. My aim here will to briefly question definitions. With diagrams I ‘stole’.

There is the somewhat popular graphic that emerged a while back.

In a simple way gets at a core issue. Scarce vs. non-scarce entities. 'ownership' is not violated by duplication in the way it obviously is by theft.

And lots of variations springing out of that:

pirate hater

Didn't like the original, so attempts to recast the 'pirates' as evil without really dealing with the scarcity issue. I guess the underlying claim is that piracy 'steals' the possibility to profit exclusively, and those potential profits were somehow owned by an ideas originator, however, you can't really own an opportunity any more than you can own an idea so it doesn't hold water.

Just decided pigs were more fun than stars I guess...

Some people prefer hexagons and shopping carts

A feeble attempt to appeal to the plight of the starving artist while again ignoring the core issues. Has this person lived under copyright for so long they have no ability to imagine alternative models of profitability? Do they really think without IP all creativity and innovation will cease? In general IP benefits the big guys more than the little guys. Many independent artists thrive without IP, others just prefer to do art for arts sake.

file sharing not piracy

Pulls into question the usage of the term 'piracy' with a touch of humor.

File sharing has evolved some, and I sort of feel it is worth while to illustrate how as it is actually quite relevant to the file sharing legality issue. However, I can’t really do it better than the wikipedia article on torrenting, and this demo (won’t work in IE, don’t try) does a slick job of illustrating a torrent in action.

Copying is duplication, not piracy. Piracy is theft in international waters. Theft only operates in the realm of property and ownership. Property is a scarce resource that can have exclusive ownership. Ideas can have an originators but not owners.

My Android Experience Thus Far

August 24th, 2010

I have had my Samsung Moment since around Thanksgiving 2009. It came with Adroid 1.5 initially and was my first smartphone. I played with it quite a bit at first, but after the first few months the novelty mostly wore off. I fell into a pattern of using it for its browser, email, twitter (mostly reading tweets not tweeting myself.) and occasionally for taking photos. Battery life was pretty dismal which actually discouraged me from using it because I would rather not have a dead phone by the afternoon.

Sometime in the spring it got updated to 2.1 which was sort of a let down to be honest. Most things were just as they were. There were a few more options as far as apps, and a nice new unlock screen, but that about covers it. standard 2.1 stuff was left out by Sprint. I guess they had their reasons.

About a month ago I decided I wanted to try to do some deeper customization. These phones are like little computers. If I could install Ubuntu on my laptop why couldn’t I do something similar on this phone.  Android is basically a Linux distro for mobile phones.

Anyway long story short – rooted it and installed custom ROM with the help of sdx-developers. I actually had some reasons for work that prompted this move, but those aren’t so relevant here. The phone is awesome again. A couple new features and capabilities come with root access that only geeks will appreciate, and all the bloatware that I never used and couldn’t get rid of was gone, but the most useful aspect is the dramatically improved battery life. Now a full day of heavy use is no problem. Two full days is pushing it a bit, but I do it from time to time. The wireless tethering is slick and actually useful when traveling. (did I mention I am not paying Sprint for this feature? … don’t tell….)

It comes with some consequences. The occasional random reboot or flickery screen, but so far they haven’t really interrupted anything I needed to do. reboot is faster than it used to be too. Overall the stability isn’t really a hit, because the phone wasn’t glitch free before anyway.

What is cool is that these now ‘old’ phones (Sprint tweeted they were done providing updates for the Moment 6-7 months after it was released!) can continue to be very useful because of an active developer/hacker community. I do encounter these longings to have the latest greatest devices, but I am also beginning to see much more challenge/fun/value in being able to keep lower end hardware useful through better software.

The more I have a smartphone the less I want to be without one. It is interesting how my computer usage habits are changing because of it. Maybe a topic for another post.

Ubuntu Lucid = mega cool, but…

April 27th, 2010

I am really enjoying the latest Ubuntu. They added lots of polish, and the OS is consistently moving steps ahead as far as ease of use for geeks and non-geeks alike. My thoughts center around, “but does it even matter?”. Sure, Ubuntu is free on a couple levels that OS X and Windows aren’t, but most non-developers don’t feel the shackles, so they don’t care.

Like an invisible tax the cost of the OS is bundled with the hardware for the vast majority. Again, for non-developers, the licence restrictions are slightly annoying at worst, also they are accustomed to paying for software, so they think “who cares?”. It would take something more significant than a very usable and free alternative OS that they would have to take the effort to install and get accustomed to make them care. I won’t be wasting a lot of breath trying to convince these sorts of users to make the switch. My lengthy discourses on open source ideology would merely prove to be confusing or annoying. That is not a guess, it’s happened.

Developers, however, have much less of an excuse for not caring. They should be feeling, or at least be aware of, the shackles of the closed environments and ecosystems. Those with a choice, often choose to ignore or to justify. I have noticed they justify their use of OSX or Windows for what tend to be short sighted reasons. If such short sighted excuses were ever really valid, is another debate, but either way, those justifications are getting weaker and weaker. Ubuntu, from a developers perspective, has potentially crossed over from being a viable alternative to being a superior one. 10.04 = a better chance of them actually being convinced, like me, that Ububtu is mega cool!

2010 breakout year for Linux (as in Android)?

December 16th, 2009

Yeah, i know not another “year of Linux” prediction. So lame, but eh, whats the harm really :)

I have been thinking for a while now that Android is really the up and coming platform. This article about the android market reaching the 20,000 app milestone seems to agree, but is pretty conservative about it. Things it doesn’t consider is that the Android Market is just one place that apps are released. Apps can be made available other ways, such as a simple download available on the web that you then drop onto your device, or accessed directly through specific URL’s.

Also in contrast to native apps there are web apps. Web-apps developed for iPhone’s mobile safari browser also run on other mobile webkit browsers like the one found on Android (and Palm’s WebOS) and vice-versa. There is no count on those that I know of, but they are definitely growing in numbers and I suspect their popularity will be increasing dramatically. Less platform lock in is a big draw for developers. Additionally, existing tools make developing mobile apps relatively easy. For example, Android benefits from already existing tools like JqTouch, xUI, iUI and others

Then there is the fact that Android is starting to show up on things other than phones, like e-readerstablets, and amazing looking reader-tablet hybrids

With 2010 just around the corner some people are sure to claim (yet again) that this will be the year for Linux to break out, and they might be right as 2010 is really shaping up to be a big year for Android.

Chrome Frame – dirty trick to gain market share?

September 24th, 2009

Big news in the web-development world. Could Chrome Frame be the death knoll of IE6?

The primary company I work for has an old style Java app that was designed specifically for IE6. It has since been opened up to Firefox as well, but other browsers are still locked out. In one sense I am excited about Chrome Frame because it might mean we get to drop official support for IE6 sooner. In another sense I feel like Google might be playing a dirty underhanded trick to force sites that support IE to also support Chrome.

The scenario I envision goes like this: A unsuspecting and not-so-tech-savvy person is prompted on some site far far away to install the Chrome Frame plugin for IE. Seems innocent enough, so they do, and it works! all is well. Then at some point not so long after that they sign in to our application with no problem. Our browser sniffer doesn’t see anything amiss, just another IE user. Then potentially things start not working like they are used to. (i don’t know if this would happen, we don’t test Chrome/webkit since we don’t support it…). they get stuck enough or frustrated enough that they call our support staff for help, and after some time spent trying to understand what is happening we have to say either, “sorry, we don’t support IE with plugins like that,” or, “sorry, that is a bug and we need to fix it.” Both options make us look bad to paying customers.

Google’s motivations supposedly include making life easy for developers, and I think for the most part Chrome Frame will achieve that. It is just one more reason that I won’t bother to test/support old IE browsers a number of sites I work on. However, I think the whole, “we want to help developers”, and, “we want to advance the web” is more marketing spin. Not to say it’s untrue that they want those things too, but Google is a company and companies usually have less altruistic motives.

Because of Google Frame companies like the one I work for are now forced to consider if we will support Chrome. That means for companies who have sites that were built specifically for IE, life just got harder. Ultimately supporting Chrome would be a good thing since it would basically mean a much more standards compliant site – something that is definitely one of the companies goals. The answer to the question, ‘should we support Chrome?’ should be yes, It already was in fact, but before it was less of a priority. The benefit that Google gets for pushing this shift of priorities is that the one more hurdle to Chrome gaining browser share is dismantled. Greater market share in their browser arena means a more prominent platform for their services, and that affects the bottom line. This perspective makes Google seem less likable to me. On the other hand, Google really is advancing web standards which opens the doors that much wider to any other standards compliant browsers, and I do like that…