“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” - Brian Kernighan
Hiiiiilarious.

the epicurean dev...producing production for the people
“Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” - Brian Kernighan
Hiiiiilarious.
Snow Leopard? Jaguar, Tiger? Stop. Seriously, just call it 10.5 or 10.6 or 10.4 or whatever. I can never keep these straight and every time I run into some blog post detailing some weird library linking issue I have to go look up on Wikipedia which one is which. The dev SDKs are all named 10.4u and 10.5 and so on, can’t we just talk about those? I mean, if it’s some little kid who’s into cats then, fine, call it whatever you want, Funny Bunny, Cuddle Monkey. But some of these are pretty hard core C/C++ developers talking about linking in unix libraries and and frameworks, I want something a little more exact, you know? Same goes for you Ubuntu.
Welcome to funtown.
Step 1: Get Fink.
Step 2: Install glib.
Step 3: download GNU PCB.
Step 4: download GNU gettext (http://lists.apple.com/archives/unix-porting/2006/Feb/msg00094.html)
Step 5: configure, make, install gettext
Step 6: download LibDG
Step 7: configure, make, install libDG
Step 8: Add these lines to /sw/include/glib-2.0/glib/gutils.h (http://mmt.me.uk/blog/2008/12/31/ld-duplicate-symbol-mac-osx/)
#elif defined (__APPLE__)
# define G_INLINE_FUNC static inline
Step 9: go into GNU PCB and configure, make, install
Step 10: type pcb into a command line, away you go.
update –
Just use EAGLE
In my “yes, I’m sort of still reading Flash type news” it seems you can now use XMPP in an awesome way with Hemlock. And….em, that’s it. They made a really nice website for the name. And a few pictures. And a video. And lots of promises of gooey goodness. Sweet. So what is it? Check this:
Hemlock is a new web development framework, focused on allowing easy development of real-time, many-to-many apps. Hemlock follows the inspiration of Ruby web frameworks like Rails and Merb. It can be used for applications such as games, workspace collaboration and education.
Note Merb aka was-Merb-is-now-Rails-3.0 and Rails aka Rails. This leads me to deduce that this is a Ruby framework. Were I not so lazy, I would show you how to do XMPP with Merb right now, but instead I’ll point you to bablyon. There’s other options as well, but none that have as nifty a site Hemlock and none that are as Flash-ready-to-go, well, except OpenFire, or whatever it’s called now. Anyways, yay, Flash+XMPP for everyone! Using either Java, Ruby, or (shh) Erlang backends!
== edit -
I have misunderstood things, as shown in the comment below Hemlock is AS3. I’m guessing that means it’s an AS3 framework for parsing and sending XMPP. So that’s nice and I retract any snarkiness I may have projected.
Well, I’m in France on vacation. Semi-irregular service will resume sometime around mid-June. Cheers!
I have sooo many other things to be working on, but I just can’t stop reading all these posts from Reg Braithwaite on combinatory logic. They’re seriously well written, interesting, and mind-expanding. I’m just going to list them all here:
http://github.com/raganwald/homoiconic/tree/master/2008-11-07/from_birds_that_compose_to_method_advice.markdown
http://github.com/raganwald/homoiconic/blob/master/2008-10-29/kestrel.markdown#readme
http://github.com/raganwald/homoiconic/tree/master/2008-10-31/songs_of_the_cardinal.markdown
http://github.com/raganwald/homoiconic/tree/master/2008-10-30/thrush.markdown#readme
http://github.com/raganwald/homoiconic/blob/master/2008-11-23/recursive_combinators.md#readme
http://github.com/raganwald/homoiconic/blob/master/2008-11-26/practical_recursive_combinators.md#readme
Enjoy, seriously, especially if you’re at all interested in functional programming or Ruby.
– update, Reg sez there’s more! Woo-hoo!
A quite impressive application built in Flash that does something I’ve been pondering doing for a long time: play music from sheet music. It’s very much worth checking out at noteflight.com
I was reading this: Cool Things in Rails 2.3 and this Rails Metal makes me think that Rails Metal and Rack are pretty interesting things to me. That’s cool, for something highly trafficked, you can write a Rack endpoint with a call method and off you go and since they’re slotted in before Rails picks it up there’s no overhead on the Rails framework, and apparently Rails Metal is “2.8x faster than a Controller“. So that’s neat. Maybe I’ll get back to web development soonish, because Nitro, and Mochiweb, Django, and now the new Rails make me want to get back to work :)
If you haven’t heard the great mumuring of Haskell, you haven’t been listening. I’ve heard it and I’ve heard it loud and clear. Now, let me be clear, I’m a bandwagon jumper. Not a bandwagon jumper in the “Oh no, the CTO has another stupid idea” kind of bandwagon jumping, or the “salesguy with no idea what he’s talking about but has a love of buzzwords” kind, but the “where there’s smoke there’s fire” kind. When lots of smart people get excited about something it’s usually because there’s a good reason to get excited. It was that with Ruby, my first and probably lamest bandwagon jumping exercise. Why is Ruby great? Because it’s simple, lightweight, friendly, and makes scripting easy, and had a very nice friendly community around it. You can learn a lot from Ruby, both in the do and don’t register. There was smoke, and lo, there was fire. I learned a lot from learning Ruby. Did it save the world, my startup, my relationship with my girlfriend, make me rich, cure cancer? Nope. But it was fun. And I learned a lot. And learning it helped me a meet a lot of smart people and see a lot of things happen that I wouldn’t have been party to had I not studied up on it. Did I learn it superwell? Nope. Am I a super-Ruby hacker? Nope. But I know it, and I like it, and I still think that, flaws aside, it does what it’s supposed to do and makes me happy.
Erlang. Same story. Lots of smoke, lots of fire: concurrent programming is good. Functional programming is good, um, to learn. Good for everything? I’ll let people smarter than me handle that one. I learned a lot about multicore, about concurrency, about hotswappable code, and about how to construct systems. These are all good things to learn, and they’re pretty hard in C++. I wouldn’t have learned about them if I had to learn them in C++ honestly and I actually like C++. But I did learn about them, and about a lot of other things, because of Erlang and because when a lot people said: “this is the next big thing” I followed along and said: “maybe”. Now, did I look like a fanboy? Yep. Did I care? Nope. I’m not waving flags or fighting language or OS wars or any of that stuff. I’m just learning things and trying to keep my fingers on the pulse of things. Save the world? Nope. Am I level 9 hacker? Nope. Did I have fun learning it, reading newsgroups, going to talks, and seeing what it enabled people to do? Yep. That’s a win for me.
Alright, so is Haskell the next big thing? Plenty of people say so. There’s buzz, sessions, books, blogs, burgeoning newsgroups and irc channels. That’s smoke. Plenty of smoke. You have two options: dismiss the smoke as smoke (and you’d be right) or consider the smoke as emanating from a fire (you’d also be right). I’m not going to make another “you should learn this obscure strange hip language” kind of post here. I’m just going to point to a few things and say “there’s some smoke, draw your own conclusions”.
Learn you a Haskell - It’s funny and it has cartoons. Lolspeak abounds. And so does information.
Real World Haskell - It’s hard to write a really good tech book. Really hard. I know. And so do these guys. Because they’re actually done it. This is a really well written thoroughly community vetted book. If nothing else, if you’re interested in what makes a good tech book, it’s here.
Make friends while reading RWH - You can make friends, and friends are good.
So what is this all? Well, it’s something that’s going on. Is it going to make you rich, famous, thin, em, pimpin’, etc? Maybe. Maybe not. But maybe you wanted to know what was going on. And now you know one more thing that’s going on.
What I like best about it is that it’s a conceptual approach to git, which sounds a little arty, but he knows his stuff:
The conclusion I draw from this is that you can only really use Git if you understand how Git works. Merely memorizing which commands you should run at what times will work in the short run, but it’s only a matter of time before you get stuck or, worse, break something.
This tutorial, then, will take a conceptual approach to Git. My goal will be, first and foremost, to explain the Git universe and its objectives, and secondarily to illustrate how to use Git commands to manipulate that universe.
check it out http://www.eecs.harvard.edu/~cduan/technical/git/
I’m sure a lot of people have already heard about this, but I’m going to blogosphere it up anyways. The Ardunio MEGA. And man, Is That Thing Mega. The official Arduino data is here
* 53 I/O Pins
* 8K RAM
* 4K EEPROM
* 128K Flash space
* 4 Hardware Serial interfaces
* 14 PWM pins
* 16 analog input pins
It even looks serious.

You could get them here: http://store.makerbot.com/featured-products/arduino-mega.html but I think they’ve already sold out. So snoop around and see what you can do. They’re worth it. Really worth it. Really.