Tuesday, December 29, 2009

Designing Queries: A user interface challenge

Old problems never die, they just come back in new forms.

I'm working on how to design an extremely usable and flexible user interface for a query tool. The challenge is how to enable the user to write complex sql queries while scaffolding them in a way appropriate to their existing knowledge. This reminds me distinctly of the work Brian Reiser did with Anderson on visual programming languages -- a system I worked on part time in grad school. From this link I've come up with a couple citations and I may now have to invest in an ACM digital library membership (which I've never needed before) -- but these problems are hard enough to want to see what other people have done.

A graphical programming language for an intelligent LISP tutor. BJ Reiser

A teaching system for SQL

Dynamic queries for information exploration: an implementation and evaluation

I also came across this useful link summarizing Shneiderman's Eight Golden Rules

Any other suggestions?

Thursday, December 10, 2009

Leaving a job you love...

Today is my last day at this job...
My new job is in a new city.
The headhunters still call, but I feel bitter about their calls, they should have called sooner, because now I have decided.
I am uncertain if it will work out.
Will I be able to shine in this new place?
Will it be fun?
Will my personal life interfere?
I can't wait to get there, but I don't want to leave here either.

They forgot to drop off my swag and for some reason, I really care.
They didn't invite me to the holiday party, and I am miffed, even though I'm leaving.
I really did love this job, but it was unrequited.
Time to move on.

Wednesday, October 21, 2009

Distributed Computing 101

Ok, so I've been a "thick application" programmer for as long as I can remember. In fact, that term wasn't invented until I had 10 years of experience building applications. Along the way, I built a couple of two tier systems. But clearly when I wasn't looking the world went crazy.

The new architectures are huge and complicated and I need to understand them better. So for at least a while, I'm going to be posting the best lessons I find on distributed computing right here. And maybe that will help someone else -- or at least it will help me. If you have suggestions please let me know.

Now when I'm stumped about a topic, I have a simple rule. Start with wikipedia.

http://en.wikipedia.org/wiki/Distributed_computing

Monday, September 7, 2009

Software Developer Mom's

I was having a moment of doubt about being the only software developer I knew who was also a Mom. It is hard to be the only one of anything. Thank goodness for Google and O'Reilly, after I found this page, I didn't feel as isolated and I even felt a little bit uplifted [even if the discount is long past].

As a Java developer, when I first learned Javascript, I wasn't too keen on the hodgepodge nature of Java's sister language. Now while retraining as a web developer, I'm needing to exceed expectations as both a Java and a Javascript developer. Here are some web pages I've found helpful for updating my Javascript skills.

Advanced Javascript Tutorials and Postings

Tuesday, June 23, 2009

CSS Webcache won't update

We just released several revised jsps to our website and a revised css file and Firefox is apparently hoarding our old css code. A clear description of the problem can be found here.

Workarounds to try:
  1. disable firebug
  2. expire caches more frequently
  3. rename the css file

Monday, June 22, 2009

Java Swing Developer converting to Web Applications Developer

Ok, so for 10+ years I've been cranking out (mostly) Java code, along with a couple of other languages (some VB, Delphi, C++, Lingo, Actionscript). I got this great job two years ago with lead responsibilities building a set of java desktop applications. Then the project ended (as expected) and I was asked to become a web developer. A great opportunity, and my boss is fantastic -- really really supportive of my learning processes. So I'm starting this blog to share the things that I've learned so it will be easier for the last 20 (desktop only) Java developers out there.

  1. Web Architecture is really different from desktop architectures. For one thing, it is all about picking which "framework" to use. In the desktop world we had a lot of fun creating our own, on the web, you've gotta use an existing framework. Expect to spend a lot of time grokking these architectures and getting up to speed.
  2. Java is only one small part of your toolkit (unless you use Google Toolkit, which I'm contemplating).
  3. You'll need to learn modern Javascript, AJAX, Stripes or Struts (more common), no-table html (use div's) and general JSP coding.
  4. Next you need to understand which of these different systems knows what when. Context is everything. You might have thought your JSP knew about an object, but it doesn't, ditto for Java.
  5. Iterations are typically shorter than for desktop
  6. And remember to test in multiple browsers...
Next up, ... useful links for a bunch of technologies.