« February 2006 | Main | April 2006 »

March 31, 2006

Getting my butt kicked at DDR arcade machine.

There is a DDR machine at the local Hilltop Fun Center. Unfortunately, the machine has been stuck way in the back of the arcade this season. That is okay because apparently I am totally inept at playing. The steps I thought where right where not hitting the arrows and I kept loosing my place on the pad.

The foot placement on the arcade can be fixed with a little practice on arcade hardware. The timing issue is a bit more complex.

I did some research and found this thread on the ddrfreak.com site. Apparently the timing on the Stepmania and the arcade are totally different.

Check out this chart from a user named PedanticOmbudsman:

The standard judge on Stepmania is 4 and that is what I have been training on. So my steps are not precise enough for the arcade. The easy fix would be to push my home pad to Judge 6, but this is not the case. Apparently the PS2->USB adapter creates inconsistent lag. This is why Stepmania and ITG have a larger step window. In this situation, if Stepmania is tuned up to Judge 6, a correct step may be registered incorrectly.
Check out this thread about it.

The best way to fix this would be to shorten the path between the pad buttons and the PC. Here is my current setup:

[buttons] =>[PS2 Controll box] => [PS2 - USB adapter] =>[PC]

The better solution would be:

[buttons] =>[Xbox USB Control box] => [PC with Xbox controller drivers]

This type of setup can be built with directions on this guys site: www.sinistarddr.com.

Posted by binhqx at 11:26 PM | Comments (4) | TrackBack

March 30, 2006

Recording Medacast 3

We recorded Medacast #3 tonight. I did not feel like talking much so you will not be hearing much of me. It is alright, we did not have much to talk about so we just did a review of the DS light and a roundtable about Nintendo's future online prospects. Cap should have it all edited and ready to go by Wednesday.

Posted by binhqx at 11:12 PM | Comments (0) | TrackBack

Housing is looking not so good!

Matt is unable to secure the financing necessary for rent and has backed out. This totally destroys my latest plan.

There is one thing I want to make perfectly clear. I am not angry at Matt. Perhaps a bit disappointed, but not angry. Like many people my age he has student loans to pay off. I can not blame Matt for not knowing the limits of his back account when I invited him in the first place.

I have run out of candidates for housemates. To be a candidate, one needed to be trustworthy enough to pay the rent on time and compatible enough that I would not mind living in close quarters with. Without anyone else, my plans for a cool bachelor pad have been dashed.

This has left me a bit depressed. Now I need to come up with knew plans of where to live come the 17th. Yes, the closing date has been pushed up to the 17th of April so the time span is closing fast.

Posted by binhqx at 10:59 PM | Comments (2) | TrackBack

March 29, 2006

MedaCast #002 and I'm in it!

MedaCast #002 is out. I am actually happy that I have quite a bit of talking in the first segment.
Listen it it now: MedaCast #002.

Posted by binhqx at 11:51 PM | Comments (1) | TrackBack

Housing is looking good!

I brought Brian and Matt to the new house to have a look at it. They will be the other two house mates in this endeavor. Brian is a nice guy. He works seven days a week and is never home, so he is the best kind of resident.

Everyone loves the house. It it probably one of the nicest in Madbury.

Posted by binhqx at 10:48 PM | Comments (0) | TrackBack

March 28, 2006

Does anyone actually read a CDR?

I recently was presented with the challenge of parsing out three months of call detail records (CDR) for billing our customers. The CDR consisted of a Excel file with a the total charges on the first sheet and 25000 call record on the second sheet. This volume of data is hopelessly large for a program like Excel to handle elegantly. I needed a program that would chew through complex quires containing cross-references from a variety of other data sources. This was a job for a SQL database!

I have committed myself to doing development on PostgreSQL so that is where I started. The funny thing is, I do not have PostgreSQL installed on my workstation. This is because I do not need PostgreSQL installed on my workstation. Instead PostgreSQL lives in a fat IBM server down the hall. This keeps my workstation CPU free from all that hard work. This is nice because no mater how complex of a query I write, my computer never slows down.

Getting the data into database was breezes. I just saved it from Excel as a CSV file. Then just pipe it into psql using the COPY command.

Once that date was in I could start chopping at it. With PostgreSQL it was like a hot knife through butter. However, when i staring pulling summations of the date in the CDR they did not match total charges that were given. In fact I could not find a single correlation between the CDR and the totals we are told to pay. Not a tiny margin of error or a correction factor could explain the difference. It was as if the numbers on the bill where just arbitrarily invented. I showed the numbers to my boss and he is just as confused.

Tomorrow we will be getting on the phone with the provider as start asking questions about this bill.

Posted by binhqx at 3:00 AM | Comments (0) | TrackBack

March 27, 2006

