Sunday, February 22, 2009

Serial port on MyBook



Kind of a low tech mount but it works.
I can now see the bootloader output. I have used a modified Nokia CA-42 data cable for RS232 conversion.


Connected.
NASOx_0800
Mon Jan 21 08:49:25 GMT 2008


U-Boot 1.1.2 (Jan 21 2008 - 08:50:09)

U-Boot code: 48D00000 -> 48D17648 BSS: -> 48D1B2B8
RAM Configuration:
Bank #0: 48000000 32 MB
In: serial
Out: serial
Err: serial
Initialising disks
No FIS received from device 1
Detecting SATA busses:
Bus 0: Found first device OK
Device 0: Model: WDC WD5000AAJS-98YFA0 Firm: 12.01C02 Ser#: WD-WCAS87380126
Type: Hard Disk
Supports 48-bit addressing
Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
Device 1: not available

IDE read: device 0 block # 63, count 1 ... 1 blocks read: OK
Upper 32M of SDRAM is alias of lower 32M
Hit any key to stop autoboot: 0

IDE device 0: Model: WDC WD5000AAJS-98YFA0 Firm: 12.01C02 Ser#: WD-WCAS87380126
Type: Hard Disk
Supports 48-bit addressing
Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
... is now current device

IDE read: device 0 block # 300, count 5700 ... 5700 blocks read: OK
## Booting image at 48500000 ...
Image Name: Linux-2.6.17.14
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1231380 Bytes = 1.2 MB
Load Address: 48008000
Entry Point: 48008000
Verifying Checksum ... OK
OK

Starting kernel ...


Cute!

Saturday, February 21, 2009

NIO adventures




I assumed anew task for myself last week. Due to some performance constraints in one of the pieces of software I had into maintenance I decided that the only possible solution for improvement is to rewrite it. I knew that this would not be an easy job I had no real certitude that this would really work better. Bu I took the chance because I considered that having one thread per concurrent client in this software was really not the best approach.
Therefore I had to implement something lighter.
I took the approach of non blocking IO. All the incoming SIP requests are handled by a thread that is using a selector to react on the incoming requests. The incoming messages are then queues into a dispatch thread that dequeues them and depending on the SIP method/answer's CallID dispatches to a state machine that handles that client.
The results seem promising for the moment. Before I had about 16% CPU per process on a Netra T2000 server, now it dropped to a maximum of 9% while in traffic and 1% in idle mode.
However the NIO documentation is quite scarce. I was quite lucky with those two sources:

http://rox-xmlrpc.sourceforge.net/niotut/
http://www.exampledepot.com/egs/java.nio/pkg.html

that clarified me some of the NIO ways of doing things.

On Unices NIO works well (I'd say that it works best on Solaris). On the other hand it works awfully on Windows. It hogs 50% of CPU and after the program is finished it doesn't dive back the CPU (System process on my XP stays all the time at 50%).

Wednesday, February 18, 2009

Black Wednesday?

In 1992 UK was forced to withdraw the British Pound from the ERM.
I am feeling that the same pattern is happeninig now with some currencies in Eastern Europe for the profits of some financial sharks. I really do not understand why the Romanian government does not go to a fixed exchange rate (or a pegged one) in order to stop those actions. Thde Bulgarians already did it? So? What is the catch? The sooner the stabilize RON the sooner they stabilize the Romanian economy.

Sunday, February 1, 2009

New obsession

I have developed a new obsession.
Digital television. Yesterday I have been digging on the internet for DreamBox resources, HDTV and stuff. There is very much information but let's say it is unstructured and hard to link. The information is ecclectic and you have to consult three or four sources in order to understand something. Most of it is on forums and seems not to be maintained. I am working now for understanding everything I've downloaded and bookmarked yesterday.