JF make 254
JF Nav
JF Nav
Creation Date: 2003-02-02
I just watched all three games of the Kasparov/Deep Junior match after watching Cowboy Bebop Chessmaster Hex. It was pretty cool. Kasparov, Deep Junior, and all good chess players have one skill that I lack: giving up a piece for the win. I give up pieces, yes, but only if it's a choice between that one and one of higher value or one in my immediate plan. After watching Kasparov/Deep Junior, I decided to have a little Man vs. Machine game for myself: Javantea vs. gnuchessx. My gnuchessx is running on a 1.7 GHz Pentium 4 with 128 MB PC-133 RAM running a custom build of Linux 2.4.20, from Slackware 8.1, XFree86 4.2.1, and KDE 3.0. Why does any of that matter? The Pentium 4 makes gnuchessx extremely fast. How fast? It beat me using less than 5 minutes in all three games and I took 6 minutes going a bit faster than usual. The 128 MB of PC-133 RAM means that the processor is not limited by the hard drive speed. Everything used is on RAM, and only 4 MB is on my gigabyte swap partition. The Linux 2.4.20 means that the setup is free (as in speech) and since I downloaded Slackware 8.1, it was also free (as in lunch*). XFree86 4.2.1 means that I do minor updates on low level systems. KDE 3.0 means that I don't like spending 8 hours compiling a major update to high level systems like KDE and that Slackware is slacking on building binaries for KDE.

While the lesson is on open software, I'd like to share a bit about chess. I am not a very good chess player. While I ranked around 1600 six years ago and haven't played much since then, I don't know the openings, the tricks, and I simply get beaten so often. My problem is not that I am naturally bad, but I don't put as much effort as most chess players. You see, to play chess with another chess player, it is assumed that you play chess quite often and have developed skills, techniques, and even strategies. When playing gnuchessx, I tried the old tricks that were laughably silly back in the day and I even got some good stuff going on it. But it just had some serious skills. The computer has the type of lookahead that chess players with talent have. But instead of remembering things, it just plain counts on its fingers. That's right, computers do everything on the level of add, subtract, multiply, divide, is a greater than, less than, or equal to 0? Programmers can do things on a slightly higher level, but usually they program down to simple algebra if(a+b < 2*c*d) e=f*2*b*c; But chess is not about counting on one's fingers. If you've played it, you think strategy, weaknesses, and if you're around my level of play you think two or three steps ahead. It's certainly not about finding the move that will allow for the best probable environment ten moves down the line. But it tells you a bit about software and computers in general, right? Ten steps down the line, you're going to want a collision with this wall and a rotation around this axis. You're going to have this moving this way and that moving that way which will cause this third thing to move the other way. If you think about it, software is made from three levels: low-level functions (eg. arithmatic), correct/usable functions (ie. view model matrix rotation), and program level (ie. update skinned model). I code in the higher two, but without the first, I'd be lost and without the last, the coder of the low-level wouldn't be able to code the first. So which came first, the chicken or the egg? The egg, they just made the egg by typing in machine code directly onto RAM.

