Tech Blog

Jay's Technical blog

Moving Day...

19 December 2007
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

[Update 12/19/2007 1:30pm(est) : We are now fully moved in.... the fun of any system issues are now in our hands... I think I should be scared now... ] 

You may have noticed that our site has seemed sluggish since our humble beginnings back in November.  I won't trash on our hosting company (although I think they would deserve it... BTW, it's the same hosting company that CodeBetter.com started on, and we had similar issues)

Anyway, we moved to our own dedicated server.  Hopefully the ad revenue will pick up, so we don't have to fork too much out of all of our own pockets.

There's actually one more thing we need to do to complete our move and then we will be completely in our new home.

With the new site we will be introducing a new blogger, Tony Mariani (aka Tony Quest), and we are currently looking for some new talent (or old talent that wants to blog with us... you can even keep your old site and cross post some of your content here).  If you are new talent, we expect to be able to see some existing work from you.

Jay


Patiently waiting on Web 3.0...

18 December 2007
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

[Admittedly this is somewhat of a rant, but there is some technical discussion...]

Let me start this off by saying that I am an Ajax guy.  One of my specialties has been Ajax enabled web apps (and I have been doing them since it was called DHTML-enabled web apps or Javascript-enabled web apps... which means since 2000 --and probably before that).  Also, I really do have a love-hate relationship with Javascript.  It's true.  In one sense I really appreciate the niftiness of extending the language/object model (or overriding it) by simply adding functions to the prototype, or to the object itself.  It is very cool IMNHO.

