These internal views of how the browser renders an HTML page are fantastic. Here is how the browser sees mozilla.org's home page
The OLPC laptop has the "see code" button. What it really needs is "see code working" button.
Bookmarklet for world clock meeting planner
A bookmarklet for displaying today's world clock meeting planner times in CA+RI+UK.
Keep only the account name and password digests
It occurred to me the other day that both the account name and the account password should be recorded in the database as MD5 digests. There is really no reason to keep a clear text version of either of these datum.
Web experience needs the equivalent of Screen's workspace persistence
My web experience needs the equivalent of workspace persistence found in Screen. I am too often working with old web applications that process data as you wait. You submit the form and the application responds with "Please wait." And I do. And, when there is a lot of data to process, the wait can be for hours. During this wait nothing untoward can happen to the network connection or the browser. If something untoward does happen then the processing has to begin all over again.
What the Screen web equivalent would allow me to do is to browse the web as I normally would. When I detach from the internet, the pages I have displayed or the ones that are in the process of displaying would be available again when I re-attach to the internet. It is important to remember that these pages are the pages retrieved when I was previously attached to the internet. They are not pages obtained by re-requesting them. Doing so would only begin all over again the long data processing.
With workspace persistence, I could start the data processing using the old web application and not have the worry about a network hiccup or browser crash losing my work.
A road to solving this problem would be an augmented proxy server.
What the Screen web equivalent would allow me to do is to browse the web as I normally would. When I detach from the internet, the pages I have displayed or the ones that are in the process of displaying would be available again when I re-attach to the internet. It is important to remember that these pages are the pages retrieved when I was previously attached to the internet. They are not pages obtained by re-requesting them. Doing so would only begin all over again the long data processing.
With workspace persistence, I could start the data processing using the old web application and not have the worry about a network hiccup or browser crash losing my work.
A road to solving this problem would be an augmented proxy server.
Enriching the search query
Most successful -- that is, used! -- online search tools have a remarkably simple query interface. The single input field is where your query interface needs to be. The wealth of your data is made available not by complicating the user's interface, but instead by automatically and intelligently enriching the query. Enriching the query includes the following, in no particular order,
- term extraction -- words, acronyms, dates, numbers, email addresses, etc
- term ranking -- some words are more important than others.
- hyphenated terms -- query for both with an without hyphens
- accented terms -- query for all extant variations of the term in the data (in the US, for example, accented characters are rarely used and so American's tend to drop the diacritics).
- term spelling variants -- "color" and "colour", etc
- term stemming and other transformations -- soundex
- numbers and number names -- "101" is also "one hundred and one"
- dates and times and date and time expressions -- "tomorrow" is "Thursday, 8 May 2008"
- social relationships between authors -- Smith and Jones are frequently co-authors and so a search for Smith should include a search for Jones (within reason)
- reference relationships between works -- the original linking
- professional vocabularies -- nurses and doctors don't use the same terms for everything
- lay vocabularies -- "cardiac arrest" is "heart attack"
- spelling correction of terms -- only use the extant terms
- broadening and narrowing of terms -- you say "tomato" and I say "solanum lycopersicum" or "vegetable".
- ...
David Coté and the South Kingstown Republican party's ineptitude
David Coté, of the South Kingstown Republican party, is once again in the local news. This time, he is not calling for the removal of several million dollars from the local school budget in his and the republican party's utterly inept effort to force competitive bidding on health care insurance for teachers, nor for successfully agitating for a referendum for a $500,000 cut, but instead recommending that the town would be better off giving the $10,000 budgeted to pay for the referendum to the Chamber of Commerce. Why would the town management, that has successfully held low the municipal cost increases each year to counter the ever increasing burden of the costs associated with federal and state mandated but unfunded educational programs want to give $10,000 to the Chamber of Commerce? The same Chamber of Commerce that recently spent almost $700,000 on new office space? The same Chamber of Commerce that is supported by the 700 businesses it promotes. David Cote should not be on page one of the paper, but in the funnies.
Where is sane political debate in this town? Clearly, not from the republicans. And clearly not from the democrates who continue to sit mute on the council.
Where is sane political debate in this town? Clearly, not from the republicans. And clearly not from the democrates who continue to sit mute on the council.
Data in HTML
Web pages have a remarkably long half-life. Data files, by comparison, have a significantly smaller one. When preparing data for display in HTML make sure to include in the HTML the data in a form that can be readily reused. Otherwise, you are doomed to screen-scraping again and again.... Now, where did I put my screen scrapper?
What is the danger of the non-passenger?
Let's assume that the TSA's procedures at the security check points are effective. That is, they can detect the danger associated with a single event -- a gun, a knife, an explosive. Perhaps they can detect the dangers associated with a small set of correlated events occurring during a small time window. But what about a very large set of apparently-random events over a very long time window?
As many passengers do, I checked-in online. I was without a printer and so was unable to print the boarding-pass. I have done this before and so knew this was not a problem as the automated kiosks at the airport will re-print it. Obtaining a boarding-pass is an anonymous act.
The boarding-pass is a complex document with many associated facts: the bar code, the passenger details, the flight details, etc. This set of coordinated details is challenging to forge. Solving a crossword puzzle is easier than making one.
The TSA uses none of this complexity at the checkpoint. The checkpoint just checks that the name on the boarding-pass matches the name on the driver's license. In a photoshop-world, how hard is it to make the name on the boarding-pass match the name on the driver's license? Creating 10s or 100s of such altered boarding passes would allow these 10s or 100s of non-passengers into the gate area.
These 10s or 100s of non-passengers don't stay in the gate area. They enter and shortly thereafter leave. The TSA doe not check the departing passenger's legitimacy of being in the gate area. Why bother to check people leaving the airport? What damage could they do?
The damage comes from the result of a large set of apparently random but actually correlated set of events spread over a long time window. Why bother to fabricate your weapon outside the gate area when you can fabricate it inside the gate area. Bring it in one spring, one plate, one activator, one chemical, etc per non-passenger over several days.
It took me less than an half-hour waiting at my gate to formulate this scenario. I hope the TSA already has this covered.
As many passengers do, I checked-in online. I was without a printer and so was unable to print the boarding-pass. I have done this before and so knew this was not a problem as the automated kiosks at the airport will re-print it. Obtaining a boarding-pass is an anonymous act.
The boarding-pass is a complex document with many associated facts: the bar code, the passenger details, the flight details, etc. This set of coordinated details is challenging to forge. Solving a crossword puzzle is easier than making one.
The TSA uses none of this complexity at the checkpoint. The checkpoint just checks that the name on the boarding-pass matches the name on the driver's license. In a photoshop-world, how hard is it to make the name on the boarding-pass match the name on the driver's license? Creating 10s or 100s of such altered boarding passes would allow these 10s or 100s of non-passengers into the gate area.
These 10s or 100s of non-passengers don't stay in the gate area. They enter and shortly thereafter leave. The TSA doe not check the departing passenger's legitimacy of being in the gate area. Why bother to check people leaving the airport? What damage could they do?
The damage comes from the result of a large set of apparently random but actually correlated set of events spread over a long time window. Why bother to fabricate your weapon outside the gate area when you can fabricate it inside the gate area. Bring it in one spring, one plate, one activator, one chemical, etc per non-passenger over several days.
It took me less than an half-hour waiting at my gate to formulate this scenario. I hope the TSA already has this covered.
Dirty feet
Once again, I was subjected to the ridiculous security procedures of the TSA. Wearing underwear, shorts, loose shirt and sandals I was obviously conveying weapons paraphernalia. Upon a sharp rebuke from TSA personal, I was told to remove 1/4 of my clothing to ensure the protection of the other passengers. Luckily, the 1/4 was only my sandals. And so, like many 10s of 100s of people that day, I trod through the metal-detectors spreading foot-borne bacteria between Rhode Island and Virginia. The terrorist need not trouble themselves with dirty-bombs when dirty-feet will do.
Raged and faded bumper stickers like the administration itself
I just returned from the heart of Republican territory -- the Hampton Roads area of Virgina. Most of the money in the area comes from military expenditures. It is a world there Obama bumper stickers are very rare. It is also, unsurprisingly, a world of Bush Chaney bumper sticks. Now raged and faded like the presidency itself. Holding on by a few patches of adhesives. John McCain bumper sticker are equally as rare as Obama's.
Jill Bolte Taylor's My stroke of insight
Jill Bolte Taylor's My stroke of insight is a remarkable talk about her experience of a stroke. Since my mother's stroke, I have read a number of accounts of stroke experiences and other helpful guides. None of these, however, compares to Taylor's rich and emotive retelling of her stroke. It brings me closer to a knowledge of my mother now. Well worth twenty minutes of your time: have a hankie ready.
What is a pseudo-systems guy to do?
I was in the early stages of writing a JavaScript layer on top of Servlets, JMS, and Derby running under Glassfish. The whole point of this effort was to give me a rapid development environment. I need this environment for two reasons -- and so do you if you are a developer. I need a platform on which to quickly try ideas. I need a platform on which I can deploy production quality implementations. If these are one and the same platform then I have less cognitive dissonance between play and purpose. It is also a fun activity. (Yes, I am a card carrying geek.)
But what is a pseudo-systems guy to do when Amazon has its developer tools (S3, SQS, EC2, etc) and now Google has App Engine? Why would anyone build an application on local infrastructure when these global infrastructure are so powerful and readily usable. I guess, I need to re-focus on the application that I wanted the infrastructure for in the first place. This is a good thing but the parting does bring sorrow.
But what is a pseudo-systems guy to do when Amazon has its developer tools (S3, SQS, EC2, etc) and now Google has App Engine? Why would anyone build an application on local infrastructure when these global infrastructure are so powerful and readily usable. I guess, I need to re-focus on the application that I wanted the infrastructure for in the first place. This is a good thing but the parting does bring sorrow.
Web applications and desktop integration
Much of my tool set is now housed inside the browser. The tools are web applications. My email is there. My calendar is there. My collaboration is there. My industry awareness is there. Etc. This web application suite is not uncommon. The trouble is that neither the Microsoft Windows desktop nor FireFox work together to provide me with a common application management experience. For example,
• The Windows "task bar" shows one task button labeled "5 Fire.." rather than one task button for "Email & Calendar", another for "Bloglines", etc.
• I can place URL shortcuts into the Windows "Start" menu which helps with organizing these tools. FireFox even suggests that I can drag-n-drop the URL from the browser's address bar into the start ment, but it fails to drop and so I must manually add the short cut.
• When I use the Email shortcut, for example, FireFox opens another browser tab to the URL even if already have the URL open on another tab. What I want is Email brought to the front just like an ordinary desktop application.
• FireFox does nothing to help me NOT replace my email tab or calendar tab with other transient content. When I am using the "Email & Calendar" browser I want all non-email and calendar content to be opened another browser window.
I want a browser with great desktop integration. There are some great FireFox extensions that make manipulating tabs easy but doing this is manual. They also only make FireFox better. The Windows desktop needs a new set of rules for integrating web applications. Mozilla's Prism might help. I suppose I could code something up with Greasemonkey but I really don't have the time and what time I do have I have other more interesting uses for.
How do you manage the web application and desktop integration?
• The Windows "task bar" shows one task button labeled "5 Fire.." rather than one task button for "Email & Calendar", another for "Bloglines", etc.
• I can place URL shortcuts into the Windows "Start" menu which helps with organizing these tools. FireFox even suggests that I can drag-n-drop the URL from the browser's address bar into the start ment, but it fails to drop and so I must manually add the short cut.
• When I use the Email shortcut, for example, FireFox opens another browser tab to the URL even if already have the URL open on another tab. What I want is Email brought to the front just like an ordinary desktop application.
• FireFox does nothing to help me NOT replace my email tab or calendar tab with other transient content. When I am using the "Email & Calendar" browser I want all non-email and calendar content to be opened another browser window.
I want a browser with great desktop integration. There are some great FireFox extensions that make manipulating tabs easy but doing this is manual. They also only make FireFox better. The Windows desktop needs a new set of rules for integrating web applications. Mozilla's Prism might help. I suppose I could code something up with Greasemonkey but I really don't have the time and what time I do have I have other more interesting uses for.
How do you manage the web application and desktop integration?
Typography animations
Very cool typography animations Pulp Fiction in Typography, Oceans Eleven Project and Duck and Cover.
Making visible intellectual work
I love how David Macaulay in this 2002 TED talk reconstructs how he worked out his book Rome Antics. I wish more people did this: So much of our work -- intellectual work -- with its seemingly random explorations, horrible missteps, beautiful tangents, self doubts and sublime flow is invisible and when it is visible the sights are no more than shadows. No wonder my kids would rather be dirt bike racers and spys. (Then again, sometimes, so would I.) So, watch David Macaulay's talk with your kids.
Technologies, talent, experience and, soon, data
More data usually beats better algorithms is an interesting post about more sources of data used together with simple algorithms do a better job then complex algorithms. Where this is interesting to me and my customers is that we need to find or develop data sets that better support the customer's users more successfully using the customer's site.
Most high-end web development shops are not yet at the point where their technologies, talent, and experience alone are not enough to turn a lead into a customer. However, we should be thinking about adding data to this mix now.
Most high-end web development shops are not yet at the point where their technologies, talent, and experience alone are not enough to turn a lead into a customer. However, we should be thinking about adding data to this mix now.
Value of chemicals found in the human body
The images show an original picture and a re-imagining of it using whole images found on Flickr. This has been done before at the pixel level where images are picked for their approximation to the pixel in overall color and brightness. Using a coarser granularity, however, produces a much more interesting image. Chris, my wife and artist, likens the result to the the value of chemicals found in the human body.Technically, it is also a fantastic use of Hadoop. Hadoop is an implementation of the MapReduce algorithm made famous by its use in Google's software.
Why are natural numbers still used for primary keys?
Most database products have a facility for creating unique numbers. These numbers are commonly used as the primary key of a record. You can often see this exposed as a small integer in the URL of a web page. This posting is not about the risks of exposing primary keys but rather about why natural numbers are still used for primary keys.
The observation I want to make is that 1234 can easily be mistaken for 1324. Suppose I have equal access to both the records associated with 1324 and 1234, what mechanisms prevent or at least hinder me or my agents using of the wrong one?
UPCs numbers are numeric but not natural numbers. Credit card numbers are numeric but not natural numbers. ISBNs numbers are numeric but not natural numbers. Each of these are examples of identifiers exposed as "numbers." These identifiers have useful characteristics. They are self validating so that some transcription errors invalidate the identifier. Some identifiers are self correcting. And in the vast universe of value for, for example, 13 digit numbers only a small fraction of the values are valid ISBNs.
As ever more systems record URLs as references to data we need to be ever more careful about our identifiers. Public identifiers should not be natural numbers. Perhaps any system of identification that does not require ordering by identifier should not use natural numbers. It is time that database products had a facility for creating and using unique identifiers that is as easy to use a sequence table or an automatically incrementing integer. Until then, add a check digit.
ISBNs are not stricly numeric as the check digit might be 10 and this is represented as "X".
The observation I want to make is that 1234 can easily be mistaken for 1324. Suppose I have equal access to both the records associated with 1324 and 1234, what mechanisms prevent or at least hinder me or my agents using of the wrong one?
UPCs numbers are numeric but not natural numbers. Credit card numbers are numeric but not natural numbers. ISBNs numbers are numeric but not natural numbers. Each of these are examples of identifiers exposed as "numbers." These identifiers have useful characteristics. They are self validating so that some transcription errors invalidate the identifier. Some identifiers are self correcting. And in the vast universe of value for, for example, 13 digit numbers only a small fraction of the values are valid ISBNs.
As ever more systems record URLs as references to data we need to be ever more careful about our identifiers. Public identifiers should not be natural numbers. Perhaps any system of identification that does not require ordering by identifier should not use natural numbers. It is time that database products had a facility for creating and using unique identifiers that is as easy to use a sequence table or an automatically incrementing integer. Until then, add a check digit.
ISBNs are not stricly numeric as the check digit might be 10 and this is represented as "X".
RI, go vote today for Barack Obama
My reasons for supporting Barack Obama are my two 8 year old boys. The next president is likely to leave office when they are 16. I want these years for them to see America at its best. I want them to see and experience leadership that rights wrongs. I want them to experience an optimistic America. I want them to participate in an optimistic America. I fully expect the next years to be difficult for this country. I believe that Barack Obama can lead us through this hardship.
Subscribe to:
Posts (Atom)