Skip to content

Extending AWStats reporting

AWStats is a powerful, free web log analysis tool. I had a client that had some specific reporting needs–parsing urls retrieved and reporting how many times any document in a specific set of directories (but no other ones) had been viewed.

Luckily, AWStats is configurable enough to do this using the Extra Sections feature; in fact, there is an example in the documentation showing how to do exactly what the client needed. In fact, you can do a ton with regular expressions and AWStats. Basically, if the data is in the web logs, you can build a custom report for it.
[tags]awstats,custom reporting[/tags]

Comments on Yahoo! Mail storage and APIs

Check it out, I’m quoted in a piece about Yahoo! Mail in Infoworld, saying:

As far as I can tell, I’ll never need to delete another e-mail message, but if I did run into a limit, it’d be very easy for me to pull down the messages via the POP interface and store them on a personal hard drive

I stand by my words. I haven’t deleted a message for years, and doubt I ever will again. I’m not really sure what that means in terms of access–I’d be very interested to look at how many messages older than, say, a year, have been accessed. It does mean that I no longer need to decide whether or not to spend time filing/deleting/organizing mail.

I have been a premium user of Yahoo! mail for quite some time. I like the ‘beta’ JS intensive interface, though before I bought a new computer, it taxed my PC.

Personally, I think the bigger announcement is the opening of the Yahoo! mail APIs. Granted, only premium users get the full API, but I can imagine all sorts of neat applications built on that API. (The standard API doesn’t look that useful.) For example, you could build an external program to live out of your Yahoo Mail, like this fellow, but with offline capacity, or a simple blogging client where you leverage Yahoo’s superb rich client interface and platform to generate content, and then push it elsewhere.

CleanPrint in action

I wanted to congratulate FormatDynamics on a fine piece of technology: CleanPrint. Disclaimer: I have worked for them in the past. I know how hard they’ve worked on this, so I wanted to congratulate them.

To see it in action, visit this page, using IE, and do a print preview. See how the previewed page is formatted for print, including different graphics and advertisements? The printed page is dynamicly formatted from the content on the HTML page, with a minimum of intrusion on the page.

How is this different than a print stylesheet? The dynamic reformatting gives much greater control over the printed page’s appearance than a stylesheet, for one. There’s also an advertising component.

It’s a fine technology that will hopefully save paper and improve the user experience for all those people (many!) who print web pages. Nice job, guys!
[tags]web page printing, cleanprint, print advertising[/tags]

Does any other blogging platform approach WordPress?

This person’s answer is ‘No!’. Looks like someone in the blog platform world has declared that the WordPress community has learned the lessons the Struts community learned a few years ago: If you document an open source system, provide plenty of examples and a supportive community, you can distance yourself from your competitors. Make it easy for the developers (QT) to choose you!

He states:

…the blogging market is c.l.o.s.e.d. – as in no more room, and most importantly, no more competition… [emphasis his]

(Regarding the strength of Struts, as of today, Dice has 1965 jobs matching ‘struts’, versus 176 for ‘rails’, 1481 for ‘spring’ and 493 for ‘JSF’. Now, it’s been a while since I commented on web frameworks, but it’s a pleasant surprise to see Spring approach Struts. Yes, yes, my methodology for documenting the ‘distance’ of Struts from its competitors is somewhat suspect. I don’t have access to book trends data, and what I can find doesn’t break things down to the framework level. Thanks for caring.)

However, Spring looks to be on the rise; even the most popular packages and/or platforms can fall from popularity. Especially in technology, where “new” is often a feature. Hence, I disagree with the statement that WordPress has locked down the blogging application market. My point is not argued from a knowledge of WordPress, but rather a knowledge of technology and tech trends.

Via sogrady.

[tags]wordpress[/tags]

Article on web searching techniques

Searching the web is a crucial skill nowadays. I have tech friends who don’t buy technology books anymore because the quality of content for developers is so high. I still buy the occasional book documenting technology, but I also spend a lot of time searching the web for answers to tech questions. (Still using Google, though I’ve tried Yahoo! and IceRocket). One of the reaons I write this blog is to document answers I’ve found; another is to try to provide answers for others.

