Older blog entries for chipx86 (starting at number 134)


Wow, quite an old article you dug up there. Yeah, I was a part of that project for several years, and as is the case in many news articles, the actual details of what happened were never presented correctly.

The split was planned in advance by a group of people (who were not sharing the code anyway) and put into action that one day... We had a lot of very good developers left, so it wasn't like everybody was gone, and actually I think it was only 10 or so people that left the project. I can't remember. Their goals for the kernel were much different from ours, so the code they eventually showed after the split wasn't even a Stanford Cache Kernel. Anyhow, we did have a working kernel, though it wasn't usable for much. It was eventually decided that our energy could better be put to other uses. The group of people that split produced some code, but I don't believe it was ever in a useful state either. Last I heard, they quit too.

Freedows was a project that was often bashed by a lot of people, and was frequently called vaporware. However, unless you were one of the people that was part of the project and followed it closely, you'll never know how hard we tried. I like to think that we gained some pretty good management skills from it, and I know I learned a lot about operating system design that way. I don't consider it a waste of time at all.

Knock Knock

Okay, now that I have this thing close to working, I'll talk a bit more about it.

It's basically two extra security layers for a system. It is a small daemon used in conjunction with your firewall. You would first set whatever ports you want closed to the general public as closed or stealth. Then you would run the daemon (after setting the options in the config).

The daemon, knockd, listens on the ports and waits for a "secret knock," which is a sequence of ports being hit in a certain amount of time. Because of the limited amount of time, it cannot be brute-forced. The longer the sequence, the harder it would be to guess it.

After the client, called a knocker, sends the secret knock, it then checks a port on the server, which is used for authentication through knock-knock. The daemon will ask for a username and password, and the knocker will give it (either one stored in the config or manually typed in from the user). The traffic will be encrypted.

The Knock Knock auth port is also closed or stealth, but when the sequence is set, knockd opens up that port for your IP address. If you enter your username and password (specific to knockd) incorrectly three times, it will be closed down again. If you enter it correctly, the ports setup with that sequence in knockd will open up to your IP address only. The config file will let admins specify an amount of time for these ports to be open, or specify a timeout period, where if no activity is sent on these ports in a certain amount of time, they will shut down.

This would allow a server to run such services as telnet, ssh, ftp, cvs, etc. for only people with knockers and the correct secret knocks and username/passwords. These services will be shut off to anybody else.

So far, I have a prototype knockd and console knocker client written. It does not have authentication yet, but you can knock. It also doesn't have configuration yet. I hope to add these today.

Knock Knock

Knock Knock is going well. I hacked out a client and server in a few hours that seems to work fairly well. A few bugs, and no config file support or authentication, but I'll have that implemented in a couple of days.

