Wednesday, April 30, 2008

Who Else Hand Codes HTML and CSS

My most recent project is constructing a public web application for the Historical Legal Documents kept by the Harris County District Clerk. While writing this public application, it is the first time I've put much thought into cross-browser compatibility, proving to be an interesting challenge.

In this project and others, I've often debated the merits of learning to hand code HTML instead of relying on a WSIWYG visual designers. Saying this, I was happily surprised to see this Q&A from the designer of the NY Times website, Khoi Vinh. They commented that they use text editors to design the site.
It’s our preference to use a text editor, like HomeSite, TextPad or TextMate, to
“hand code” everything, rather than to use a wysiwyg (what you see is what you
get) HTML and CSS authoring program, like Dreamweaver. We just find it yields
better and faster results.

As a hand coding side note, I would also fervently encourage learning to hand code SQL. I find complex queries and roll out scripts would either be severely crippled or not possible without the hand coded SQL knowledge.

Tuesday, April 29, 2008

Reading and Programming

Coding Horror narrows down a programming reading list to five. Many apply to software analysis as well as to writing code.
  1. Code Complete 2
  2. Don't Make Me Think
  3. Peopleware
  4. Pragmatic Programmer
  5. Facts and Fallacies
In addition to reading, I feel writing is important also. Preparing a blog entry seems to provide a great learning opportunity similar to teaching.

Monday, April 21, 2008

ViewState versus SessionState

I had previously adopted a practice of using sessionstate to persist data across the stateless web. Unfortunately, this practice carried many unanticipated consequences (such as timing out frequently).

I was recently introduced to the viewstate object, which stores variables in a similar hash-table like configuration. The significant benefit being that the viewstate is stored on the client, and will not timeout as long as the page remains open. Other benefits include the ability to expand to a web-farm web-server arrangement (this is not possible with a server stored variable), and a reduction in memory bloat on the web-server.

There are, of course, drawbacks. The most significant is page performance. This is because the viewstate variables are streamed to the client. This drawback should be reduced with the partial postbacks in the AJAX architecture.

Here is a simple example of storing a viewstate object. Remeber that like the sessionstate, the view state can store any serializable object:
ViewState("tagName") = "this Tag Name"

Dim thisTagName as String = ViewState("tagName")
Response.Write(thisTagName)

Tuesday, April 8, 2008

New Google App Engine

Interesting comments regarding the announcement of the new Google App Engine (it even has an IDE) from the inventor of RSS. His comment at the end is inspiration for new learning, "Python is the new Basic". Time to hit the books again.