Billy's old car

blog entry posted by lalo (Lalo Martins) on 2008-02-05 11:01:00

Tags:

Billy has a broken car. It's broken mostly because he doesn't know how to run it, of course; and more importantly, because it's making Billy rivers of money even though it's broken, so there's no incentive to learn to run it right.

Then Jerry drives by with an incredibly shaggy, shitty car, with a few nice accessories.

Billy immediately thinks: I'll buy Jerry's car, and use the parts to make mine less broken!

Of course, Billy still not knowing what to do with a car, it will remain broken, or best case, be fixed for a short time before he breaks it again. And it will still be hugely profitable. So to be honest, I see nothing wrong with Billy's logic.

Yeah, there's a reasonable chance it will make zero difference to Billy's car in the long run. But it will make people talk about Billy even more, which of course, puts more money on his pocket. Maybe even more than he's offering.

Spam, beautiful spam, lovely spam!

blog entry posted by lalo (Lalo Martins) on 2007-08-31 02:34:00

Tags:

Spam is so useful! I keep being surprised every time I clean my spam box!

See; this MegaDik thing supposedly will add 4 inches to my length down there. Did you buy yours yet? All my 7 girlfriends have been complaining I need another 2 inches. Well, I'll get 4 and they'll be happy!

Of course, I can only have the energy to have sex with so many girls because I always buy ciallis from this other nice guys that keep sending me spam. In fact, I GOT one of these girlfriends thanks to those great "win a free ipod" spams -- since I already had 3, I gave the new ipod to a girl I was interested on, and she immediately took off her clothes!

And it's only fair that I spend so much money on spam. After all, my email seems to win some lottery or another twice a week, I don't even have to work anymore... not to speak of all the money I got helping that nice gentleman that had some trouble in Nigeria!

I'm so happy that we have spam. When we started using the internet, we had no idea it would eventually become such a huge factor in our lives.

Better stop now; my eyes are welling up.

On "the boundaries between computers"

blog entry posted by lalo (Lalo Martins) on 2005-09-23 16:39:00

Tags:

