Mike Owens


Renaissance Hacker Extraordinaire (look at the ego on this one)

Filespanker LLC

April 21
Amanda

Amanda

+
Mattdude of Tomorrow’s Sandwich

Mattdude of Tomorrow’s Sandwich

April 17

Ubuntu 8.04/Xorg

Ubuntu 8.04 is awesome. I’m running a pre-release, the final release is 7 days from now.

Of the changes, the best is Firefox 3, plus the Ubufox extension which is installed by default. Totally different experience than just downloading FF3 onto 7.10.

I really do wish they’d just disable Tracker by default, though. Every Ubuntu user’s first experience now is, “Wow, everything seems nice, except the hard disk has been grinding in the background for 30 minutes, making everything dog-slow”.

Also, it seems like the Xorg guys are trying their best to make dual head support with multiple video cards impossible. I keep seeing all the awesome dual-head randr stuff they show off, but all of that stuff is totally incompatible with “Zaphod” mode setups (vs. dual head via a single video card).

I hear this is gonna change with xrandr 1.3, but I just went ahead and moved over to a single card setup.

+

VirtualBox

As a web programmer who runs Linux day-to-day, I use VirtualBox nearly every day for IE/Safari testing.

Years ago, I used VMWare, and from what I hear, it’s really polished under Linux these days. I haven’t tried it in a few years, but VirtualBox is awesome right out of the box.

Additional Points:

  • It’s actually packaged nicely, I click on a .deb in Firefox, and gdebi installed it in a few seconds.
  • The version that has all the features I need is open source.

However, they should GUI-ize the process of creating writethrough disks, which allow you to boot a VM from a real disk partition, now it requires a command line out of the manual. For those Googling, on Ubuntu 8.04, it looks like:

sudo VBoxManage internalcommands createrawvmdk -filename /home/mike/.VirtualBox/winxp2.vmdk -rawdisk /dev/sda -partitions 1 -mbr MBR/winxp.mbr

Where:

  1. The Windows partition in question is /dev/sda1
  2. winxp.mbr was created with install-mbr —force winxp.mbr. It creates an virtual MBR that bypasses Grub, so I don’t do something stupid like start the WinXP VM then select “Ubuntu” at the grub menu. This is optional, but makes me feel better. install-mbr is in the package mbr.
March 30

Dreamhost

Dreamhost is an amazingly hit-or-miss experience. For portfolio-ware sites, I have clients that don’t want to spend a lot (or even a little) per-month for hosting. On paper, Dreamhost seems great from a price/feature perspective. For one thing, I thought it was awesome that you could deploy Rails on a $5.95/m hosting plan, (not that I’ve tried this).

Filespanker is at Dreamhost, because it’s simple and static. And it’s amazingly fast. I couldn’t really ask more from a shared host.

Which is why I recommended Dreamhost for my newest client.

Apparently, we ended up on the wrong machine. Servicing the initial request (Waiting for… in Firefox speak) regularly takes 4 or 5 seconds. Even for static files. This puts me in a tight spot, because I spoke pretty confidently that “a simple Dreamhost plan” would handle their modest site just fine. Now we’re trying to find another hosting plan and cash in on the 90-day money-back guarantee.

Yes, I know how shared hosting works, and I’m not gonna harp on “overselling”. Overselling is required to run a competitive shared hosting service. The thing is, if that’s your game, you actually need to be able to automatically and transparently do things like migrate accounts between machines as needed.

Also, as bad as Dreamhost has been to me, they’re still head and shoulders above the worst hosting experience I’ve ever had to deal with: C I Host.

March 12

What some people don't get about JSON

Javascript is just one language that can parse JSON with a quick eval(). Python is another. Using JSON doesn’t expose you to any Javascript (or Python) security problems unless you actually are parsing it with eval(). I don’t even do that in Javascript anymore.

I keep reading comments from people who think parsing JSON would somehow have more security problems than, e.g. parsing XML, simply because JSON was “extracted” from Javascript. Even outside of the context of JSON-in-Javascript. Are these people under the impression that you have to fire up an interpreter to parse JSON? We’re not talking about m4 here.

Divorce JSON from Javascript in your mind. Don’t think “JSON was taken out of Javascript”, think “Javascript is a language which happens to use JSON as its literal format”. It’s just a quirk that JSON isn’t called PythON.

February 21
February 19

Outsourcing discussion

I’m working on a site that needs to have a discussion area on each page. The project isn’t about comments, so I don’t feel bad farming it out. Sorta how I don’t write log-analyzing code anymore.

Creating yet-another “comments” table would drive me crazy. Moderation. RSS. Nested sets. OpenID. All things I don’t want to have to deal with.

I think I saw Jef Poskanzer’s implementation first, a few years ago. Now there’s a half-dozen serious options.

All of these involve pasting a Javascript snippet into your page. When evaluated, it expands into a normal comment display list and a form. I don’t like the idea of the comments not being available to visitors without Javascript, but I’ll get to that in a minute.

After trying each and every one of these, here are my impressions:

Disqus

Pros

  • These guys seem the most open.
  • They have a REST API you can use to fetch all your comments.
  • On their developer boards, you’ll see a random guy saying “I need to do $this”, and a few hours later, a Disqus guy will pop up and say “I’ve added the $whatever configuration option, tell me if it works for you.”
  • All of the comments on your site are actually integrated into a proper forum. If you take the time to visit it, you’ll see a thread for each page which is disqus-enabled.
  • RSS support.

Cons

  • Actually submitting a comment in Safari 3 just spins forever.
  • No OpenID support. Not amazingly important yet, but it’d be nice.
  • The imported comment “weblet” is heavy. They even pull in Google Analytics. While developing my site, I have a fast page-refresh rate, and I got fed up watching the Analytics script spin around for 3 seconds in Firebug.
  • Speaking of Firebug, I was turned off by having to sift through all the random CSS and Javascript errors Disqus threw up to my console when included. I’m a developer, I need to use that space for my errors.
  • Email required for all posters. Not a deal-breaker, but I’d like to be able to turn it off.
  • On submit, it redirects back to your page with some variables filled in the query string. It looks weird having all that crap in one of My beautiful, REST-ish URLs. It also interfered with parameters my application was using. All the other services submit out-of-band, AJAX-style.

    I got around this by wrapping the form in an iframe. This opened another can of worms, which I spent 4 hours testing in every browser.

I think with the attitude they have, they’ll be successful. Disqus will probably be the best option after a few months of technical refinement.

Intense Debate

Pros

  • RSS
  • OpenID support (seems a bit beta)
  • Out-of-band AJAX-style submission
  • Smaller “weblet” footprint, loads pretty fast.
  • No errors cluttering up my Firebug console.
  • “Export Comments to XML”

Cons

  • “Export Comments to XML” is broken, returns empty document.
  • None of that cool auto-forum stuff, or even a plain HTML page I can point to that contain all the comments.
  • Occasionally just doesn’t work: undefined reference to showReply, etc. Fixed with a reload.

I also tried the JSKit comment widget. JSKit makes you confirm that you own a site by creating a file under the domain, or inserting a special tag in the source of the main page. My site is sitting on my local network, and not available to the internet at large yet, so that was a no-go.

Right now I’m developing with Intense Debate, on the assumption that they’ll improve in the next month or so. The Safari bug was a deal-breaker for Disqus, but if they were to start marking off the cons in my list above, it’d be a no-contest decision.

February 11
January 11
Toilet Ducks: Some disgusting toilet ducks I found

Toilet Ducks: Some disgusting toilet ducks I found