Skip to content

18-Jul-08

I’m less than my best this morning. I woke up exhausted, I struggled towards the office. I met a Microsoft developer on the train. You could tell from the Silverlight and CodingHorror stickers on his laptop. He seemed like a nice enough guy. However, he was going south towards Downtown and the only Atlanta office listed on the microsoft site is in Alpharetta. Was he fooling me? Is there an unlisted office? Who knows.

I don’t believe I have enough of a work ethic. Surely, I would be more than I am if that were the case. Enough of that talk, it tires me already. I read some Neruda a moment ago. It’s beautiful enough that I’m compelled to post it. It’s taken from his book Extravagaria and titled Soliloquy at Twilight.

Given that now perhaps
we are seriously alone,
I mean to ask some questions-
we’ll speak man to man.

With you, with that passerby,
with those born yesterday,
with all those who died,
and with those to be born tomorrow,
I want to speak without being overheard,
without them always whispering,
without things getting changed
in ears along the way.

Well then, where from, where to?
What made you decide to be born?
Do you know that the world is small,
scarcely the size of an apple,
like a little hard stone,
and that brothers kill each other
for a fistful of dust?

For the dead there’s land enough!

You know by now, or you will,
that time is scarcely one day
and a day is a single drop?

How will you be, how have you been?
Sociable, talkative, silent?
Are you going to outdistance
those who where born with you?
Or will you be sticking a pistol
grimly into their kidneys?

What will you do with so many days
left over, and even more,
with so many missing days?

Do you know there’s nobody in the streets
and nobody in the houses?

There are only eyes in the windows.

If you don’t have somewhere to sleep,
knock on a door and it will open,
open up to a certain point
and you’ll see it’s cold inside,
and that that house is empty
and wants nothing to do with you;
your stories are worth nothing,
and if you insist on being gentle,
the dog and cat will bite you.

Until later, till you forget me-
I’m going, since I don’t have time
to ask the wind more questions.

I can scarcely walk properly,
I’m in such a hurry.
Somehwere they’re waiting
to accuse me of something
and I have to defend myself;
nobody knows what it’s about
except that it’s urgent,
and if I don’t go, it will close,
and how can I hold my own
if I knock and nobody opens the door?

Until later, we’ll speak before then.
Or speak after, I don’t remember,
or perhaps we haven’t even met
or cannot communicate.
I have these crazy habits-
I speak, there is no one and I don’t listen
I ask myself questions and never answer.

I knew they were cool…

16-Jul-08

Two random quotes this morning from two random sources, Andy Wingo (programmer living in spain and working three days a week. Oh, the jealousy!!!) and Paul Kedrosky (VC\Finance Guy).

“Perhaps I am more than usually jealous of my freedom. I feel that my connections with and obligations to society are at present very slight and transient. Those slight labors which afford me a livelihood, and by which I am serviceable to my contemporaries, are as yet a pleasure to me, and I am not often reminded that they are a necessity. So far I am successful, and only he is successful in his business who makes that pursuit which affords him the highest pleasure sustain him. But I foresee that if my wants should be much increased the labor required to supply them would become a drudgery. If I should sell both my forenoons and afternoons to society, neglecting my peculiar calling, there would be nothing left worth living for. I trust that I shall never thus sell my birthright for a mess of pottage.

H. Thoreau
10 January, 1851″

Sourced from Andy Wingo

Quote deux…

“To be truly challenging, a voyage, like a life, must rest on a firm foundation of financial unrest. Otherwise you are doomed to a routine traverse, the kind known to yachtsmen, who play with their boats at sea–”cruising”, it is called. Voyaging belongs to seamen, and to the wanderers of the world who cannot, or will not, fit in. If you are contemplating a voyage and you have the means, abandon the venture until your fortunes change. Only then will you know what the sea is all about.

Little has been said or written about the ways a man may blast himself free. Why? I don’t know, unless the answer lies in our diseased values. A man seldom hesitates to describe his work; he gladly divulges the privacies of alleged sexual conquests. But ask him how much he has in the bank and he recoils into a shocked and stubborn silence.

“I’ve always wanted to sail to the South Seas, but I can’t afford it.” What these men can’t afford is not to go. They are enmeshed in the cancerous discipline of “security”. And in the worship of security we fling our lives beneath the wheels of routine—and before we know it our lives are gone.

