Personal.X-Istence.com

Bert JW Regeer (畢傑龍)

Linux Community Ripping Itself Apart?

I sometimes question the sanity of some of the open source developers out there. Mostly because of some of the insane code they produce, or because of the believes they have.

I have seen communities ripped apart because people could not agree with each other causing splits in the code FreeBSD and DragonFlyBSD same with NetBSD and OpenBSD.

Just recently I saw a dispute between developers from Novell and Sun about part of OpenOffice. A part the Novell developer wrote, and then released under the LGPL. That way it could be linked against OpenOffice and could also be legally distributed with it. So then Sun wanted him to re-license it under their license so that they could take the code and use it in their StarOffice and release it commercially.

That initself could have been allowed under the LGPL, but instead of accepting the code upstream, they instead chose to deny it, try to get someone to write it in the Google Summer of Code, and then to top it off they announce they are going to rewrite it from scratch, and tell the origional developer that he may join their effort.

So now ooo-build, which is a build of OpenOffice that is used in most mainstream Linux distributions. They include the part that was totally left out by Sun. So now a split in the code will exist, between what Sun provides, making it even harder for people to contribute to OpenOffice in a meaningful way.

The same thing is happening in the Linux kernel community slowly. Just recently Linus wanted to merge in Smack/AppArmour and got a backslashing from members of the so called security community about how adding in another LSM based security module, like SELinux. LSM adds hooks in the Linux kernel before any system call that affects important internal kernel objects. That way a loadable module can be created that adds those hooks and then based on that can enforce the mandatory access on wether that is allowed or not.

Smack is just another one just like SELinux, that uses the LSM "stack" to accomplish certain mandatory access control's. The reason there is such a backslash against it is because security experts argue that LSM itself is not safe and should be removed. LSM adds complexity, and now with Smack in the kernel source tree as well it would result in users creating their own MAC frameworks rather than having one with a proper API set (like for example VFS), and LSM has been a moving target since it has been introduced making it harder for people to develop proper policies for it since it's inception.

The disagreements that stem over these arguments are fueled with debate, but also tons and tons of flames sparking between Linus and the rest of the community.

There was another one not to far back that was also very painful to watch. That had to do with schedulers. Ck had written patches and maintained them in the -ck patchset, that made the scheduler that was included in the Linux kernel source tree work better on the desktop and the server for different workloads.

Then another developer, and I forget his name, introduced an entirely new scheduler known as the CFS or the only fair scheduler. There was an entire backslash against this new scheduler based on the fact that depending on the work loads thrown at it, it would react differently. Then forward came the fact that the CK patchset was not accepted was because he refused to add extra code for corner cases where the scheduler was doing what it was supposed to do, but was not what the people running were expecting since they relied on an flaw in the origional scheduler. That is INSANE. Why would extra code need to be added to keep a flaw that has now been fixed in the scheduler?

It is a shame to see an community getting ripped apart based on the religious believes and views of certain individuals. Linus Torvalds should not be outright taking on the believes of some people and not of others. He should be listening to people in the community and more of a group decision should be provided, or at least come to. Sure it is nice to have one leader that is ultimately responsible for the direction of the Linux kernel, but at the same time that direction is causing people to start flamewars, it has caused people to leave the Linux kernel as a hacking project. It has caused them to publicly leave statements that generally show there is a divide in the Linux development community.

This has to be fixed before serious damage is done. Before it adversely affects the Linux kernel and it's development. Having top quality developers leave projects is a sign that the leader is not properly guiding the project. Maybe the time has come that Linus has outstayed his welcome, and maybe it is time for someone else to step up to the plate, or as a community a group of people should step up to the plate.

MacBook Pro Issues

So, my MacBook Pro was dropped off at Apple support late monday night, and has been shipped out by them to get fixed.