*People say when you get something with value and do not pay for it, it is "free as in beer". I say that it is "free as in lunch", for free lunch. You see, there is no free lunch. I agree. But when I get something of value, I expect to pay for it. When I don't have the money to pay for it or if the person doesn't ask any money for it, I expect that someone else is paying for it (if not the developer, definately someone else). But I also expect that I will pay for it in the long run. My father says that I have paid for it by "crawling back into the caves of command prompts and buggy software," he says with a B-rated horror movie accent. But I know for a fact that Linux works better than Win98 and WinXP (of which, Win98 is my only option, since I'm flat broke). So I'm fighting my way into the light while my father tills his soil in .NET, getting shot at by bluescreens hourly on his behemoth monstrosity computers. But how will I pay Slackware, Linux, GNU, FSF, et al for their products? I will give back what I get. Doesn't that go against the idea of free software? Charging money and then paying? Why don't I just pay MSFT for WinXP and charge as usual? Because open sourcers gives software away because they love good software. In order to have good software, you need good programmers to have the source. In order for good programmers to have the source, you have to make the source open, and thus the software free. I love good software, they do too. We love coding, we love playing, and we love getting software. So let's think about economic systems, shall we? There are two economic systems that describes the open source movement and there are two that describe the proprietary software movement. There are two that describe many things. We have the micro-economic and the macro-economic systems. First, let's look on the small scale micro-economic system. A person needs around US$600-1500 to live in Seattle depending on their situation. If they want more, they can earn more. So, I did a case study for myself below. The bottom line is that I only need $600 to survive ($7,200 annual after tax net income). Any more than that goes toward changing the world. So if I'm developing a product, I want to net an average of $600 per month. If I decide that my software is worth $20 per copy and takes $2 per copy to make and $20 per month for web hosting we get an equation: 600+20+n*2=20*n 620=18*n n = 35 I need to sell 35 copies per month on average. So what is my audience size, my competition, and my plan? Each software package is different. One plan for open-source is to give away the source code, get a day job, and ask for donations. Uh huh, not very exciting, is it? Hackers do this for the love of software. But what if someone actually wants to make money without a day job? Or what if a hacker wants to spend 120 hours/week instead of 80 hours per week on programmming what they want? There are a few apps that are killer apps. You can find them and if you're a good programmer, you can make them. Mete Ciragan asks $20 per copy of MilkShape3D modeller and has a neat system for trialware that works well. Amateur modellers are happy to pay $20 for good software instead of $400 for pro software. I would bet that Mete makes $600 per month on an average. It only takes a single person per day. If you think how many people use KDE, Gnome, Red Hat, Mandrake, it's amazing the user base they have. If we rich users would "share up our snacks", we'd get a huge boost in how many free (as in speech/lunch) snacks we got. My plan is to create video games, manga, anime, and scientific tools. While the day job will have to do while I create these video games, manga, anime, and scientific tools, I am confident that my low budget, open source business model will succeed.

If you don't want to know the specifics of my micro-economic status, skip to the macroeconomics section. I live on a strict $600 budget because I'm flat broke. $285 goes to rent, $50 utilities, $245 food. I spend $20 per month on entertainment (two manga and eating out once a month). I spend $800 per quarter on my college tuition beyond my budget. I can use credit cards, but only until all of them max out, etc. When I get out of school I'll have $600 food and rent, $50 student loans, $100 credit card per month. Since there is no early payback fee on loans or credit, I'll probably want far more than that to pay back the $15,000 asap. So in order to meet my needs I need a job that pays my bills. Assuming I find a _job_, I'll work 40 hours per week. In order to get the minimum, $750, I need to get $4.69 per hour. Since this is below minimum wage, we adjust to $1200. That means $600 food/rent, $400 credit card, $200 student loans. That is minimum assuming I get a _job_. Since I am a computer programmer and physicist with a BS in Physics, I may get upwards of $15 per hour (who, who!). At which rate I would make $2400 and be able to pay $1200 credit card, $600 student loans for the first 4 months (at which point the credit card debts would no longer exist) and then $1800 per month on my student loans for 7 months, at which point they would cease to exist. Then I would have $600 for food/rent and $1800 for whatever I chose. $1800?? When the debts are gone, it become a huge number, doesn't it? What does a guy do with $1800? Put it in the bank? I'll be just turning 23. If I put $1800 in the bank per month for a year, I'll have $21,600 saved and I'll be 24. If I can find a savings that gives 10% per year, it will become $1.18 Million when I reach retirement age. Due to inflation, by that time, $1.18M will be worth about: $20,000 in 2002 cash. Hahaha. People who invested at low interest rates when they were young and are now retiring now know this. Most people who are retiring now don't know this because they waited until they were old and had kids to really save anything like pension 401k, etc. Assuming I get $1800 per month, more than I could ever think of using, what will I use it for? I will most definately use it to make the most of my youth while I still have it. That's right, spending it. I'll spend it wisely though. I'm not going to go throwing money around, buying a car, dating cheap women, and getting plastered. I plan on quitting my job when I have $4000 of cash, touring the world, especially Asia. After that, I'll see about changing the world.

I promised a bit of macroeconomics, so here is what I got: programmers trading source around the world for free is a decrease in import/export. Microsoft does not export software to Linux users in Europe, Asia, Austrailia, Africa, and South America. If more people work day jobs, they are keeping the domestic product the same. If the software creators are "non-profit" organizations (like bloodbanks *cough* vampires *cough*), they are untaxable (it's fuzzy on this concept). This hurts the government, but no one else. Since it is open source, free, and has a much larger developer base, it can directly compete with major corporations, decreasing domestic sales. Overall, it hurts the global economy terribly while lowering cost of living and increasing quality of life. In Macroeconomics 200 four years ago, I studied Egypt's economy. It has a very low gdp per capita largely due to it's lack of electricity. It has the Nile river with many energy sources, but does not have the technology to build them. The WB/IMF would love to help them, but would a country that imports as much as it does already benefit from loans and economic "stimulus" package? While I'm a fan of electricity myself, would I go into debt that I couldn't hope to get out of to get it? There is another option. Local entrepreneurs paying local labor and local engineers to build local electrical power plants. The capitalists make profit, the labor and engineers get good jobs, and people get electricity (and jobs that it creates) at a decent price. They don't starve and they aren't in any debt. How can that be applied to our idea? The modern electronic world requires software. Some people sell it, some people give it away, some use it. Users buy it and they give their money to: whichever is the best. Those who give it away give users a way to pay them and give them a reason: even better future software. They give other developers and laborers jobs and they give users good software. Just like electricity in Egypt. Protesters often say a new world is possible. One may ask just where a new world starts. It starts with the developers! Ayn Rand calls these people objectivists, capitalists, and doers. If you don't believe me, read Fountainhead and Atlas Shrugged. ^_^ If you forget that she's telling you to be selfish and you just think about what she says, you will find that she's right about a lot of things.

Last night was pretty cool. I met some cool people at Critical Mass and they took me to their home and cooked me dinner. About fifteen of us ate vegetarian tofu stir-fry with white rice and salad around a table. Boy was it good! They're really cool and they are even UW students. Ya cha! No one ever said there was no free dinner.

Home Characters Making Of Technical Mail News Links |< First < Prev Next > Latest >|  bandwidth version Goto Scene