DDR rest day.

I have decided to not play DDR today. I sometimes forget how important these days are. After playing DDR two hours per night for two weeks, the damage starts to accumulate. My muscles tire out very quickly and my performance suffers.

I try to save these rest days for 24 hour periods where I eat properly and do not have excess calories at the end of the day. However, that never seem to happens. I always find myself keeping account of what I ate and realizing it was too much. I have got to start eating better/less food.

So tonight, it is sleep.

ZZZZZZZzzzzzz......

UPDATE: March 28, 2006
It was definitely a good idea to take yesterday off. Today I was able to do a hour and forty minutes of nine foot songs with out completely tiring myself out.

Posted by binhqx at 3:12 AM | Comments (1) | TrackBack

March 26, 2006

Checking out a new house.

On Saturday, SB and I went over to my aunt's house to take a look at it. This is the house I would like to rent with SB and two other friends.

The house is very nice. It has four bedrooms, 1 and 3/4 bathroom, and enormous common area. The entire back half of the house is a big open room that encompasses both floors. The floors themselves are all hard wood. The basement has a low ceiling, but it is high enough to play DDR (just do not jump too high).

SB and I are now really excited by the idea of moving there. Now all we need to do is get the other two partners in line and we will be all set to sign a lease.

Posted by binhqx at 5:38 PM | Comments (1) | TrackBack

March 25, 2006

Exploring Azeroth with out a subscription

Here are some cool program that allows one to view World of Warcraft map and model files without running the game. They are called wowmapview and wowmodelview. To run them, you will need a copy of World of Warcraft installed. Or if you are like me and do not have a subscription, just copy the World of Warcraft directory from a friend who does have a subscription.

The coolest part is the ability to check out unfinished areas.

Here is a image from a map labels "Emerald Dream."


Or you can see current content from a new angle.

Here is the wizards tower in Stormwind. Usually, the intricate adornments of this structure are completely invisible from ground level.


I like to do archaeological examinations of the structures that are important to the lore of World of Warcraft. Every polygon and texture of a model had to be placed there by a artiest at Blizzard. By examining their work, one can attempt o glean unreleased parts of the WoW.

You can see Medivh's Tower has been shot clean through with a cannon or ballista. Not much is known about Lothar's and Khadgar's attack on the tower in Karazhan.

Posted by binhqx at 10:42 AM | Comments (0) | TrackBack

March 24, 2006

Virtual LANs with Network Trunking.

We have a odd problem at our main office. Something is wrong with the way the placed is wired, creating significant electromagnetic interference(EMI) spots. This causes major headaches when trying to run networking lines. It is a general rule in the office that any Cat 5 running over 15 meters will have too much signal loss to be used.

We have found two solutions to this problem. One, use Shielded Twisted Pair (STP) over the long reaches. the shielding prevents outside EMI from disrupting the signal in the line.

The second solution we found was to use fiber optics over the long reaches. Fiber optics uses light to transmit the signal and can not be influenced EMI. The disadvantaged is the equipment used fiber tends to be more expensive then coper.

The current setup of the in office network was a combination of these two solutions. We have two separate local area networks (LAN) running here. A public LAN with a public network that can be reached by anyone on the outside and a private LAN that is only accessible from within the office or through a VPN connection. These LAN each ran on there own separate hardware with there own separate interconnections. The public LAN ran on the fiber connections while the private LAN ran on the STP cat5.

Recently I discovered that one of the major line on the private LAN had been damaged by someone over torquing the RJ-11 head. This line was due for eminent failure unless it was replaced.

However I had been working with a bit of Cisco equipment recently and had learned about a technique called VLAN trunking. Instead of having two separate LAN, I could run a single LAN with two virtual local area networks (VLAN) running on it. It would function just the same, but use half as much networking hardware.

In the office we use a set of Cisco 2900 switches as the office's backbone. I used this tutorial to setup trunking on the fiber connections between each switch. Now each switch has networking ports for both networks on them.

The only trouble I had while setting it up is loosing connections wile I reconfigured the switch. To implement trunking, one must activate the 802.1q protocol on each connecting port on both switches. When the first one is activated, it will kill the connection to the other switch. This make remote implementation of trunking impossible. One must physically go to each switch and control them locally. If a switch is located in a closet or crawl space this can be a but of a pain in the butt.

Once the trunking is installed, the net admin has all kinds of cool abilities at his disposal. New VLAN can be crated or destroyed as need for special tasks. Or a network port can be moved from one network to another without physically move anything.

Kinda cool uh?

Posted by binhqx at 2:50 PM | Comments (0) | TrackBack

March 23, 2006

Densha otoko banner

Here is a simple banner for those who wish to spread the plight of Densha Otoko.

Posted by binhqx at 8:29 PM | Comments (1) | TrackBack