BUT, I'm not all that sold on Web 2.0.  Now let me make sure you understand my own personal distinction (although I won't say I always speak like this).  Ajax is the communications model that uses JSON or XML and runs over HTTP using the XMLHTTP object and is used to communicate with a web page via Javascript.  Web 2.0 is the slick GUI controls that everyone is using to make their web sites have a richer UI (I won't say tht they are trying to make desktop apps... which is something I have said in the past).

I love a couple Web 2.0 libraries (besides the MS one which IMO is very raw... I love both ext.js and dojo), and don't hesitate to use any of them, except my own personal experiences seem to be telling me that this is not the answer... or that people are becoming lazy.

Yahoo Fantasy Football

So Eric, (our soon to be introduced new blogger) Tony, and I are all a part of a Fantasy Football League.  Yahoo built this really slick interface for choosing your players for each week.  It's all drag and drop and it looks really slick... they also have a slick looking (partially flash) app that if one wants to track the stats during games you can bring up (obviously I paid for this).  This sounds like it should be a really cool app to use...

You would be wrong.  The draft default suck (let's put it this way the 1st - 4th draft pickers happen to be in the playoffs right now... I picked 6th and my current position in the league is 6th). 

I could go on... One glaring issue that no fantasy web app has fixed for me is that the NFL teams like to hide when a particular player is hurt and they don't want to announce it until nearly game time.  As a fantasy owner I have to be online at around noon so that I can switch out players before the first game is played (at 1:00pm).  Very inconvenient...

To sum up, the problem is not web 2.0 in this case, it is the fact that their app has the Web 2.0 sugar when it should have better features.  BTW, I have had their Web 2.0 interface act really crappy, and don't even get me started on trying to use it with my phone (using Opera for Windows Mobile)... more on the phone thing later...

The Grandaddy of all Web 2.0 apps - Gmail

I hate to pick on Gmail.  It's actually the opposite problem.  Gmail's features really rock.  Lately, I have been encountering some oddities in the last couple weeks ever since the latest drop of FireFox (I think).  Gmail now has this annoying habit of crashing FireFox.  Maybe it's my browser (I do have the debugger turned off for Gmail, BTW), but it seems every day I have one point where I go to do an email send and the app goes out appears to send and displays a loading screen (and never comes back).  Browser is effectively hosed and I have to task manager kill it.

The point here is that I thought this stuff was supposed to be portable (To Gmail's credit they have a J2ME --mobile java-- app for a better experience on a phone... provided your phone has a J2ME environment (which mine didn't until recently).

A Myriad of New HTML Web technologies

What I am starting to see from MS (and I imagine other companies) is a myriad of new web (2.0) technologies.  MS recently release the CTP for the ASP.NET enhancements (including ASP.NET MVC framework), and Volta.  Both of which I believe will let you work with numerous non-MS Web 2.0 frameworks.  We are starting to see the a ton of these hitting us.

Java 1.0 got it right

Personally I think the problem (and I have said so for awhile) is not Ajax (the communications layer) itself, but in what we are attempting to do with it.  I'm starting to think that 10+ years ago when Java came out and they introduced the applet that they had a better idea.  Even Flash is starting to look like a better choice to me (although I have issues with their language).  Of course Silverlight is a big deal... Basically let's quit trying to do fancier HTML based apps and let's start building RIA apps whose main interface is something other HTML and whose foundation is something other than a scripting language.

I'm not saying that Web 2.0 is all garbage, but building a well-written, bug free app is realy, really, really, really (!!!) hard.  Mainly because there are differences in brwoser even today.  Those difference main end up in different methods for implementing standards.  It may be because MS or Apple decided to implement something in a flaky manner... it could be for a lot of reasons. When I load plugins into my broswer and that breaks something then IMO there is a problem with the fundamental approach to app building.

Phones...

One of the things spurring this post was I read a post by someone (I'm sure he'll recognize his work since I have received a comment or two from him here) who said that Silverlight is not the answer because it doesn't work on my phone...

I read that and thought "you obviously haven't done much browsing with your phone."  I have a decent phone for web browsing (I have a slideout keyboard and a rotating screen, and obviously a decent browser... mine even will report to the web site that it is a desktop, so I get the full Web 2.0 UI).  That said I can tell you that browsing on such a tiny screen absolutely sucks!

I think we have the communications layer... I just can't wait until we get a real UI.


Is it 80% and 20% or is 20% too high...

12 December 2007
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

A bit of Philosophy from me today.  I saw a couple posts recently that have had me thinking about something I've felt for awhile.  And not to go all elitist on you, but I want you dear reader to think about this.

The title of this post references a Coding Horror post called "The Two Types of Programmers."  Like myself Jeff is a bit of a philosopher (sometimes maybe too much for his own good).

Anyway, Jeff got a lot of readers riled up by this post.  So today I also saw this post by ALT.NETer Phill Haacked entitled "Composition over Inheritance and other Pithy Catch Phrases."  I try to stay out of the ALT.NET discussions (even though I use some of their tools).  I stay out for a couple of reasons - 1) I don't agree with everything, 2) my co-bloggers and I have agreed to stay positive (which can be a challenge for me).  Some of the finer points from Phil's post:

  "What I am against is saying that it applies in all cases...."
  "Blindly applying a 'best practice' is just as irresponsible as never applying a 'bets practice.'"

Hmm... sounds familiar...

Anyway, I want to talk about sloppy thinking or worse no thinking. Sometimes it seems that the community in general (and again I am not an ALT.NETer so I will stay away from that particular discussion) wants clear cut answers.  I remember reading Scott Hanselman once saying "Thou shalt always use MVC for building Web Apps."  Even if it's a trivial web app?  Hmm... it's that word "always" that is the problem for me (and others obviously).

So why bring up Jeff Atwood's post?  Well, because the heart of the matter is a human problem.  Don't believe me?

Well how should I vote in the next presidential election? Should I vote Republican? Depends on who you ask. I think the problem is that we all at times don't really want to think. We want to get within our like-minded cliques and let the group tell us what to do. 

Last night I was amongst a few of my "brothers" at a bible study (bear with me), and a political discussion broke out before the study. I was the guy hiding behind the coach throwing out a couple one-liners, but for the most part avoiding the discussion (I'm not exactly a conservative... nor am I exactly a liberal). What I heard was much of the typical drivel thrown about by the populists that we all listen to.  I heard the buzz words (like "Liberal Media" and "Oil Man").  As I am exposed to this stuff, it seems to me that there are 2 kinds of people.

Those that think hard on an issue and those that don't.  Those that don't and are very zealous are often called "fanboys." They exist strictly to push the views of the group... and not their own ideals or ideas. 

The same thing exists in the programming world.  .NET or Java?  You'll get some well thought out answers on that question... but there are always the guys who are really just fanboys stirring up trouble. 

The answer for me on .NET or Java is depends on the server as well as the app.  No one likes "depends"; people seem to think it's bad mentoring.  I feel that it's better to teach the rookie why something is a bad choice today and tell them when it will be a good choice... you teach them to think and produce solutions that make sense instead coding horrors that are built on a ton of "Best Practices."


Initial Volta Thoughts...

12 December 2007
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

A lot of new things are flying around in the .NET world.  We have all the new (released) goodness of .NET3.5 and VS2008, so there's still a bit to talk about there. And there are some new CTPs out there (most notably the ASP.NET Extensions which contains among other things ASP.NET MVC).  This article is actually my initial thoughts about something else: Volta.

An "Official" Script#??
Volta is a new way to create Web apps using any .NET language.  You tag (with attributes) parts of your app into tiers.  The Web tier gets translated into html and Javascript, and the other tiers get set up as services callable from the created javascripts.

The translation seems to work fairly well (although my first app resulted in Javascript trying to read the registry from an HTML page... but that was my own stupidity... not Volta's)

It all feels very much like Script# with attribute's added.  I guess the big difference is that Volta converts IL code to JS, so that makes it available from any programming language (not just C#).

Actually it smells like GWT (Google's Java to JS applications).  Although it seems like there's a bit more involved with Volta.

Initial Thoughts
I'm still wrapping my head around this, but my initial thoughts are that I still like Script# a little more.  I already think in terms of modules/tiers, so I tend to separate my code accordingly into separate projects.  To me, this seems to be allowing me to bring everything back into a single project (or at least to have multiple tiers in a single project)... which I guess there are other mechanisms like directories to separate tiers.

I guess another problem for me is learning yet another new programming model (albeit one that shouldn't be that hard to pick up on).  I will be blogging a little more on this as I find more time to experiment.

I know my thoughts seem a little negative, but I really am intrigued.  I have a goal to eliminate Javascript from my vocabulary.  And it's all my former co-worker George's fault.  It was his idea first.