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.
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.
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
If we/they/whoever expect people to click such links, how can we ever expect people stop clicking links like
It’s almost as bad as training people to give their email login and password to any site that asks them to.
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.
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?]
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?
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
- Show the book anyway, but not pay the affiliate? Or…
- Tell a potential customer to go elsewhere?
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.
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,
comparable to the Oxford English Dictionary. I first heard about this
dictionary when I was a young boy, and
my father made
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
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.