Sunday, October 21, 2007

Leveraging CSS opacity for help

{

A few projects ago a control was created (who exactly did it I'm not sure) for displaying dialog "popups" without new browser windows.  The technique was fairly straightforward: an IFRAME with an opacity filter and a div with the popup values. 

I wasn't a huge fan of the infamous "popup" which managed to come up in project after project, but the idea of using opacity on an IFRAME for an overlay of helpful information struck me about a week ago. 

The nRegex interface, which is quite straightforward to me, still seems to pose some confusion to new users and so I thought I'd use it might be suitable for a virgin implementation of the idea.  It's a little crude* but the idea should come across: use the 'How to use Nregex' button to display the overlay and it seeks to explain the various pieces of the interface.

The implementation is quite simple. There's an IFRAME with the following attributes:

frameBorder="0"
scrolling="no"
style="z-index:1000;position:absolute;
top:0;left:0;width:2000px;height:2000px;
FILTER:alpha(opacity=80);-moz-opacity:.80;opacity:.80;
display:none;"
src="infoFrame.htm"

Within the frame, a button hides the IFRAME calling a javascript function from the parent window. 

The easiest way to implement this is to use the skeleton of the interface in the *original* design.  I'm interested in comments on this approach - would it be feasible as a way to document an interface's functionality?

}

Wednesday, October 17, 2007

Podcasts I: Think Big

{

I remember my first conference well: I was 24, it was February of the year 2000 and I was in San Francisco.  I'd bartered my way there: I turned down a raise from my employer and instead asked for a "personal budget" for professional development. In a bookstore I'd seen an ad in the Visual Basic Programmer's Journal and thought it was an opportunity to develop skills and visit my favorite city at the time.

One keynote that week was delivered by the futurist Paul Saffo. He spoke about observing trends and thinking past the day to day problem solving we experienced in our lives as programmers.  I remember his anecdotal story: an engineer working in telecom had purchased land on hilltops knowing there would be a demand for communication towers on top.

It's been nearly a decade but with Saffo in mind I still try to get out of the "technical" and think on a higher order.  With that in mind here are a few podcasts from last week I enjoyed:

1. Scott Berkun - The Myths of Innovation

Scott was a developer and manager at Microsoft but broke away to write and mentor. Key takeaway on innovation: breakthroughs are less about epiphany and more about consistent effort and dedication. Scott's blog is here.

2. Guy Kawasaki - The Art of Innovation

I've been wary of Guy to this point; marketing guy, and Apple obsessed. I like Apple too but not enough to start to ignore the outside world. But not only did I laugh and get entertained, I learned a few things. Guy recommends companies (and I'll extend that to people too) need a mantra, not a mission statement.  He also has great ideas about releasing early and often.  Good stuff.
Guy blogs here.

3. Ned Gulley - MATLAB Programming Contest

John Udell interviews Ned on an interesting collaborative contest Mathworks puts on.  I always like hearing a John Udell interview since he probes with more than the passive interest than most people in conversation.  Someday when I'm not bleeding a lack of time I'll check in on the problems although I think my math skills are suspect (and rusty) enough to render it more fascination than practical utility.
Ned's "starchamber" is here. (I learned the meaning of that word from the Merriam-Webster Word of the Day podcast by the way)

}

Monday, October 15, 2007

NYT presents OPEN

{

A new boast puts perspective on the original New York Times tagline: "All the News That's Fit to Print." 

Now we have "All the Code That's Fit to printf()".

On a serious note, OPEN is a new blog written by and for developers. I'll subscribe for the moment even if all the code I'm interested in is usually in a language that doesn't support printf natively.

Courtesy of Aaron.

}

Saturday, October 06, 2007

C# 3.0 Screencast

{

I hope I can call him a friend - I was fortunate enough to sit a class with him and then ran into him at TechEd - but Tim Rayburn has an excellent screencast overview of C# 3.0 new language features.  For 46 minutes of your time, you'll not only be up to speed, but hopefully a little excited at the future.

 The first few items have more to do with improving the syntactial approach to things we're already familiar with:

1. Automatic Properties

public string Foo{get;set;}

2. Implicitly Typed Variables

var o = new SpecificType();

3. Object Initializers

class Test{

public string Foo{get;set;}

public string Bar{get;set}

}

var p = new Test(){Foo = "shaz", Bar = "bot"};

4. Collection Initializers

List<string> myList = new List<string>(){"foo", 'bar"};

List<Test> myList2 = new List<Test>(){

new Test(){Foo="foo", Bar="bar"},

new Test(){Foo = "blam", Bar="biff"}

}

The remaining items are better explained rather than just shown - I suggest you pay closer attention to the screencast:

5.  LINQ & Anonymous Types

6. Lambda Expressions

7. Extension Methods

(This was, as Tim assumed, my favorite piece)

Although Partial Methods were noted on the list, time seemed to run out on Tim. Stay tuned; it appears he is planning to continue doing screencasts.

}