Content from 2007-08

Fifteenth Thursday Literary Lines
posted on 2007-08-30 13:56:50
Yesterday's post did quite well on reddit and my server handled the traffic as well so that's nice. Expect more details and thoughts on "The Concurrency Problem" as well as a general update tomorrow.

As for today, it's more Neruda. Today's poem is titled I Will Return, from his work "The Stones of Chile".

Some other time, man or woman, traveler,
later, when I am not alive,
look here, look for me
between stone and ocean,
in the light storming
through the foam.
Look here, look for me,
for here I will return, without saying a thing,
without voice, without mouth, pure,
here I will return to be the churning
of the water, of
its unbroken heart,
here, I will be discovered and lost:
here, I will, perhaps, be stone and silence.
The State of State
posted on 2007-08-29 13:20:44
So, I've been having and alluding to discussions with Tim Sweeney of late. I sent him an e-mail a little over two weeks back and I received word back from him about a week ago. It's taken a while for me to digest it a little and ask his permission to post it here but he has been kind enough to grant said permission. So, without further ado, the transcript:

Me:

Tim,


My name is Brit Butler. I'm a college student in Atlanta, GA and an admirer of your work. I was very taken with your POPL talk on The Concurrency Problem but curious as to why you mentioned both the message passing model and referentially transparent functions but then went on to mostly talk about the latter with Haskell. I'm certain that you've used and read about Erlang and other message-passing systems and was wondering if you could explain your position on them to me, vis-a-vis Transactional Memory or some other method. I'm assuming you wouldn't be in support of STM because it's ultimately still about sharing state. Thanks so much for your time.

Regards,
Brit Butler
http://www.redlinernotes.com/


Tim:
Hi,

Lots of applications and reasonable programming styles rely on large amounts of mutable state. A game is a great example – there are 1000’s of objects moving around and interacting in the world, changing each frame at 60 frames per second. We need to be able to scale code involving that kind of mutable state to threads, without introducing significant new programming burdens. Transactional memory is the least invasive solution, as it allows writing pieces of code which are guaranteed to execute atomically (thus being guaranteed of not seeing inconsistencies in state), using a fairly traditional style, and it scales well to lots of threads in the case where transactions seldom overlap and touch the same state.

Message-passing concurrency isn’t a very good paradigm for problems like this, because we often need to update a group of objects simultaneously, preserving atomicity. For example, within one transaction, the player object might decide to shoot, issue a command to his weapon, check an ammunition object, remove ammunition from it, and spawn a new bullet that’s now flying through the world. And the sets of objects which may need to atomically interact isn’t statically known – any objects that come into contact, or communicate, or are visible to each other, may potentially interact.

When implementing that kind of code on top of a message-passing concurrency layer, you tend to get bogged down writing numerous message interchanges which really just turn out to be ad-hoc transaction protocols. That’s quite error-prone. Better to just use transactions in that case.

This argument for transactional memory is limited in scope:

For algorithms which can be made free of side effects, pure functional programming (or “nearly pure functional programming” as in Haskell+ST) is cleaner and allows more automatic scaling to lots of threads, without committing to a particular granularity as with message-passing.

For algorithms that need to scale to multiple PCs, run across the Internet, etc, transactions seem unlikely to be practical. For in-memory transactions on a single CPU, the overhead of transactions can be brought down to <2X in reasonable cases. Across the network, where latencies are 1,000,000 times higher, message passing seem like the only plausible approach. This constrains algorithms a lot more than transactions, but, hey, those kinds of latencies are way too high to “abstract away”.

The existing Unreal engine actually uses a network-based message passing concurrency model for coordinating objects between clients and servers in multiplayer gameplay. It even has a nifty data-replication model on top, to keep objects in sync on both sides, with distributed control over their actions. It’s quite cool, but it’s inherently tricky and would add an awful lot of complexity if we used that for coordinating multiple threads on a single PC.

-Tim


So, there you have it. More on all this later. I've got to go play around with Erlang a bit more. I'm hoping Andre Pang and Patrick Logan will help me dig into this a bit deeper in days to come. Who else wants in on the conversation? Comment below.
Fifteenth Wednesday Songs
posted on 2007-08-29 13:09:45
Coldplay - Message
Radiohead - Airbag
B.B. King - The Thrill Is Gone
Radiohead - Videotape
Jump, Little Children - Singer
Fifteenth Tuesday Quotables
posted on 2007-08-28 14:26:18
I feel compelled to post a translation of last week's quote from Simone Weil. It's a gorgeous quote:

"The case of true contradictions: God exists, God does not exist. I am absolutely sure that there is a God, in the sense that I am absolutely sure my love is not an illusion. I am absolutely sure that there is no God, in the sense that I am absolutely sure nothing real resembles what I can conceive when I pronounce that name. And yet something I cannot conceive is not an illusion." - Simone Weil, Unattainable Earth, p.117

"For me the principal proof of the existence of God is the joy I experience any time I think that God is." - Rene Le Senne, Unattainable Earth, p.82

I've been needing lots of Milosz lately. It's good stuff.

"How do we live on the surface pretending not to feel the terror? In this epoch which I have experienced and which has not been narrated? In this night and not any other destiny, my own, of which I think at night, unable to tell the verdict from chance. How can we be so restrained, conversing in cautious words?" - Czeslaw Milosz, Unattainable Earth, p.62

