Designing an architecture for 2010 and beyond, for me
Here I am. A Birthday Boy again. 44 years old. Ancient. Ugh. Unless you take the speculations of the Exotropians and
Singularitists seriously, I'm well past the midpoint of my lifespan. I maybe have 20 years left to me. I mostly feel like I've lived a lifetime already. I used to have to work 18 months a year to get by. I used to take down a lot of money, and yet was still broke all the time. Now... I live in the third world and work on charitable stuff a lot and am still broke all the time. I daydream of making 3k a month for the most minimum effort I can make while sticking to my principles. I have like 20 plans to do so, most in various states of disrepair, hung up on one thing or another.
I tell myself, that for the past 5 years, I've been working on straightening all that out.
Myself tells me - "Get with the program!" and "What have you done about all that, lately?"
And I reply:The school next door starts up at 7AM, 6 days a week. 200 niños y niñas are on a permanent screaming recreation break, it seems, from start of school till 5PM, and then the marching band practices from 5 to 8, and after that, SJDS is usually partying down, loudly.
Larry Niven theorized with his Protector alien, that at mid-life, protectors lacking family would have to adopt their entire species to have a purpose in life, and those that didn't adopt their entire species, died young.
I could use a little less of my species running around screaming.That doesn't count the fan that's always running, either. What little work I've been getting done has been done nocturnally as a default and I'm often sleep deprived.
Moving to the house I'm in has to rank in the top 10 of the worst mistakes I've ever made. Every conscious minute I have had for the past 9 months has been filled with external noise, except when I was surfing. "Excuses!" -
myself tells me.The peace I get from surfing doesn't last more than a hour or two once back in town, and it's not like I'm getting any work done out on the waves. (well, my belly has mostly moved to my chest) I can't surf every day, as much as I would like to, because there isn't surf every day, nor is my body up to it. Every other day is feasible, every third day, probable.
I got the opportunity this week to house-sit at a house that's
way off the grid, deep in the country, overlooking a valley, near an awesome surf beach, without a single electric light in eyesight at night.
I wrote most of these past two blog entries by candlelight, in Emacs's org-mode. The crickets and howler monkeys are the loudest thing I can hear. It's wonderful. Moving back this far into the country has problems - I'd need a 4WD car and more capital overall - but perhaps just moving to a quieter neighborhood in SJDS will suffice - I do like not having to manage a car - but even those solutions begs the question: Jeeze, what do I want to do with the rest of my life?
Let's review.
The year so far... Professionally
The year so far, despite my disgruntlement on this day, has been a good one. I worked on a pretty cool music application that I can't talk about publicly. I may do a bit more work on it later this year.
I got stuck on it, though. I handed off the work to a programmer I deeply respect, and although he made serious progress, he didn't quite make it work, either. I feel perversely good about that.
After years of trying, two of the Linux drivers I wrote finally made it into the main kernel distribution. Not a lot of people can point to their name in the kernel. The ardour interface to one of them works well in ardour for the few users I have, but need a bit more work to make it into ardour's mainline. I'm told people are working on rosegarden and mplayer support as well. I'm happy. I wish the darn drivers were done so I wouldn't have to think about them anymore but no-one has shown up to take this cup from me yet. I'd like to finish up the first driver entirely and start on the ardour interface to the second one.
Visits
Much to my surprise my cousins, Laura and Linda - who are the most adventurous members of my family, by far - came to visit me in Nicaragua. They had a great time.
My gf from HS (She Who Will Not be Blogged) also visited for a week. This was mind-blowing, she's a New Yorker, New Yawkers just don't come here... She had a hard time with the heat, but had a good time in the night times. I hope I can lure more friends and family to visit in the coming years. The place really does have many charms, charms that will be paved over in 20 years. Some of my family even surf (yes, I'm talking to you, Bill), and others dive (Steve!).
I've got a little LISP, I've got a little LISP
For the past three years I've been writing down a long survey of what computer languages I liked and disliked, what was right about them, and what was wrong, what I did with them, & why I stopped. I got caught up on the bleeding edge of functional languages with experiments in gocaml and scalia, and also explored some unusual processors, like the
Blackfin and
Propellor, all in the hope that I'd find a language that tied to an obvious future generation of processors that would scale *me* into the next decade.
No such luck.That document not ready to be published, not by a long shot, but the list of languages I worked in is rather impressive, and the ones I merely played with even more so. All of which were useful and interesting inside of their domains and fail at one of the requirements above.Lately I've been working mostly in Spanish, which has been harder for me than all the computer languages I've worked in, combined. You don't have to pronounce "C", and all the weird grammar rules in Perl pale beside Spanish (and, now that I look back on it, English), and I still speak Spanish in a terrible pidgin that suffices for discussion of politics, women, music, food, and little else. After programming for nearly 25 years, it's second nature to view the answer to my problems is more programming. That didn't work. I came to the reverse conclusion a few years back that the answer was LESS programming, preferably, none. That didn't work, either. Now, I'm trying to find a happy medium. I
wrote about discovering org-mode recently. It's helping a lot for re-programming myself.What I want to find is a language that has the equivalent of "set bugs off; do what I'm thinking", something simultaneously fast to write in and fast running, easy, scalable, and reliable. The age old answer to that is you can meet any two of those requirements with any language, easily, the third, with a bit of work, and the fourth and fifth, not at all. Pick any two to start with.
Most of what I worked on and in for the past decade executed fast and was not easy, down-right hard, in fact. It paid well, but the price was in language expressiveness and in my personal over-specialization. Once I was a gtk 1.x expert at a time when there was only three paid jobs in the entire field! I jumped on the voip asterisk bandwagon early, which paid for a while, and has now mostly died in the wake of Skype (but fear not,
SIP continues to progress!).Right now I'm overspecialized in performance optimization (which nobody cares about) and real time programming (which few care about), and Embedded programming, which is all the rage, is mostly getting outsourced, for some reason. The iphone is hot (and I'm kind of sorry I missed out on that), as are cell phones in general (but I was involved in that back when it was hard, in 2000, and don't even own a high end cell phone now) I can't bring myself to care about cell phones. Webpads maybe... I have a story to tell about that, one day... I was still deep in Perl when the trend went to Java (I'm not sorry I missed out on java), Before I decided to take this summer off, I was working on making
libsamplerate "do" SSE. SSE programming is hard - it is the equivalent of writing assembly in C without the benefit of a macro assembler. Hard. My early tests showed significant improvements that I think will bear out after I get 3 days of full brain cells to actually make it all work, and a couple weeks more of less brain cells to clean it up - but to do that I have to reinvent somewhat more C++ inside of C than I'd like. After it is *done* I'd like to not write in assembly any more. Maybe the compilers will catch up to SSE more in the future.
Hell, I'd like to ditch "C". I have multiple projects left to finish in C, however, and I don't see how I can quit using it - but I do hope I can use it a lot less in the future. I was tempted a lot by what's going on in Cuda and OpenCL- massively parallel programming is going to be the answer to some major problems - but after trying to wrap my head around doing libsamplerate in Cuda - I want to move up a level. (or quit the field entirely - how many industries are you aware of that require you re-invent yourself every five years?). C++, well, ardour's written in it, I still have bugs left to fix in ardour, but I'd like to quit that, too. Ardour rocks but it is extraordinarily complex under the covers.
One major program left to write
I have one fairly large program of my own, left to write, one that I must write, in some language or combination of languages I'll decide one one day soon. I keep hoping someone else will write it, but so far, no luck. I'm not going to talk about it today.
The biggest program I have left to write, though, is the one my life runs on, and it's barely booting right now, and pretty buggy.
Some percentage of my output has GOT to get paid for. What that is - whether it be the music recordings I've done, the coding I do, the writing I do - or something else entirely - remains to be determined. What have I got that other people want?
Conclusion
In less than 10 hours spent on these two blog posts, I pumped out 5000 words, clocked in and out over three segments of time. I like knowing that. 500 words an hour, if it were paid, is a living at 6 cents a word. 10 cents would be better, of course, and some markets pay that.
Doc's "Because" effect isn't working for me because I just don't generate enough output to take advantage of it. I need to follow Heinlein's dictum - "Sell what you write, write what you sell".
Itunes pays 33 cents a song, roughly, which has to be divvied up between the label, and the artist. Other services pay more. Both Apple and the major labels are trying to resurrect the album - which is great - I LIKE albums, I have recorded 9 albums of various Nicaraguan artists - structured as albums, not singles - in the queue now, and have been experimenting with multi-mode CDs - a normal CD with an additional filesystem on it containing pre-made mp3s, graphics, and hyperlinks. Coming up with the dough to get even one of them manufactured is a problem.
I'm going to take the rest of this month to work on me - via automating every task I can think of, mostly using Emacs LISP, taking the time to solve the hard problems well, for a change, and documenting and backing up the results so I will have them forever. It is a surprising conclusion, that the language I'd (re)learn this year would be any variant of LISP. It's remarkably retro, in fact, and not something I'd expect others to do. But I think better in LISP, and I need solutions that apply to me. I suspect I'll explore some more current variants of LISP - arc and Clojure come to mind... Clojure has a lot of appeal because of it's interface to the java virtual machine....And hopefully, in September, I'll find some paid project to work on. I've got 3 candidates. I've already lined up enough charitable work - notably the
village telco is sending me a couple of their cool boards shortly - to keep me busy for years and years.
I don't how I extract myself from my current lease, I have to get into a new house as soon as possible. I have a shot at working out of Italy, perhaps, and I'd like that a lot, too, so I'll work on solving the housing problem via one method or another before my lease is up.The year is still young, even if I am not! I'm going surfing at dawn.
Update: It's dawn. I'm outta here.
Update (Aug 16): I tried to edit this piece with the blogger API. It did bad things. I will fix it later. Sorry for the loss of most paragraphs.
Update 6 Hours later: Fixed now.
Labels: birthday, emacs, org mode