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.

Saturday, August 09, 2008

About memory cards

I am planning to buy a digital camera this week; soon, I ended up in analyzing different technologies around. Hence, I started understanding SD cards.

The wikipedia article says it all. I am capturing some of them.
  • SD stands for Secure Digital. Though, the original intention was Super Density Disc.
  • SD is now an industry standard, initiated by Toshiba, Panasonic and Sandisk.
  • The Secure part of SD was introduced by Toshiba, a legacy (good one) from it's MMC cards (MultiMediaCard). Toshiba included a encryption that prohibited music piracy - a movement mostly know as Digital Rights Management (DRM). This was done because of pressure from music industry.
  • SD cards larger than 2GB uses a different technology called SDHC (SD High Capacity).
  • (Read Access) Speed is an issue to consider of SD cards.
  • The form factor of SD cards can vary in all dimentions. Such variants are: miniSD, microSD (aka TransFlash). These require a simple passive adapater (a physical device to fit in SD slot). The electronic interface remains same.
  • SD cards can fit in other cards slots (e.g. CompactFlash, PC cards) via an active electronic adapter.
  • You would want to access SD cards from your other devices e.g. PC, printer etc. So, you will need a card reader. One card reader can support many differnet standards of cards (SD and others). Card readers can be built in, or can be externally connected (via UBB or other methods)

Links:

Thursday, July 17, 2008

Interview of Kazi da

Kazi da a.k.a. Kazi Anwar Hossain of Sheba Prokashoni - everybody knows him in Bangladesh. The Prothom Alo published an interview of him July 18, 2008. Some very interesting information and reality came up from it.

Link: http://www.prothom-alo.com/fcat.news.details.php?issuedate=2008-07-18&fid=MTY=&nid=Mjc0NDU=

Monday, July 14, 2008

Tuesday, July 08, 2008

Sunday, July 06, 2008

What is WiMAX? — WIMAX

What is WiMAX? — WIMAX

I was discussing about wireless network with my wife and then ended up in understanding WiMAX vs WiFi. The attached link holds full details.

WiFi and WiMAX are implementation of WAN (Wireless Area Network).
Wifi and WiMAX are implementation by IEEE, numbered as 802.11 and 802.16 respectively.
Wifi has a range of 30-100m; WiMAX may have a range up to 30 mile.

Wednesday, July 02, 2008

Thread Pooling

I am doing a thread pooling for my assignment.

I will write about the implementation of that.

Just note that, JDK 1.6 has an implementations of Thread Pool. Look inside package java.util.concurrent.Executor interface and its implementations.

Businee Casual Dressing

Tie is running out
http://online.wsj.com/article/SB121253690573743197.html?mod=googlenews_wsj

Definition
http://en.wikipedia.org/wiki/Business_casual

Guide
http://www.career.vt.edu/JOBSEARC/BusCasual.htm
http://www.sartorish.com/modules.php?name=News&file=article&sid=13

Friday, May 30, 2008

Scrum

I have been working for RealNetworks, Inc. since May 19, 2008. I work in a development wing. They follow scrum. This is my quick effort to clear my understanding about scrum.

What is scrum
  • Part of Agile
  • An iterative process
  • Management of SW Development Process
Why? The vocabularies
  • 'Sequential approach' was predominant. It's like 'relay-race', handing over the baton to the next person.
  • It's better to have 'rugby', where team works as an unit, passes the ball back and forth, and achieves the result.
  • The term 'Scrum' came from a term in rugby.
  • Each iteration is called 'sprint'. Can be 15-30 days' cycle.
  • 'potential shippable'
  • 'product backlog'
  • 'sprint planning meeting'
Roles
  • 'Pig' roles - fully dedicated
  • --- There is a 'ScrumMaster' role who plays the PM role, and maintains the process.
  • --- There is a 'Product Owner' role who represents the stakeholders.
  • --- There is a 'Team' role who represents the developers.
  • 'Chicken' roles - outside scrum team
  • --- Users
  • --- Managers
  • - Stakeholders
Reference
  • TBD

Thursday, May 29, 2008

Java Externalizable