I'll talk more about this when I get it working. It's no huge secret, but I want it finished before I talk about it, as I may run into design problems (though I don't think I will).


One of my brothers got hit by a car today. He's okay, but his bike is messed up. His birthday is Friday, but at least he won't miss it due to the accident.

RUN Magazines

The guy I bought the magazines from says that they're on their way. It is a bit late, but seeing that the 4th of July is coming up, he may be a bit busy. His auto-response seemed to indicate that as well, and his feedback on ebay is very positive, so it's not a problem or anything.

I'm just very anxious to read through them :)

26 Jun 2002 (updated 26 Jun 2002 at 23:24 UTC) »

Back from Vacation

Well I'm back from vacation! It was a fun trip. My mom, sister, and I went to several towns near the coast in Northern California. The vacation was mainly for my sister, who got to visit the ocean, an aquarium, and the redwoods. I have a lot of pictures (a 16MB memory stick full, plus some on a 64MB stick), which I'll post up on my gallery sometime.


I had an idea during my vacation for a security application I call Knock-Knock. I'll post more about this later when I have the ideas sorted out, and maybe a possible implementation.


Wow, you leave for a few days and the listservs finally become active. The new gnupdate-i18n listserv had several posts between some new translators. With luck, it will stay active.

I have several upcoming plans for gpkg and libpackman, such as expression parsing (formatted information output from a package or database) and tighter integration between libpackman and libcomprex. We'll see how much I can get done tonight, now that I'm back and itchin' to code.

RUN Magazines

My Commodore RUN magazines haven't arrived yet. Hopefully the guy is just delayed. I think I'd better contact him.


Actually, I was trying to help. I told you how I started and what you could do to get involved. How is that being rude? I think you are the one who needs to apologize to me, and to the rest of Advogato. And then it may be time for you to just leave.


My mom, sister and I are heading out tomorrow for a little vacation to the beach. I haven't gone in years, and I suspect this will be very fun with my sister. We'll be leaving at 06:00 tomorrow, which is several hours earlier than I'm used to, but I think I'll just end up sleeping in the car.

TV Out on GeForce2 MX 400

I've had this GeForce2 MX 400 w/ TV Out card for a year, and I just now finally plugged it into my TV. It was very simple to get Xinerama working with it. I got to watch some mpegs over on the TV, which proved interesting, and I have to say that I enjoy it more than watching them on the computer


First, like other people have said, you don't write software to create any movement. You scratch an itch. Some people want everybody to move from Windows to *nix, but I think most experienced users and developers realize that Windows is here to stay for awhile, and that the right tool for the job is important.

To get started in open source development, either just wait until you realize one day that you need to get a task done in an easier way, or after using open source programs for awhile, see if there are any features you want to add. Most people don't start by writing big programs. Write small shell scripts or patches or tiny utilities that get a certain job done. That is the way to start, imho.

Eventually, as you do more and build your reputation (more on this in a second), you may come in contact with other developers and projects. For example, I have been a user of Gaim for several years, and had known briefly who the development team was. I never expected to actually work with them. Then one day, I saw a notice on their website saying they were looking for a new designer. I came up with a layout and sent it in. Rob Flynn, maintainer of Gaim, said he liked it and that became the next layout. A year later, I ran into Rob again as I helped run the #wtc-confirmed channel on OPN (on September 11th). It was then that I joined their channel on IRC and got to know the development team. Now I work on the website and submit patches to the project.

So basically, if you want to move up, you have to start low and just get to know people. And you need to make a good impression! Pissing off a community of open source developers by saying how we're doing things all wrong is a horrible way of making a name for yourself. I don't know if your recent posts in your weblog are your way of trying to make yourself sound better, but you need to stop trying to degrade others. You only end up hurting yourself.

Open source developers do not owe anything to other people. They develop programs to do what they themselves want to do. They release the code to the public so that others can use it, and perhaps contribute to it. Most people using UNIX-based operating systems are able to figure most things out, and if they can't, they can ask the developer(s) in public listservs or in private for help.

If this stuff didn't work, people wouldn't be doing it.

People will not help you. You need to help yourself. However, since you seem to not even understand the mentality of open source, nor do you have a use for open source operating systems, perhaps Windows is the right thing for you. You can still write open source software for Windows, however, or you can use both Windows and *nix. There are lots of docs, if you just open your eyes and look around for a second. Bashing the people that work hard to create products that you use is the best way of making permanent enemies.

I know most people are tired of your nonsense here. If I were you, I would make sure to be very careful in what I say from now on. Start to find positive things in life, instead of negative things. Find a project and talk about how you're doing in that. Just be productive and civil in some way, and you'll be better accepted. Otherwise, you will forever inflict upon yourself the mark of the Troll.

Oh, and stop using certifications as a way to show your like or dislike for a person. Use them in the way that they are intended. Otherwise, you are contributing to the problems here. (Well, actually you are, but as I said earlier, that's something you really need to work on before you make important enemies).

Sad :(

I'm a very sad person right now.

I was playing around with an eggdrop bot, which I plan on setting up as a logging bot and an infobot, and installed this script so I could have it DCC me (since I'm unable to DCC it within this firewall). PortSentry (which never worked until this very moment) caught the DCC attempt and decided to block me. So I removed myself from there, set myself up so I wouldn't be blocked again, and restarted it. Unfortunately, it didn't acknowledge that, and banned me the next time. I thought it was just annoying, and that I would go and try to fix it again, or just disable. But then it did something I didn't expect..

It rebooted my computer!

My uptime was 151 days. I was about to beat my record of 153. Sigh..... I guess now is a good time to go get that UPS I've been putting off buying...

Oh, and I uninstalled portsentry.


It seems UNIX is not for you, if you don't want an OS that you can't just install and be done with it. There are docs available, you just have to look around a bit more. I don't use BSD, but I have friends who do, and have found documentation on firewalls. I suggest either looking around, experimenting a bit, or choosing another operating system. If you want your Office 2000 and Madden Football 2002, stick with Windows.

Writing documentation is the tedious part of programming. As a person who maintains 11 (at last count) programs, not counting the ones I'm just a part of, I've realized that, though documentation is necessary, it takes away a lot of time that could be used writing the program. Not everybody needs to write the docs before the program. They teach that in school, but in the real world, it's not always necessary. Most programmers devise their own way of organizing the programs and planning them out.

As the Certification page states:

All of these levels are based on free software only, as defined by the Debian Free Software Guidelines . In general, you should base the level on work done in the last year.

I fail to see anything in there about basing certifications on what you think of the person. It seems to me that your activities on Advogato are a reflection of those in #webdesign. You do not accept the rules stated, and you go on long rants about things that should never be brought up in the first place. I cannot appologize to you, as I no longer even understand what you're mad about this week.

If you want to settle any of this, you meet me on IRC. Please keep the comments here about open source-related things, and try to say something positive once in awhile, please. I know I'm not the only person who has grown tired of the bashing, insults, and negative criticisms.

22 Jun 2002 (updated 22 Jun 2002 at 05:32 UTC) »


I fixed several bugs in libcomprex today, as well as worked on the new iterator interface for files and directories. It's not complete, but I think I'll have it working tonight. I'm anxious to get libcomprex and libpackman linked up together.


While talking to JSeymour (Gaim's Jabber developer), we ran across a little bug that, from what I can tell, has gone unreported. When putting a period right after an e-mail address, part of the e-mail address would be truncated. For example, foo@bar.com would become foo@bar.c., and testing@123456789.com would become testing@1234567. Basically, the length of the username minus 1 is how many characters would be stripped off the end. It didn't take too long to come up with a fix that mostly worked. I got it completely fixed (I hope!) awhile later.


Now that you seem to be back and active, I'm going to restate my request from a week or so ago.

Please remove my certification of Apprentice. I'm not asking to raise the certification, just remove it. I do not believe certifications should be given out based on your personal feelings on a person, but instead by their contribution to the open source community, and their skill level in the field. Thank you.

As for your question about pluggable interfaces to games, I do not believe there is any existing framework for doing so, as that would be extremely complex (read: just short of impossible). Games are all different, but if a group of game developers built games using a standard framework that supported some form of pluggable architecture, it would be doable.

I may have misunderstood your question, however. I wasn't completely clear if that was what you were asking.

Update: I would like to talk to you, but I do not wish to take up the time of the readers of Advogato. Please meet me in channel #GNUpdate on the OpenProjects IRC network. I want to get all of this straightened out once and for all.

21 Jun 2002 (updated 21 Jun 2002 at 09:03 UTC) »


I'm getting ready to commit some rather big changes to libcomprex. Originally, there were two separate structures used in the files tree: CxDirectory and CxFile. I've been wanting to create an iterator interface, which can be used to process all files in an archive, all directories in an archive, or all files AND directories in an archive, in a single for loop. This was very tricky with two structures (read: I couldn't find a clean solution). So, I created a new structure, CxFsNode, and added all the file and directory-specific stuff as structs inside a union in CxFsNode. CxFile and CxDirectory are now typedefs of CxFsNode.

Amazingly, this seems to have broken nothing (well, except my renaming of a couple functions for consistency, but that was needed anyway). Next, I'll be creating the iterator interface. I plan on removing the file list in libpackman with a CxArchive, to remove a lot of duplicate code, and to properly represent the inner archives of packages. This should also let me do some other things rather easily, such as just calling cxOpenArchiveStream() in a package module to retrieve the archive, as opposed to opening the archive, looping through all files, building a new tree, and then deleting the CxArchive structure.


I've learned to hate ants over the past few weeks. Our town is just covered in ants right now, and we have a good share of them inside our house. They are taking over the new room and my room. I've killed many ants with Windex, paper towls, and vaccuum cleaners (which work quite well at killing ants). I've even had my stepdad (who runs a pest control company in town) spray where they were originally coming in. However, that was only a temporary solution.

The ants are back!

Tomorrow, I'm pulling out everything.. bookshelves, desks, everything. I'm going to have him spray every wall, the window, the door, and any other place the little creeps can come in from. I'm sick of these ants, and I do not plan on putting up with them all summer.

At least I don't have to deal with the giant red flying ants that came into town earlier this month. Those things are really nasty.

Update: The little bastards are mocking me. I found out where they're now coming from... right behind my computers. I've already pulled out some of the furniture. Hopefully the next round of pesticide will keep them away for a long time. I am going to be staying up for awhile, constantly monitoring that hole, and eating up every ant that comes through with a vaccuum cleaner.

Camera and USB hubs

I discovered I could hook my camera into my computer via USB and Linux will recognize it just fine. The first time I plugged it in, I got a new /mnt/camera mount point. It works just like the memory stick. Fun stuff :)

While at Costco the other day, I picked up some USB hubs for $20. They are Power Sentry USB hubs, and come in packs of 2. They are very tiny and light-weight, and are also stackable. You plug it in and it opens up 4 new ports. It can run either on AC power, or off the power from the USB cable coming in from the computer, and it will give an indicator saying whether or not AC power is needed. I've been needing one of these for awhile, as I've used up all my USB ports.


My X10 is acting up again. I try to dim the lights just a little bit, and it will do nothing for a few minutes, but then dims all the way down. I have to go up to the light switch and turn it off and then back on. But then it dims again! I have to repeat this 5 or 6 times before I can get my light working again.

My parents told me a couple of days ago that their room's light decided to just go on and off every so often one day. Seems that you could put on a great haunted house by simply installing malfunctioning X10 units ;)


I finally got around to writing the translation information page, so that potential translators know what's expected of them and how they can help. I've been meaning to write that for awhile. When I'm more awake tomorrow, I'll let the people on gnupdate-announce and gnupdate-i18n know about it.


I spent most of today babysitting my little sister Jenna. It went surprisingly well. She's a good kid, but sometimes it's hard to keep up with her... We went swimming, to AM/PM, the playground at the local school, and played at home.

While at AM/PM, I got to talk to Deborah, one of the (cute) employees working there. She told me how she found four newborn baby birds in her backyard, and wanted to know if I knew how to take care of them. I gave her all the info I could remember from the last time I took care of baby birds. She said she may bring them in tomorrow, so I'll stop by and see how she's doing, I think.

I can't think of anything else. It's too late for me.. bed time.


I purchased my new TV today. For $350 (including tax), it's definitely not bad. 27", Picture-in-Picture, 3 A/V inputs, 1 S-Video, 1 Composite in... Other goodies.. It's a nice TV. It looks absolutely huge in my fairly small room.


I've resumed work on TVBuggy, a little program I'm writing which keeps track of the user's favorite shows (via keywords or explicit schedules) and then notifies the user in any user-defined way. For example, I plan on adding notifier scripts for e-mail, OSD, and maybe a custom program down the road using Evas.

It doesn't exactly keep track of the shows yet, but almost all of the back-end for storing the data and processing it is there.


Tomorrow, I'm babysitting Jenna all day... and half of Thursday too. These should be long days :P She's fun and all, but she's much more active than I am. I figure I'll take her swimming and take her to the park. Hopefully she'll sleep in there sometime.


Amazingly, I got my X10 working.

I went to use my X10 remote a few minutes ago to turn off my TV (it's an old TV, I'll talk about this in a minute). It wouldn't work. I tried other appliance modules, and they didn't work. I tried different house codes and unit codes. Still no go. I tried moving the transceiver. No good.

It was then that I noticed that the transceiver module would get hot very quickly. I took it out and brought in the one from the living room. After setting the house code to match my remote, I was able to turn on my TV. Then I tried turning on my lights..... SUCCESS!

So now I have to go get a replacement module for the living room.


My current TV is a very old mono color TV with 2 antenna terminals on the back. It's not very good, and I can see the quality (what little it has) degrade over time. So, I went window shopping for a new television today. I found one that is almost like this one, but with a Picture-in-Picture feature. The price is $299 at Costco. I'm most likely going to buy it tomorrow.

Quantum for QuickBooks

My stepdad finally wanted to try the program I've been developing. I said I would package it up and put it on the computer. Unfortunately, it now crashes on my computer whenever I close it. I'm hoping that this is because I developed it in Visual Basic 6 and I now have both Visual Studio 6 and Visual Studio .NET on here. I'll package it up and put it on his computer, and hopefully it will work there. I plan on porting this to .NET, as soon as I can find a good widget library (the standard .NET one is very bad).

125 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!