What does a man need—really need? A few pounds of food each day, heat and shelter, six feet to lie down in—and some form of working activity that will yield a sense of accomplishment. That’s all—in the material sense. And we know it. But we are brainwashed by our economic system until we end up beneath a pyramid of time payments, mortgages, preposterous gadgetry, playthings that divert our attention from the sheer idiocy of the charade.

The years thunder by. The dreams of youth grow dim where they lie caked in dust on the shelves of patience. Before we know it, the tomb is sealed.

Where, then, lies the answer? In choice. Which shall it be: bankruptcy of purse or bankruptcy of life?”

From Sterling Hayden’s Wanderer via Paul Kedrosky

Me, lately

14-Jul-08

It’s been pretty hard to maintain a positive spirit and spin on things lately. Times are hard economically, my financial margins are narrow to non-existent and new jobs are hard to find. I’ve also been trying to contact some people at Northeastern to look into going to school there (mostly because it’s so hard to find the time\energy for self-study at present) but the trail dead-ended. I’ve been unable to reach Olin Shivers (who seems pretty awesome [best acknowledgments ever], incidentally) so that’s all inconclusive. Really, I’m looking to see how much work it would be to get accepted. I’m fairly enamored with their program and faculty and for one reason or another Boston sounds lovely.

I’m still hacking at SICP when I have the energy/time but it’s been really hard lately. I believe that I’m on the right path because knowing more about programming is something I have wanted for a long time but it’s hard to stay the course or to stay emotionally charged up about the course. Part of that is because, as the Emerging Philosophy posts suggest, the problems I’m really interested in solving are not Computer Science problems. They’re social problems. The oft-heard first project suggestion for hackers to “scratch an itch” or “fill a need” falls flat for me. The computer does everything I want it to do. I’m not looking for it to do more.

I am making progress with SICP, I’m just behind schedule. I’m hung up on the last 4 problems (2.13-2.16) in Chapter 2.1 but I recently started plowing ahead on Chapter 2.2 to get some momentum again and am about a third of the way through it. If anyone has advice or feels like working through them with me feel free to contact me via blog, IM, e-mail, etc.

The Way It Is

14-Jul-08

There was a fragment of Milosz stuck in my head the last 24 hours that I wanted to track down and get out of my system. It was originally printed as an Inscript in Unattainable Earth but I found it reprinted in his New and Collected Poems on pgs. 412-413.

What did I really want to tell them? That I labored to transcend my place and time, searching for the Real. And here is my work done (commendably?), my life fulfilled, as it was destined to be, in grief. Now I appear to myself as one who was under the delusion of being his own while he was the subject of a style. Just as they were, so what if it was a different subjection. “Do you want white peacocks?– I will give you white peacocks.” And we could have been united only by what we have in common: the same nakedness in a garden beyond time, but the moments are short when it seems to me that, at odds with time, we hold each other’s hands. And I drink wine and I shake my head and say: “What man feels and thinks will never be expressed.”

Top 5 Hackers

14-Jul-08

I got sort of preoccupied this weekend with the question of who my Top 5 Hackers are. They’re not necessarily supposed to be the world’s best hackers. Rather, they’re programmers who I respect both technically and individually. There are plenty of people doing great work on interesting things and that wasn’t the primary motivation behind this list. I’m not going to go too deeply into my reasoning or try to order the list in any particular way. I’ll just lay it on you. I’m sure it will change some over time.

Aaron Swartz
John Carmack
Justin Frankel
Linus Torvalds
Luke Gorrie

From Distro-Hopping to Good Easy

07-Jul-08

Linux is a complicated beast. Unlike Windows and Mac there are literally hundreds of different competing versions or distributions vying for attention and often catering to a specific niche. Beginning Linux users are often all waved towards the two or three most popular and general-purpose distributions and with good reason. While three distributions in particular (Ubuntu, Fedora, Suse) seem to dominate and are good places to start, I have often experienced a desire to see what else exists with Linux since there is so much in the way of choice. Additionally, Linux distributions tend to have one release or more a year while Windows and Mac tend to see a new version only every few years. The three distributions I mentioned earlier all strive to issue a new release every six months and they all do so at roughly the same time often with no more than a month separating them.

While this may at first seem undesirable there is no pressure to upgrade but there is also no cost to upgrade (remember, they’re free!). Some upgrades have a few more bugs or new features than others but upgrades tend to be relatively safe and easy. Moreover, because of the regular releases large changes happen gradually and there is little to no learning curve. It’s also worth noting that upgrading does not require you to reinstall the operating system. It’s usually just an hour or two of downloading and a reboot.

