Toxic Elephant

Don't bury it in your back yard!

Creating My Own URL Shortener

Posted by matijs 11/04/2010 at 12h22

Because URL shortening services can go away at any time, I decided to install my own. In the spirit of your-own-dogfood, and to make hacking it as enjoyable as possible, it had to be in Ruby (this ruled out YOURLS, which otherwise does exactly what I want). There are tons of URL shortening projects in Ruby on GitHub. Unfortunately, they all lacked one feature: password protection for the adding of URLs. In the end, I picked a nice simple one and changed it to my liking. The result can be found in my fork of turl.

Why is this safer than using one of the existing services? The reason tr.im went under is that they couldn't make it pay for itself, and there was a lot of abuse from spammers. Both problems are absent for my own service: I don't need to make any money off of it, and I'm the only one who can create new short URLs.

Some observations on developing this software:

  • For a small project like this, putting everything in one file is very, very nice. Ramaze allows you to do this (as do other frameworks), Ruby on Rails does not. I wonder how seamless the transition is if your project starts small like this and then gradually becomes big enough that you need to split it into different files.

  • Ramaze's documentation needs some love. Everything is documented well in principle, but with the split-off of the innate library, it took me ages to find the documentation for the a method and friends.

  • I really like the idea of [Sequel][sq]::Model where you define the table schema right in the model. I'm not sure how or how well it works with migrations, but for a small project like this, it's nice and clean.

  • Ramaze could use some more options for session storage. In particular, something file-based shouldn't be too much to ask for. I'm using the LocalMemCache option, and keep having to log in.

I really like Ramaze, and am eager to try Sinatra. I have been ignoring these more light-weight frameworks for far too long.

Tags , no comments no trackbacks

Exactly

Posted by matijs 02/02/2010 at 09h20

Daring Fireball quotes Zeldman:

Flash won’t die tomorrow, but plug-in technology is on its way out.

Exactly. And good riddance.

Tags , no comments no trackbacks

Training People to Just Click Anything

Posted by matijs 31/01/2010 at 12h18

Today I got an email from someone using a hotmail account. At the bottom was the following text:

Hotmail: Trusted email with Microsoft’s powerful SPAM protection. Sign up now.

The text “Sign up now” links to a URL that is completely opaque. Not in the old-style non-Web-2.0 company website way, where at least the domain name would tell you it’s a legitimate link to one of the company’s websites. No, it’s domain part was clk.atdmt.com.

If we/they/whoever expect people to click such links, how can we ever expect people stop clicking links like http://hotmail.com.xdfsf.cn/please/hack/me/totally?

It’s almost as bad as training people to give their email login and password to any site that asks them to.

Tags no comments no trackbacks

Some Links

Posted by matijs 26/03/2009 at 12h11

These can all be seen as being about art: Art of programming, video, sound.

Pascal Costanza’s Highly Opinionated Guide to Lisp. A real guide:

Something like “Lisp for experienced programmers”

Just what I needed. Convinced me that Common Lisp will be the next programming language I learn.

Datamoshing: from _why’s article (with examples), to a practical guide (itself datamoshed). The technique uses accidental properties of current video compression: The compression partially separates motion from color, so we can combine the color from one still image with completely unrelated motion from another clip. Perhaps this can be cleaned up by:

  • Fully separationg motion and color information (the compression algorithms only do partial separation)
  • Allowing partial recombining of the color, creating the possibility of a ‘fade-in’ of the ‘correct’ color, or other effects.
  • All this supported by your favorite non-linear editor program, of course.

This would give more control, but less interesting unexpected artifacts. It’s a trade-off.

And finally: sCrAmBlEd?HaCkZ!, automatically recreates one audio track (music, mainly), by glueing together similar-sounding pieces from another track (or set of tracks). Very impressive. Be sure to watch the explanatory video.

Tags no comments no trackbacks

Disqualified by Advertising

Posted by matijs 23/08/2007 at 16h36

I was enthousiastic about noobkit for about a week. Finally an alternative to the rough style of Ruby’s standard API documentation.

