Andrew in his post "Reading user interface libraries" brings in elements of yesterday's discussion on The Battle to Build the Personal InfoCloud. Andrew brings up something in his post regarding Google and their Google Web Developer Toolkit (GWT. He points out it is in Java and most of the personal web (or new web) is built in PHP, Ruby [(including Ruby on Rails), Python, and even Perl].
When GWT was launched I was at XTech in Amsterdam and much of the response was confusion as to why it was in Java and not something more widely used. It seems that by choosing Java for developing GWT it is aiming at those behind the firewall. There is still much development on the Intranet done in Java (as well as .Net). This environment needs help integrating rich interaction into their applications. The odd part is many Intranets are also user-experience challenged as well, which is not one of Google's public fortés.
This whole process made me come back to the two differing worlds of Internet and Intranet. On the Internet the web is built largely with Open Source tools for many of the big services (Yahoo, Google, EBay, etc.) and nearly all of the smaller services are Open Source (the cost for hosting is much much lower). The Open Source community is also iterating their solutions insanely fast to build frameworks (Ruby on Rails, etc.) to meet ease of development needs. These sites also build for all operating systems and aim to work in all modern browsers.
On the Intranet the solutions are many times more likely to be Java or .Net as their is "corporate" support for these tools and training is easy to find and there is a phone number to get help from. The development is often for a narrower set of operating systems and browsers, which can be relatively easy to define in a closed environment. The Google solution seems to work well for this environment, but it seems that early reaction to its release in the personal web it fell very flat.
A posting about Top 13 reasons to CONSIDER the Microsoft platform for Web 2.0 development and its response, "Top 13 reasons NOT to consider the Microsoft platform for Web 2.0 development" [which is on a .Net created site] had me thinking about these institutional solutions (Java and .Net) in an openly developed personal web. The institutional solutions seem like they MUST embrace the open solutions or work seamlessly with them. Take any one of the technical solutions brought up in the Microsoft list (not including Ray Ozzie or Robert Scoble as technical solutions) and think about how it would fit into personal site development or a Web 2.0 developed site. I am not so sure that in the current state of the MS tools they could easily drop in with out converting to the whole suite. Would the Visual .Net include a Python, PHP, Ruby, Ruby On Rails, or Perl plug-in?The Atlas solution is one option in now hundreds of Ajax frameworks. To get use the tools must had more value (not more cost or effort) and embrace what is known (frogs are happy in warm water, but will not enter hot water). Does Atlas work on all browsers? Do I or any Internet facing website developer want to fail for some part of their audience that are using modern browsers?
The web is about being browser agnostic and OS agnostic. The web makes the OS on the machine irrelevant. The web is about information, media, data, content, and digital objects. The tools that allow us to do things with these elements are increasingly open and web-based and/or personal machine-based.
The web is moving to making the content elements (including the microconent elements) open for use beyond the site. Look at the Amazon Web Services (AWS) and the open APIs in the Yahoo Developer Network. Both of these companies openly ease community access and use of their content and services. This draws people into Amazon and Yahoo media and properties. What programming and scripting languages are required to use these services? Any that the developer wants.. That is right, unlike Google pushing Java to use their solution, Amazon and Yahoo get it, it is up to the developer to use what is best for them. What browsers do the Amazon and Yahoo solutions work in? All browsers.
I have been watching Microsoft Live since I went to Search Champs as they were making sounds that they got it too. The Live Clipboard [TechCrunch review] that Ray Ozzie gave at O'Reilly ETech is being developed in an open community (including Microsoft) for the whole of the web to use. This is being done for use in all browsers, on all operating systems, for all applications, etc. It is open. This seems to show some understanding of the web that Microsoft has not exhibited before. For Microsoft to become relevant, get in the open web game, and stay in the game they must embrace this approach. I am never sure that Google gets this and there are times where I am not sure Yahoo fully gets it either (a "media company" that does not support Mac, which the Mac is comprised of a heavily media-centric community and use and consume media at a much higher rate than the supported community and the Mac community is where many of the trend setters are in the blogging community - just take a look around at SXSW Interactive or most any other web conference these days (even XTech had one third of the users on Mac).
There is an open playing field for the company that truly gets it and focusses on the person and their needs. This playing field is behind firewalls on Intranet and out in the open Internet. It is increasingly all one space and it continues to be increasingly open.
I had been hoping to do a longer post on things I enjoyed in 2005, but the year end has been a little busier than planned (it is a good thing). There are lot of books that I picked up in 2005 (possibly in the 30 to 50 range). Two from earlier in the year I really enjoyed, John Thackara's In the Bubble: Designing in a Complex World was a huge favorite. It has brought to mind many changes that we need to address as people who design and build things. The second was Personal, Portable, Pedestrian : Mobile Phones in Japanese Life by Ito, Okabe, Matsuda (editors), which provided insight into the Japanese mobile culture. Some of the cultural aspects to dot translate to the United States, but it does a wonderful job of raising awareness for introspection into one's own culture. The book also does a fantastic job of providing history and technological change and differentiation in use based on product types.
The couple months I have picked up some books that I will really have an impact on me. Shaping Things by Bruce Sterling my be my favorite book of the year (with the Thackera a close second). Shaping things gets to where we are going with design in an innovative way. The design of the book is playful and makes for a quick read (unless it gets your mind wondering in wonderful ways, as it did mine). It is a book I could not more highly recommend.
I finally picked up DOM Scripting: Web Design with JavaScript and the Document Object Model by Jeremy Keith and was pleasantly impressed with the coverage of pages that degrade properly. This book is required reading for anybody doing JavaScript or AJAX so to stop the madness with sites that do not work across browsers or mobile devices. There are far too many sites that have developers that did not learn anything from the mid to late 90s and using JavaScript that are making unusable sites, pages, and applications today. If you are a manager of interface developers this is written in a manner that it should be easy to read and make sure the developers working for you are following these guidelines.
My favorite fun book was recently released book in Britain, Against the Wall by and about Banksy. This is a collections of Banksy's street art and wonderful sense of play. I personally find it a great book to break through conventional thinking and get to the other side. This book is not currently available in America, which is an utter shame.
I may do a posting on music from 2005 I really enjoyed in the next day or so. But on this note, I wish you a wonderful new year and great things.
Simon hit on plinks as an echo to Tim Bray's comments and variation on Purple Numbers (Purple Numbers as a reference). As I have mentioned before, page numbers fail us and these steps are a good means to move forward.
Simom has also posted in more plinks and in there points to Chris Dent's Big Day for Purple Numbers.
I have been thinking for quite some time about using an id attribute in each paragraph tag that includes the site permalink as well as the paragraph with in that entry. This would look like: <p id="1224p7">. This signifies permanent entry 1224 and paragraph 7 with in that entry. What I had not sorted out was an unobtrusive means of displaying this. I am now thinking about Simon's javascript as a means of doing this. The identifier and plink would be generated by PHP for the paragraph tag, which would be scraped by the javascript to generate the plink.
The downside I see is only making edits at the end of the entry using the "Update" method of providing edits and editorial comments. The other downside is the JavaScript is not usable on all mobile devices, nor was the speed of scrolling down Simon's page that fluid in Safari on my TiBook with 16MB of video RAM.
OS X Hints offers saving Safari tabs
There are some essentials to building Web pages that get found with external search engines. Understanding the tags in HTML and how they are (rather should be) used is important. The main tags for most popular search engines are the title, heading (h1, h2, etc), paragraph (p), and anchor (a). Different search engines have given some weight in their ranking to metatags, but most do not use them or have decreased their value.
Google gives a lot of weight to the title tag, which is often what shows in the link Google gives its user to click for the entry. In the title tag the wording is important too, as the most specific information should be toward the front. A user searching for news may find a weblog toward the top of the search ahead of CNN, as CNN puts its name ahead of the title of the article. A title should echo the contents of the page as that will help the ranking of the pages, titles that are not repeated can get flagged for removal from search engines.
The headings help echo what is in the title and provide breaking points in the document. Headings not only help the user scan the page easily, but also are used by search engines to ensure the page is what it states it is. The echoing of terms are used to move an entry to the top of the rankings as the mechanical search engines get reinforcement that the information is on target for what its users may be seeking.
The paragraph tags also are used to help reinforce the text within them.
The anchor tags are used for links and this is what the search engines use to scrape and find other Web pages. The text used for the links is used by the search engines to weight their rankings also. If you want users to find information deep in your site put a short clear description between the anchor tags. The W3C standards include the ability to use a title attribute which some search tools also use. The title attribute is also used by some site readers (used by those with visual difficulties and those who want their information read aloud to them, because they may be driving or have their hands otherwise occupied) to replace the information between the anchor tags or to augment that information.
The application I built to manage this weblog section is build to use each of these elements. This often results in high rankings in Google (and relatedly Yahoo), but this is not the intent, I am just a like fussy in that area. It gets to be very odd when my posting weblog posting review of a meal at Ten Penh is at the top or near the top of a Google Ten Penh search. The link for the Ten Penh restaurant is near the bottom of the first page.
Why is the restaurant not the top link? There are a few possible reasons. The restaurant page has its name at "tenpenh" in the title tag, which is very odd or sloppy. The page does not contain a heading tag nor a paragraph tag as the site is built with Flash. The semantic structure in Flash, for those search engines that scrape Flash. Equally the internal page links are not read by a search engine as they are in Flash also. A norm for many sites is having the logo of the site in the upper left corner clickable to the home page of the site, which with the use of the alt attribute in a image tag within an anchor link allow for each page to add value to the home page rant (if the alt attritute would have "Ten Penh Home" for example).
Not only does Flash hinder the scapeing of information the use of JavaScript links wipes out those as means to increase search rankings. Pages with dynamic links that are often believed to ease browsing (which may or may not prove the case depending on the site's users and the site goals in actual user testing) hurt the information in the site for being found by external search engines. JavaScript is not scrapable for links or text written out by JavaScript.
Mac OS X Hints offers an Intro to Java that interacts with AppleScript. This intro works with iTunes, but can work with any AppleScript available application.
This weekend I picked up Mac OS X Hacks by Rael Dornfest and Kevin Hemenway for O'Reilly Books. I have picked up a few new tricks and have some new shareware to look into. The price is very reasonable, which made it an easy decision to purchase. The book is well written and has been bed time reading and couch reading, which has not worked well for getting too many of the good ideas implemented, but that will come.
One interesting section (there are 100 sections) is a speach recognition section that incorporates Perl, AppleScripting, SOAP, speach recognition, and voice output. This contribution by John Udell was a very juicy tidbit that had me thinking of all the wonderful uses.
Luke Wroblewski has a must read article, Visible Narratives: Understanding Visual Organization published at Boxes and Arrows. The article shows the importance of and how to visually structure information to assist the user with finding and focussing on content they are interested in. This lesson is one that is often missed in Web site redesigns.
A visual presentation of information is an essential tool to have in your tool belt. Lack of a usable visual structure can hinder your users from finding the information they are seeking. Many users come to a new site and perform a quick scan of the information available looking for something to attract their attention as it relates to terms, visual cues, or a vocabulary that will get the user to the nuggets they desire.
The user's eye needs resting places to guide them or help the user jump from topic to topic until the user finds one topic or link draws the user (as the user believes) closer to the information. Visual organization help facilitate the user's scanning and reading.
If the visual organization uses HTML markup's header tags and CSS for presentation the information has an underlying structure. The underlying structure can be used to assist bots (non-human search tools that scrape sites looking for information) in finding information. The automated scraping or searching is augmented by the markup as the information in the headers is often given greater value and can help the information get consumed by users interested in finding and using the information. With a little bit of scripting a properly marked-up Web page can generate a table of contents. This visual structuring eases the reuse of information, which is always a benefit.
Apple Scripts for Safari is a good place to watch for helpful tools. I am finding there is not a "mail link" in Safari, well that I could find. I may take my first whack at AppleScript to scratch this itch. [hat tip Jason]
Matt makes observations of the state of severs and scripting deployments. I agree with nearly all of what Matt point out. Some of the reasoning behind the varying set-ups is for security reason's, others are to mirror configurations on other servers that had slightly different purposes. In all, what this needs is a solid documentation tool. PHP provides some of this with a function that prints out the build of the server that script resides on, this is usually the first task many of us perform on a machine. This however, is just the tip of the iceberg of the information we need.
This is part of the second and fourth element of the cornerstones of information application development (info apps need to be usable, maintainable, reliable, and repeatable). If a task is difficult to maintain and even harder to repeat there is some work that needs to be done to change the environment or the application.
Microsoft has given itself problems with ASP this past year or so as the next generation of ASP requires complete rewrites of your ASP code to work on the next version of server. The code is different enough that it will not port, it must be rewritten. This stopped ASP development to a large degree. Some folks have tried running ASP on UNIX with ChiliSoft, but that is only advisable as a patch until you can recode the application, as it is quite resource intensive and you adding another layer of interpretation, which never helps.
More Off the Top:
OtT Archives
OtT Categories (by alpha)
OtT Categories (by use)