"Since my youth I have tried to capture in words a reality such as I contemplated walking the streets of a human city and I have never succeeded; that is why each of my poems seems to me the token of an unaccomplished oeuvre. I learned early that language does not adhere to what we really are, that we move in a big make-believe which is maintained by books and pages of newsprint. And every one of my efforts to say something real ended the same way, by my being driven back to the enclosure of form, as if I were a sheep straying from the flock." - Czeslaw Milosz, Unattainable Earth, p.32

"Who will assure me that I perceive the world the same way other people do? It is not improbable that I am a deviation from the norm, an oddity, a mutation, and that I have no access to what they experience. And if that is the case, what right do I have to pronounce general opinions on man, history, the difference between good and evil, society, systems; as if I did not guess that my difference, though hidden, influences my judgments, changes proportions?" - Czeslaw Milosz, Unattainable Earth, p.63
I was on Redmonk?
posted on 2007-08-27 12:44:36
Somehow I made one of Governor's link posts way back in March and totally missed it. I have no idea how I missed that. What I'm really wondering though is how in the world he found me to begin with. James, are you reading this? Additionally, at least it looks like I'm reading the right things.

Also, I'm trying to get permission from Sweeney to blog about the things we've been discussing. I don't know if I mentioned to you guys that I received a very nice e-mail back from him that went into some good detail on his opinion. I'll keep you all posted. I know you can't wait! More later...
Fifteenth Monday Update
posted on 2007-08-27 12:39:29
Week 14: Finished
tvs
gym
classes
ren and dani ~9:30.
jeff taylor at 10:15 at caribou
dr. carpenter at 7.
skate. with chris friday night after rick.
skate with burke saturday morning around 8:30.
video game party with max saturday night.
sanford at 11.
movie with ben. call him!


Week 15: Schedule
Monday
tvs 7-11
discrete mathematics - math 2345 002 - 12:00-12:50pm D-Classroom 234
intro to computing disciplines - cse 1002 001 - 03:00-3:50pm J-Atrium 217
gym
write e-mail to tim sweeney asking for permission to publicize conversation.
help pete with his computer after class.
actually do school work?
tuesday
tvs 7-11
prog and problem solving i - cse 1301 002 - 01:30-2:45pm J-Atrium 151
prog and problem solving i - cse 1301 053 - 03:00-04:40pm J-Atrium 251
c programming - cs 2123 002 - 07:30-08:45pm J-Atrium 161
lunch with olivia at 11:30?
wednesday
tvs 7-11
discrete mathematics - math 2345 002 - 12:00-12:50pm D-Classroom 234
intro to computing disciplines - cse 1002 001 - 03:00-3:50pm J-Atrium 217
gym
thursday
tvs 7-11
prog and problem solving i - cse 1301 002 - 01:30-2:45pm J-Atrium 151
prog and problem solving i - cse 1301 053 - 03:00-04:40pm J-Atrium 251
c programming - cs 2123 002 - 07:30-08:45pm J-Atrium 161
ren and dani,
friday
tvs 7-11
discrete mathematics - math 2345 002 - 12:00-12:50pm D-Classroom 234
gym

News for 8/27/07:
Later.
Fourteenth Thursday Literary Lines
posted on 2007-08-23 14:20:25
More Neruda today, the end of his poem Autumn Testament, from the work "Extravagaria".
If you all really like it I'll be happy to post the full text to Autumn Testament which numbers a few pages...

From having been born so often
I have salty experience
like creatures of the sea
with a passion for stars
and an earthy destination.
And so I move without knowing
to which world I'll be returning
or if I'll go on living.
While things are settling down,
here I've left my testament,
my shifting extravagaria,
so whoever goes on reading it
will never take in anything
except the constant moving
of a clear and bewildered man,
a man rainy and happy,
lively and autumn-minded.

And now I'm going behind
this page, but not disappearing.
I'll dive into clear air
like a swimmer in the sky,
and then get back to growing
till one day I'm so small
that the wind will take me away
and I won't know my own name
and I won't be there when I wake.

Then I will sing in the silence.
Hello?
posted on 2007-08-23 01:05:04
Hi.
Without meaning to be a burden, encouragement would be a good thing for me right now. If you have any lying around and are interested, feel free to pass it my way.

I have in mind a future,
Perhaps in Chicago, then Montana,
Or maybe the white sands of the
beaches of my youth.
But the desire for home is an illusion,
Found in people not in places,
The trinkets I call thoughts are
only treasure if they're shared.
How can I swear myself
to safely guard your things,
and always maintain interest
in the head from which thought springs?
For my love is the attent
of the brook that babbles beyond
your lips. But in a world
ever warming, how can I promise
the well won't run dry?
Am I a dam holding
water which once broken
sends old currents back
to sea? That water
needed to return to
that amorphous oblivion.
It's vitality left
long ago.
Fourteenth Wednesday Songs of Summer
posted on 2007-08-22 22:32:54
John Mayer - Lenny/Man on the Side
Portishead - Biscuit
Muse - Stockhold Syndrome
Ted Leo and the Pharmacists - Timorous Me
The 88 - Over and Over
Pinback - Torch
Funkadelic - Maggot Brain
Christopher O'Riley - Bulletproof
Six Organs of Admittance - Lisboa
John Butler Trio - Ocean
Fourteenth Tuesday Quotables
posted on 2007-08-21 12:50:18
"Our life consists partly in folly, partly in good sense; whoever writes on it only in a staid fashion and with measure, leaves more than half of himself behind." - Montaigne, Essays

