Microsoft's Silverlight

Microsoft has announced details of their competitor to Flash -- and to JavaScript, and to ... It's called Silverlight.

To me the most interesting thing about it is that it allows developers to build browser-side web apps using Python and Ruby instead of JavaScript.

Silverlight apps can use a subset of the .NET framework. Embedded video can run at HD revolutions up to 1280x720.

It all looks pretty interesting. It'd be more interesting if it provided a 3D API; but so far I see no evidence of that.

Sun eyes a JavaScript alternative to AJAX

Sun eyes a JavaScript alternative to AJAX:

(InfoWorld) - Sun Microsystems is working on Web application development technology that presents an alternative to AJAX (Asynchronous JavaScript and XML), a Sun official said on Thursday.

The company's Project Flair is an open-source project now in development... A version of Flair for developers to experiment with is eyed for release later this year.

Small and simple, Flair presents a 'great vehicle for experimenting with [what] I guess what you would call, sort of, collaborative object development, that kind of thing,' said Ingalls.

'AJAX sort of deals with all of the old way of doing things. It makes it simpler ... but underneath it’s still all this junky HTML, Document Object Model, CSS, all that stuff, where 30 years ago, we knew how to do that stuff cleanly with a dynamic programming language and a simple graphics model,' Ingalls said.

'Flair takes us back to that simple model and adds the collaboration [and] Web access to it,' he said.

Anybody have links to more details on Project Flair?

Why it's called "good" cholesterol

Technology Review: Imaging Cholesterol Buildup in the Heart: " Normally, HDL passes through arteries and attaches to low-density lipoprotein (LDL), or 'bad' cholesterol, carrying it out of arteries to the liver."

'Course that's not what the article is about. Researchers have found a way to attach markers to segments of unstable arterial plaque, using altered HDL. As a result, they can better see where unstable plaque has built up in a patient and can better identify problems which increase the risk of heart attack.

Light Therapy Spares the Scalpel and the Chemo -

Light Therapy Spares the Scalpel and the Chemo -

Imagine you could treat cancer by taking a pill, then directing a laser light toward the location of the tumor. The growth would dissolve with no chemotherapy, and no harm to healthy tissue.

It might sound futuristic, but a select number of cancer patients already benefit from the method, called photodynamic therapy. An upgrade for the procedure could save thousands more cancer patients from the horrors of chemotherapy.

Although chemotherapy has improved over the past decade, the treatment still damages healthy tissue and causes other unpleasant side effects like nausea and a weakened immune system. The researchers hope their work will spare patients from chemo's ravages and even the surgery usually necessary to remove a tumor.

TI demos its movie projector in a phone | CNET

TI demos its movie projector in a phone | CNET

At the CTIA Wireless 2007 show, TI is providing public demonstrations of its digital light processing (DLP) 'pico' projector, a tiny movie projector that can fit inside a cell phone.

TI showed off the components and a prototype at the Consumer Electronics Show earlier this year to a few reporters. Now the company is touting a working prototype in a phone. The phone is fake, but the projector works.

I expect someday this is what laptop displays will look like. Why waste physical space and weight, provided you can find or create a flat viewing surface?

TextMate, Parallels, and Visual Web Developer 2005 Express Edition

I've been using TextMate for the past two years, and like it so well that I have a hard time adjusting to most other text editors. Even my old favorite, XEmacs, is now painful to use.

I recently started work on my first ASP.NET project. The customer wants the whole thing to be done with VB.NET -- another first for me.

Lots of bundles are available for TextMate, and among them is an "ASP vb.NET" bundle. Yippee! Since my Windows XP "machine" is a VM hosted under Parallels, I can develop my project in a shared folder.

[Edit 2007/03/06] On the Mac side I can use the Finder's "Network" sidebar entry to connect to my VM and mount the shared folder. TextMate sees it just fine. I get to use all of the toys at once.

Almost... I think it's because of filename limitations in NTFS, but I can't check out a working copy of my subversion repository into such a shared folder -- not from the Mac side. Trying to do so fails when subversion tries to check out a file whose name contains more than one period (".").

The simplest solution seems to be to to install the excellent TortoiseSVN under XP, and to check out the working copy from Windows. In order to avoid entering my ssh password 400 times, I've also installed PuTTY and used it to generate a private/public key pair for use with the subversion server.

Parallels really makes for some head-twisting fun. Recently I attended a web meeting using GoToMeeting, running in a Parallels VM. Instead of scrambling madly to keep notes on paper, I recorded the whole thing as a QuickTime movie using iShowU, running natively on Mac OS X. Let's see, that's a screencast recorded on a Mac, of a web conference running in a Win XP virtual machine hosted on the Mac.

Spotlight, LaunchServices and backup volumes