So, “Distro Release Season” comes twice a year if you use Ubuntu, Fedora, or Suse. That’s even better than Christmas! However, this release cycle rather disappointed me. Ubuntu’s Hardy Heron was a bit buggier than I’d like. Fedora 9 seems better and better every time but they still lack a few software packages I want. To be honest, I’ve never been interested in Suse much. I’d also been meaning to move to a more stripped-down version of Linux for a long time. Ubuntu and Fedora come with a lot of bells and whistles that I may not necessarily need and that slow my system down.

It was time to try something new and, this season, I decided to go with Arch Linux. I won’t go too deeply into my decision to use Arch. There are a lot of very good things about it and though it’s not easy the way Ubuntu is, it’s simple and worth the effort you put into it. You can make it into whatever you want it to be and that’s precisely what I’ve done. I’ve spent about a week setting it up to perform as I’d like and with the programs I’d like. I’ve documented the entire process and will post that here as my personal “Good Easy“. A good easy, for those who haven’t heard of one, is a detailed description of someone’s computer configuration. One reason I’d like to do one is that it’s handy in case I have to duplicate it at some point in the future. It might be nice to do a Good Easy for my server at some point as well. I detail a bit at the end how to turn your installed system into a Live CD. I plan to do a little bit more work and remove personal data to turn that Live CD into something I could distribute at some point though mostly just to a few nerd friends. I wouldn’t expect, or want, to take users from the wonderful Arch Linux after all.

My Good Easy…
More…

Euthanasia

07-Jul-08

I am not opposed to it.
I lived fully and well,
spending time perched in
dogwoods and chairs to
try and learn the lessons
of machines, men and dogs
in their cacophonous chorus.

I am not opposed to it.
I eventually did settle
with my own thoughts
after years of combat.
I knew rebellion, fought
a long war and nurtured
a false hope. Thankfully
in the end my carapace
had been punctured.

I am not opposed to it
though I am weary of the
dignity and the chase.
Who are we to be so presumptuous?
Who are we to assume that in our
affairs we should be entitled to
the presentation, if not the
substance, for all our days?

I am not opposed to it
though nod to a fear and
hubris that is hard-argued
as judgment. Still, if for
a year I loved and loved well
then I need not keep those
cherished ones waiting.

I am not opposed to it.
I recognized early that time was
my valued asset and treated
it accordingly. I fought for
ground in a society enamored
with the ephemeral. I won.
Mistakes were made, the wrong
losses suffered and less than
the best gains accomplished.
But in the end, I stand by my time.

Lingering Promises

29-Jun-08

So, where the hell have I been? I mean, I haven’t posted in almost two weeks? What’s worse is that I’ve promised posts on education, governance, my attempt to nail down my own philosophical views and more programming stuff. All of them are at different stages of completion.

The fact that nothing has made it’s way up here makes me feel lazy though and the fact is I’ve been working quite hard but on different things. As I’ve noted here, the real world does suck it out of you. Part of that is that my job of late has drained me rather than energized me. I’m looking to rectify that. Thankfully the 4th of July is coming up. Those long weekends are always nice.

Things are about the same at the house as they have been. I feel like I’m learning a decent amount by being on my own though and I’m constantly reminded of how wonderful the people in my life are and how much I love them. Hopefully, I’ll get more time to work hard, be productive and be incredible in my own right.

Also, Wall-e is fantastic and one of the best movies I’ve seen in a long time. It’s just beautiful so go see it. Remember to love.

Seeking a Net Win

18-Jun-08

Things have been really crazy lately. I’ve been trying to do so much and it really is hard. The real world finds ways to eat most of the time you have. It makes you small. It’s gotten to the point where it’s hard to find time to do anything other than maintain a few precious friendships and keep the bills paid and the house clean.

That said, I’m trying to push forward. I’ve gotten in touch with some professors at Northeastern University where I’d very much like to study Computer Science in Fall of 2010, ideally. I also wrote code today for the first time in three weeks. It’s hard to find the time, man!

More immediately I’m looking for a new job and have an interview tomorrow morning. For a variety of reasons I’m just not pleased with my current job and I think I can grow more and be happier elsewhere. Cross your fingers for me.

Finally, Jonathan Zittrain was on The Colbert Report tonight talking about his book, The Future of the Internet and How to Stop It. I heard about it in advance and was very excited to see him speak. Unfortunately, I feel that he really botched the interview and I got into a long discussion with Ben about it. I’m pretty disappointed because there are important political issues about technology but they’re rarely communicated to the public coherently and concisely and I’m no good at it myself.