"Every strong and pure being feels he is something else than merely man and refuses, naively fearing it, to recognize himself one of an infinite number of copies of the species or of a type which repeats itself." - Paul Valery, Varietes

"Cas de contredictoires vrais: Dieu existe, Dieu n'existe pas. Je suis tout a fait sure qu' il y un Dieu, en ce sens que je suis tout a fait sure que mon amour n'est pas illusion. Je suis tout a fait sure qu'il n'y a pas de Dieu, en ce sens que je suis tout a fait sure que rien de reel ne ressemble a ce que je peux concevoir quand je prononce ce nom. Mais cela que je ne peux concevoir n'est pas une illusion." - Simone Weil, Unattainable Earth p. 117

"Denying, believing, and doubting completely are to man what running is to a horse." - Pascal, Pensees
Fourteenth Monday Update
posted on 2007-08-20 18:35:48
Summer: Week 13: Finished
21st Annual Checkup/Physical @ 9:45
Dental Appointment @ 2:30
Gym
Read and\or listen to Google TechTalks on Concurrency.
TVS
Program a little Erlang?
Talk to boss about fall schedule.
Cousin visiting for dinner.
See Ren and Dani?
Start packing. See people?
Burke is in town! Help him move in?
Move in. School starts. Oh, boy.

Unexpected: Saw Superbad with Kris, Asked for raise.

Week 14: Schedule
monday
tvs 7-11
discrete mathematics - math 2345 002 - 12:00-12:50pm D-Classroom 234
intro to computing disciplines - cse 1002 001 - 03:00-3:50pm J-Atrium 217
gym
whatever
tuesday
tvs 7-11
prog and problem solving i - cse 1301 002 - 01:30-2:45pm J-Atrium 151
prog and problem solving i - cse 1301 053 - 03:00-04:40pm J-Atrium 251
c programming - cs 2123 002 - 07:30-08:45pm J-Atrium 161
hang out with marian james!
wednesday
tvs 7-11
discrete mathematics - math 2345 002 - 12:00-12:50pm D-Classroom 234
intro to computing disciplines - cse 1002 001 - 03:00-3:50pm J-Atrium 217
gym
whatever
thursday
tvs 7-12
prog and problem solving i - cse 1301 002 - 01:30-2:45pm J-Atrium 151
gym.
c programming - cs 2123 002 - 07:30-08:45pm J-Atrium 161
ren and dani ~9:30.
friday
tvs 7-10
jeff taylor at 10:15 at caribou
discrete mathematics - math 2345 002 - 12:00-12:50pm D-Classroom 234
dr. carpenter at 7.
skate. with chris friday night after rick.
saturday
skate with burke saturday morning around 8:30.
gym.
party with max saturday night?
sunday
sanford at 11.
movie with ben. call him!
movie with ren and dani. call them!

News for 8/20/07:
I'll fill this in later. It's getting hard to do the news. I'm busy and stuff!
Nerd Out
posted on 2007-08-17 12:27:58
So, I apparently asked a good question on Patrick Logan's blog. And he gave me a good answer:

"I can see someone making the argument in some domain I don't usually work in that shared memory threads are better than shared nothing message passing for performance reasons. Some hard-real time scenario, some huge number crunching scenario, etc. where every byte and every cycle has to count in the extreme. But the irony then is that STM seems far more suited to a language like Haskell, which is also unlikely to be suited for these performance scenarios.

My only fear is that for the masses including myself, we need *simple* mechanisms, and the fewer of those, the better. Shared nothing messages seem to scale up, out, and down. STM seems more complicated, and an incomplete solution, and only a solution for shared memory."

Indeed. Aside from Andre Pang's Erlang and Concurrency talk, I've watched Adam Welc's Google Tech Talk on Transactional Memory and am planning on listening to Simon Peyton-Jones OSCON talk on STM later today. Now, whether I'll end up listening to the other two Google Tech Talks on Transaction Memory I don't know. I have, as mentioned, read Sweeney's POPL slides.

So far, I end up thinking two things hearing these talks.
1) This is an ugly hack.
2) Overhead, overhead, overhead.