UFOs, Bigfoot, and late night AM radio

I happen to be up late one night looking for something interesting in the radio. On the AM dial I found a show called Coast to Coast AM. It is without a doubt the biggest crock of conspiracy theories, fish tales, and pure BS I have ever head. To make it really sad, the guest and call-in listeners really believe stories like "aliens have implanted then with microchips that look exactly like 1 1/4 penny nails. In fact here is one that was extracted from a contractor from Arkansas."

It is not like this is just some local show, this stuff is syndicated all over the country. There are downloads of episodes on the site. Take a listen for your self. It will probably make you laugh or cry.

Posted by binhqx at 2:36 AM | Comments (0) | TrackBack

March 22, 2006

Medacast #1

Our first real episode of Medacast is now available for download:
http://www.medaverse.com/medacast/

If you like video games and stuff, check it out.

Posted by binhqx at 9:35 PM | Comments (1) | TrackBack

Who is calling me? Ask NANPA!

The North American Numbering Plan Administration (NANPA) is the group in charge of allocating PSTN phone numbers to to geographic areas and phone companies. They maintain a list of which state and city block of phone numbers are allocated to. This information is critical for figuring out billing in the US.

The entire list is available in a single file:
http://www.nanpa.com/nanp1/allutlzd.zip

I wanted to use this list to attach state names to my call records. So I needed a way to load this list into query-able database. The result is a script that will upload the nanpa records into a SQL database. I am making this script publicly available here:
http://www.binhqx.com/static/NANPA_db/install_nanpa_db

To use it you must first setup a compatible dbi database with a nanpa table. I have a example table creation script in the script comments. Next you change the database connection settings to your database. To install the data you must pipe the nanpa file into stdin of the script.

Here is a example of a command the downloads the nanpa file , unzips it and installs it to the database in one line.

:~$ curl -s "http://www.nanpa.com/nanp1/allutlzd.zip" | funzip | perl install_nanpa_db

That is it. Once the data is installed it can be queried by any program with a SQL interface.

Posted by binhqx at 9:03 PM | Comments (0) | TrackBack

March 21, 2006

The greatest Nintendo fanboy of them all.

I want to congratulate SB for winning grand prize in the Planet GameCube's 7th Birthday Contest. The direct link to his winning photo is here.

SB worked his butt off to get it done in time for the dead line. I should know, I was watching him work on it for five days. At first I thought the idea was too silly. However, as the scene started to come together it look more and more like it could work. Best of all once it was finished I got to have some of the Planet GameCube cake.

At one point near the end of the project, SB asked me "When did I find the time to be so productive?" I replied, "Wen you quit playing/grinding raids in World of Warcraft." Seriously, not too long ago SB would have all the time and energy he put into the photo into that MMORPG. So if there is anyone he can attribute inspiration of the photo to, it would be NOT World of Warcraft.

Hmmm... If "WoW" is a abbreviation for "World of Warcraft," perhaps "!WoW" can stand for not "NOT World of Warcraft." Or a set of all that things that are not World of Warcraft. So for example, someone would ask,
"What are we doing tonight?"
The appropriate answer would be,
"!WoW"
"Oh, you mean go out, be social, and do things in the real world. Okay, cool."

Posted by binhqx at 10:49 AM | Comments (4) | TrackBack

March 20, 2006

Who uses 1400Hz tones?

Continued from:Crazy VoIP changing packetization bug.

Now that I have determined that 1400Hz tones cause a packetization to change from 20ms to 10ms, I would like to know why. I have found two documented protocols that use 1400Hz tones as control signal.

The first is Special Information Tone (SIT). These are "beep-beep-beep. Your call can not be completed as dialed...". The middle beep is a frequency near 1400Hz, close enough to trigger the bug.

The second is a TTY protocol called Baudot. It uses 1400 and 1800 hertz tones to transfer text on phone lines.

I suspect that some device in the media path is detecting 1400Hz tone and thinking the call is a TTY session. By dropping the packetization to 10ms the call reliability increases.

Update: 19:48
I was just contacted by the crew at the media gateway. The problem was related to TTY call detection. What I do not understand is why the SIP-ua did not attempt to re-negotiate the the call parameters before changing the packetization.

Apparently all they needed to fix is setting the media gateway to use 20ms packetization when a TTY call is detected. This is what I would call a work around.

Posted by binhqx at 2:21 PM | Comments (2) | TrackBack

March 19, 2006

DDR season start soon.

I was talking to SB recently and told him how excited I was that DDR season would be starting soon. To which he said "What?"

Winter is ending and all the arcades will be opening for their spring time patrons. Finally I will have a chance to show off some DDR skills/humiliation in public. I have been training all winter. I am proud to say that I can get B's in eight foot songs and C's in 9 foot songs.

