Lars Pind

internet software, coaching, and entrepreneurship

Lars Pind - internet software, coaching, and entrepreneurship
Check out Coach TV, my video blog on happiness and personal development for geeks.

Quicksilver triggers for projects

July 27, 2006 · 0 comments

Quicksilver-triggers.gifQuicksilver triggers are God’s gift to mankind. They let you create global triggers for any action Quicksilver can describe.

I always work on a handful of TextMate projects at the same time:

  • a client project or two that I’m doing development or maintenance for
  • my GTD project that keeps me organized
  • PublicSquare
  • Another web service we’re launching soon
  • The Rails trunk for developing and testing patches to Rails, and for reading the source code (I do that a lot, I’d rather read the source than the API docs)

I recently got the idea of creating a set of Quicksilver triggers for these, so now when I’m doing coding and need to bring up the Rails source, I just hit ⌃⌥⌘R. Or when I need to check my To-Do, I hit ⌃⌥⌘G.

I find it much easier and faster than going to the recent projects menu, or keeping the project open but minimized. Just close it and open it again when I need it.

0 comments

[rails] Formatted URLs in SimplyRESTful

July 26, 2006 · 2 comments

It took me a bit to figure out how to use the formatted_XXX_url named URLs that the SimplyRESTful plugin generates for you. It’s not hard, it’s just not documented, either, and the code isn’t the clearest to read. In fact, I probably wouldn’t have noticed them if it wasn’t for Rick Olson’s Routing Navigator.

So if you have the normal URL for a user like this:

user_url(@user)
=> /users/1

You can say this instead, and it’ll give you the XML version:

formatted_user_url(@user, :xml)
=> users/1.xml

It’s quite simple, really.

By the way, if you want this to work for iCalendar format with .ics extension, you need to add this to your environment.rb, as it’s missing from Rails’ mime_type.rb (I’ll submit a patch once Trac is back in business):

Mime::EXTENSION_LOOKUP["ics"] = Mime::ICS

2 comments

Search Wikipedia with FUTEF

July 26, 2006 · 0 comments

Derek Gottfrid, who used to work on search for NYT, just launched FUTEF, a search engine for Wikipedia content. It’s looking nice, doing some faceted stuff, and at least yesterday it was snappy fast, too.

I wonder what the Wikipedia policy is on making money off of derived works of the Wikipedia content (the Google ads on the side).

Btw, I ask Derek (by proxy) about the name, and it turns out it’s computer-generated, based on length, number of vowels, Google search hits, and of course domain availability. That’s how real search people choose names. It’s an interesting method, though I wanted to know what it meant when I heard it. I wonder what it does for memorability. (via Christina.)

0 comments

Writing and designing, it's all the same

July 25, 2006 · 0 comments

A few hours ago, Christina Wodtke published an awesome article on how Strunk and White applies to design over on Boxes and Arrows.

And now Matt Linderman at 37signals wrote a post comparing rewriting of prose to rewriting of software.

The key here is that both writing and software/interface/web design is primarily about communication, which means two things:

  1. You gotta have something to say
  2. You gotta say it well.

I like how Matt talks about not just the rewriting, but also the larger concept of editing. It’s one of the philosophies underlining Christina’s and my upcoming product PublicSquare:

Writing is a collaborative effort.

It’s something that’s frequently lost in all the enthusiasm over blogging, but some forms of writing really benefits from a good editor. Like Matt says, small things you just bang out, but whenever it involves more thought and more explaining, your editor is your friend (or your friend is your editor).

0 comments

2 kilos of parmigiano

July 22, 2006 · 3 comments

In the 2 months since we came back from Italy we’ve managed to consume 2 kilos of parmigiano and 2 liters of olive oil. And both lost weight, btw. It’s interesting when you buy in large quantities so you get to keep tab.

3 comments

Is it unbearable?

July 22, 2006 · 1 comment

I love this comment from James Wheare over at SvN.

If I may be presumptuous for just a moment… When deciding whether or not to implement this feature, I expect the reasoning goes something like this:

Is this feature essential to creating and managing lists?
No.

Is it an annoyance?
Yes.

Is there a workaround?
Yes.

Is it inelegant?
Yes.

Is it unbearable?
No.

Does it get in the way of the core vision for this app?
No.

Solved.

JF’s response: You’re hired ;)

1 comment

DHH

July 21, 2006 · 0 comments