Until I actually wanted to use it.

Most pages have a full width block of Google ads above the main content. This is just too much. For some methods, the text is one line. The ad block then is five times as big.

I’ll go back to using the old version, thanks.

[Also, the search function is not geared towards API documentation, but instead uses a generic Google-like method. Why not highlight the search results that actually describe the method or methods with the searched name?]

Tags no comments no trackbacks

People Ready

Posted by matijs 25/06/2007 at 20h27

First, what the hell does Microsoft’s slogan people ready even mean? The campaign’s site seems to think it means you need people to run a business. Well, I don’t see any businesses around run by small rodents, so I guess they’re right. That’s some vision

So, what’s this about? Some bloggers got paid for writing about people ready, and people got upset.
Now, some defend themselves saying they didn’t endorse anything, and some defend themselves saying of course it’s an ad box (whatever an ad box is).

Well, I don’t think this looks like an ad, and it may not be an endorsement of a Microsoft product, but it is an endorsement of a Microsoft campaign. Oh, and look at the right of the page. It says “Click here to submit your own People Ready Business story”. So, that pretty much suggests that the content on the left was also submitted the same way. But of course, it wasn’t.

Luckily, at least one of the entries seems to have been written while drunk.

People readiness is something only people that are ready for people to be ready can be ready for.

All this via Mark’s translation.

Finally, back to the meaning: “people ready” means ready for people, right? Just like HD ready means ready for HD. Well, sort of anyway. But no, it means the people are ready. See?

Campaign lame.

Tags , no comments no trackbacks

Who told you to come to this book store?

Posted by matijs 10/04/2007 at 22h22

Say you’re an online book store, and you have an affiliate program. Of course, affiliates come and go. So, what do you do when, say, slashdot stops being your affiliate, and someone clicks on an affiliate link left lying around in an old book review? Do you

  1. Show the book anyway, but not pay the affiliate? Or…
  2. Tell a potential customer to go elsewhere?

Hmm.

Tags 1 comment no trackbacks

Resistance to Posting

Posted by matijs 25/03/2007 at 13h05

Daring Fireball talks about about an interesting post by Tantek Cilek about Human Interface Design. It’s true that there is some cognitive load in posting a blog entry as opposed to just answering What are you doing?

Partially, that resistance is good. Like forums, or blog comments, the Twitter entries are mostly like noise. A soothing background hum that lets you know other people are alive and going about their business. Unfortunately, that business is often uninteresting in the long run. So how long are we willing to store it, even for ourselves?

On the other hand, it is annoying that I have to come up with a title that covers this little post that wanders all over the place. Or that so many thoughts end up as half-finished posts in my drafts pile.

Tags , no comments no trackbacks

WNT Online

Posted by matijs 27/01/2007 at 12h40

As of today, the ‘Woordenboek der Nederlandsche Taal’ (Dictionary of the Dutch Language) or WNT is online. It is a massive dictionary of Dutch, apparently comparable to the Oxford English Dictionary. I first heard about this dictionary when I was a young boy, and my father made a documentary about it (sorry, those links are in Dutch). At the time, the WNT was not finished and already occupied several bookshelves. People had been working on it for 125 years, and it seemed it would not ever be finished. Since then, they’ve clearly come a long way.

[Unfortunately, their interface is in Flash. Why, why, why? Three of the ten questions in their FAQ have to do with problems caused by choosing Flash. That should have made some bells ring.]

By the way, I was alerted to this historical event by the invaluable Language Log. Be sure to also read the resulting discussions of Babel Fish name mangling.

Tags , no comments no trackbacks

Hurray! A Forum That Doesn't Suck

Posted by matijs 20/01/2007 at 10h28

Wow, compare the eye-friendly layout and colors of a Twelve Stone forum thread, to a completely random example of pbpBB.

There’s also a refreshing lack of the unwelcoming five *cannot*’s that grace nearly every forum I anonymously surf to.

Tags no comments no trackbacks