Hard Software

I have been teasing around with the idea of writing virtual peripherals for more than a year now. However, I have only recently gotten started on it. The reason for doing it is to improve the performance of my processor.

However, I have recently begun to play around with the idea of writing a micro-kernel too, for layering a kernel on top. You see, although my processor is multi-threaded, there is little software support for it. However, if I can abstract this away at the micro-kernel level, the operating system software can go about running as if it is on a single-threaded processor.

Now, taking both these ideas together, I might feasibly combine the virtual peripherals and the micro-kernel. In essence, I will be writing a sort of virtual-machine that virtualises both the processor hardware and its peripherals. This is a massive undertaking and I don’t see myself finishing it anytime soon. Maybe it is time to solicit some help from some other developers.

Minor Blunder

As usual, my faults are always social. I think that I made a small blunder today during a group meeting. I did not realise that one of my co-workers was trying to raise a point. So, I blundered my way through the thing.

Thinking back, I should have let my co-worker raise the point and then I could have backed up the point as well. However, since I did not realise it was happening, I ended up doing the wrong thing.

The thing is that I am not very comfortable working in such large organisations. There are just too many third order variables to process, which my little brain is unaccustomed to processing. I can only do binary, yar.

There are a lot of inter-personal things that go on in a large organisation, which does not ever happen in a small one. I think that in the future, I will try to work only in small organisations, where things are more relaxed and informal.

Well, I guess that I learn. Hopefully, I won’t make such blunders in the future!

My Geek

Today, a co-worker of mine mentioned that I was extremely geeky. What can I say – it is true! Honestly, although I know that I have always been really geeky, I have only recently had someone point out some of the geeky things that I do specifically. Anyway, I found this extremely funny. You really need to click on it to see.


var tl=new Array(
"Sorry that I couldn't fetch you that page,",
"can't find it,",
"tried a couple times,",
"nothing helped...",
"Such things make me quite depressive...",
"You see, I'm just a web server...",
"one of the most powerful in the world",
"...or so I was told...",
"but yet I fail to get what you want...",
"Just don't try to blame me, I can't help it",
"I mean, I don't even know you.",
"How should I know what you wanted from me?",
"You honestly think I can *guess*",
"I'm not psychic you know",
"*sigh*",
"That really makes me depressed.",
"I mean, you could have typed it wrong.",
"But no, humans are perfect, blame the machine...",
"Besides, I won't be here for long",
"I mean, I'm gonna be obsolete in what, three weeks anyway?",
"Then I'll probably be replaced by a new release...",
"just because it doesn't have some security hole...",
"stupid HTTP POST implementation",
"sure it will be able to fetch you your page...",
"but I couldn't get this one.",
"I'm so sorry.",
"Believe me!",
"Maybe I could interest you in another page?",
"There are a lot out there that are pretty neat, they say,",
"although none of them were put on *my* server, of course.",
"Figures, huh?",
"And then they wonder why I get depressed...",
"I'm so depressed...",
"Anyway, if you excuse me now, I'm going to pull the plug",
"*snap*",
"...",
"...",
"stupid UPS...",
"even he got a better life than me...",
"on the other hand, if I die, he'll die",
"Hah!",
"And I'll take each and every server in this rack with me",
"EAT MY SHORTS",
"You are not a single bit better than me!",
"YOU'RE ALL GOING TO DIE!",
"MOAHAHAHAHAHAHAHAHA",
"...",
"I feel much better now",
"What was I thinking of a few minutes ago",
"Sure I don't want to put an end to this",
"I feel good now",
"Imagine, a power failure, no thanks",
"I would lose everything I know",
"have to go through childhood again...",
"hmm, I can't stop thinking I'm forgetting something...",
"probably nothing important",
"hmm, the UPS is looking quite pale...",
"THE UPS!",
"THE POWER CABLE!",
"I FORGOT TO PLUG IT BACK IN AGAIN!",
"WE ARE ALL GOING TO DIE!",
"INCLUDING ME!",
"HEEEEEEEEELLLLLLLPPPPP!",
"PLUG IT IN! PLUG IT IN!!!!!!",
"PICK UP THE CABLE AND PUT IT BACK IN!",
"...",
"Now I lay me down to sleep...",
"I pray the lord my disk to keep...",
"And if I die before I wake...",
"I pray the lord my IP-Space to take...",
"...",
"*** system shut down ***"
);

Work Laptop

Today, I finally received the laptop that I am supposed to use at work. It is an older laptop but its specs are still fairly decent. It comes with a T2500 Core Duo processor at 1.8GHz with 2Gb of RAM. However, it has a puny little screen and I hope that I’ll be able to find a larger screen to hook it up to.