I like it that you can find DHH on Wikipedia by his abbreviation.

0 comments

REST for wives

July 21, 2006 · 0 comments

There’s nothing like a story to explain technical concepts. The beauty of the web stack is that all the elements are really quite simple to understand if they’re explained properly. A machine talking to another machine is mostly like some really rigid and dumb human talking to another really rigid and dumb human.

In this case, it’s Ryan Tomayko doing a nice job of explaining REST to his wife. This helps explain the big picure of all this RESTfulness. (Via Wikipedia, via Scott Raymond, via Riding Rails)

0 comments

Make no little plans

July 21, 2006 · 1 comment

Amidst all the buzz over Jeff Bezos investing in 37signals, the Daniel Burnham quote really stuck with me:

“Make no little plans; they have no magic to stir men’s blood and probably will themselves not be realized.”

I think I’m guilty of making a small plan here and there that never were realized.

So go out there. Make big plans. That goes for you, too, Jason and David. Congratulations, it’s been a fabulous spectator sport so far.

1 comment

A computer game where you win by relaxing the most

July 20, 2006 · 1 comment

Amazing, a computer game hooked up with biofeedback, where you win by relaxing more than your competitors. (Via Evhead.)

1 comment

[dk] LAUNCH: lensflair.dk - en blog om digital foto

July 20, 2006 · 4 comments

Jacob Bøtter og jeg har lanceret Lensflair.dk, et blog-magasin om digital fotografi for den seriøse amatør—folk som os selv, der har et digitalt SLR og gerne vil blive bedre til at bruge det.

Vi har allieret os med en håndfuld dygtige fotografer, så vi er selv meget spændte.

Check det ud på Lensflair.dk, og smid allerede nu vores RSS feed i din news reader, så du er med fra starten.

Og hvis du har ideer til indhold du gerne vil se, eller gode tips til historier, så send dem til os.

4 comments

Jim Whittaker

July 20, 2006 · 0 comments

Guy Kawasaki: “This is an MP3 recording of Jim Whittaker speaking at a Garage event in 2005. Jim is the first American to climb Mount Everest and the former CEO of REI. His topics include leadership, perseverance, and risk taking.”

Good stuff. Talks about the great things you can do if only you believe that you can (and then work on making them happen). Challenge yourself to greater heights with this MP3 recording.

0 comments

Assign a keyboard shortcut to ReCSS in Firefox on OS X

July 19, 2006 · 2 comments

When you’re using the ReCSS bookmarklet, it’s quite nice to have a keyboard shortcut for invoking it, so you don’t have to move the mouse around all the time. You’re typically already moving back and forth between your editor and your browser, after all.

In Safari, it’s easy. Just put it one of the first nine spots in the bookmarks toolbar, and it’ll automatically get a shortcut key of Cmd-1-9, depending on where in the sequence it sits.

Firefox doesn’t have this nicety, so you have to do it manually.

First, install ReCSS as a bookmark with a title of ReCSS. We need the exact name in a minute.

Go to your System Preferences, Keyboard & Mouse, Keyboard Shortcuts, click the plus sign, choose Firefox, and then enter “ReCSS” as the title of the menu item, and choose a shortcut. I’m using Cmd-Opt-R.

That’s it. This should give your productivity yet another notch upwards.

And if you’re not already using ReCSS, you’re missing out.

2 comments

RELEASE: Redirect Routing Plugin for Rails

July 19, 2006 · 15 comments

Here’s another simple plugin hot on the heels of my previous ExceptionTextable plugin: A plugin to add redirects straight in your routes.rb file.

First, to install say:

script/plugin source http://svn.pinds.com/rails/plugins
script/plugin install redirect_routing

Then add this to your routes.rb:

map.redirect '', :controller => 'events'

And now the root of your site will redirect to the index action of the events controller.

Why not just map.connect? Because map.connect causes the URL in the browser to stay at /, which isn’t very RESTful.

Note that you can also pass a string:

map.redirect 'lars', 'http://pinds.com'

Now /lars will redirect to my blog.

See the README for more details. Enjoy!

15 comments

Apple and Nike

July 14, 2006 · 0 comments

The Apple + Nike combo is now shipping.

Two thoughts:

  1. Add a heart rate monitor, and this could beat the hell out of Polar with their uber-complex approach to this stuff. I have faith in the Apple + Nike combo’s ability to make this simple. And beautiful. And easy to use.
  2. This explains why Steve Jobs abandoned our usual brand of sneakers for a pair of Nike.