When I select a file in the Finder and right click to "Open With ->", the system pauses, my backup hard drive spins up, and I get a menu showing 5 or 6 duplicate entries for, say,

My backup volume is often online, so it's visible to LaunchServices and Spotlight, et al. Maybe this is the root cause of my problem. But I need to leave the backup volume online because it shares a hard drive with other volumes that I need.

What to do? Is this a problem with Spotlight? With LaunchServices? Regardless of Finder misbehavior, I don't want Spotlight indexing my backup drive; it's just a mirror of my boot volume. Time for some googling.

Spotlight Indexing

From ~stevenf: Disabling Spotlight for a Volume: To see if indexing is on for a volume:

$ sudo mdutil -s /Volumes/Backup

To get rid of the index for a volume and ensure that it is not re-indexed in future:

$ sudo mdutil -i off -E /Volumes/Backup

I've just performed these steps and will see if it works following my next backup.

I'm using SuperDuper to do periodic, full backups. Their forum says that SD will honor Spotlight indexing preferences for a target volume:

As of v2.0, when used with Tiger 10.4.3 or later... just add the volume to the Privacy tab of the Spotlight preference pane. We'll automatically ensure that that state is maintained, and all should work fine.

Of course I can't figure out how to add the volume to the Spotlight preference pane. I've tried dragging it in, but it doesn't show up in the list. Hence the above shell commands.

LaunchServices Caching

Since LaunchServices is already caching redundant references to my backed-up apps, with apparent disregard for duplicate (Unix) pathnames. So I also need to clear its cache. I've used these steps:

$ cd /Library/Caches
$ sudo rm*.plist

I've also restarted my system, since I didn't know whether it would suffice to log out and back in, or to simply kill launchd from within Activity Monitor.

Just now everything is looking good.

Installing mod_python for Python 2.5 on Mac OS X

Django wants to be served from behind Apache, using mod_python. I want to use Python 2.5, but the MacPorts/DarwinPorts mod_python port wants to use Python 2.4.

I downloaded mod_python 3.3.1 from the mod_python downloads page and was able to install in a few easy steps:

$ ./configure --with-apxs=/opt/local/apache2/bin/apxs
$ make
$ sudo make install
$ sudo vi /opt/local/apache2/conf/httpd.conf

# Add this line
LoadModule python_module /opt/local/apache2/modules/

Then restart the web server.

All of the warnings in the mod_python README about Mac OS X 10.2.x and Python and libtool and static libraries appear not to matter for OS X 10.4.

Testing w. Django

To test the installation I set up a virtual host pointing to my Django app, following the instructions in the Django docs.

The hardest part was realizing I needed a virtual host (the IP address for which I hardwired into my /etc/hosts file). That was the easiest way to let my app continue to use its absolute URL paths; learning how to adapt to different installation "mount points" looked a bit harder.

The next hardest part was putting the subversion workspace for my project where the web server user (www) had permission to traverse to it.

Integrating MacPorts Apache 2 with System Preferences

Just returned from PyCon 2007, and wanted to try out a few of the new web frameworks tools I'd seen. To get started I needed to be running my own installation of Apache, instead of the system default installation. The latter does not AFAIK include sources, and that makes it difficult to add things like mod_fastcgi.

Install Apache 2

I used the MacPorts/DarwinPorts version of Apache 2:

$ sudo port install mod_fastcgi

Configure /etc/hostconfig

Following hints from elsewhere on the web, I tried to ensure Apache 2 would start at system boot by adding this line to /etc/hostconfig. (Haven't tested this yet.)


Fake Out System Preferences

To tell System Preferences Sharing->Personal Web Sharing to start Apache 2 rather than the system default Apache 1.3:

$ cd /usr/sbin$ sudo mv apachectl apachectl-1.3
$ sudo ln -s /opt/local/apache2/bin/apachectl apachectl
$ pushd /opt/local/apache2/conf 
$ sudo cp httpd.conf.sample httpd.conf
$ sudo vi httpd.conf
# Add this line somewhere near the DocumentRoot directive
PidFile "/private/var/run/"

Move Static Content and CGIs

I made sure System Preferences was able to start the new web server, and then double-checked that I actually was getting content from my new document root :) Then it was time to move static content from /Library/WebServer/DocumentRoot to /opt/local/apache2/htdocs, and cgi-bin executables from /Library/WebServer/CGI-Executables to /opt/local/apache2/cgi-bin.

Copy CGI-Bin Configuration Directives

Finally I had to copy the configuration section for my Trac projects to /opt/local/apache2/conf/httpd.conf.

All done.


Oops, not quite. I want the log files to be under /var/log/httpd, where expects to find them. So CustomLog and ErrorLog need to be fixed up in all of the *.config files under /opt/local/apache2/conf/.