html trick for wrapping long urls

These days, I spend a lot of my time working on mobile development (http://gardenbaysoftware.com).

In mobile development, screen space and layout are huge concerns. One challenge I've seen is how to display a long URL on a mobile device. In most cases you can just create a link and use some text-overflow techniques (text-overflow:elipsis). However if you really want to show the entire text of the URL, but have the invariable word-wrapping occur at the most visually appealing spots (after the forward slash character), it can be tricky. Not all browsers interpret the word-break properties similarly.

I came across a wonderful technique here: http://www.alistapart.com/articles/the-look-that-says-book/

Simply put, it uses a technique of adding a 'non visible space' character (&#8203) after each forward slash in the url. The browser will happily wrap the text on those invisible spaces. This can be done in javascript something like so:

url = url.split('/').join('/&#8203')

Just make sure you only add this to the visible portion of the text, not the actual href attribute.

It works like a charm, breaking text after each / character when needed.

Note: this technique does not work out of the box with a wordpress site, as wordpress mangles/processes the urls when rendering the page, attempting to encode the ampersand character in the url.

Ubuntu on the desktop - my experience

Approximately three months ago, I decided to take the dive and run Ubuntu as my primary desktop. I did it as an experiment, but have really quite liked the experience and I don't expect to move back to windows, at least for my regular day-to-day use. I'll likely keep a virtual instance of windows available for the times when I can't get a windows program to run correctly on Ubuntu, but so far I haven't missed windows at all.

Don't get me wrong - it's not been a perfect experience. But I'm an experienced software developer with a reasonable amount of Linux knowledge, so when faced with problems I had the tools to figure things out. That being said, I think for a lot of folks Ubuntu would be a really great alternative. So much of our computer usage these days is Web-based, and the modern browsers these days provide a really stable cross-platform environment for virtually all popular websites and needs. For those times when a windows program is your only alternative (or you just want to check something out), the 'WINE' windows compatibility layer does a remarkable job of getting a LOT of windows programs running natively on linux/Ubuntu.

One thing I quite like about the Ubuntu experience is the Unity desktop/launcher - it has some great easy-to-use features, such as multiple desktops, and easy task switching with previews. When I'm doing web development, it's not unusual for me to have 10 or more windows open at the same time, so those features really help me organize my workspace.

I still occasionally find myself 'searching' for the right way to accomplish some minor task (like restoring a minimized window), but I recently found this great 'cheat sheet' for Ubuntu which I highly recommend Ubuntu users to review and experiment with the features highlighted. Here's a direct link to the document - I couldn't find a link to the document on the author's blog or I'd have sent you to his blog posting directly...

New blog platform

Well, I finally gave in and updated the old blog to WordPress. I was able to export the old blog posts into WordPress, but it did require a fair bit of editing of things like post dates and statuses (draft, published, etc). It also did not export comments. Seeing as I only had a few comments :), I wound up adding those by hand, which didn't update the date/timestamps. Seeing as I've already taken down the old blog, it's kind of tricky to figure out the old datetimestamps for those comments...

The biggest remaining issue is that not all of the URLs and slugs match the old posts perfectly. Many of them are fine after tweaking the permalink settings in wordpress to match the old blog format, but wordpress has renamed some of the article name/slugs , and resetting those looks like a manual process...

ubuntu printer install

I got a new Lexmark Pro715 printer yesterday, but had some problems installing it in ubuntu. I finally got it working and thought I'd drop a note here for future reference.

tl;rd version

install the printer utility from support.lexmark.com, don't bother looking for printer drivers. After install, search for 'lexmark' in the dashboard gui, as the command-line install does not indicate how to run the utility. After install you must:

sudo chown root /usr/lib/cups/backend
sudo chown root /usr/lib/cups/filter

Details

Initially I was confused about what printer driver I needed to download. It seems that there are 'printer drivers' listed for red hat/Suse linux editions, but only 'printer utility' and 'scanner drivers' available for ubuntu. All of the documentation I could find indicated that I needed the generic debian driver (seemed the same as Suse, except packaged as .deb).

I successfully installed the printer utility (sudo dpkg -i filename) in case that included the drivers, but there was nothing to indicate what binary to run after the install. running a few of the candidates on the command line led to cryptic error messages. It turns out that you need to search for the utilty in the ubuntu dashboard, and execute from there. After the setup wizard completes, it will have installed the printer for you, and it will be available in the list of printers.

Printing failed when I first tried printing the test page, with a cups-insecure-filter error. I solved this by:

$ sudo chown root /usr/lib/cups/backend
$ sudo chown root /usr/lib/cups/filter

All is working fine now!

Dreamhost Trac misconfiguration - how to get authentication working for Trac on Dreamhost

Dreamhost is a great hosting company, and provides a lot of very nice 'one click installs' of common software packages. I sometimes use Trac (http://trac.edgewall.org/) for managing hobby development projects, and the Dreamhost one click install worked great, except when it came to setting up authentication (requiring login).

It is simple enough to set up .htaccess and .htpasswd files based on the Trac documenation, but authorization fails for all javascript, css and related files (prompting the user with multiple login dialogs). After much searching about, I found the solution to the problem here: http://discussion.dreamhost.com/thread-124412.html

Simply put: the installer misconfigures the trac.ini file for the htdocs_location setting. Rather than using a relative path, it uses an absolute path with full domain name, which causes issues with the authentication configuration when using .htaccess files.

The solution is to change:

htdocs_location = http://www.yourdomain.com/trac/htdocs

to:

htdocs_location = /trac/htdocs

of course substitue the correct/actual path to the htdocs folder if you chose a custom name/path for your Trac install.

Works like a charm!