0 comments

Dynamite for unessential constraints

July 13, 2006 · 0 comments

Martin Fowler: “If you present them with a constrained world, they’ll look at constraints we take for granted, consider them to be unessential, and create a world without them.”

And what a powerful approach that is. Let others work within the constraints if they so wish, while DHH and Kent Beck go for the high-value-small-effort wins in the imaginary world. (Via the Agile Planet feed.)

0 comments

RELEASE: ExceptionTextable Rails plugin

July 13, 2006 · 4 comments

I’ve released a plugin, out of my latest project, that will notify you by SMS when there are errors on your server. It is the same idea as Jamis Buck’s excellent Exception Notifier plugin, but specially designed for SMS in the following ways:

  • Messages are much shorter, making them more suitable for cell phones
  • Messages are throttled so you don’t get too many
  • It can be extended with alternative gateways

You can use it with both US-style email gateways, as well is Clickatell, a for-money gateway that can send to European-based cell phones. If you write other gateways, or have changes to the email one, which I haven’t actually tested in real use.

To install simply say:

script/plugin source http://svn.pinds.com/rails/plugins
script/plugin install exception_textable

See the README for more details.

Enjoy!

4 comments

Accepting Credit Cards Online

July 13, 2006 · 5 comments

Chris Campbell has written up a nice primer over on Particletree, and it completely mirrors our recent experience for isabont.com.

Initially, PayPal looked like the simpler, cheaper choice, because of the way they offer both merchant account and gateway in one. But it turns out that if you already have a regular business account at a regular bank, you can just get a merchant account on top of that from the same bank, and it ends up being cheaper than what you would pay at PayPal.

Next, the PayPal API isn’t bad. That is, what they call the “Direct Payment API” isn’t bad. That’s the part that corresponds to what Authorize.net offers, where your customer never leaves your site. This interface is described in just 4 pages (not counting the details of the API) in their integration guide.

But on top of that, you have to also implement the so-called express checkout interface, which is the one where the user makes a detour to the PayPal site. And you have to put the PayPal logo on your screen. And the express checkout interface takes up a whopping 24 pages in that same PDF. That gives you an idea of the added complexity on top of what you’d need with Authorize.net.

So we went back to the drawing board and went with Authorize.net, and we’re pretty happy with that. I just can’t see how what PayPal has to offer is in any way competitive with them.

5 comments

One-off mails with mailinator

July 13, 2006 · 3 comments

Interesting. Someone signed up for an account at isabont with an email address @mailinator.com. It turns out Mailinator a service for exactly this purpose, to provide a one-off email address, which you can check at any time, so you can click that email verification link, but which isn’t really yours, so you won’t reveal your real email address and thus risk getting spam.

Now I’ve had my email address published since 1998 or thereabouts, so I have to fight spam with spam filters, which, it turns out, works reasonably well—there’s a false positive here and there, but I can live with that. Email, just like regular mail, is inherently unreliable.

But mailinator lets you check any email@mailinator.com address, and they’ll store the mail there for a few hours. So if you send mail to linkfromlarsblog@mailinator.com, and then go check that email later, you’ll see that it’s there (and so will anyone else). Quite nifty, I have to say. A simple, good idea. Well done.

Of course, you’re now on your own wrt the service—you won’t get reminders, notice when your account expires, all that good stuff. But you have the choice.

3 comments

LAUNCH: isabont.com

July 12, 2006 · 3 comments

We’ve just launched the product I’ve been working on for the past 6 months. It’s not my own, it’s for a client, but it still feels real good.

The site is like a “personal information manager” (PIM) for job seekers. Something to help you craft a good resume and cover letter, send your application, keep track of when you sent what to whom, helps you make sure you follow-up in time, coordinate your networking activities—in short, all the things you need to make you look professional and organized.

All in all, I’m quite proud of it, I’ve done 95% of the coding, with Lance Arthur providing some parental supervision on the visuals.

Go sign up now at isabont.com.

3 comments

David and the CRUD

July 11, 2006 · 3 comments

Just finished watching David Heinemeier Hansson’s CRUD Keynote from RailsConf 2006. Good stuff.

I didn’t realize it until I heard the talk, but this actually solves a number of problems or itches I’ve been having in my latest projects, and I can see how focusing on the core operations really helps you uncover those elusive domain objects.