At any rate, It's nice to be involved in a high-level nerd conversation with very smart people. That's always fun.
Thirteenth Thursday Literary Lines
posted on 2007-08-16 17:09:45
"Past" by Pablo Neruda:
We have to discard the past
and, as one builds
floor by floor, window by window,
and the building rises,
so do we keep shedding-
first, broken tiles,
then proud doors,
until, from the past,
dust falls
as if it would crash
against the floor,
smoke rises
as if it were on fire,
and each new day
gleams
like an empty
plate.
There is nothing, there was always nothing.
It all has to be filled
with a new, expanding
fruitfulness;
then, down
falls yesterday
as in a well
falls yesterday's water,
into the cistern
of all that is now without voice, without fire.
It is difficult
to get bones used
to disappearing,
to teach eyes
to close,
but
we do it
unwittingly.
Everything was alive,
alive, alive, alive
like a scarlet fish,
but time
passed with cloth and darkness
and kept wiping away
the flash of the fish.
Water water water,
the past goes on falling
although it keeps a grip
on thorns
and on roots.
It went, it went, and now
memories mean nothing.
Now the heavy eyelid
shut out the light of the eye
and what was once alive
is now no longer living;
what we were, we are not.
And with words, although the letters
still have transparency and sound,
they change, and the mouth changes;
the same mouth is now another mouth;
they change lips, skin, circulation;
another soul took on our skeleton;
what once was in us now is not.
It left, but if they call, we reply,
"I am here," and we realize we are not,
that what was once, was and is lost,
lost in the past, and now does not come back.
Blogging Hoo Ha
posted on 2007-08-16 16:54:26
I was just thinking about something...blogs may be more useful for soliciting help when you know next to nothing about something than when you know a good deal about something. For example, if I post an exceedingly technical question my readership is (statistically) unlikely to know the answer. Sure, if Dave Airlie and Patrick Logan and a bunch of other hackers read my blog I might get a quick response but it's pretty unlikely. However, if I ask a general question about which I'm simply clueless there are much better odds of getting a meaningful and informative response from my readers. As a thought, this probably isn't worth blogging. But it struck me...and I did. So there.
Just wow…
posted on 2007-08-16 16:49:50
A friend of mine posted this:

Mind Boggling

I'm speechless.
Thirteenth Wednesday Songs of Summer
posted on 2007-08-16 14:14:40
Muse - Supermassive Black Holes
Queens of the Stone Age - Tangled Up In Plaid
John Mayer Trio - Out Of My Mind
Outkast - Ghettomusick
My Morning Jacket - Run Thru
The Crystal Method - Bad Stone
John Mayer - Wind Cries Mary
The Good, The Bad, and The Queen - Soldier's Tale
Folk Implosion - No Need to Worry
Spiritualized - Ladies and Gentlemen We Are Floating In Space
Thirteenth Tuesday Quotables
posted on 2007-08-16 13:59:39
Two day late. I know. I'm a terrible slacker. I actually had some stuff pegged Monday but I just didn't manage to post it until now. These are pulled from some recent reading, Open Sources 2.0.

"In a commodity world, technologists need to think about innovating in their business models as much as (if not more than) innovating in their technology." - Ian Murdock, Open Source and the Commoditization of Software

"Open Source propels software toward Commodity Land, a happy place where customers pay for real value and vendors compete on that value, not intellectual property lock-in." - Matt Asay, Open Source and the Commodity Urge: Disruptive Models for a Disruptive Development Process

Hmm...kind of sounds like something I remember Spolsky writing a while back. "Strategy Letter V" was it? Google that.
Eh...on second thought I'm going to dig around for more insightful quotes for next week. These aren't blowing my hair back.
Buffer Overflow; Core Dump
posted on 2007-08-15 13:16:08
Wow. I have been thinking about The Concurrency Problem waaaayyy too much the last 48 hours or so. I'm coming around about STM and am really hoping I get an e-mail back from Tim Sweeney answering some questions I had. Yes, that Tim Sweeney.

All the same, I'd rather Erlang or some other message passing functional+concurrent programming model get adopted than a non message-passing model such as Haskell. Erlang just seems cleaner to me. I just like it a bit better. Perhaps that will all change as I actually start trying to write code with them (Erlang, Haskell). Anyone who feels like coming along and writing something better that has the advantages of both without the disadvantages of either feel free. What I'm trying to say is, feel free to invent NBL.

Okay, here's what I've been reading:
http://www.algorithm.com.au/talks/concurrency-erlang/
http://patricklogan.blogspot.com/
http://patricklogan.blogspot.com/2007_02_04_patricklogan_archive.html
http://lambda-the-ultimate.org/node/1277
http://lambda-the-ultimate.org/node/2048#comment-25151
http://www.tbray.org/ongoing/When/200x/2007/06/07/Concurrency
http://enfranchisedmind.com/blog/archive/2007/08/13/323
http://enfranchisedmind.com/blog/archive/2007/02/08/191
http://www.dehora.net/journal/2007/08/phat_data.html
http://tech.puredanger.com/2007/08/14/concurrency-terracotta/
http://www.cincomsmalltalk.com/userblogs/ralph/blogView?showComments=true&printTitle=Erlang,_the_next_Java&entry=3364027251
http://www.defmacro.org/ramblings/concurrency.html
http://yarivsblog.com/articles/2006/08/16/why-erlang-is-a-great-language-for-concurrent-programming
And of course, the thing that started it all:
http://www.gotw.ca/publications/concurrency-ddj.htm
Thirteenth Monday Update
posted on 2007-08-13 21:25:07
Summer: Week 12: Finished
Turn 21
Kris
Battery
TVS
Gym
Fix Ken Boa's Computer
Ren and Dani
Bria's Going Away Party

Unexpected: Speeding Ticket, Bailing Hay for Six Hours on Saturday, Saw Chris B., Got in touch with Jeff Taylor, Actually wrote a decent technical essay.