I was having issues when while it was charging, and I was using it that I would get shocked really bad every so often. After some checking, I found out there was a grounding fault, and that every so often it would pump a full 120 volts through the case itself rather than back out to the power brick. Also, my screen would every so often flicker off and back on. Sometimes every hour, and other times it would not do it for days.

My power supply also when charging, I would know a shock was coming because the little LED in the power adapter would stop glowing orange/green and instead would go out entirely (still charging the battery though).

The genius was awesome, he immediatly shipped it off to the apple repair center, and told me that he would do that for me since I knew one of the ex-apple employees there. So I got rush shipped :P. He said it was easier than ordering parts and hoping it would fix the issue, so I should hopefully be getting a laptop with new guts in it!

That being said, since I am without my MacBook Pro I have been feeling rather naked, like I am missing my phone, or left it at home. So in feeling of desperation and eye-candy, I installed Windows Vista Ultimate on an old P4 with 1 GB of ram. Please don't shoot me!

Editing SQL data dumps

I must enjoy pain on a huge level, as I am still using MySQL, and even worse, I am still using software that is using reserved words in MySQL, so doing a dump from the DB and then re-inserting it will cause some funny problems.

Now, since that will fail because of the reserved words I have to manually edit the field names, and add the proper quotation marks around it, so MySQL will grok it. I have a multitude of editors available to me: TextMate, SubEthaEdit, nano, vim and a few others.

I try to open it in SubEthaEdit. It goes on it's merry way and allocates a gig of ram, and then fails miserably. Same thing happens with TextMate. These programs were designed to do text editing on text files, with syntax highlighting.

nano causes the system to lock up while it tries to allocate about 1.10 GB of ram before it too is cut off by the kernel. This is insane, text editors that are unable to deal with a relatively small dump. Only 600 MB worth, I have done dumps where the data was well over 16 GB.

So after all this, I open it in the application I knew could handle it, but hate to use since it's syntax is really still baffling to me. vi.

vi uses 10 MB of memory, and has the file open and ready to be used within a few minutes. Searching through the file is just as fast as using grep or other tools. The makers of all the other text editors should take a page from vi's book, and figure out how they got so much functionality into such a small package, and off course being able to open multi-GB files is always a big plus for people that have to deal with such things!

Ruby on Rails

And why I will never use it: Slide by creator, about people who don't like Ruby on Rails.

Now, for a more serious reason, I absolutely dislike how it is structured, and I dislike Ruby itself. I have never been able to wrap my head around Ruby because of the way it does certain things, and it's syntax. Not only that, in my experiments, and working on more mature projects I have NEVER been able to find a way to scale it in any reasonable fashion, as the RoR people all seem to think that throwing more CPU's at the project is the way to go. That too me is retarded, as soon as I need to scale bigger with PHP, I implement some caching of the op-codes for PHP, then I implement an op-code optimiser, and then I start looking at doing load balanced servers, maybe even just a few front end squid servers with one apache back-end, or one front-end lighttpd server and a few back-end PHP fastCGI implementations ready to rock.

Yeah, that slide just puts me off the language forever. Fuck you indeed.

mod_magnet for Lighttpd

So today I found out that I had accidently broken my blog by trying to nest a url.rewrite-once in a $HTTP["URL"] statement in my Lighttpd config. Which meant that my rules for rewriting Drupal nice URL's were not being executed, as apparently you can't nest them like that. Took me a bit to track it down, but once I did I found a link to nordisch by nature which included a new mod_magnet script which did the same thing the rewrite rules but better.

Looking at mod_magnet now, I think I like it better than the Apache .htaccess stuff, as it is just like a programming language so it is extremely powerful. The thing that kind of scares me is that it runs within the server's core, not as a seperate module, then again, PHP runs as a module within the core of Apache when it is known as mod_php. (Lighttpd does not have mod_php support, but does do FastCGI properly, unlike Apache).

More about mod_magnet as I come across other neat tricks. Maybe I will finally get my "About me" website back up and running, as Lighttpd does not do SSI includes like Apache did (no nesting. Understandably, but still ...)