In that vein, here’s a great post on advanced Internet searching techniques. These tips seem especially useful when searching for terms that might be obnubilated (there’s my 5 dollar word for the day!) by ecommerce sites.

[tags]oblique search techniques[/tags]

Browser Caching

It depends on how your website/web application is used, but browser caching can give you fantastic performance increases for very little effort. Especially with a database driven site that is primarily read-only (many ecommerce sites), proper browser caching can decrease the number of pages you serve per user, which in turn increases the number of users supportable by a given set of hardware.

I found this caching tutorial to be very helpful in understanding just how to cache pages, as well as RFC 2616, which states in section 13.2.4 that the Cache-control: max-age header takes precedence over the Expires header (for the browsers who speak HTTP 1.1). This examination of the support of various browsers is also excellent reading. There’s also a cool tool called the Cacheability Engine which examines caching behavior of web pages, if you don’t want to look at the headers yourself (using Fiddler or LiveHTTPHeaders). I encountered occasional errors with the engine, but it was pretty neat to use.

[tags]browser caching[/tags]

Moving to WordPress

Well, I finally decided to move to a more modern blogging platform. I have used Moveable Type 2.64 for almost three years, but it was time to move on:

* I had turned off comments because of blog spam. But I’ve recently heard from several folks that they’d wanted to comment. I love comments and the discussion that ensues, so I wanted a more sophisticated commenting workflow.

* I wanted easy support for tagging posts. How Web 2.0&#tm;!

* General cruft from a 3 year old program: MT is well designed and I have had few problems with it, but I wanted to see what the current state of blogging software was.

I don’t know whether I could have had such features with a more modern version of Movable Type, but it certainly seemed to me that WordPress has more mindshare, plus it’s open source. And it is supported by my ISP. So, I moved from Movable Type 2.64 to WordPress 2.0.2. I followed these fantastic directions. and, for importing my 350+ entries with correct permalinks, I followed these directions.

I ran into only a few problems.

* The directions on codex.wordpress.org appear to be for a slightly different version of wordpress and reference import-mt.php, rather than mt.php

* I ended up having to edit my php.ini file to up the memory to import my 1.5 meg MT export. 10M wasn’t enough, 50M was plenty.

* The directions for preserving your MT search engine entries are great, but I ran into one problem. Because I have an old version of Apache, this RewriteRule did not work:

RewriteRule archives/0*(\d+).html /uri/to/blog/index.php?p=$1

Instead, I had to use plain old character classes:

RewriteRule archives/0*([0123456789]+).html /uri/to/blog/index.php?p=$1

Her’s my entire RewriteEngine entry:

RewriteEngine on
RewriteRule weblog/archives/0*([0123456789]+).html wordpress/index.php?p=$1
RewriteRule weblog/index.rdf /wordpress/index.php?feed=rdf
RewriteRule weblog/index.rss /wordpress/index.php?feed=rss
RewriteRule weblog/index.xml /wordpress/index.php?feed=rss2
# http://www.mooreds.com/weblog/archives/2004_10.html to
# http://www.mooreds.com/wordpress/?m=200410

RewriteRule weblog/archives/([0123456789][0123456789][0123456789][0123456789])_([0123456789][0123456789]).html /wordpress/index.php?m=$1$2

# http://www.mooreds.com/weblog/archives/cat_books.html to 3
RewriteRule weblog/archives/cat_books.html /wordpress/index.php?cat=3
RewriteRule weblog/archives/cat_java.html /wordpress/index.php?cat=5
RewriteRule weblog/archives/cat_mobile_technology.html /wordpress/index.php?cat=7
RewriteRule weblog/archives/cat_programming.html /wordpress/index.php?cat=6
RewriteRule weblog/archives/cat_technology.html /wordpress/index.php?cat=4
RewriteRule weblog/archives/cat_technology_and_society.html /wordpress/index.php?cat=2
RewriteRule weblog/styles-site.css /wordpress/wp-content/themes/ocadia/style.css
RewriteRule weblog/ /wordpress/