Summer: Week 13: Schedule
Monday
21st Annual Checkup/Physical @ 9:45
Dental Appointment @ 2:30
Gym
Read and\or listen to Google TechTalks on Concurrency.
Tuesday
TVS
Program a little Erlang?
Talk to boss about fall schedule.
Wednesday
TVS
Gym
Cousin visiting for dinner.
More programming?
Thursday
TVS
See Ren and Dani?
Start tying up loose ends before school starts back.
Friday
Chill.
Gym.
Career Services at SPSU.
Start packing. See people?
Saturday
Burke is in town! Help him move in?
Sunday
Move in. School starts. Oh, boy.

News for 08/13/07:
A lot has been happening folks.
Compiz Fusion made their first release.
WINE has pushed out a new release as well.
PCSX2 has some progress updates.
Fedora 8 Test 1 was released as well.
More later. Links too!
Twelfth Friday Refined Rant
posted on 2007-08-10 04:46:06
Okay, so my earlier post was a bit "La la la la. Look at all this crazy stuff I read today! Isn't it awesome?" and to be honest that's just not a critical enough take on everything. I mean, all that stuff I posted made me smile but that doesn't necessarily mean I should wave it in the air. With that in mind, I'd like to take a more serious look at the trends in those links and try to really address the issues that surround them. That's fairly challenging because these issues involve governance and law, technology and society, and plenty more. So I've decided since I'm not doing Linux Lessons I might as well do Steve Yegge-style rants. Just with much poorer writing, significantly less insight, and half as much alcohol. I'm by no means hammered. These will normally be on Fridays and this one was going to be on Friday but it's running a little late.

The Links
So, I posted about a lot of stuff. Web 2.0 and some of the associated blather about how open source addresses that through either Online Desktop or Open Services. Peer Production being supported by institutions/firms with examples of Wikipedia and Google Maps. The future of IT generally. Infrastructure challenges for the 21st century with regards to the internet and it's effects on business. Emerging worlds and the diminishing line between the virtual and the real. And some of the worldchanging issues, poverty, sustainability, climate change, political upheaval, etc. What can we really say about any of this? More importantly, what can we really take away from all those little blog snippets and links?

The Issues
There are a few things that I really take away. First of all there are a bunch of "World Issues". Things like Climate Change/Global Warming and the Energy Crisis, Developing Economies, Squatter Cities, and plenty else besides. I'm trying to get more informed on these fronts but right now the issues I can speak to tend to be technology issues rather than "World Issues". It's important to note that technology issues are a "World Issue" or are at least intertwined with "World Issues" when taken collectively. Technology has become too central a part of the modern world for technology's issues to not have vast repercussions. With that in mind I'd like to speak a bit more about what I can speak to, namely technology's issues. Specifically computing.

The Technology Issues
There are a few central issues or trends that jump out at me from what I posted the other day. One is that we are undoubtedly moving away from the desktop. However slowly, however gradually, it's happening. I don't know if the desktop will ever go away completely but it's diminishing in significance. Between PDAs and Smartphones, Laptops, Home Theater and Small Form Factor PCs, Amazon's Hardware as a Service efforts, and others the desktop market will continue to gradually erode. Second, we have a programming problem, specifically concurrency. This is emerging because everything is going massively parallel on both the local and network level. Between the rise of Multicore processors and the web services and datacenters popping up all over the place I'm convinced we need a better way to program for these sorts of systems. Third, Peer Production is making a big difference and this goes beyond software in many respects. There's a lot more to cover there so that's all I'll say for now. Fourth, the Law, Intellectual Property Law in particular, has a long way to go before it supports peer production models well. Our traditional notions of ownership and control are insufficient in the face of these new methods and as Steven Weber so elegantly described towards the close of The Success of Open Source we're going to have to find a way to bridge the gap there. Finally, I think it's important to note that there is a certain infrastructure that's critical today for technology to continue to operate in it's present fashion. We need energy and the electric grid, the telecommunications network, and the hardware and software stacks that make modern computing possible. For today, I'm mostly interested in covering the concurrency problem but next week I expect to write a bit about the infrastructure/stack and the gradual erosion of the desktop's significance.

The Concurrency Problem
Dijkstra was wrong, at least about concurrency, not that I blame him. I mean didn't he do concurrency research thirty years ago? For that matter, Simon Peyton-Jones is wrong too. Software Transactional Memory may in fact be the right solution but it's the solution to the wrong problem. Trying to figure out how to share state this way is a disaster. The only concurrency model I've seen that I think is at all valid is Erlang's message passing model. We need concurrency that is implicit. The most you should have to do is change a few "map"s to "pmap"s. That's it. I don't think Erlang is NBL. The syntax isn't too crazy but it's not C/Java-like enough either. The language generally is too much of a departure and not enough of an industry figure to really make it big besides. I'm not saying it doesn't have other problems I just feel like those are the ones that are going to hold it back. Could Haskell be more successful than Erlang? Well, first of all I'd have to come up with a good definition of success for programming languages. But excepting that I think the answer is yes. Hell, maybe Haskell is NBL and we'll struggle with shared state for another 30 years. I'm hoping for something a bit more drastic though. And Erlang isn't good enough. But it's the only thing I've seen that can solve the concurrency problem and that does appear to be the most prominent problem in programming from where I'm sitting. Does that mean we should have an OS written in Erlang and future applications should be written in Erlang? Do we need compositing window managers written in Erlang? Not necessarily. I suspect the desktop will be largely composed of C, C++, Python, etc for a good few years to come and probably longer, assuming the desktop sticks around another decade. That's a topic for another rant though.