I was just checking the modification dates on for Stepmania files. Looks like a started seriously playing April 25, 2005. I think I will do a one year weigh-in to see the progress I have made from myself heath wise.

Posted by binhqx at 10:07 PM | Comments (3) | TrackBack

March 18, 2006

Countdown to move out.

It looks like we have a buyer for the house. If nothing goes wrong the sale will close on March 20th. So my deadline for moving to a new place is April 19th.

I would like to rent a house belonging to my aunt. But to make it economically feasible I need three other house mates. So I have started the process of searching for compatible people. There are many criteria selecting a person. Things like finical responsibility, personality compatibility, whether my aunt likes them enough to rent to them, etc. Right now I have a few people in mind but working out a actual arrangement is is lot more difficult then just finding interested people.

The people I am interested in living with are ones in the same situation I am in: getting out of the parents home, learning to live on one's own, and creating a independent identity. If I can work it out it would be one cool place to live.

I might as well not limit the search to just people I know. So if anyone is looking for housing in vesinity Madbury New Hampshire, or surrounding towns (Dover, Durham, Lee) and are the type that I am looking for, just send me a message.

Note: UNH students looking for near campus housing need not apply. Unless you plan on living there year round and will sign a lease to that effect.

Posted by binhqx at 5:23 PM | Comments (1) | TrackBack

March 17, 2006

Network Traffic Analysis (packet sniffing) on Cisco switches

When one needs to do some packet sniffing on Ethernet networks, they will probably find it is not as easy as it used to be. This is because all modern ethernet networks employ network switches to handle all network branches as opposed to hubs. A hub retransmits any packets it receivers on a network port to all other network ports. A switch will only transmit the packets from the ingress network port to the egress network port. None of the other ports on the switch will receive the packet. This makes it difficult to intercept communications between two network devises with a packet analyzer.

I recently found that I needed to do some packet sniffing on a network device hooked up to a Cisco Catalyst 2900XL switch. Some searching reveled that Cisco has a solution to this very problem. It is called Switched Port ANalyzer (SPAN). With SPAN active on a port, it will monitor the traffic of any other port specified in the configuration. Cisco have provided detailed SPAN instructions for all Cisco Catalyst switches here.

I followed their instructions and setup a SPAN port on my switch. It works super slick. I can now monitor any device I hook to the switch. Sometimes those Cisco guys think of everything.

Posted by binhqx at 1:39 PM | Comments (2) | TrackBack

March 16, 2006

MedaCast version 0 BETA

All right. The first test episode of MedaCast has been posted. It is available from the RSS feed here. Cap did a good job of adding some intro music and stuff to it.

Some notes about it:
* I was not feeling very well while recoding it. As a result I do not say much in it.
* We are still learning how far away from the mic we should be talking. At the beginning I am way too close.
* The cast is NSFW (Not Safe For Work). There is a bit of swearing.
* It is just a test so we know it needs a lot of improvements.

Posted by binhqx at 1:02 PM | Comments (7) | TrackBack

March 15, 2006

Crazy VoIP changing packetization bug

Found a strange bug from one of our new gateway providers. I am keeping the identity if the provider confidential because the service is still considered to be in "testing" phase.

This bug is only detectible using Allworx hardware because of how its DSP works. The Allworx's VoIP audio decoder is locked at 20ms packetization. This is fine most of the time. However, while testing the new gateway we started to get reports of "chirpy" sounding calls. I did my normal analysis with a packet sniffer and found call to the gateway had normal packetization on every call. The reports made no since.

Eventually a tester found a number that reproduced the problem every time. The number was a voicemail box. During the call, the voicemail announcement was fine but when it came time to leave a message it would become "chirpy." A packet sniff revealed that during the call the RTP packet payloads changed from 160 bytes to 80 bytes. Using Ethereal RTP analyzer I extracted the call audio. I found that the packetization changed at the exact moment the beep for the message leaving played.

Something about the beep was causing a change in the call parameters. I ran the sound through a signal analyzer and determined it was a 1400Hz sin wave. Using a tone generator I could reproduce the bug on any call through the gateway by playing a 1400Hz tone at the terminating end. Actually I was able to reproduce the bug just by whistling the tone. It takes a bit of trial and error but eventually I find the right frequency.

So now I am stumped. I know the media gateway at this provider is some type of Cisco hardware. The 1400Hz must be some type of control signal. We will probably need to pull out the heavy guns on this problem and go strait to Cisco tech-support.


Update: One person guessed it was part of a fax negotiation system. However, a change like that should instigate a SIP re-INVITE and 1400Hz is not a type of fax signal I could find.

Posted by binhqx at 5:48 PM | Comments (0) | TrackBack

March 14, 2006