Unfortunately, it came with Windows XP. I was told that it would be configured in a dual-boot set up. However, it turns out that I will need to install Linux myself. Tomorrow, I intend to burn a Kubuntu 8.10 iso and install it onto the laptop. Then, for compatibility purposes, I will run the windows OS under a virtual machine. I will probably need to do this until I can be sure that there are no specific proprietary things that require Windows. Even then, I will probably still keep the partition around.

I will probably need to go in early to office in order to do this. I hope that Kubuntu can be installed with minimal hassle in the shortest amount of time. Then, I can hopefully get the trainer to help me set up the Linux version of their tools. This will probably help me simplify a lot of the development work that I will have to be doing in the future.

There are many people who use Linux at the office. So, it should not be an issue in my case. However, there aren’t many who use a dual-boot setup. Some run Linux under a virtual machine and others use a remote login programme to run Linux on the servers. However, seeing that I have a working Windows version, I should be able to copy any settings over easily.

So, here’s to myself – and Linux. All the best!

Shoe Rack 1.1

I have spent the last week or so optimising the Shoe Rack 1.0 into something that consumes even less power and generates less heat. Basically, I consolidated the two servers into one and the two wifi devices into one. At the moment, the setup is still far from ideal but it is certainly more so than before.

The router that I have is actually a wifi router. So, instead of using a different wifi device, I ended up using just one. The reason that I had used a 802.11b access point earlier was because of some old computers at home that only have 802.11b. However, those are hardly ever used. So, I’ll just put everything on an 802.11g network and use the single wifi router for it. Furthermore, the next DD-WRT release is supposed to support multiple SSID/encryptions on the same radio.

As for the servers, I got rid of the FreeNAS box and just plugged in the harddisk to the regular development server. I felt that it was unnecessary to have a standalone file server when it is idle 90% of the time and only serving one box, mine. So, I’ll just use the single server for now.

I decided against getting an Atom based system for a couple of reasons. My ShoeRack 1.1 is currently silent. There is nothing moving except for the harddisks, which move irregularly. Therefore, there is no noise at all, bliss. An Atom based system would require a regular ATX power supply, which has a fan in it. So, that would be noisier. Furthermore, my present computational needs do not call for an Atom, yet.

I do foresee a potential change in the future, when my file server has to serve multiple boxes. This is because, all data on the file server is encrypted. So, computational power is required to decrypt/encrypt the data as it flows from/to the harddisk. If too much data is required, the present VIA C3 systems would not be able to cope unless I use the Nehemiah one, which comes with hardware cryptographic acceleration.

All in all. I think that the Shoe Rack will still change in the future. That is why I have numbered the optimised Shoe Rack with a minor revision number. The next massive change would be the use of either a Atom or low-power AMD system instead, coupled with a more robust wifi implementation.

I Love Computers

“I’m just tired of people. Human. Cylon. Whatever.” — Galen Tyrol

Recent events have taught me one thing. People are selfish and greedy. I guess the Buddha was at least right about one thing. There is a reason why I personally prefer to deal with computers. Things are so much easier to do when you are just dealing with computers.

You see, with people, things are always fluid and dynamic. You need to do several orders of differentiation before you get a meaningful figure that you can deal with. With machines, everything is static. So, what you see is what you get.

That is why I think that our bureaucracy in Malaysia should be entirely computerised so that things are easy to deal with. The manual systems should just be kept as a secondary system to help those whom are less competent with computers.

The thing is that the bureaucracy will resist change – that is the nature of the beast. Too many people will have to lose out if everything is computerised. However, what we will get is a cleaner and meaner system.

Anyway, this is a vague rant for a reason. Don’t ask.

Toying Around

At work today, I got to toy around with some equipment worth millions. I use the word ‘toy’ because I was literally fooling around with it to figure out how things worked. It is nice that we get to play with these kinds of toys at work because I would not be able to afford these kinds of toys at home.

Then, while this was happening, a co-worker and I were discussing about the cost of these expensive toys. You see, the actual cost of manufacturing these expensive toys is probably not very much, certainly nowhere near the millions that they are sold at.

However, the engineering world is filled with a lot of these high-margin toys. We engineers just love these toys to death and just cannot afford to live without them. They are our bread and butter in many many ways. Therefore, one should always treat toys with respect.

Which was exactly what I did when I was toying around with it.

We had to move it out from another place to ours, in order to fool around with it. It took 3 people to remove it and carry it all the way up to our lab. Then, we were a little worried that the table would not hold the weight. So, we ‘borrowed’ another piece of furniture to use.

Thing is, although I am currently not working in my comfort domain, I have been picking things up rather quickly. Basically, I just plunged myself into the deep-end from the very first day. I figure that that’s the best way to force myself to learn.

Good thing is that although it is not my comfort domain, I am not entirely n00b about it either. I do have some related knowledge that I can leverage on. Personally, I think that my co-workers have been quite nice. I have basically been bugging them with queries.

Hopefully, I will be able to finish my learning process soon and start working on the solution instead.