The Punchline
What I'd really like to express is that I think that The Concurrency Problem is first and foremost a language problem. We need a language that makes concurrency implicit and easy. Concurrency needs to be assumed. Erlang is the only language I've seen that does that well. Whether or not something equivalent could be done with a non-message passing model such as Software Transactional Memory I don't know. Haskell may already scale from a single core system to a massively distributed or concurrent system with little or no changes to the code using a STM model. I'm not well read enough yet to know for sure. I don't think that we need to start over and re-write the OS, or desktop applications, or anything else for that matter. We need to be able to use the tools we already have. That doesn't mean that we might not benefit from parallelizing what we can but it's not our first priority. I don't believe that concurrency will be solved by getting the OS to handle threads or finding a framework or method to easily add concurrency to applications using current languages. Erlang isn't perfect either and ultimately not everything needs to be parallelized so Erlang has by no means invalidated C, Python, Ruby, Perl, Java, etc. It's just the best answer I see for one of the biggest problems programming has got.
Thinking is awesome.
posted on 2007-08-09 19:04:22
So excited right now. So many awesome things happening. I can hardly wait to write the news on the next monday update. Hell with it, I'll post some things I've looked at read or thought about in the last 48 hours.
A couple of things.
Kristian Hoegsberg is amazing.
I'm starting to think that given time Ubuntu/Linux can out-Mac Mac. More explanation necessary. I'll get to you. Note that this is not the same as saying they can out-Apple Apple.
Web 2.0 is...auhweiruhaudsf. Free data is...oiajdsofiewaofm. People are crazy. Tim O'Reilly finds the words for the stuff I've been thinking. Freedom is complicated. Delicious, and prescient too! But what about open spectrum...
Certain companies actions do make it a legitimate concern...
Carmack is a genius and anything he says is gold. Need to find out what his kool aid is and drink some.
Been thinking about some security with regard to wireless cookies and WEP Cracking.
Still waiting on news of Banshee trunk improvements.
Sun is serious about Open Source. Maybe more so than anybody else. And yet they still act funky with Java. I'm still trying to figure out how I feel about this.
This looks really useful for next time I encounter data loss. It does happen.
Between academics lining up to help and the German government, I feel like Wikipedia is going to be pretty hard to make ridiculous generalizations regarding quality about "real soon now". It's not just wikipedia tough. Everyone is getting in on the peer production action. Peer production will only become more visible.
There are lots of books that should be written about software. These are some. This is interesting as a look at where things are\might be headed.
I continue to be torn up about the language wars. Are they in some ways just plain silly? Yes. All the same, furthering our tools matters. A lot. Competitors still include Erlang, Haskell, etc.
I tend to think of the web server market as being kind of stagnant. Or at least I did until this summer. Of course, I basically just heard about Apache and IIS until this summer. I'd never actually run/setup/worked with web servers until this summer. I kind of feel like that market is in the midst/outset of a shake up though. Observe.
Amazon's hardware as a service stuff just gets more and more interesting as the days go by. We're going to wake up one morning and this will have changed the world.
There are some real shifts happening. There are different work styles emerging. We'll see what comes of it.
I'm really excited that there is video of Steve Yegge talking online. I can't believe I haven't looked for some before. He's so damn smart I'll listen to anything he says. It links to all the other OSCON 2007 content too which is great because I've been wondering why GUADEC, OSCON, and Ubuntu Live content is all over t3h int4rwebz. Conferences are good because of mindshare but please share your geniuses keynotes with me. Imitate TED.
Keep working at those Online Desktop chestnuts. Even if it doesn't turn out to be the right problem, it sure will help our platform stand out.
I'm really glad this exists. It seems like it could be much more elegant than a reverse proxy or other load balancing solution.
It's always good to know what other people are reading and if anyone is exploring a critical literature then it's Worldchanging. So I'm assuming I'll find something lifechanging on this list.
We really can do just about anything these days. Between this and some 3D printing reports from Siggraph 2007 I have high hopes for what will be possible by 2020.
Lessig is awesome. So is proof of how awesome he is.
If you think the web isn't almost an OS layer itself, you're wrong. Now let's do performance analysis on it!
Social media really does matter. Open Source is naturally on the leading edge of that too. Video and Audio included.
We really are moving away from the desktop. Whether it's the web(Online Desktop), mobile (iPhone, OpenMoko), other embedded or home theater, or some strange new device (OLPC XO, Zonbu, zareason, minis and micro-atx, etc) there are strong currents in this sea.
Gnome and Linux really are doing good things. I'm really excited about watching us surge ahead on so many fronts.
Emerging worlds are cool and it's only going to happen more and more in games and serious apps. Mash up the virtual and the physical. It's all code. What distinction?
Knowing job projections is useful.

Kernels are interesting, you've got Linux, BSDs, Solaris, Darwin\XNU, whatever powers XP and Vista. But they're really just parts of the stack. All the same, they're really important parts of the stack. Infrastructure will always matter. It's just not the focus now. What we're building with it is the focus. The OS is irrelevant in so much as it's just an enabler. This sounds obvious and stupid. I need to think more on what I'm trying to say.

Maybe the processor industry going massively multicore is the only way to force software developers to take advantage of the power that's already there. By forcing them to adopt new programming conventions they force out 30 years of cruft code and development methodology that is bug-prone. Goodbye imperative, hello functional.