Switching to PostgreSQL

I have decided to switch my current phone system database projects from MySQL to PostgreSQL. I have found that my database needs are not being met by MySQL. I want to do some rather complicated manipulation of phone CDR that require user-defind functions, triggers, etc. However the version of MySQL that can do this is not considered mature enough for mission critical applications.

Note: PostgreSQL is pronounced as 'post-gres-que-ell'.

One the other hand PostgreSQL has had these features for a long time and is probably the most stable open-souse database available. Additionally, the prebuilt stable binaries some with ssl secured connections enabled. This should save me some hacking. The SQL language interface is pretty much the same as MySQL so I should allow for a easy transition. The big difference comes when I want to administer the system.

So I have a new learning curve ahead of me. I hope PostgreSQL works as well as the experts calm it does.

Posted by binhqx at 5:45 PM | Comments (5) | TrackBack

March 13, 2006

Cool OS X Utility: Aggregate Device with Audio MIDI Setup

The Audio MIDI Setup application can be found in the Utilities folder inside the Application Folder of any Mac running OS X. In recent versions, Apple has added some cool hidden functionality to this program. It allows the user to build a "Aggregate Device" from two or more sound I/O devices. This can be very useful when attempting to import or export multichannel audio using single or stereo I/O devices together.

A "Aggregate Device" is a virtual audio device that combines together audio inputs and outputs of the devises which compose it. A good use for a aggregate device would be to build a surround sound system using three inexpensive USB audio adapters. THe same hardware setup could allow three separate microphones to record audio into GarageBand with out a mixer board.

Audio MIDI Setup can be found in the Utilities folder in the Application folder in OS X 10.4. Open it and click on the "Audio Devises" tab. In the menu click "Audio" -> "Open Aggregate Device Editor." This window will allow the user to create new and edit existing aggregate device. Just make a new device and add any real audio devises as needed.

The aggregate device will show up just like any other audio device. Once that is done, select the properties aggregate device in the in the main window and you should see all the channels available.

Click on the "Configure Speakers" and you can assign audio channels to specific speaker arraignments. These will probably only effect other programs that use Apple's "CoreAudio" surround sound API.

The whole thing is just fun to play with and see how far one can customize their audio peripherals.

Posted by binhqx at 10:29 PM | Comments (0) | TrackBack

March 12, 2006

Super productive Sunday

We got a ton of stuff done today.

First SB completed how entry for Planet GameCube's 7th Year Birthday Contest. Our entry centered around a staged party with some well known Nintendo guests. Once the contest is over I will post some links to the photos.

Next we ran out to RadioShack and Circuit City to get upgrades for the podcasting studio. Props to SB for donating his own cash to buy some nice microphones. We brought all the stiff back to the ranch and setup for the first MedaCast. Yes, you heard it here first, The Medaverse is getting a podcast. It will cover the wide range of topics found in meda.

So we spent a hour recording a format-less discussion as just a trial. We all had a lot of fun so MedaCast is a go. Net week we will try to do a proper recording with topics, format and plenty alcohol.

Posted by binhqx at 3:03 PM | Comments (0) | TrackBack

March 11, 2006

Saturday with famly

Today my mother and sister came down from Maine. at the same time my sister in law, Jen, came up from Connecticut. It is nice having the house full of people again. Apparently Jen is going to Europe for a few weeks; lucky her. So Jen will be leaving her dogs with my family while she is away.

The house is completely devoid of food. I do not eat much at home, so there is not need to keep food around. However with other people in the house, no food is not a option. So we had to go shopping.

I had forgotten the Easter was on the horizon, but was happily surprised to see Cadbury Creme Eggs on the shelves. That is a treat that I get to indulge in only once a year.

I am not sure what every one in the house will be doing. It is not like there is much TV to watch or furniture to sit on. Actually I was a bit perturbed when every one bustled in and started putting their stuff all around my clean house. It is never going to sell if it looks like people are camping out in it.

Posted by binhqx at 8:34 PM | Comments (0) | TrackBack

March 10, 2006

Setting up a podcasting studio.

SB had completed his first two recordings for Negative Reinforcement but I did not think the audio quality was up to par. He had used a standard PC gaming headset to do the recording. The audio capture quality on this type of microphone is rather poor. So Cap, SB and pooled some resources and built a small podcasting studio.

Cap borrowed a good microphone and five channel mixer board from his other job at DTOD. The microphone captures sound so much better then the headset. The mixer board allows for precise control of the microphone levels before it is sent to the digitizer. We hope someday to use the other channels on the board to get a few more microphones and start doing some discussion podcasting for the Medaverse .

For the digitizer we used SB's Sonica Theater USB. This device provide a way to get 24bit sound into a computer via USB. However it has been plagued by poor drivers for a while. I downloaded the latest ones from the website and had no problems at all.

