Wednesday, October 22, 2008

Smoke Testing

My context: Software Development.

The term comes from plumbing, where smoke is used to check leaks before going into full and heavy duty testing with water.

In software development, "smoke" is used as a metaphor. When we smoke test a software/component, we do minimum testing before applying full-fledged testing.

I can recall where an anti-smoke test was applied. The famous Jamuna bridge of Bangladesh was a multi-purpose one. One of its goal was to carry natural gas across the river. When the engineers wanted to check the pipes, they checked them with water, instead of gas. Water, being many-times heavy, caused the pipes come out from below of the bridge and fell into the river. Irony, hah!

Links:

The Little Book of Semaphores

Even after working with threads (in Java) for several years, I have feeling that I don't understand why Java allowed things in a certain way. In short, I don't feel ok not knowing the design considerations of threads in Java.

My way of address this:
  • Know threads from the basic. I am going back to good old Unix. This will be a one-month project. Outcomes to be blogged here.
  • Know JVM. This will be a three-month project. Outcomes to be blogged here.

There is a free book on semaphore, called "The Little Book of Semaphores". The author is teacher and knows well why students do/don't understand semaphore. This will be my starting point. I've read first two chapters, and I think it is a good one.

Links:

Tuesday, October 21, 2008

Regression Testing

I had a blurred idea about Regression Testing for some time. Anyway, I had to handle an issue at work related to this, and this time I set the records straight.

Very quick and short understanding:
  • The verb regress: return to a previous state, usually worse state.
  • The noun regression: The act of getting back to a previous worse state.
  • Software Regression: The scenario where a previously solved bug reappear (i.e. regress) after some action taken on the software (e.g. a patch applied)
  • Software Performance Regression: The scenario where performance of a software goes back to a inferior state.
  • Regression Testing: A testing scheme aim to eliminate software regression. It involves testing the whole software for previously working features, even though they were not supposed to be affected.
Software Regression has 3 core types:
  • Local: a change introduces a new bug in the changed module or component.
  • Remote: a change in one part of the software breaks functionality in another module or component.
  • Unmasked: a change unmasks an already existing bug that had no effect before the change.
That's all for now. I will try to come back to this post.

Friday, October 10, 2008

Wireless sound system

I was looking for GPS device for my car. While comparing different products, some features came to my notice - hands-free, text-to-speech, FM transmitter .... obviously, I didn't know many of them. So, I started digging and ended up how wireless sound system works. Eventually, it solved one of my problem at home.

The problem - when I watch movie on my laptop, I had to sit near the sound system. I have short cable.

The solution - USB FM Transmitter. Tune my spare FM player. Connect FM player to the sound system.

FM Transmitter

FM Transmitters work as FM broadcasting stations. They work in a smaller range, as they are for personal use. Within the range, any FM player can receive the signal and play. It will appear just another FM channel.

It costs around $20-40 to buy one.

How will it work
  • I connect FM transmitter to my laptop. I will use a USB one, so no extra power source is required.
  • I have a portable FM player. I will tune this player to the transmitting channel.
  • So, anything I play on the laptop, I can listen on the FM player. Anywhere in my home.
    So can people nearby - I don't care.
  • I connect the input cable of my sound system to the FM player, just like I attach headphone.
  • Benefit: No cable is need to reach the sound system.
Issues to think about
  • Even with a highly capable sound card and sound system, having FM as the intermediary carrier, I will get FM quality sound at the end. Ok for me now.
  • Not secure. People in the range of 150ft can pick up the FM signal. Ok for me now.
  • FM player will need separate power, namely battery. Alternative: Connect player to a AC-to-USB power source.
Other products in the market
  • Conceptually, there are products that solve similar problem.
  • One problem to solve: so many cables from the central sound unit to the small boxes.
  • Some products use different frequency range (900 MHz, or 2.4 GHz) to distribute the signal to the smaller boxes. These products will have to operate in the ISM band (Industrial, Scientific and Medical)
  • Some (Bose) offer full 5.1 or 7.1 connectivity over proprietary wireless signal.
  • But you still need to connect your main audio source to the central unit.
  • Some products use WiFi or Bluetooth for the same connectivity.
    My openion - Bluetooth can be too narrow carrier for good quality.
    WiFi - I would love to have this. I already have a WiFi network for the laptop.
  • Some products allow different music on different wireless sound terminal. So, you can have different sound in different room, at the same time :). Neat!
So far ok.. I will add some more, if I find anything more.