Okay, that's it for now. Sorry for the linkflood\social braindump.
Twelfth Thursday Literary Lines
posted on 2007-08-09 12:17:27
More Neruda today. He's good stuff. From his work, Canto General, X: The Fugitive:
"XII"
To all, to you
silent beings of the night
who took my hand in the darkness, to you,
lamps
of immortal light, star lines,
staff of life, secret brethren,
to all, to you,
I say: there's no giving thanks,
nothing can fill the wineglasses
of purity,
nothing can
contain all the sun in the invincible
springtime's flags,
like your quiet dignity.
I only
think
that I've perhaps been worthy of so much
simplicity, of a flower so pure,
that perhaps I'm you, that's right,
that bit of earth, flour, and song,
that natural batch that knows
whence it comes and where it belongs.
I'm not such a distant bell
or a crystal buried so deep
that you can't decipher, I'm just
people, hidden door, dark bread,
and when you welcome me, you welcome
yourself; that guest
repeatedly beaten
and repeatedly
reborn.
To all, to all,
to whomever I don't know, to whomever never
heard this name, to those who dwell
all along our long rivers,
at the foot of the volcanoes, in the sulfuric
shadow of copper, to fishermen and farmhands,
to blue Indians on the shores
of lakes sparkling like glass,
to the shoemaker who at this very hour questions,
nailing leather with ancient hands,
to you, to the one who unknowingly has awaited me,
I belong and acknowledge and sing.
The Funniest Man Alive
posted on 2007-08-08 15:55:24
Seriously, he is. Today:

XKCD - Facebook

Additionally, yummy things from reddit.com and the collective planets:
Marc Andreesen on Entrepreneurs and Creativity
A Slashdot Comment that Doesn't Suck. Almost makes me want to start reading slashdot again. Not quite enough somehow.
Good Linux Kernel Mailing List discussions about how Disk I/O is handled. Kerneltrap coverage.
Twelfth Wednesday Songs of Summer
posted on 2007-08-08 15:14:55
John Mayer - Sucker
Broken Social Scene - 7/4 (Shoreline)
Otis Redding - A Change Gonna Come
Andrew Bird - Fiery Crash
Gavin DeGraw - I Don't Want to Be
Perez Prado - Mambo #8
Ambulance LTD - Country Gentleman
Zero 7 - The Pageant of the Bizarre
John Mayer - I'm Gonna Find Another You
John Mayer - Comfortable
Twelfth Tuesday Quotables
posted on 2007-08-07 14:42:02
“Fail hard. Fail with motherfucking gusto. Succeeding, like flying, is throwing yourself to the ground and missing.” — Jeff Hodges, stolen from Jeff Waugh's Blog

"Computers can compute, but that's not what people use them for, mostly. Mostly, computers store and retrieve information." - Tim Bray

"Most programs are not write-once. They are reworked and rewritten again and again in their lives. Bugs must be debugged. Changing requirements and the need for increased functionality mean the program itself may be modified on an ongoing basis. During this process, human beings must be able to read and understand the original code; it is therefore more important by far for humans to be able to understand the program than it is for the computer." - Yukihiro Matsumoto
Twelfth Monday Update
posted on 2007-08-06 13:34:53
Summer: Week 11: Finished
Finish Music work on Zen Vision MP3 Player
Gym
Acquisition Laptop. Load Ubuntu Gutsy Alpha 3.
TVS
See Rick at Noon
Read Rebel Code

Unexpected: See John Mayer play Covered In Rain, Hang out with Ren and Dani, A Certain Unnamed Drama.

Summer: Week 12: Schedule
Monday
Turn 21
Battery
TVS?
SPSU Career Services
Fix Ken Boa's Computer at 2.
Birthday Stuff?
Tuesday
TVS
Gym
Pick up a NVidia AGP card for Ken Boa.
Bria's Going Away party at 8.
Wednesday
TVS
Install Ken Boa's new video card at 4.
Burke should be in town. Hang out?
Thursday
TVS
Gym
Ren and Dani?
Friday
Kris
Anything unfinished from Monday.

News for 8/6/06:
I'm 21 and I don't feel like doing the news so there. Actually, it has nothing to do with this being my birthday and everything to do with me being lazy but because it's my birthday I'll let myself get away with that. ... Maybe I'll put it in later.
Kindred Spirits?
posted on 2007-08-05 19:04:32
Dear Google,

I've been thinking about what you might be able to do for me lately. Surely you realize that you are the de facto Web Software incumbent, even in those market segments that were just born yesterday. I was thinking, you might really be able to help me out and make Orkut not pointless at the same time. Just help me find people that are reading the same things I am in Google Reader so I don't feel crazy. That is, help me find non-programmers that can't stop themselves from reading Steve Yegge, Paul Graham, Kerneltrap, TIRDC, the Redmonk Guys, Luis Villa, Worldchanging, XKCD, Patrick Logan, NJ Patel, O'Reilly Radar, Glyn Moody, Matt Asay, TEDTalks, and Lambda the Ultimate. Bonus points if you find females within 50 miles and 3 years of myself. Also, if subjects read Milosz and Kosinski in their spare time, it helps. Okay. Now please.