I setup my G4 workstation with GarageBand 3 and hooked up all the hardware. The GarageBand software is so easy to use. It is just record and go.

The only other problem we faced is getting the noise levels in the room down. Cap's microphone is sensitive and will pick up sounds of PC fans, network equipment, nearby appliances and even florescent lights. So we shut off every device we could find.

SB rerecorded his first two podcasts with the new setup and the results are a bit scary.

The whole project worked out well. I hope that we can use this setup to more and different podcasts in the future.

Posted by binhqx at 11:53 PM | Comments (2) | TrackBack

March 9, 2006

Walmart Pocky!

I was at Walmart today and noticed they where selling Pocky. Seriously, a year or two ago this stuff had to be imported from overseas and now its in every Walmart?

Sometimes I think we are so far ahead of trends that it is scary.

Posted by binhqx at 11:28 PM | Comments (0) | TrackBack

Binaural Beats

I found a interesting bit of software called SBaGen. Its function is to generate sounds called binaural beats. Here is a quote from the SBaGen documentation explaining what binaural beats are:

The basic idea of binaural beats is that by applying slightly different frequency sine waves to the two ears, a beating affect is created in the brain itself, due to the internal wiring of the brain. If, in the presence of these tones, you relax and let your mind go, your mind will naturally synchronize with the beat frequency. In this way it is possible to accurately lead the brain to various states, according to the frequencies that you apply.

source: SBAGEN.txt

Sounds a lot like sudoscience with a bit of snake oil thrown in. The term "due to the internal wiring of the brain" is a big red flag that says "for some reason we do not understand." However, I can not go around discounting theories just because there is no hard date to back them up.

The program its self is a rather interesting audio toy. It will accurately generate these tones with their phased properties. The result are some interesting sounds. The phase difference make the sound appear to be de-localized, as in having no apparent source of origin. The best way to describe it as if the sound was coming from inside ones head. Additionally tones/frquencies can be added or subtracted to produce harmonics.

If nothing else SBaGen is a interesting tool for exploring the way the brain interprets sounds. Especially sounds that are uncommon in nature.

I did try some of the relaxation programs that came with SBaGen. Sure enough I did find them relaxing. But I am not sure that it has anything to to do with adjusting brain waves. I have always found low rhythmic sounds to be relaxing. I have may times been lulled to sleep the the constant tone of a car or boat engine. I think this phenomenon probably stems from similar behavior in many people.

This field of science could use a bit more hard scientific research. I am sure there are interesting aspects of the human mind that can be learned from it.

Posted by binhqx at 12:17 PM | Comments (0) | TrackBack

March 8, 2006

Car Insurance.

I finally have all my car insurance all sorted out. I went with Alstate because that is company that had my parents policy. So I spun my policy off theirs.

While working out the details, my agent asked if I wanted to drop my comprehensive coverage. If I removed it it would cut the cost by half. However, if I have insurance I want to use it. My driving habits do not involve hitting other drivers. I have never had any type of collision with another driver of any kind.

But when I leave my car parked somewhere other car are attracted to it. I have had serious reconstruction of all sides of my car for damaged incurred while I was away from it. So if I want to collect insurance for the most common damage to my car, I need comprehensive coverage.

Posted by binhqx at 9:47 PM | Comments (0) | TrackBack

March 7, 2006

loudblog: A easy to use podcast syndication server.

SB wanted a site to host his new podcast. I did a quick look on google and found some server software called loudblog. Loudblog is a podcast and rich media hosting software written in php. It uses mySQL or other DB as its back end.

The install went in super slick. I love when php developers make server installs easy. It was just, unzip, adjust directory permissions, setup DB back end, and go.

I particularly like how accessible loudblog makes media. It gives users a variety of way they can accsess the media. It supports podcasting RSS standers. IT can automatically submit new podcasts to iTMS and other podcasting sites. Users can download the audio file directly. It even has a online player written in flash. This allows a user to just wander into the site and listen without any pesky download or subscription stuff.

Best of all, loudblog does all of this for you automatically. Just recored the podcast, upload it and let loudblog do all the hard work of generating RSS feeds and site entries.

So now SB has his own podcasting site at http://www.negative-reinforcement.com. There is nothing up there right now, but he has some interesting plans.

I am rather excited to see what he will do with it.

Posted by binhqx at 5:24 PM | Comments (4) | TrackBack

March 6, 2006

Determining Media Path from a SIP Trace

This is the first draft of document I wrote for work. Everyone was to have trouble understanding the concept or separated media and control streams. This attempts to illustrate how to find the network path of a media stream. If anyone want to edit this or point out my mistakes.

Title: Determining Media Path from a SIP Trace.
Date: 2006-03-06
Version: draft-1