Rough sketch of how I would like to use my laptop and my (more powerful) office computer (let's call it the "station"). For the record, the station has two monitors, as of this writing.

When I say data is "in" a computer, I mean I'm able to use this data when I have this computer and no other, and I'm unable to use this data when I don't have this computer.

Where I'm Coming From, part II

blog entry posted by lalo (Lalo Martins) on 2005-09-15 08:07:00

Tags:

...and now that you have the history behind it, let me try to put in words my basic point of view on computers.

Let me begin by saying that, as of today (and this has been true for many years), all systems I know about, suck beyond tolerance. And yes, I have used OSX. It sucks too. (By "system", an intentionally vague term, I mean OSes, and GUI environments, the general UI/API paradigms, and so on.) And they are "improving" in the wrong direction - which means, in 5 years, they will probably suck more, but be more shiny about it.

The premise I'll work with is: there is very little limit to what a computer can do. It is essentially, as I realized when I was about 9, a programmable device; the whole point of its existence is to be customized, to do what you want the way you want.

Modern software is more in the business of telling you what you want.

It might be a "monopoly of magic" problem. Programming is potentially easy, at least for small tasks. But if everyone could program, how would "true" programmers make a living? So the big companies, who very much prefer to stay in business, want you to believe that it's a very arcane art, a burden they are taking away from you - and you should pay them for that. That is, IMO, one of the main reasons they are so afraid of Free Software and open source; we take the stance that, instead, programming is accessible to anyone, and that it's best done in groups (community), and worse, that it's fun. That even the small tasks you can learn to do with a few days of study, can be an useful contribution.

Or it might just be laziness.

To me, a computer which is not programmable, or not conveniently programmable, is at least 50% useless. That's why I eventually abandoned my PalmPilot to buy a VR3 on which I could run Python. Incidentally, that's also how, years earlier, I learned about Free Software, GNU, and Linux... after I was forced to abandon OS/2, I went on the net (which was a new thing for me) in search of a good C++ compiler for Windows, and stumbled on djgcc - which had a great page explaining what is Free Software, and a link to GNU. I was hooked.

But most people are content with what is dumped on them by the vendors; most don't even change the windows color schemes.

I guess what I mean is: I want more developers and less end-users. I want to turn all end-users into small-time developers. My dream system is an infinitely customized thing, where "upgrade" implies some revision-control-like operation of figuring out how the new features fit in with your customizations. Where sharing these customizations is routine, and the system itself gives you tools to do that.

(Yes, I know about Squeak. It's an awesome prototype of these concepts. It also suffers from many other problems that make it unusable as an actual system, most of which are off-topic for this article, but most important of all, being locked into a single programming language.)

The only desktop development that made me really excited recently was the OSX Dashboard (or gDesklets). Not that it's incredibly more accessible than writing an app with applescript or pygtk or even pyobjc; just that it encourages more people to try. But seriously, anyone in the audience whose mother masters enough html and javascript to write an actually useful dashboard thingie (or enough python for a gDesklet one) please raise their hands.

Even in the world of Free Software, we're still bound in "their" thinking, the "ball and chain" way, which makes our systems suck as much as "theirs" (in some aspects, less, in others, more, average 0).

We design our apps to be end-user friendly because, well, we want new users. But few, usually young, projects care about newbie developers (bzr comes to mind). We should do both; aim for a clear model that you can actually explain to someone who is doing high school, for well-tested code (so that people who are learning to program can see exactly what breaks the app), for code that an unexperienced programmer (or someone trying to became one) can actually read and understand, for a programmable interface (be it plugin system, client library, scripting system, whatever) that end-users don't need to be afraid of and that will encourage them to actually learn basic programming. For encouraging communities, where newbies know where to post patches and extensions, where those submissions are actually reviewed, often resulting in hints that help the new programmer improve. (Sometimes even, heh, in actually accepting the patch. The quality of submissions should generally improve with the amount of help available and the clarity of the system, until at some point, total newcomers can actually write usable stuff.)

Eventually, when enough people engage in this "meta-refactoring" principle of clear models and understandable systems, when enough users no longer perceive the tools they use as black boxes, I believe we will naturally suffer a few paradigm shifts in the systems as a whole (now I go back to using "system" in the sense I used on the top of the post), which can gradually help them get rid of the suckiness. My pet peeve is getting rid of the concepts of "application" and "process", which are rooted in Multics/Unix ideas from 30 years ago; but another good point, raised by Tom a few days ago, is that we need to outgrow the boundaries between "computers", and the notion that there are a few minimal components a "computer" must have. (The latter is pretty much dead already. You can run Linux (yes, mr. Stallman, I'm referring to the kernel here) on anything that has a cpu and memory.)

It may turn out that we need new languages, too...

Where I'm Coming From, part I

blog entry posted by lalo (Lalo Martins) on 2005-09-14 08:18:00

Tags:

so I figured the best way to start this blog was to introduce myself.

Not in the sense of "hello, I'm Lalo, I live in China and I come from Brazil, and this here is what I do." I mean, if you don't already know who I am, then you're probably not very interested either :-)

What I mean is - and I don't think I ever discussed this thoroughly with anyone - what do I believe in, from the point of view of software, why am I so adamant about Free Software, what is my vision for the future, what I would like to do to help, and hopefully, why.

In the process, I hope this "braindumping" can also make a few interesting points along the way :-)

But before I start, in the more traditional "blog" style: yesterday at the Beijing LUG we had a great presentation about "Linux adoption in China". The situation seems to be more or less the same we had in Brazil about two years ago. I think it's very promising. And next Thursday we have an exceptional BLUG meeting, to welcome RMS and hear about the history and philosophy of GNU, et al. Yeah, I know how obnoxious he can be, but I'm a big fan, so I'm going :-)

Then, hmm, let's get to it.

The Geek Kid

So I got my first "computer" when I was about eight. On those times, there were basically two categories of computer hobbyists in Brazil; the (very small) Commodore camp, and the Z80 camp, which basically ran Sinclair clones that you would attach to your TV. (The very successful MSX and Apple camps would still take an year or two to form; although there were already a few Apple users by that time, I only heard of them more than 15 years later.)

By that time, my dad decided to switch careers, and become a programmer. He believed computers were the future, and he claimed that in 15 years, personal computers would be everywhere. (What a whacky idea.) So he gave me a Brazilian Sinclair clone, called "TK-85" (and another, identical one to my older cousin). (Or maybe it was an earlier model? Maybe the TK-80?) So while many kids our age were playing with Atari games, me and my cousin were playing with this awesome little box.

And the first user interface I was introduced to, was BASIC. Like all other kids, what I was primarily interested in was playing games; but the TK came with a very good user's manual, and I always liked to read these. And then, the main form in which games were available for this platform, was as source code printed in hobbyist magazines. (Ah, the golden times.) My dad quickly supplied me with a few, but not before I tried to write my own first game (a poor-man's Space Invaders clone with letters shooting dots at other letters).

To compound the "problem", the storage device for the TK was an interface where you could plug a standard tape recorder, and my usual luck with hardware decided to kick in early: I never could get the damn thing to work. Which meant, every time I wanted to play something, I had to type it out first. (I'd typically leave the TK on for three or four days until I got tired of each game, which probably is the origin of my obsession with keeping computers always on.)

So, by the time I met my "second" computer, more than an year later (and an year is a lot of time when you're 9), I had a firmly planted definition of what is a computer: to me, it was - and still is, to this day - a device that you can program to do things. (Yes, during that time I experimented with other uses for my TK, including helping me with the math homework.)

My TK was later stolen, and replaced by a "Ringo", another Brazilian Sinclair clone. By then, I had already seen a PC (at the company for which my dad was programming - it's probably worth mentioned that he lived in another town, about 4 hours away), and another cousin of mine got an MSX. So the "Ringo" was quickly forgotten.

The MSX (even though it wasn't mine) was when I met my first computing community. There were no stores where you could buy MSX software and games; the only "legal" software most people had, was what came with the box itself. But there was a thriving network of people exchanging floppies, and... uh... whatever was the medium we used before someone hacked a floppy drive into the MSX. (Yes, we used floppies before the MSX2 officially introduced them.)

So by the time we all started using PCs (yes, there was a Mac and an Amiga communities by then, but we didn't know about them), I had a firmly planted definition of software: it's something that someone writes (you or someone else), and then you share. I had also an incipient "GNU irk"; the software I started with (on the TK) came as source, and I would often modify it. The MSX software came compiled (and there was no compiler available in our little pirate network), so it was "less cool". On my cousin's MSX, I started writing my own game (which didn't go anywhere due to the lack of a compiler).

The early PC era wasn't much different; we had a copy of DOS, supplied with the computer, and it was already possible to walk into a store and buy legal software, but few people actually did it. We would have boxes or drawers full of "shared" floppies, with all sorts of stuff.

Here I met Turbo Basic and finally learned what a compiler was. After a few weeks of frustration, my dad interfered again, giving me a copy of Turbo Pascal instead; and this was when I figured I could be a programmer.

By this time, I also learned that my father operated in a business model that was somewhat incompatible with my points of view (he built "custom-made" software, which wasn't redistributable and didn't go with sources. But that, in hindsight, wasn't really an important component; he did that because that's what everyone else did, but in practice, what his clients paid for was really the support.) So for the first time, I was prompted to actually think about my points of view, and question them; and my conclusion was that yes, sharing was better. The reason I made this decision... will have to wait for the next post ;-)

So, hmm, ok, I have to go to work now :-) this is my background; tonight I'll get to some more ethereal matters of vision and philosophy.