PS: I'm helping Ken Boa with some computer problems tomorrow. Sanford referred me. Does anyone else find this somewhat surreal? God, are you stalking me again?
Eleventh Friday Linux Lesson
posted on 2007-08-03 13:14:05
Hell with it. How's this for a Linux Lesson?

Linux Commands
Smorgasborg
posted on 2007-08-02 17:29:46
So, today has been unspeakably awesome. Things have been fun here at work, I've listened to good music, and I've read some wonderful things. Did I mention I have a kick ass new IBM Thinkpad running Linux? More on that later. First, here are some notes on the other stuff:

Songs of Summer
The Good, The Bad, and The Queen - History Song
Brightblack Morning Light - A River Could Be Loved
Zero 7 - This Fine Social Scene
Maximilian Hecker - Full of Voices
Mylo - Drop the Pressure
Broken Social Scene - Looks Just Like The Sun
Incubus - Favorite Things
My Brightest Diamond - Lucky (Radiohead Cover)
Foo Fighters - Generator
Broken Social Scene - Alive in 85

Literary Lines
More Neruda today. This one's called Poetry. It's gorgeous:
And it was at that age...poetry arrived
in search of me. I don't know, I don't know where
it came from, from winter or a river.
I don't know how or when,
no, they were not voices, they were not
words, not silence,
but from a street it called me,
from the branches of night,
abrubtly from the others,
among raging fires
or returning alone,
there it was, without a face,
and it touched me.

I didn't know what to say, my mouth
had no way
with names,
my eyes were blind.
Something knocked in my soul,
fever or forgotten wings,
and I made my own way,
deciphering
that fire,
and I wrote the first, faint line,
faint, without substance, pure
nonsense,
pure wisdom
of someone who knows nothing;
and suddenly I saw
the heavens
unfastened
and open,
planets,
palpitating plantations,
the darkness perforated,
riddled
with arrows, fire, and flowers,
the overpowering night, the universe.

And I, tiny being,
drunk with the great starry
void,
likeness, image of
mystery,
felt myself a pure part
of the abyss.
I wheeled with the stars.
My heart broke loose with the wind.

Social Brain Dump
http://news.com.com/8301-10784_3-9738924-7.html
http://radar.oreilly.com/archives/2007/07/why_congress_ne.html
http://www.ohloh.net/projects/3783/analyses/latest

http://www.eweek.com/article2/0,1759,2161500,00.asp
it's awesome to see suspicions confirmed in reality like this.

https://answers.launchpad.net/awn/+question/10849
AWN has moved to launchpad. Significant?

http://www.redmonk.com/jgovernor/2007/07/27/why-open-source-software-is-social-media/
T3H GR347357 343R!

http://geekz.co.uk/lovesraymond/archive/taking-freedom-further
tee hee

http://patricklogan.blogspot.com/2007/08/not-to-mention.html
this is really interesting. i know this guy is smart but i don't understand this enough. halp intarwebs!

http://feeds.feedburner.com/~r/oreilly/radar/atom/~3/139662644/your_web_browse.html
astounding. i need to play closer attention to o'reilly radar.

http://opendotdotdot.blogspot.com/2007/08/rock-on-amarok.html
this is really awesome\interesting in it's own right. self-explanatory, too!

That probably should've been like 4 separate posts but whatever. I love you guys. You love me too, right?

This blog covers 2015, Books, Butler, C, Dad, Discrete Math, Displays, Education, Erlang, Essay, Gaming, Gapingvoid, HTDP, Hardware, IP Law, LISP, Lecture, Lessig, Linkpost, Linux, Lists, MPAA, Milosz, Music, Neruda, Open Source, Operating Systems, Personal, Pics, Poetry, Programming, Programming Languages, Project Euler, Quotes, Reddit, SICP, Self-Learning, Uncategorized, Webcomic, XKCD, Xmas, \"Real World\", adulthood, apple, careers, coleslaw, consumption, creation, fqa, games, goals, heroes, injustice, linux, lisp, math, melee, metapost, milosz, personal, poetry, programming, ragequit, recreation, rip, strangeloop, work

View content from 2015-05, 2015-03, 2015-02, 2015-01, 2014-11, 2014-09, 2014-07, 2014-05, 2014-01, 2013-10, 2013-09, 2013-07, 2013-06, 2013-05, 2013-04, 2013-03, 2013-01, 2012-12, 2012-10, 2012-09, 2012-08, 2012-06, 2012-05, 2012-04, 2012-03, 2012-01, 2011-10, 2011-09, 2011-08, 2011-07, 2011-06, 2011-05, 2011-04, 2011-02, 2011-01, 2010-11, 2010-10, 2010-09, 2010-08, 2010-07, 2010-05, 2010-04, 2010-03, 2010-02, 2010-01, 2009-12, 2009-11, 2009-10, 2009-09, 2009-08, 2009-07, 2009-06, 2009-05, 2009-04, 2009-03, 2009-02, 2009-01, 2008-12, 2008-11, 2008-10, 2008-09, 2008-08, 2008-07, 2008-06, 2008-05, 2008-04, 2008-03, 2008-02, 2008-01, 2007-12, 2007-11, 2007-10, 2007-09, 2007-08, 2007-07, 2007-06, 2007-05


Unless otherwise credited all material Creative Commons License by Brit Butler