Wednesday, February 25, 2009

Beta Safari 4.0 web browser is fast

With a new Javascript runtime, this browser does seem to be a lot faster with Javascript-rich sites. Try it yourself, but one warning: it overwrites your Safari 3 installation but the uninstall program works fine (I have done two complete install/uninstall cycles with no problems).

My computer use time is increasingly in the browser now, except for doing software development, some writing, and editing photos and video. Having a "snappier" web browser experience is great!

Saturday, February 21, 2009

Google’s canonical link tag

This is a good idea and I am glad that other search engine vendors are going to support it: allow dynamic web portals to specify a single URL for search engines to use for indexing dynamically generated pages that might have a URL, for example, ending with cruft not required to identify a specific web page (this is one of Google's examples):
product.php?item=swedish-fish&trackingid=1234&sessionid=5678
The point is that it is better for search engines to not have many links pointing to the same page and in this example allow a header providing metadata to search engine indexers to use a shortened and common URL like
product.php?item=swedish-fish
Again using Google's example, here is the addition to a HTML head element to make this happen:
<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish" />
This obviously saves the search engine companies resources (money!) and makes the user experience better by not having to wade through multiple search results referring to the same page. Of course, search engines try to remove duplicates for you anyway.

Other big winners, if this technique becomes widely used, will be small custom search and semantic web applications that will also benefit from reduced indexing costs.

Tuesday, February 17, 2009

The Sinatra web app DSL rocks

I had experimented with Sinatra several times before but today I really got into it. Setting up routes, handling GET/POST/PUT/DELETE, etc. takes very little code. I am only using Sinatra for publishing REST style web services (my own SPARQL endpoint server - I usually use the full Sesame library and web portal stack, but I wanted something leaner and more hackable).

Monday, February 16, 2009

Bruce Perens on the GNU Affero General Public License

How often do you read something that you totally agree with? Bruce Perens wrote an article that summarizes my own views perfectly. His take that the Apache 2 (gift), GPL 3 (force people to share), and the LGPL 3 (an "in between" license) that cover the spectrum of licensing requirements sounds right to me. I also agree that the GNU Affero General Public License covers an important need: force companies who only provide web services to also share back with the community.

When I get some free time (maybe by this May) I want to persue an open source business idea, and the AGPL 3 fits my needs perfectly.

Variety and competition are great for improving technology but I agree with Bruce that it may be time to consolidate to fewer open source licenses.

Wednesday, February 04, 2009

Web 3.0: not just Semantic Web and Linked Data, also interop on languages and platforms

I am working on a 'Web 3.0' book so I am having a lot of fun and extending my own knowledge on linked data and other Semantic Web technologies. However, when thinking about the evolution of the web, I don't think that distributed semantically enabled data stores are anywhere near to the whole story. The evolution of the web now coincides with a very large change in our world-wide society: a move to what I call the "great frugality" of value/production based society and economic systems. While I look forward to a world wide shift towards increased emphasis of local infrastructure (definitely food production, and when possible light manufacturing), the evolving web is what can still keep us connected both to friends and colleagues with the same interests and to potential business partners, no matter where we live.

A big part of a shift towards a value/production based Web 3.0 that combines material for human readers and linked business software systems is the reduction of cost through open source software. It is clear that when using and building highly distributed systems on the web platform that we need to take advantage of multiple platforms (Java, Ruby/Rails, PHP, Pyhton/Django, etc.) I noticed that IBM is releasing a new version of Project Zero that provides an integrated Java and PHP deployment platform. My personal platforms of choice are Rails and Server side Java so I prefer Sun's Glashfish/JRuby/Rails/Java bundle.

The point that I am making is that platform choice is often guided by what combination of major open source web application frameworks best fit our business needs. A secondary concern is how we merge and integrate applications like (for example) PHP based SugarCRM, Java Business Intelligence stacks, and custom Ruby on Rails applications.

The final piece of the "great frugality" is learning to live with and accept open source licenses like the GPL and AGPL that to a large degree forces the sharing of infrastructure software. This can be an expensive mistake: failure to take advantage of cost reduction from open software infrastructure, while gaining either competitive advantages or at least efficiency and profitability due to business processes and knowledge.

Sunday, February 01, 2009

More work on migrating to Ruby 1.9.1

I have everything running under Ruby 1.9.1 on my development system that I need. I may upgrade/migrate my production servers to version 1.9.1 in a week or two if everything continues to go OK.

The last problem that I worked around was a problem in Rails/webrick in dealing with headers+bodies if the bodies contained binary data. I locally patched webrick (my Google groups post).

I can't get mongrel to build with Ruby 1.9.1 so that is an issue since I usually deploy using nginx + mongrel(s) + memcached.