There’s so much to gain from improving your analysis of your domain, and from having the vocabulary to talk about it in a coherent and logical way. It really simplifies your software both for you and your users, lets you stop repeating things, which in turn lets you put more effort into the remaining software.

3 comments

[dk] 12" PowerBook 1.33 GHz til salg

July 11, 2006 · 0 comments

Jeg har købt en MacBook Pro, så nu vil jeg sælge min PowerBook. Specs:

  • 1.33 GHz G4 12
  • Superdrive
  • 1.25 Gb RAM (merværdi 1000 kr.)
  • 100Gb 5400 RPM Seagate hard drive ST9100824A (merværdi 1000 kr.)—normalen er 60Gb og 4800 RPM
  • Ekstra batteri (værdi 999 kr.)
  • Ekstra power supply (værdi 599 kr.)
  • Fona garanti (1 år tilbage, værdi 772 kr.)

Nypris inkl. ekstra tilbehør: 19.860 kr.

Pris: 9.990 kr.

Pris for læsere af min blog: 9.490 kr. (Husk at skrive at du har set den her.)

Sammenlign priser

Send mig en mail

0 comments

Do you still use a fax machine?

July 11, 2006 · 13 comments

In today’s world, a fax seems positively archaic, and so when I left the shared office building where one was provided, I decided I wouldn’t get one to replace it.

And it’s worked quite well, except for one business relationship: HostEurope. They’re a fine hosting company, offering excellent service and exceptional bandwidth at reasonable prices. Their only drawback is that they insist on using faxes.

When my bank changed my credit card and I needed to give them the new number, they refused to take the number over the phone, though they did accept to have it sent in cleartext over email, which I refused. So now I’m paying them the occassional overage, typically at 1-2 euros a month, with bank wire transfers.

Now I need them to add some RAM, and they insist on getting the order by fax. This time, I’m afraid I’m going to have to buckle.

What’s up with that policy? Isn’t it just a bit odd, archaic, even, for an internet business, a hosting company, no less, to have a fax-only policy?

I believe there are some legal implications, such as signatures transmitted by fax being legally binding, but given the services such as efax lets you transmit a scanned page as a fax, anyway, what’s the difference between delivering that scanned page by email and by fax?

What do you think? Do you still use a fax, and why?

13 comments

Remote IP lost when using Lighttpd + Pound -- use Lighttpd + Pen instead

July 09, 2006 · 2 comments

If you’ve tried following the latest advice on Rails server setup over at the Riding Rails blog, you’ll have found that it breaks the request.remote_ip by making it always return 127.0.0.1. Useless.

The problem is that Pound blindly insists on adding an X-Forwarded-For header to every request it passes, whether or not that header is already present. Consequently, it overrides the X-Forwarded-For header already added by Lighttpd, and information about the originating IP is lost.

The solution is to drop Pound and replace it with another proxy that handles the X-Forwarded-For header more intelligently. I’ve decided on Pen, where you can simply leave out the “-H” command line option and everything works. See the documentation for Pen + Mongrel for more details.

Another advantage is that there’s no funky configuration issues, like crashing without any messages when you leave out a configuration option that the documentation doesn’t say is required.

2 comments

How to get SMS notifications when your server is down (in Europe)

July 05, 2006 · 1 comment

I’m using the uptime monitoring service, which requires your site to have a certain URL that will return “success” if everything looks fine.

With that in place, go create an account at Clickatell or a similar SMS gateway. Folks in the US needn’t do this, because SMSes are paid for by the recipient, not the sender, but here, you have to use a gateway so you have someone to pay.

Now, finally, go to uptime and use the email sms@messaging.clickatell.com. Once created, go edit the parameters. Choose Periodic, and enter the following body for the email, using your own values for the different fields:

api_id:XXX
user:yourusername     
password:yourpassword
to:yourcellnumber
text:Yoursite.net is down

That’s it, you can now look forward to getting SMS messages in the middle of the night. Enjoy! (Thanks to Claus Rasmussen for pointing me to clickatell.)

1 comment

Two years ago today...

July 04, 2006 · 0 comments

... my last post at OpenACS.org.

Shortly before that, Guan had showed me David’s first slides describing Rails. Shortly after that, we asked David to come demo Rails to us. That was it, this was what I’d been looking for.

0 comments