Background
  • Interface: java.io.Externalizable
  • Super Interface: Serializable
  • Used to control how you want to do serialization (read/write)
  • Scenario: Some of the fields may not worthy of writing, or the format needs to be changed etc.
  • transient keyword simply instructs JVM not to read/write a variable, one at a time.
  • With Externalization, you can control all variables in one place.
  • During de-externalization, the default constructor will be called. Then readExternal(...) will be called.
Java Methods
  • readExternal(ObjectInput in)
  • writeExternal(ObjectOutput output)
Link
  1. http://articles.techrepublic.com.com/5100-10878_11-6159276.html

Java Prefernece

Java Preference
  • Introduced in JDK1.4
  • Acts like Windows Registry
  • Stores objects in a tree-like structure; items reside on nodes as key-value pair
  • Can be exported/imported to/from XML
  • A replacement option for JNDI/LDAP; but you don't need a server
  • A replacement for properties files also
Links
  1. http://www.javapractices.com/topic/TopicAction.do?Id=155
  2. http://www.ibm.com/developerworks/java/library/j-prefapi.html
  3. http://www.javaworld.com/javaworld/jw-08-2001/jw-0831-preferences.html?page=1

Saturday, March 15, 2008

Forget Facebook. The web's platform is Mozilla's Firefox

The most interesting topic discussed in our meeting was just how compelling Mozilla's Firefox will increasingly be as the platform for much that happens on the web. Forget Facebook, MySpace, the iPhone, and other so-called platforms. Firefox could well prove to be the most disruptive web platform on the market. Here's why.

read more | digg story

Happy Pi Day!

It's the 3/14, or 3.14, so this obviously means just one thing - it's Pi day, a celebration of the mathematical ratio that man has been trying to unlock for millennia. But why are we driven to find the answers behind it?

read more | digg story

Monday, July 16, 2007

How to listen better

I am new to managing people ... suddenly I am leading a team 5/6 person. May be it's time to learn few skill of leadership. Here are some of the links:

http://www.ehow.com/how_12503_listen-better.html
http://www.rogerdarlington.co.uk/Listening.html

  1. Listen with an open mind and an open heart - free of preconceptions and prejudices.

  2. Always look the person in the eye when you are listening. This shows the person that you are paying attention.

  3. Give the person your full attention. Be seated.

  4. Give visual encouragement to the speaker - such as facing the speaker, offering eye contact, and indulging in mild head nodding.

  5. Give oral encouragement to the speaker - such as, in conversation, periodically using words like "yes", "I see", "I understand" or even just sounds like "mmm" or "ah".

  6. Don't interrupt. Let the speaker tell the story in his/her own words and at his/her own pace.

  7. Don't rush to fill a silence. Often a speaker will be more forthcoming or revealing if he/she is given a chance to compose his/her thoughts.

  8. When your partner is finished saying something, ask questions or discuss it further. Open ended questions are better. Don't jump into your own topic.

Saturday, March 24, 2007

Let's blog

It (blogging) starts
I have realized the importance of blog last few months. And, from now on, I want to use blog regular basis.

Now, all of these is a mind shift for me.

Let me explain my plans with blogging. Please read through.

Initial Target

I explicitly express my objective of blogging (to keep me focused)

  • Record different types of knowledge and interests. Things will be in summary. Sources of information will be maintained. This will help me to quickly review my old interests.
  • Writing the blog on different topics will help me to remember more efficiently.
  • My writing skill will improve in terms of richness, faster delivery, variety. I will come in contact of many books, sites, Google, other people's blog. These will be a rich source.
  • I minimize the chance of loosing my paper written logs. I will be able to access these anywhere anytime.

Resource Requirement

I look forward to commit my following resources for this:

  • Time - It takes time to write blogs. Sometimes, I may feel to skip the habit; let's not.
  • Money - Browsing web requires money. I will spend whatever required.
  • Myself - Well, as said before, I am committed.

Thursday, March 08, 2007

Sofi's World

I have started reading a book called "Sofi's World" - this book is changing my views about the whole. It's based on philosophy. Here, a philosopher teaches a young girl about philosophy from very early stage to modern world.

People having some time might try this one.

One relevant link to same topic is: http://www.friesian.com/greek.htm