Eus's blog

The Difference between forward() and redirect() when Developing Web-Applications

Submitted by Eus
on February 25, 2009 - 7:10pm

Cluttering my hands with web-application developments, `forward()' and `redirect()' are often heard. Now I understand how they exactly differ.

Slackware 10.2 Broken dhclient

Submitted by Eus
on February 24, 2009 - 7:34pm

I have used Slackware 10.2 since 2007 after I upgraded from Slackware 10.1.
What I didn't know was that Slackware 10.2 was shipped with a broken dhclient.

My First Time with GNU/Linux

Submitted by Eus
on February 24, 2009 - 7:31pm

The very first time I heard the term `GNU/Linux' was when I worked at a local computer shop in my hometown.

Charles Babbage's Difference Engine

Submitted by Eus
on February 22, 2009 - 9:19pm

A while ago a friend of mine texted me asking the continuation of the following sequence:

1, 9, 16, 23, ...

I scribbled the following on my scratch paper:

1 9 16 23 ...
 8 7  7 ...

So, I thought the continuation would be 29, 35, 40, 45, and so on since:

1 9 16 23 29 35 40 45 41 37...
 8 7  7  6  6  5  5  4  4...

PHP5 fsockopen(localhost, ...) doesn't work in MS Windows Vista

Submitted by Eus
on February 2, 2009 - 8:44pm

I have a PHP script that uses `fsockopen(localhost, ...)' to open a socket connection to another server residing in the same machine. It works beautifully in GNU+Linux hosts but not in Windows Vista.

Where is `new Option()' Defined?

Submitted by Eus
on January 13, 2009 - 2:49am

Fiddling with HTML and JavaScript, I know that `createElement()' should be used to create a new HTML element, and it is only possible to do so with XHTML documents. So, I was surprised when I found out that I can do `new Option([text[, value[, defaultSelected[, selected]]]])' to create a new HTML Option element to be added to an HTML Select element. The next question that followed will be: who standardizes the arguments to the constructor of an HTML Option element.

What is the purpose of having a networking stack?

Submitted by Eus
on January 12, 2009 - 7:14pm

When studying computer networking, the term logical networking stack is often heard.
The most famous example will be ISO OSI's logical networking stack that consists of seven layers, which are:
- Application,
- Presentation,
- Session,
- Transport,
- Network,
- Datalink, and
- Physical.

For those facts, I have the following questions:
1. What is the purpose of having a logical networking stack at the first place?
2. Why does ISO OSI's consist of seven layers instead of three or ten?

Why XHTML?

Submitted by Eus
on December 16, 2008 - 4:23am

Previously, I wondered why the need of XHTML specification by W3C. Now after I was cluttering my hands with ECMA Script (i.e., JavaScript) for a while, I found the definite reason.

3x3 Sudoku Puzzle Solver

Submitted by Eus
on December 15, 2008 - 8:37pm

Back when I was in the last half part of my third semester of my undergraduate study, there was a fever among my classmates to solve Sudoku puzzles. I just tried to scratch some of those puzzles but find them not exciting because I only need to employ a trial-and-error method. Later, in the beginning of my fourth semester, I tried to find an algorithm to solve those puzzles and ended up with a method that I will describe here.

Fiddling with sys_call_table in Linux Kernel 2.6.21.5

Submitted by Eus
on October 14, 2008 - 3:52am

A friend of mine would like to try to implement a new system call based on the example in Chapter 8 of Linux Kernel Module Programming Guide 2.6 Series (http://www.dirac.org/linux/writing/lkmpg/2.6/lkmpg-2.6.0.html) in Linux kernel 2.6.21.5. The example requires that the kernel exports `sys_call_table' symbol. Although Linux kernel 2.4.x, on which the guide is based, still exposes that symbol, Linux kernel 2.6.x does not do that anymore for it is harmful (e.g., it is unimaginable if a module replace the system call of `link' with `unlink' via the table). The guide comes with a patch to expose the table in Linux kernel 2.6.x. However, the patch does not work in particular for Linux kernel 2.6.21.5. So, I helped him to do so.

Computer Languages

Submitted by Eus
on October 4, 2008 - 7:59am

In a book titled C How to Program by Deitel and Deitel, computer languages are classified into three types as follows:
1. machine language
2. assembly language
3. high-level language

The Development of Computers

Submitted by Eus
on October 4, 2008 - 7:55am

Well, everything started with single-user batch processing system. In this system, a batch of jobs are queued to be processed by the system one at a time. The system itself is usually operated by one operator. An owner of a job has to wait for the result to be produced by the system.

Computer Subsystems - How Important I/O Is

Submitted by Eus
on October 4, 2008 - 7:53am

I believe every new student studying Computer Science or Information Technology will be introduced to the sub-systems of computers, which are Input Unit, Output Unit, Arithmetic and Logic Unit, Central Processing Unit, Storage Unit (Primary Storage Unit/Main Memory and Secondary Storage Unit). I always thought that the most amazing part of a computer was its processor (i.e., ALU and CPU).

Yahoo!'s Spam Filter Broke

Submitted by Eus
on October 4, 2008 - 7:49am

I have my e-mail forwarding set up in FSF's mail server to my account in Yahoo!'s mail server.

I tune into several mailing lists, and I noticed that frequently the e-mails came out-of-order if not delivered at all.

How does the IPv4 Receiving Mechanism Assemble Fragmented Datagrams?

Submitted by Eus
on October 4, 2008 - 7:26am

How does the IP receiving mechanism assemble fragmented datagrams?

First of all, this writing is based on Linux kernel 2.6.21.5.

When I looked into ip_frag_reasm() that was commented with /* Build a new IP datagram from all its fragments. */ in net/ipv4/ip_fragment.c, I could not find the code that I had looked for, specifically, the code to construct a new big SKB and copy all data fragments in the received SKBs into the new big SKB. Of course, if I had found what I had looked for, it would have meant that ip_frag_reasm() was so inefficient (i.e., dumb). Instead, ip_frag_reasm() only prepared the chain of the SKBs to be processed by skb_copy_datagram_iovec() as I have described here.