Yow-Hann Lee - Software Happens

All things Computer Science, .NET & WWW

  Home  |   Contact  |   Syndication    |   Login
  136 Posts | 7 Stories | 38 Comments | 62 Trackbacks

News


Article Categories

Archives

Post Categories

About

Monday, November 03, 2008 #

Not having attended PDC 2008, I have been catching some of the recorded sessions online at: https://sessions.microsoftpdc.com/public/timeline.aspx.  The above screenshot from The Future of C# (after 4.0) opens up a can of worms. Nice!


Monday, October 27, 2008 #

 

 

Waiting to sign in to Windows Azure and seeing what it offers to Amazon’s EC2.

Catching the keynote at: http://www.microsoftpdc.com/. More information on Azure can be found at: http://blogs.msdn.com/cloud/default.aspx.

http://bluehoo.com/, with 121,476+ hoos found, as an example in action.


Earlier this month, Google released “Enhanced Snippets for Discussion Boards”. Below is an example in action:

Since their experiments here and here, Google has taken a different approach to presenting search results. On the other hand, Yahoo’s SearchMonkey was aimed towards customizing search results and presentation layers to the third party developer and users.

Several month’s after Yahoo’s approach, the search results space also has its version of an open approach vs. a walled garden…


Tuesday, October 21, 2008 #

Seattle Code Camp 2008 is once again held at the DigiPen campus. I never got around to recapping the one held earlier this year (v3.0) but have recaps of v2.0 here and here.

Check it out at: https://seattle.codecamp.us/default.aspx.


Sunday, September 21, 2008 #

Well, someone finally stepped up and wrote that article. The one where he/she puts a different spin on the same initiatives in hopes of better adoption. And it was none other than Roy Osherove. Like some sports that are a game of inches, so is software design and testability.

The article is everything that most folks in the industry know about but were afraid to mention or unable to put into a lighter context. Good read at: http://weblogs.asp.net/rosherove/archive/2008/09/20/goodbye-mocks-farewell-stubs.aspx.

All the tooling that came from TDD were intended to drive people into the “pit of success” as they say. Unfortunately, it meant a much steeper curve that most weren’t willing to adopt. There is a funny inertia with masses; even if the given situation is bad (albeit there may still be progress, I didn’t specify good or bad..), an old saying holds strong. “If it ain’t…don’t fix it”.

So by removing as much overhead and putting a spin on the terms, the aim is to drive the masses to those similar goals. Does it mean a smaller “pit of success”? Sure. But it also means the social aspects are really put to the test.


Monday, September 01, 2008 #

With so much press already here, here and here, it should be interesting to see just how much “value add” there is. Sure, the claim to V8 JavaScript Engine is appealing but how is this for ubiquity?

Another company did it bottom up several years ago as we now witness it being done top down.

 


Tuesday, August 19, 2008 #

What’s the big story of these olympics besides Silverlight enjoying a nice boost in user adoption? How about the folks behind all of the streaming videos, Limelight Networks?

Amongst all the hype, bits of high level information can be found at:

Limelight Networks: Why the Olympics didn’t ‘Melt’ the Internet. Ironically, this is from the same group with the original dramatized predictions.

Others at:

http://blogs.zdnet.com/BTL/?p=9693

http://www.contentinople.com/document.asp?doc_id=158320&page_number=2

http://news.cnet.com/8301-13860_3-10003752-56.html?hhTest=1

http://www.zatznotfunny.com/2008-08/limelight-networks-interview-streaming-the-olympics/

Albeit, this #2 CDN has had its legal troubles and not many papers are published revealing infrastructure details (as opposed to Akamai).


Saturday, July 19, 2008 #

All too often in the software industry, if you are one that follows the latest tools and technologies, you risk getting pigeonholed as the guy who only wants to play with the latest toys. One of the typical sayings being that tools only accelerate your rate of failure (or success)..blah blah blah…

While this is true for some technologists, there are those that look beneath the surface of a technology and truly connect with the problems the new offering is attempting to solve. Most of the time in doing so, you see it is as coal slowly transforming into diamonds. And it is in this potential transformation that excites you as a developer. On the other end of the spectrum, you have the typical “old habits die hard” stereotyped personalities.

In my own past entries, I had mentioned new technologies in passing without fully conveying these. The assumption was that the underlying paradigms were obvious to any observer. But recall the other end of the spectrum? You need to convince those guys you aren’t a bandwagon jumping hippie.

By conveying your focus on paradigm and fundamentals, you can shed more light upon the new technology. No, I’m not talking about the evangelist regurgitations, but the real meaty substance. And ideally, an anecdote or two about life before this “paradigm” and life afterwards. People love war stories; so if you have the scars, feel free to show them. :)


Tuesday, July 08, 2008 #

