software

You are currently browsing articles tagged software.

Thrift

Facebook, the social networking site, has released a critical piece of their infrastructure, code-named “Thrift” as Open Source:

Thrift is a software framework for scalable cross-language services development. It combines a powerful software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, and Ruby. Thrift was developed at Facebook, and we are now releasing it as open source

Those of you who aren’t software engineering nerds like me and haven’t spent the last year and a half elbow-deep inside one of the world’s largest service oriented architectures might not realize how huge that is.

Corner

When you set out to build a large distributed system, the first question you have to answer is how you’re going to glue it all together, especially if you don’t want to have to use the same language everywhere. You could use something standard like XML-RPC or SOAP, but XML is slow and sometimes inflexible. And you don’t really care about interoperability with third-party systems - you just want to be able to connect your pieces together. And what about server frameworks? Do you really want to have to implement all those annoying little bits like configuration and logging for every language you want to use?

What you really need is one standard framework for everything. Thrift provides this. Define your service APIs in a common language and the framework automatically creates bindings for every language you’d want to use, along with service code in your chosen language.

Very cool. If I manage to find some free time I’ll be sure to play with it some more.

Tags: , , ,

Quicksilver/Adium Away Message Hack

Update: My script no longer works with newer versions of Adium, but brnrdbrk was kind enough to update it for 1.3.

Quicksilver/Adium Hack

So I finally figured out how to write AppleScripts that hook directly into Quicksilver’s “text clipping” interface. For the longest time I’ve wanted to be able to set away messages from Quicksilver… and now I can:

using terms from application "Quicksilver"
    on process text ThisClipping

    tell application "Adium"
        set my status message to ThisClipping
        set my status type to away
    end tell

end process text

end using terms from It may not look like much, but I’m a happy boy. Put that into an AppleScript using Script Editor and save it to ~/Library/Application Support/Quicksilver/Actions. Restart Quicksilver, and you’ll be able to set any text you type in Quicksilver after the “.” command as your Adium away message.

The on process text terms has lots of other uses too. I’m sure I’ll come up with more.

Tags: , , , , , , , ,

550 “Sender verify failed” error with Monit and Exim4

Maybe this will save somebody else some time, because I just spend about 3 hours banging my head against the wall on it.

PowerBook Stickers

If you’re getting a “550-Sender verify failed” error when Monit starts because its trying to send you an email via SMTP to let you know it’s started (or if you’re getting that error for just about any other reason), make sure that the email address that the message is being sent “from” actually exists.

If “monit@yourhostname.com” doesn’t exist, your SMTP server will likely reject the message and cause you all sorts of trouble.

Tags: , , ,

lala - Whoa… this is cool

lala

So a week or so ago I discovered lala. It may just be the simplest and best dotcom idea I’ve seen in a long time.

I have CDs. You have CDs. In all honesty, I’m sick of most of my CDs. And you probably are too. I might not have listened to my Nirvana “In Utero” CD in 8 years, but maybe you’ve recently suffered a bit of nostalgia and you want to listen to them again. So why don’t we trade?

Within a half hour or so of me having my beta account I loaded a bunch of the CD’s that I knew I had into my “I Have” section and I’d added a bunch of CD’s I wanted to my “I Want” section. About an hour or two later I discovered that I’d had my first match and that somebody wanted my copy of The Clash’s “London Calling” (an excellent CD by the way). And simultaneously somebody was shipping me Jurassic 5’s “Quality Control”. And I was only out $1.

Too cool.

Update: If anybody wants lala invites, add a comment below and leave the email address you want it sent to. I have a bunch.

Tags: , , , , ,

Java Makes You Stupid

Java developers! This is a call to action!

Go pick up those dusty computer science “theory” books you decided to save thinking that maybe, just maybe, they might come in handy some day. Read them! Brush up on data structures, algorithms, and object oriented programming concepts. Practice big-O program analysis. Write some recursive algorithms. Review all those topics that you “forgot” because you thought you would never use them again.

I’m tired of screening Java developers who can’t tell me how the internals of the libraries they use are actually implemented. When computer scientists talk about “data structures,” we talk about hash tables, binary search trees, and linked lists, not java.util.Collection. We learned about program analysis in school because we were supposed to use it - if you can’t tell me about the runtime implications of the algorithms you choose, then you shouldn’t use them.

You got the degree, so you’re obviously not stupid. Now start using what you learned.

Tags: , ,

« Older entries