Things I’ve Been Told That I Don’t Get
- “The Power of Java”
- The Web
- Why language/paradigm [x] beats everything else
- Javascript (redux of #2)
- Why web apps are superior to native apps in all ways
- Why operating system [X] is better than anything else
- Why the cool new technology of the day is not a redux of an older one
- Why language [X] is the “last language I’ll ever need to know”
- Why HTML really is a programming language
- Why we need to reimplement everything for the new language of the day
To which I say, pshaw. It’s not that I don’t “get” them, it’s just that I don’t buy into the hype. Simple minds look for simple answers and sadly, mine is not a simple mind nor do I live in a simple world.
But….
Your mileage may vary…
Be seeing you
Musings on a better Internet (not web) overlay
Just wondering what a better version of an Internet overlay would be tonight. The web, as Alan Kay notes, seems to be the result of amateurish design and a large collection of hacks, bandaids, etc. Gaping security holes abound, authentication is a pain, privacy is continually violated, development is painful, and yet we seem to have accepted that pathetically sad reality as the norm. Why is that? Has the hype and hubris surrounding the web really blinded people to painful reality?
So what would constitute a better environment where everyone can continue to easily create their personal real estate/brand/etc. while enjoying a secure, easy to interact with environment?
A short list might be:
A real specification that requires conformance. No short cuts, no proprietary vendor nonsense, no global bodies creating standards that nobody fully implements.
A real specification body to police technical conformance.
Built-in authentication
Built-in mechanisms to support state (no @$@$#$ cookies!!!!)
A standard, free rendering engine that implements the full standard.
Likely there are other things that would be needed, but the overarching concern should be to ensure a safe, secure environment that is easy to create Internet real estate. HTML5 be damned, the web is still a pain to develop sites that work correctly across all browsers, and the practice of “use this Javascript library” is indicative of the patchy, half-arsed way the web is being dealt with.
I think we’re smarter than that and are ready to start building that future. At least I hope we are.
Be seeing you…
Things Change
I’ve read and heard a lot about people wishing Ritchie Blackmore would come back to do Rock and Roll instead of the Renaissance music he’s doing these days. I’ll be the first to admit that he is one of my personal guitar heroes, and I certainly enjoyed his work with Deep Purple and Rainbow. However, it is obvious that his passion for Renaissance music fills the place where riff-heavy rock used to be and for me that’s fine. I listen to a wide variety of music on a daily basis that ranges from classical to hard rock. Blackmore himself said that he wanted to play music that was more melodic than he found rock and roll, but somehow a lot of people can’t accept that he’s simply going in a different direction which should really be expected from someone who was playing a particular style/genre for so long. I’ve listened to several of the songs he is doing these days, and the virtuosity is simply amazing. While it is certainly not Smoke on the Water or any of his other great riffs, the music is elegant and enchanting. Additionally, he’s performing with his lovely wife Candice who has a remarkable voice, reminiscent to a younger Stevie Nicks (at least to my ear). So for all of the folks begging “Ritchie come back”*, I’d have to ask that they at least give a listen to what he’s doing now and accept that he’s chosen a different path for his musical expression.
Be seeing you…
- With apologies to Frank Zappa and Turning Again
Big Data Dot Com?
I’ve been wondering about the whole Big Data thing for a while. I won’t argue that a lot of useful information can be mined from large data sets, but can it be monetized for anything other than selling targeted ads? Most of the companies (yes Facebook, I’m looking at you) that are sitting on a big pile of data don’t seem to really have a clue as to how to monetize what they have beyond some vague handwavium about ads and I have my doubts that they can or will out-Google Google.
What it looks like from my perch is that Big Data is the hype word fad of the current moment with no business model to support it, much like the original dot-coms who had no business model behind “grab a lot of eyeballs and sell banner ads.” Of course, I’ll doubtless get a lot of “you just don’t get Big Data” comments which may or may not amount to anything other than “don’t stick a knife in my sacred cow” snipes. However, I am really interested in understanding how people plan to monetize all of this Big Data that they have and so far, nobody has offered any insights.
But…
Your Mileage May Vary…
Be seeing you
Wabbit Season!
The US Congress is starting to devolve into a bad scene resembling Bugs Bunny and Daffy Duck with one side is yelling Fiscal Cliff, the other Debt Ceiling. To wit,
Democrats: Fiscal Cliff!
Republicans: Debt Ceiling!
Democrats: Fiscal Cliff!
Republicans: Debt Ceiling!
Democrats: Fiscal Cliff!
Republicans: Debt Ceiling!
Democrats: Debt Ceiling!
Republicans: Fiscal Cliff!
Democrats: Debt Ceiling!
Republicans: Fiscal Cliff!
Democrats: Debt Ceiling!
Republicans: Fiscal Cliff!
Both to President: Now Shoot!
Link to original scene: Wabbit Season!
Conventional Wisdom
I’m always surprised at what passes for conventional wisdom. Today I was in a meeting where a developer was extolling the “improvement” he had just performed on a web application[1]. It seems he had decided that the 30K data file in JSON format wasn’t really necessary because he could replace all of that 30K with a database. I should mention that the data in question changes about twice a year, and in fact I did mention that fact in the meeting. Now, this was not my application, but I found it odd that the developer had decided to make this change based on some notion of efficiency around eliminating the time it takes to download a 30K file with HTTP.
Let me repeat that. Replaced a 30K text file of JSON formatted data. That changes about twice a year. With a database.
I asked whether or not he had run any benchmarks to determine that his “improvement” had made a difference. He said that he hadn’t but assured me that the user experience would be improved by his “tweak” and continued to speak about how he didn’t understand why the data was stored in a “flat file” of JSON data. I asked how many people would be hitting the database at any given time and he assured me that it didn’t matter because databases scale to handle that. Not being the technical architect that was responsible for the application, I merely observed that it appeared that the “tweak” might add a potential bottleneck due to database activities. The developer in question immediately rained on my comment with some “sage” observation about “old guys not really understanding modern web architecture”.
Towards the end of the day I heard a great deal of commotion when the technical architect (who was not in the meeting due to a conflict) was raising hell with the developer over decreased performance caused by the introduction of a set of database calls for what was arguably static data that would be cached by the browser after pulling it down once. Lots of plaintive “but this is better architecture because it scales way better” defenses, but the technical architect wasn’t buying. The “discussion” ended with the statement “we set it up as a JSON file because it doesn’t need to get pulled down all of the time but all of the data needs to be there when the application runs.”
So, today’s lessons are:
- For the best user experience, don’t go to the host any more than you need to but if you need to go to the host for data, make sure you get enough data and then keep it.
- Don’t assume that all data must reside in a database. Just because you have an ORM class doesn’t make it the right choice for every bit of data.
- Ask a lot of questions before you decide to change something in an architecture that you didn’t design.
- Old guys might know a thing or two (the technical architect is older than I am), so listen up because you might learn something.
Be seeing you…
[1] For the record, it was not my application nor was I involved with it in any way other than the design review.
Post PC Musings
I just read the umpteen hundredth article discussing the decline in sales of desktop PCs in favor of tablets and other devices. Given the reality of our modern world and its unprecedented mobility, I am amazed that this is even considered news.
The majority of the populace used a computing device for a relatively small number of functions, and with wireless broadband becoming more of a ubiquitous commodity in many places, it is likely a much healthier lifestyle to eschew a desktop computer that isolates the individual and encourages social dysfunction.
The most common functions seem to be (in no particular order):
- Messaging (email/texting/tweeting/etc.)
- Surfing the web (banking/making purchases/etc.)
- Consuming multimedia (movies/games/etc.)
- Office applications (word processing/spreadsheet/
- Personal information management
All of the above are available from various sources on the Internet with many accessed via the web. With virtualization providing relatively inexpensive resources, I expect the trend to accelerate with more and more people moving to smaller devices that merely connect to the Internet to access services. Whether or not all services will be accessed through a browser or some sort of specialized native app for offline usage remains to be seen. However, the trend of leaving desktop behind is not only unavoidable (and definitely not particularly newsworthy), but an inevitable step in the evolution of how we compute.
Hopefully it will be a future that has us becoming more connected and less isolated.
Be seeing you
Please Don’t Make HTML5 the Next Java HypeMobile
I’m a bit amused at the latest hype around HTML5, i.e., “write once, deploy everywhere”. Didn’t Sun try this with Java? If there was a canonical implementation of HTML5 (with the canonical implementation of CSS and Javascript) that all browsers used, I might be more inclined to not sniff as much. However, the lessons of the promised “silver bullet” of web development just doesn’t hold up under closer scrutiny.
The first fallacy is that older browser will not support HTML5 out of the box without a lot of underlying work in CSS/Javascript to “gracefully degrade” the site/app/etc. in an appropriate fashion. Since nobody I know of eschews CSS and Javascript for “pure” HTML for their websites, the variable implementations of those add-ons tend to make life more interesting with regard to what is or isn’t supported.
HTML5 brings a lot of new goodies, straightens out a lot of issues, and generally seems to have a lot of promise, but the incessant overhyping that seems to go on day in and day out sets unrealistic expecatations for everyone. It’s not a silver bullet. I commiserate with the issues associated with web development (and don’t toss out your favorite Javascript library as solving all issues equally well), but let’s try to make statements that don’t echo the hype of the 90s but rather focus on dealing with the fragmented mess that we must suffer through.
Be seeing you
After the Web, Then What?
So I was sitting here reading Zed Shaw’s comments on random web browser failures, and I wondered for the umpteen hundredth time “What comes after the Web?” We have web standards that the browsers continue to implement in half-arsed, haphazard ways (calling into question how the word “standard” has become conflated with “guideline” due to the inherent inability to enforce the so-called “standard”). We’ve been putting up with this nonsense for quite some time now, and it seems that everyone is happy with the pain except me.
By the way, this is not a native apps vs. web apps rant.
I don’t know a single web developer or designer that doesn’t wince and groan whenever I say “Internet Explorer” (which I do on a semi-regular basis for effect). So perhaps it’s just me, but I wonder why everybody is so happy with the bar set so low and the pain so high. I’ve got a tremendously high pain threshold that was earned through endeavors associated with my misspent youth, but I’m stunned to see that when it comes to web development everyone seems to have a much higher threshold.
XTHML was supposed to “fix” HTML, and HTML5 or XHTML 2.0 or whatever it was that was supposed to fix XHTML 1.0 (and drug on and on and on to no end). So what happened? Common sense finally reared its (apparently) ugly head and we have HTML5, the new standard that will fix all ills with web site design and development.
Or was that Javascript or CSS3 that was supposed to do that? I get confused after watching things for a while.
Oops I forgot, Flash was going to fix everything. Funny, ever spoken to a Flash Developer? They’ve got more compatibility issues to cope with than web developers.
So where does this rambling lead me? Back to the fundamental question of what will come next. The web has been a great playground (except for the browsers which are apparently necessary to view web content), and there are even efforts to make the browser the operating system (I suppose that will provide an entire new level of incompatibilities, but people seem to like pain). Maybe we can run those in a hypervisor that runs on the bare metal too for an extra layer of meta.
To my web developer and designer friends, I really do feel your pain every time I put together a web site or web app. Trying to ensure that everything works correctly across half a dozen versions of half a dozen browsers is just painful and horribly time consuming. Watching the load times increase because of the increasing volume of CSS and Javascript that is required to try to make things work is absolutely the worst way to spend time.
Is that really the best that we can do? Are we so blinded (or dumbed down as other acquaintances have observed) that the current state of affairs is tolerable? Does anyone want to constructively discuss alternatives to the current mess? Does anyone care?
Be Seeing You
Technological Curmudgeonry
After a refreshing week off, I’ve been thinking about comments that I’ve seen on Twitter about the defenders of status quo vs. new/better ways of doing things. It’s always been somewhat surprising to me that the so-called “neck beards” of Computer Science seem to have already probed, and often solved many of the issues that we seem to continue to struggle with. A friend of mine just discovered that some research he’s been doing seems to have also been explored in 2004. Although it doesn’t invalidate anything he’s done, it does sort of bring home the point of a recurring theme that I’ve watched for many years, i.e., the lack of research into whether or not the “new shiny” of the day is really that new (or shiny, for that matter).
I’m always befuddled by whether it’s arrogance, ignorance, laziness, or some combination of those characteristics because we really don’t seem to be facing any new problems, per se, we just happen to solving the old problems with better hardware and different languages.
A recent panel on Javascript had a member make the proclamation that there was nothing that Ruby can do that Javascript can’t do, therefore Ruby is dead. Doubtless that played well to the audience, but the converse holds true as well and honestly doesn’t really matter. For the most part, anything that can be implemented in one language can be implemented in another. Javascript is the new kid on the block, and virtual machines like Google’s V8 allow it to do many things that were much more difficult and less portable while Javascript was confined to the browser. However, that does not mean that Javascript is the only language that people will ever need to learn, and doubtless we will see another language become the “new shiny” and the hype cycle will repeat itself.
I’d like to suggest a different approach. Embrace all languages, not just your favorite one, and make an effort to understand why the language was developed. Whether you implement anything “real” in the language or not, the process will cause your mind to expand and new possibilities will emerge that will make your code better in whatever language you are working in.
Oh, and don’t forget to see if anyone else has already poked at your problem. It’s always better to stand on the shoulders of giants.
Be seeing you…