This is one of those things where you just get a tad lazy and forget to do; hence the title of this entry. Fiddler, like a lot of other tools (i.e. Search as an example), is generally good out of the box.

So while troubleshooting a particular item today where we were only interested in one response type, rather than going through the typical diarrhea of fiddler entries, I opted for filters. Along with the “Show only HTML” option in the Filters tab below, there is also a slew of other options to slice and dice that incoming traffic. This is one of the areas I enjoyed as the Fiddler builds progress.

 

 

If you’re looking just to ignore images (from say user generated content pages), you can just hit “Rules” –> “Hide Image Requests”.

Just like how traditional TV ad targeting is the lazy person’s way of doing targeted search ads (ok, so maybe that’s arguable), avoid laziness and target your fiddler sessions to what you really need. Anyway, that’s the back to basic of the day.


Friday, June 27, 2008 #

A picture is worth a thousand words. So in honor of a technology icon, I present the following picture:

 

What does the above image represent?

Of course, one can point out the irony in the image itself. The fact that the Start button is where you go to "Shut Down" your machine. But we'll let Andy Rooney's flame take care of that. Speaking of that, Andy represents a good portion of typical users. For other BillG videos over the years, you can check out the Microsoft collection.

Bill Gate's vision was to bring PCs and the power of computing to the masses. Obviously, this is an extreme nutshell of all the epiphanies on his credit list. But this was a double edged sword and generated the love/hate relationship you see today. Having a plate so full already, the polish became secondary. Yet the audience always craves more...

What is the polish?

The polish was in the UI and interaction design. One needs to look no further than the fanboy mentalities of Mac users. As an engineer and particularly non-UI centric developers, it becomes easy to forget that "polish" and the intended audience. After all, for a long time and even today, the interface has been treated as an afterthought or beneath a "real" engineer to work on.

Who are our users?

For typical consumer software and web applications, they are our grandmothers, fathers, mothers, aunts, uncles, sons and daughters.

And on the day BillG's exit, we are inspired by all his contributions and are reminded of the "polish" for your own software initiatives. Love him or hate him, he does inspire others either way.

Usability, Availability, Accessibility and Intuitiveness


Tuesday, June 24, 2008 #

In going with the old new saying, you sometimes remind yourself of an old new thing.

You know... the kind of thing that at one time that you know you knew but now has fleeted away thanks to the meat surrounded by your skull? And you know that you keep a blog to keep you from forgetting the very things you don't want to forget?  <--- How's that for grammar? Now repeat the above five times fast :)

Well, today's example is the very reminder that HTML alt attribute tags are not honored as tooltips in all browsers. http://www.mozilla.org/docs/web-developer/faq.html#alttooltip has describes this and the original intents. Darn you Internet Explorer and your mind corruption games!? Where have all my standards gone?

Let this be a reminder to self about memory lapses and being subdued by IE's ways and even going to the extent of installing IE8 Beta 1. Guess that is you get for using beta-ware, software happens.


Thursday, June 19, 2008 #

A bit of a coincidence recently to witness a slew of recent outages/scalability issues on high profile sites. First  it was the well-publicized Amazon outage, followed by Mozilla's Outage on Firefox 3 Launch Day, Google Apps outage and now Facebook's logged-in HomePage:

One of the publicized outages from last year was due to a site update. This spotted the last hour (perhaps a lot earlier than this) and the root cause release should be interesting.


Tuesday, June 03, 2008 #

You know the little watch window that you get in Visual Studio...well, in the scope of the software development world, this is what is currently in my watch window:

  1. Microsoft Project Codename "Velocity" - Distributed In-Memory Application Cache Platform

This one is huge for .NET. All things considered, it is arriving late to the party (Reference memcached and jcs) but it is worth watching how it all plays out. I am looking forward to trying out the optimistic/pessimistic concurrency models and other cache configurations. So while like the rest of the folks who are excited about Silverlight 2 Beta 2 this week, it is Velocity that is going in the watch window.

As a side note, this now also means there is another answer to BrainSharpener #10. Depending on the scenario, that could either be a good or bad thing :)


Sunday, April 27, 2008 #

The title seems a little out of place given that this is a predominantly .NET Oriented Community. But this was an opportunity to immerse myself in a different environment where people face similar challenges. As a side benefit, it was also a little nudge towards learning Python. The NLTK talk certainly helped this motivation along.

