HTML has come a long way from the early days when I was working on Lynx. The latest and greatest features are pushing graphics and user interfaces that are approaching native code levels of complexity and performance. I'm particularly fascinated by these features because they represent the realization of a vision that we had in the early days of Netscape where HTML could take over as a complete application programing interface.
Full GUI support
One of the visions we had at Netscape was to create a platform that had a fully complete and functional set of graphical elements so that other developers could create any application imaginable. The foundational elements are reasonably well known and are included in all modern operating systems and major graphics libraries. The difficulty in delivering GUI primitives to the Web was figuring out a way to efficiently add them to HTML and to make them massively cross platform. When I say "massively cross platform" I don't mean just Windows and Mac. We were thinking about operating systems, screen sizes, resolution, and a whole bunch of other things. The web was designed from the ground up to try to be device neutral and that makes the implementation very hard. CSS is one technology that supports multiple displays by providing different layout and styling for different displays as required. Netscape as a company ran out of life before it was able to complete its roadmap for a full complement of GUI primitives, but it did make a good effort. A technology called XUL (pronounced Zool) was introduced that allowed a large variety of GUI to be expressed, unfortunately, XUL didn't move forward fast enough and was essentially dead on arrival. Simultaneously Microsoft smothered the market with Internet Explorer and tried its best to keep the Web from moving forward with HTML.
A while back I came across a group that was creating a set of tools that harnessed the new power of HTML5. The project is called D3 for Data Driven Documents. I saw what D3 could do graphically and wanted to try it out and do something personally useful with the technology. Since my current company Zetta.net is in the cloud storage space I decided to write a tool to visualize the size of the data on a computer hard drive. One of the difficult issues with a tool to analyze disk space is that it needs access to all of the data on a drive and that data is sensitive and private. I needed to figure out a way to scan the data and not violate a user's privacy. Standard HTML applications run in the cloud and couldn't do something like this without sending data to a server, but the new world of HTML5 can make everything happen locally in the browser.
|Tree map graph|
The finished project
Please check out the finished project if you are interested. I have made a video demo and a walk through to explain the use and features. There is also sample data to play around with that skips the scanning process. The code has been published as open source with a BSD license. This project just might come in handy for you the next time you run out of disk space and need to know what is using it all up.