* Users I imported, even if I gave them the Editor role, weren’t able to edit posts they owned. I may figure this out later, but right now I just made every user an admin.

So far I’ve been very happy with my decision, if for no other reason than the built-in comment moderation and the UI advances. Let’s see if WordPress lasts for three years.

[tags]wordpress, weblog migration, moveabletype,[/tags]

Notes from a talk about DiamondTouch

I went to another University of Colorado computer science colloquium last week, covering Selected HCI Research at MERL Technology Laboratory. I’ve blogged about some of the talks I’ve attended in the past.

This talk was largely about the DiamondTouch, but an overview of Mitsubishi Electronic Research Laboratories was also given. The DiamondTouch is essentially a tablet PC writ large–you interact through a touch screen. The biggest twist is that the touch screen can actually differentiate users, based on electrical impulses (you sit on special pads which, I believe, generate the needed electrical signatures). To see the DiamondTouch in action, check out this YouTube movie showing a user playing World Of Warcraft on a DiamondTouch. (For more on YouTube licensing, check out the latest Cringely column.)

What follows are my loosely edited notes from the talk by Kent Wittenburg and Kathy Ryall.

[notes]

First, from Kent Wittenburg, one of the directors of the lab:

MERL is a research lab. They don’t do pure research–each year they have a numeric goal of business impacts. Such impacts can be a standards contribution, a product, or a feature in a product. They are associated with Mitsubishi Electric (not the car company).

Five areas of focus:

  • Computer vision–2D/3D face detection, object tracking
  • Sensor and data–indoor networks, audio classification
  • Digital Communication–UWB, mesh networking, ZigBee
  • Digital Video–MPEG encoding, highlights detection, H.264. Interesting anecdote–realtime video processing is hard, but audio processing can be easier, so they used audio processing to find highlights (GOAL!!!!!!!!!!!!) in sporting videos. This technology is currently in a product distributed in Japan.
  • Off the Desktop technologies–touch, speech, multiple display calibration, font technologies (some included in Flash 8 ), spoken queries

The lab tends to have a range of time lines–37% long term, 47% medium and 16% short term. I think that “long term” is greater than 5 years, and “short term” is less than 2 years, but I’m not positive.

Next, from Kathy Ryall, who declared she was a software person, and was focusing on the DiamondTouch technology.

The DiamondTouch is multiple user, multi touch, and can distinguish users. You can touch with different fingers. The screen is debris tolerant–you can set things on it, or spill stuff on it and it continues to work. The DiamondTouch has legacy support, where hand gestures and pokes are interpreted as mouse clicks. The folks at MERL (and other places) are still working on interaction standards for the screen. The DiamondTouch has a richer interaction than the mouse, because you can use multi finger gestures and pen and finger (multi device) interaction. It’s a whole new user interface, especially when you consider that there are multiple users touching it at one time–it can be used as a shared communal space; you can pass documents around with hand gestures, etc.

It is a USB device that should just plug in and work. There are commercial developer kits available. These are available in C++, C, Java, Active X. There’s also a Flash library for creating rapid prototype applications. DiamondSpin is an open source java interface to some of the DiamondTouch capabilities. The folks at MERL are also involved right now in wrapping other APIs for the DiamondTouch.

There are two sizes of DiamondTouch–81 and 107 (I think those are the diagonal measurements). One of these tables costs around $10,000, so it seems limited to large companies and universities for a while. MERL is also working on DiamondSpace, which extends the DiamondTouch technology to walls, laptops, etc.

[end of notes]

It’s a fascinating technology–I’m not quite sure how I’d use it as a PC replacement, but I could see it (once the cost is more reasonable) but I could see it as a bulletin board replacement. Applications that might benefit from multiple user interaction and a larger screen (larger in size, but not in resolution, I believe), like drafting and gaming, would be natural for this technology too.