I have skimmed over .NET libraries in the past (i.e. SharpNLP); but there is definitive value in examining an earlier and more mature project. As evidenced by the presenter, Sean Boisen of Logos Bible Software, NLTK is not only a useful academia tool, it also serves practical purposes in his organization. His major push being that analytics (based off of well known standards such as Levenshtein distance, Zipf's Law) on large data sets were much more valuable than AI interpretations. Given the disappointments and progress in the AI field, I can understand his assertions. It turned out to be a light dose of Python as he didn't dig deep into the bowels of NLTK and more complex examples.

The other benefit of attending LinuxFest is in picking up on similar problems/solutions that the Linux community faces. While the technology stacks differ, the problems we face are inherently the same. A great example of this was a network protocols and security talk. Man in the middle and time-based attacks apply regardless of the stack. Another example was on the subject of caching via xcache and memcache. Other highlights included The State of Mono Project and Ted Haeger's presentation on Bungee Labs' Platform as a Service. It contained quite a bit of marketing buzz such as "build.theApp() != theCrap" but did unearth some interesting issues startups in the open source community face around licensing models in the cloud. It was an eye opener as I am not in the startup space nor have I given much thought to this area. Check out his blog post on Sharing Source Code In The Cloud.

This turned out to be an awesome learning experience. It has been a couple years since I had an Ubuntu (hoary hedgehog) server setup and ran on a LAMP stack. While I was definitely exposed to some neat tools on the Linux platform, the most important takeaway was one I sought for prior to the event. That is: Keeping focused on the problems at hand and not getting too entangled into a particular technology stack. These, along with Google TechTalks, Papers and MIT OpenCourseWare, are the types of things that can prevent one from having tunnel vision and becoming complacent.


Tuesday, April 22, 2008 #

Jeremy Miller, Ted Neward, Charlie Calvert in the Fish Bowl.

Fortunate to get the email invite after being on the waiting list, this turned out to be a tremendous experience with participants such as Martin Fowler, Brad Abrams, Jon Lam, Scott Hanselman, Phil Haak, Scott Guthrie (sneak peek), Roy Osherove, the list goes on.

Jeremy Miller convened a talk on the growing pains in dealing with an evolving system over the years. In his development of StructureMap, he highlighted some anti-patterns that caused him much grief (i.e. simple duplication leading to a great headache during refactoring) as well as some principles that saved his bacon (i.e. open close principle, tell/don't ask, double dispatch, etc). What intrigued me was that two of the most qualified individuals (Martin Fowler and Brad Abrams) in the open space did not dominate the discussion and focused on listening to the trials and tribulations of the developer. In a relaxed environment, I saw a level of respect for fellow developers.

The JavaScript Session convened by Eleutian folks churned for a bit with some philosophical debates. But it did turn out with people sharing their pains/experiences developing javascript heavy applications. One guy was highlighting his experiences starting off with a Ajax/DHTML application and subsequently scrapping that for Flex and highlighting pieces that were reusable.

What actually stuck out for me was a VS2008 plugin tool from Justin Angel. Though not yet refined, I'm hoping he makes this publicly available. I think we can all agree that the tooling for javascript is lackluster and this was an attempt to improve some of the DX during his Silverlight 1.0 development days. UX being User Experience; thus, DX shall be the Developer Experience. Yes, it's all about agility. Just like how users don't appreciate un-intuitive and unresponsive UIs, developers also seek that constant feedback mechanism. Nothing like an empty error list or a list of green lights to validate your development contributions.

I was somewhat surprised to see only 5 people in attendance for the PEX talk: Roy Osherove, two Microsoft employees, another attendee and myself. I suppose it's a hard sell when you have Scott Hanselman speaking at the same time slot. Albeit, this talk was no slouch either with the creator of MBUnit, Peli de Halleux and the guy who started this up, Nikolai Tillmann. I had heard about this project and was initially skeptical but was ready to get my hands on this at the end of their demo. As you can probably imagine, this isn't just a random test generator. There are attributes allowing you to specify your object of interest. As PEX avoids branching into BCL and testing the framework, I can see this going further to exclude in-house components. Regardless of this, Roy verified with Peli the ability to mock objects. This is the type of tool you can simply setup and distribute the workload amongst your spare machines. While there is a lot of potential here, there are also two major brick walls:

  1. Lack of support in multi-threaded testing as each test executes on a thread. Although, this problem isn't specific to PEX or its concepts and is a general debugging/testing problem.
  2. There is no ship vehicle for this nifty project. This means that only Microsofties can play with this on codebox right now. Productizing is a long a windy road (strangler application anyone?).

Other highlights included a conversation on Next Generation Architectures and another conversation on Scaling Agile Development. This composed of about 10 people describing their experiences running an agile shop and enforcing different strategies. Finally, Jon Lam's talk on IronRuby was a great example of testing suites in action. To maintain its Ruby Roots, the folks have taken the testing suites of Rubinious and made it pass against IronRuby.

Jon Lam on IronRuby

Aside from all of the above, personal takeaways from this conference include:

  1. Learning more about IronRuby and picking up on new idioms via reading the code of these native speakers
  2. More on Dynamo
  3. Playing with Framework Design Studio Brad spoke of
  4. Learning how to PEX IT!

Looking forward to more of these in the future.