I’ll probably try to think of a good way to present it and give a fuller update in the next few days though. If I don’t get bogged down with the promised education post or the emerging philosophy post or the big easy posts that is. Or hell, SICP 2.1. Yeah, right.

A Computer Science Undergraduate Education for Under $1,000

09-Jun-08

In the style of my former post on a Math Undergraduate Education, this post proposes a list of texts suitable for a rigorous and well-rounded foundation in Undergraduate Computer Science. A future post will cover the philosophical details and practical implementation of such an approach.

This list skews towards theory rather than practicality (or Computer Science as opposed to Programming, if you prefer) but tries to maintain a suitable balance. Consequently, outside study of particular languages (e.g. ruby, php, html, css, javascript, erlang or haskell, python or lua) is assumed. It is advised to work on practical projects (setting up source code repositories and servers, open source software contribution, web development, etc) as applicable since these subjects are covered at best loosely during the course of study.

This list of 24 texts costs about 900 dollars when bought used off of Amazon.com. Click on the book’s title to get forwarded to it’s Amazon.com page. The ordering of the list loosely conforms to increasing difficulty but it is not a recommendation as to structure. I will probably delve into those details in the aforementioned future post.

How To Design Programs by Matthias Felleisen, Matthew Flatt, Robert Findler and Shriram Krishnamurthi
Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Sussman
Paradigms of Artificial Intelligence Programming by Peter Norvig
Algorithms by Sanjoy Dasgupta, Christos Papadimitriou and Umesh Vazirani
Introduction to Algorithms by Thomas Cormen, Charles Leiserson, Ronald Rivest and Clifford Stein
Computer Networks by Andrew Tanenbaum
Programming Language Pragmatics by Michael Scott
Computer Organization and Design by David Patterson and John Hennessy
Introduction to Computing Systems by Yale Patt and Sanjay Patel
Operating System Concepts by Abraham Silberschatz, Greg Gagne and Peter Galvin
Operating Systems: Design and Implementation by Andrew Tanenbaum and Albert Woodhull
The Humane Interface by Jef Raskin
Code Complete by Steve McConnell
Real-Time Rendering by Tomas M’Oller
Artificial Intelligence by Stuart Russell and Peter Norvig
Introduction to the Theory of Computation by Michael Sipser
Modern Cryptography: Theory and Practice by Wenbo Mao
Hacker’s Delight by Henry Warren
Purely Functional Data Structures by Chris Okasaki
Compilers: Principles, Techniques, and Tools by Alfred Aho, Monica Lam, Ravi Sethi and Jeffrey Ullman
Lisp In Small Pieces by Christian Queinnec
Programming Languages: Application and Interpretation by Sriram Krishnamurthi
Types and Programming Languages by Benjamin Pierce
Concepts, Techniques, and Models of Computer Programming by Peter Van Roy and Seif Haridi

There are a few caveats to this list that should be noted.

1) As mentioned it does not presume to teach language-specific or platform-specific knowledge. It is slanted towards theory and books on how to write C or HTML, do Linux Kernel Development or learn the Win32 API, or work with OpenGL or TCP/IP should be purchased separately.

2) Since it does not deal heavily with specific languages, it does not make any prescriptions about what languages one should know. Generally, I believe it’s good to know a language which epitomizes each of the major programming paradigms whether these paradigms are valid or not (as Krishnamurthi posits in PLAI). This means at least one OO language, one stack-based language, one functional language, and one logic/constraint language. I’d recommend Smalltalk for Object Orientation, Forth for a stack language, Erlang or Haskell for a functional language, and Prolog for a constraint language. Beyond that it would probably be reasonable to learn C as a good representation of the von Neumann architecture and “for culture” and hypothetically python, perl, or ruby to learn a web/glue/scripting language.

3) The list could certainly be shorter. It leans towards functional programming, lisp, and programming languages due to my own personal interests and some material could be omitted from those areas correspondingly. Notably, Distributed Systems and Databases are conspicuous absences from my list. This is because I have yet to find any sort of consensus about quality books on either subject. I’m not interested in Databases but I’m certainly interested in Distributed Systems. Computer Networks is about as close as this list gets.

The beauty of this list, if there is one, is that the basis is strong enough that one could jump off in any direction after it’s completion. If you were interested in video games get more books on rendering and physics, if you’re interested in cryptography and security get more books on that, etc, but the foundation should be strong enough for any direction you’d like to go in. This list may get updated in the future. It’s far from perfect but it does seem to me like a pretty reasonable place to start.