The benefit of using the SIP protocol in VoIP is that the control stream and media stream can take different paths over the network. The SIP control stream is a set of direction that tell each endpoint in a conversation how to setup a call. A full explanation of the SIP can be found in RFC 3261 (http://www.faqs.org/rfcs/rfc3261.html). The media stream is the actual voice information being transferred over the network. This is sometimes called a Realtime Transmission Protocol (RTP) stream because RTP is the protocol used by it. The paths are the origination and destination hosts and port numbers used to direct network information. By sending them on different paths the SIP control streams can be centrally managed without the need for enough bandwidth to handle all the simultaneous calls.

When trouble shooting media stream problems such as garbled sound or half duplex calls, one must examine the media stream itself. The taking a trace of a SIP control stream will not give sufficient information about the media to diagnose a problem. However the SIP trace does contain the media setup information that can be used to determine what path media stream takes.

The SIP is a request/response protocol. In a typical case, the SIP client will request a new call from the server. In the request the client puts all of the required and optional call parameters it plans to use. These parameters are found in the Session Description Protocol (SDP) part of a "INVITE" message. A full explanation of the Session Description Protocol can be found in RFC 2327 (http://www.faqs.org/rfcs/rfc2327.html). The server will respond with a set of parameters that both the client and server agree upon. The agreed parameters are found in the SDP part of a "200 OK" message in response to the initial "INVITE" message. The "200 OK" also contains the information the client needs to direct the media to the server.

Finally the client will acknowledge the agreed parameters with a "ACK" message. Once that occurs the client and server will start streaming their voice data using the agreed parameters.

Note: If the client and server can not agree on a set of call parameters, the server should respond with a "415 Unsupported Media Type" message.

The INVITE SDP:

Here is a example invite from a client at 12.160.216.240 to a server at 12.160.216.33. This example illustrates a standard call from a VoIP client to a Server that will act as a gateway to the plain old telephone system (POTS).

Notice the SDP portion of the message comes after the SIP heard field.

The parts of the SDP that are relevant to determining the media path have been color coded and numbered.

1. Client's media origination address.
This is the network address that the server will see the client's media from. This can be different from the client's actual IP. In the case of a NATed network the address should be the public IP of the NATing router.

2. Client's connection address.
This is the address that server will send its media stream too. It is usually the same as the address in the media origination address field (#1).

3. Client's destination media port.
This is the port on the server that the client sends media too. Under the RTP standard this number can be any even digit between 1024 and 65535. When diagnosing media problems it is important to check that all routes and firewalls between the client and server will allow outgoing UDP packets on the agreed port.

The 200 OK SDP:

Next is a example of "200 OK" response to the previous "INVITE." The message's SDP fields contain the agreed upon parameters of the call and the information the client needs to direct the media stream.

The parts of the SDP that are relevant to determining the media path have been color coded and numbered. These fields describe the same parameters as the SDP from the INVITE but from the server's perspective.

4. Server's media origination address.
This is the network address that the client will see the server's media from. Notice that the origination address is different from the SIP server's address. This is very common in VoIP-to-Phone gateways. In this case the media origination is the public address of a media gateway host.

5. Server's connection address.
This is the address that client will send its media stream too.

6. Server's destination media port.
This is the port on the client that the server sends media too.

Session procedure graph:

Now that all the communication parameter are known by the client and server, media can be transmitted from both locations. Here is a session graph of a typical VoIP to POTS call. The "INVITE" and "200 OK" messages of the call are the one shown above.

The session graph details the connection information of the media stream. Notice that the media stream never goes ti the SIP server. Instead it goes directly across the network to the media gateway. Each element of the connection information is color-coded and numbered to correspond with the "INVITE" and "200 OK" messages.

When to troubleshoot media stream issues, first the call must be setup. Then the SDP fields of the SIP messages must be examined t o determine the network path between the client and media gateway.

Problem like garbled sound are usually the result of a overloaded link between the client and media gateway. Network utilities such as "ping" and "tracert" (or "traceroute" under unixes ) can be used from ether the client or gateway to find slowdowns or congestion on the network. It is important to remember that these test must be done from the client, media gateway, or other router that is in the path between the two. Any test from a 3rd party location will not test the actual media path.

Half-dupex calls or calls with no audio are usually a result of media packets being mangled or blocked by routes. Packet capture and analyzing tools such as Ethereal (http://www.ethereal.com/) can be used to investigate any packet mangling or blocking. Like the other diagnostic this must be done on the media path. Any other location will not see the media packets.

Posted by binhqx at 7:48 PM | Comments (0) | TrackBack

March 5, 2006

Chibi-Robo

Chibi-Robo: He cooks, he cleans, he litigates divorce and in his free time he manages intergalactic relationships.

Chibi-Robo is a silly little adventure game where the player takes on the role of a 10 cm tall robot. The Sanderson family that purchased the robot have all kinds of task that need to be done. But as you play, you come to find that Sanderson household has many secretes of its own.

The world is a big place to a 10cm tall robot. Much time will be spent finding ways around the house.

This game is more then just a house work simulator. Most of the game revolves around helping others with there problems. Sometimes it is manual work, other times it is as a relationship counselor. As you progress, Chibi-Robo gets upgrades and utility bots to help with day to day tasks.

So much fun of this game is the exploration element. Chibi-Robo is just dumped into a time but complicated world. As you meet new people and find more things the world will unfold.

The puzzles are fairly simple. The most difficult part of the games is searching the house for items you need. It can also be cumbersome to keep track of the multitude of story arcs that occur simultaneously.

If nothing else, this game will keep surprising you at every turn.

Posted by binhqx at 6:49 PM | Comments (3) | TrackBack

March 4, 2006

Saturday night movie: Ong-bak

Got together with SB, cuchulainn, and cuchulainn bother to watch Ong-bak.

This is a fight movie for people who like fight movies. The whole thing was made without special effects, wire work, or a budget. However the result is a spectacular example of expression through movement. I would recommend this for people who like kung-fu and how kung-fu movies are made.

Tony Jaa and his co-stars perform some fresh styles in a well evolved genre. At points in the movie you will think "How did they do that?" and the answer is they just believed it was posable and did it.


Some fantastic stuff.

Posted by binhqx at 3:26 AM | Comments (0) | TrackBack

Blue Cubes

I felt like exploring cubes and the color blue. So I just wipped this up. There is something about its simplicity that I like.

Posted by binhqx at 2:41 AM | Comments (0) | TrackBack

March 3, 2006

Back to business as usual and cleaning house

As much as I like to spend time with my family, it gets boring sitting around the house with nothing to do. I thrive on being constantly challenged. That is probably why I still work where I do. Everyday there is something that needs to be figured out or invented or implemented.

This weekend I am cleaning for a open house on Sunday. It is surprising how quickly a house can be cleaned when there is no furniture or carpets. I have one of those wide mops that I can just sweep around the floors.

Building a better floor.

When I get my own place, I will probably not get one with wal-to-wall carpets. To much dirt and junk builds up in them. A person desires to have a flooring that is comfortable to walk on with bear feet. However it must be cleanable. I like the way the traditional Japanese solved this problem with Tatami mats. They are removable for cleaning and split rooms into "inside" and "outside" space. It sets a visual indicator of the area that are meant to be kept clean by removing outdoor foot wear.

I do not like the rectangular motif nor do i like the feeling of straw under foot. I would probability make my own interpretation, I would use a cloth as the flooring and more geometric shapes. Something like this would make a great room.

The individual sections would be upholstered in washable coverings and removable for cleaning.

Posted by binhqx at 3:40 PM | Comments (0) | TrackBack

March 2, 2006

One last shot before I left.

One thing I can not deny about Bass Harbor is its natural beauty. Here is one last shot I took over the harbor. Shortly after taking it I left for New Hampshire.

There are sun sets like this every evening in Bass Harbor. I can understand why people never leave there.

Posted by binhqx at 10:48 PM | Comments (0) | TrackBack

Mission successful!

The Road Warrior successfully extracted me from Maine. I am now back in my empty house. The place did not burn down while I was away, so that is good.

The trip was as fast as a four hour road trip could be. The Road Warrior lived up to his expectations.

Posted by binhqx at 2:05 AM | Comments (0) | TrackBack

March 1, 2006

Road Warrior to the rescue!

Work as dispatched the Road Warrior (a.k.a archcaptain) to my rescue. He is highly trained in the field of hazardous long distanced driving. If you need someone or something moved as fast as posable and mostly intact, just call the Road Warrior.

He just left so I should see him here in a few hours.

Posted by binhqx at 2:50 PM | Comments (0) | TrackBack

Defeating the chihuahua wake up alarm.

The usual way my family attempts to wake me up in the morning is the chihuahua wake up call. This involves putting a rambunctious chihuahua into my bed that will jump around and annoy me till I get up. Usually Trance is the chihuahua pick to do this job.

However, I know the one thing that Trance like to do more then jump around and annoy, that is to curl up and sleep in cozy spot. So I found that if I am fast in the morning, I can position Trance in my blankets so she will instantly stop waking me up. Instead she will realize that she is in a warm cozy place and settle down for a nap.

This can by me at lest another half hour of sleep. Eventually my sister will wonder what happened to Trance and will find her warm and happy in my bed.

Posted by binhqx at 8:16 AM | Comments (0) | TrackBack