« September 2006 | Main | November 2006 »
October 31, 2006
I love the heaters in LaTour
LaTour has got this old but very effective heating system. It uses steam radiators.
At night when it gets cold, the burner will come on. Then as the system pushes the cold air out all the radiators will start hissing. In a few minutes the whole house will be warmed up.
It is not just the fact that it works surprisingly quickly that I like. I enjoy the knowledge that that steam contained within the system is incredibly powerful. As the system heats and pressurizes, I can see and hear the pipes straining under the heat and pressure. It is like some type of fiery demon is being held captive in the basement. It lies dormant till it is awakened by the the thermostat. Then the fill power of its rage can be felt through the entirety house.
Posted by binhqx at 4:55 PM | Comments (2) | TrackBack
October 30, 2006
Not making one SIP proxy do everything.
I have always dreamed of making the ultimate SIP proxy that did everything. Presents, location tracking , gateway authentication instant messaging, the works. However, now I realize that this is silly. Different functions should be spread out over different servers. The SIP protocol provides a very easy way to do this using "300 Redirect"
A "300 Redirect" tells the client that the conversation it wants to have needs to be with a different host. Now each different task a server needs to accomplish can occur on a different server. Each of these servers are much less complicated then attempting do do everything one one. This setup also creates a more robust system. Ant single point of failure will not effect the rest of the services.
This is the architecture that I am looking at for use in voippath.net.
Posted by binhqx at 5:17 PM | Comments (0) | TrackBack
October 29, 2006
The oncoming 802.11n storm
Today the gang walked through a Circuit City and I was surprised to see the volume of Draft 802.11n products on the shelves. 802.11n is the next iteration of wireless networking. It uses the Multiple-input multiple-output (MIMO) to increase bandwidth. Quite a few MIMO wireless routers have been available this year but those where not compatible between venders.
So the 802.11n standard will make these devises compatible. However, 802.11n is still in draft form and not yet standardize. So while 802.11n draft devises will probably work together, there is no promise it will work with actual 802.11n devices. There are also issues with 802.11n draft causing interference with 802.11b and g networks. Hopefully, a firmware upgrade will resolve this.
I say do not buy 802.11n draft routers or receivers. Wait till the 802.11n standard has been ratified.
Posted by binhqx at 3:08 PM | Comments (1) | TrackBack
October 28, 2006
Holding LaTour together ... physically
LaTour is old, very old. It was built in the 1890s and it shows. All weekend we have been buffeted with rain and wind. The storm windows have been practically rattling out of there frames and the place is drafty.
So I spent the day reenforcing the windows. I applied duct tape to the inside of the storm windows to cut back on the rattling. Next, Jen helped me put plastic over the inside of all the windows in my room. The plastic on the windows can be real tough. If anyone else wants to do it, my only advice to to get a friend to help. These things take more then two hands to do it well.
The result appears to be working. The draftiness is down and the room feels warmer.
Posted by binhqx at 3:56 PM | Comments (0) | TrackBack
October 27, 2006
Back from Halloween bus trip
Cap and I survived the bus trip and show. The whole thing was so much fun. I can not wait to do it again.
Posted by binhqx at 11:50 PM | Comments (0) | TrackBack
October 26, 2006
Halloween party at Mojitos
Mojitos opened up in Dover yesterday. Today they had a big Halloween bash. Everyone got all dressed up and we all went over there. For only being the second day open and a weekday there were a ton of people there.
I got to meet some people and ran into some that I had meet before. Everyone had a bunch of fun.
Posted by binhqx at 3:29 PM | Comments (1) | TrackBack
October 25, 2006
Packing a IP address into a single 32 integer
I started playing with the Least Cost Routing (lcr) module of the openSER platform. One small oddity I found is the way it stores IP addresses. Instead of the standard dot-quad IPv4 format (xxx.xxx.xxx.xxx) it squishes it together into a single 32 bit unsigned integer. take a look at the following:
1.2.3.4 \/ (to binary) 00000001.00000010.00000011.00000100 \/ (reverse order) 00000100.00000011.00000010.00000001 \/ (remove dots) 00000100000000110000001000000001 \/ (cast as a integer) 67305985
therefore: 1.2.3.4 = 67305985
Of course there is a fast way to do this programatically:
(([byte 1]<<0)|([byte 2]<<8)|([byte 3]<<16)|([byte 4]<<24)) = [packed address]
((1<<0)|(2<<8)|(3<<16)|(4<<24)) = 67305985
So all I needed to do is write some functions that would allow me to easily convert back and for with this format. First I wrote a function that parsed each part and made the packed address.
CREATE OR REPLACE FUNCTION pack_ip(varchar) RETURNS int AS $$
SELECT
((substring($1 from '^([0-9]+)\.[0-9]+\.[0-9]+\.[0-9]+$'))::int) |
((substring($1 from '^[0-9]+\.([0-9]+)\.[0-9]+\.[0-9]+$'))::int << 8) |
((substring($1 from '^[0-9]+\.[0-9]+\.([0-9]+)\.[0-9]+$'))::int << 16) |
((substring($1 from '^[0-9]+\.[0-9]+\.[0-9]+\.([0-9]+)$'))::int << 24)
$$ LANGUAGE SQL IMMUTABLE;
Then to get the address back, I just do the reverse:
CREATE OR REPLACE FUNCTION unpack_ip(int) RETURNS varchar AS $$ SELECT ($1 >>0 & 255)::varchar || '.' || ($1 >>8 & 255)::varchar || '.' || ($1 >>16 & 255)::varchar || '.' || ($1 >>24 & 255)::varchar; $$ LANGUAGE SQL IMMUTABLE;
I thought it was fairly clever to do the bit shift and logically AND it with 255 to mask out just the byte I want.
So that is it. Strange ip address format is no longer a problem.
Posted by binhqx at 3:04 PM | Comments (0) | TrackBack
October 24, 2006
European Union courts become the lapdog of Sony Corp.
EU courts ruled today that the importing of Sony hardware from any vender not authorized by Sony Computer Entertainment (SCE) is illegal. The justification for this ruling is consumer safely concerns over posable damage caused by voltage differences in different areas of the world.
This sounds like a load of BS. Anyone who has ever imported a electronic device from one part of the world to another knows how to deal with foreign inputs and outputs. Any importer will make these requirements clearly known to the consumer.
The first result of this ruling is the closing of Lik-Sang.com. Lik-Sang.com is a very reputable global reseller of electronic entreatment. I have dealt with them is the past and found there service for legitimate and gray market goods to be excellent. The only entity they were hurting is Sony's profit margins. That is what I call "Free Market"
Sony may think this is a victory, but I think it is just the opposite. Now that the buying and selling of unauthorized Sony products is illegal, the gray market has become a black market. There will be a lot of negative connotations of this change.
Posted by binhqx at 5:16 PM | Comments (0) | TrackBack
October 23, 2006
Sending Jack home
This morning we got Jack packed up and sent him on his way. He has a new home at Fort Knox in Kentucky with his wife Lindsey.
We had a very fun summer with Jack at LaTour. He is one of those house guest one does not mind living with for months. Then when he is gone, we realize just how much we will miss him. Jack has been a key member and invaluable counsel for all of us here.
The actual moving of stuff was painless. He rented a truck and we got all of his stuff into it in just a few hours. Around 1:30 this afternoon he left the truck rental place in Exeter with his car on a trailer in tow.
Posted by binhqx at 2:29 PM | Comments (0) | TrackBack
October 22, 2006
Final Fantasy XII and legacy user interface.
In the new Final Fantasy game, Final Fantasy XII, SQUARE ENIX decided to upgrade the traditional combat system with some more realtime elements. This would make the game more like popular MMORPGs like Final Fantasy XI and World of Warcraft.
The problem is that although the fighting is in realtime, attacks must be selected from a cumbersome and time consuming menu system. This system's heritage can be traced back to the first Final Fantasy games on the NES. The NES system only had two buttons and a directional pad that could be used for game-play. In this limited input system, a menu system is the only effective way a game designer could give the volume of options to the player.
However those days are over. A Play Station 2 controller has 12 buttons and two analog control sticks. With this many posable inputs, there is no reason for a player should need to navigate a menu system to find common commands. These commands should be mapped to the p[layers buttons for quick access.
The parts of the Final Fantasy XII combat system I saw requires the player to use a menu choose to attack, choose the attack to use, and then choose the opponent to do the attack against. Then it is repeated for each opponent a player faces. With so much time spent telling the game what to do, the play quickly becomes frustrated with the interface.
Posted by binhqx at 4:18 PM | Comments (0) | TrackBack
October 21, 2006
Goodbye party for Jack part 2
Much eating, drinking, and merriment!
Nothing else to report.
Update:
Wow this thing just never stops does it.
Posted by binhqx at 4:34 PM | Comments (1) | TrackBack
October 20, 2006
Goodbye party for Jack part 1
Much eating, drinking, and merriment!
Nothing else to report.
Posted by binhqx at 4:20 PM | Comments (0) | TrackBack
October 19, 2006
It is the little things that make me feel better.
Sometimes a series of small events can turn a bad mood around. Today was one of those times.
It all stated when I was invited to a halloween party/heavy metal concert. The interesting bit was when the band's lead vocalist, Fletch, arrived at the front door of my house to deliver the tickets in person. We had a short chat about the event, and now I am really psyched about it.
Apparently he had been reading a few of my myspace blog entries. One of them was about my study of the Dover nightlife. At one point it mentioned his band and he thought it was so cool. So be careful who you write about on the internet, they just may read it. Fletch also promised that the event would be one worthy of study. I am not sure what that means exactly.
Next the gang recorded episode 29 of Medacast. These are always fun to do, especially if they just fall together like this one. The episode we did will be posted next Monday.
After that, I took Jack and Matt out for a guys night out. We ended up at Kelly's Row for karaoke night. Bacardi was running a promotional event there. i spent most of the evening convincing the promoters to give me free stuff, pins, LED necklaces, t-shirts, etc. I guess I am pretty good at it because by the end of the night I was completely decked out in Bacardi gear. Nothing like ending a night covered in free loot.
So I guess I am feeling better now.
Posted by binhqx at 1:44 PM | Comments (1) | TrackBack
October 18, 2006
Feeling blue
I do not know why, but I have been feeling down the last few days. I am having a hard time being interested with work. Actuality I am feeling disinterested in everything. I feel sleepy a lot the time and getting extra sleep is not helping. My mind seems to be dwelling on my resent mistakes and deficiencies. They are clear in my mind while all the memories good stuff that happened to me just drifts away.
I am in a definite funk. The problem is, I do not know why.
Posted by binhqx at 1:02 AM | Comments (2) | TrackBack
October 17, 2006
Introducing voippath.net
Today started working on a new VOIP network called voippath.net. It is designed to be a test bed for the latest VOIP technologies. Its it core is the newest stable release of the OpenSER code.
I purposely got a new domain with no connection to any corporate entity to make it a non-commercial network. Eventuality voippath.net will a service associated with many companies, but it will not be a product.
So now that I have a cool name, I just need to make it work.
Posted by binhqx at 1:02 AM | Comments (0) | TrackBack
October 16, 2006
Halloween is comming ... start preparations.
Halloween is coming and you know what that means. Tons of halloween costume parties!
I think I will go with the mad scientist this year. However I lost my lab coat in the move. I need to run by a medical uniform store and pick another one up.
Oh man, this halloween season is going to be great!
Posted by binhqx at 5:32 PM | Comments (0) | TrackBack
October 15, 2006
Urban Vehicle Camouflage
The next car I buy is going to be white This guy set up a fake company called Telstar Logistics. That is not unusual at all. However he has a fake company vehicle to go with it. No matter where it is parked, people think it is there for a job. Go way to avoid tickets and get into restricted places.
Posted by binhqx at 10:08 PM | Comments (0) | TrackBack
October 14, 2006
Getting colder now.
It is getting cooler out now. So far it has been a wonderful autumn but the weather is starting to set in. It is becoming common to see frost outside in the mornings. No one in LaTour wants to play for heating, so we are seeing how long we will take the cold. It may mean putting on a sweatshirt just to sit around the house and we will keep may blankets on the couches.
I am finding it a bit harder to stay warm this year. Last year I had a nice layer of insulative fat under my skin. Now I have to make due with extra clothing. The one item I am really looking for is a par of thick wool socks. Those would keep my feet nice and toasty.
Of course my other option is to find someone to cuddle with. Shared body warmth is surpassingly effective.
Posted by binhqx at 4:24 PM | Comments (0) | TrackBack
October 13, 2006
Cool UI: Disco
Disco is a app written as all-in-one disk burning utility for OS X. Check out this UI during the disk burning phase. That is right, the window is acuity smoking.
Posted by binhqx at 1:36 PM | Comments (0) | TrackBack
October 12, 2006
Old PBS documentary: The Secret Government
Here is a documentary from 1987. It is about the various known operations that the US government has done in order to influence foreign nations. It might be from 20 years ago, but the tone is frightfully familiar.
I do not remember reading about any of these events in any of my history textbooks.
Posted by binhqx at 4:20 PM | Comments (0) | TrackBack
October 11, 2006
How do airplanes realy fly
Grade school textbooks have been continuing a misconception about how aircraft wings actually work. The explanation that is usually given states that the low pressure air formed above the wing via the Bernoulli's principle sucks the wing up. But that is simply not true.
A airfoil works by pushing air down. The whole curvature of the wing design is to deal with the drag created by the angle of attack. A great explanation is available here.
Posted by binhqx at 2:09 PM | Comments (1) | TrackBack
October 10, 2006
Undocumented features in PHP5 SOAP + WSDL + SSL
Sometimes things slip by in the php documentation. Recently I wanted to create a SOAP interface between two servers. This interface would allow one machine to control a mission critical server on the other one. So the connection had to be as secure as posable. I decided the best way to do this is to use certificate based authentication.
The SOAP host would have a local Certificate Authority (CA) and would only allow connections from clients that have been signed by that CA.
It is easy enough to generate a CA and a certificate signed by it. CA.pl (that comes with openssl) will do it with three commands.
CA.pl -newca
CA.pl -newreq
CA.pl -signreq
Next I had to configure apache to use my keys and certificates and only allow connections from clients who had been signed by the CA. You can find out how here.
The only real problem was getting php SOAP client to use a certificate when contacting the server. A post in the php SOAP said it was posable by giving the path to the cert to the client object using '_local_cert'
$client->_local_cert = "C:\\path\myCert.pem";
This however this does not work. Eventually I found a bug report that identified a different way to do it. Apparently the '_local_cert' method only works when not using WSDL to configure the client. Instead a 'stream_context' object must be created that specifies the connection parameters.
$opts = array(
'ssl' => array(
'local_cert' => './cli_crt.pem',
'allow_self_signed' => true
)
);
$ctx = stream_context_create($opts);
$soap = new SoapClient('a.wsdl', array(
'stream_context' => $ctx
));
Once I figured that out it just worked. Someday they need to document it.
Posted by binhqx at 2:51 PM | Comments (0) | TrackBack
October 9, 2006
WSDL Tools #1: Eclipse WSDL editor - Part 2
For a lot of people, Columbus Day is a day off of work. Not for me!
So I dived back into the Eclipse WSDL editor and had a whole lot of success. Once I used "encoded" mode and generated a new WSDL document, things just started to work. I brought the WSDL into PHP5 using the native SOAP libraries. I just followed along with this tutorial and had a simple SOAP interface ion no time.
Posted by binhqx at 6:46 PM | Comments (0) | TrackBack
October 8, 2006
Lego Star Wars II - Fun but buggy
Lego Star Wars II is a fun little game where the player retells the story of the original Star Wars trilogy in the form of Legos. Of course it is not a pure transition from silver screen to game. Instead the game designers have made a lighthearted parody of the classic. Chewbacca pulls the arms off enemies with a all too familiar plastic popping sound and C-3PO is constantly loosing his appendages.
The best part of LSW2 is the two player game play. It is a lot of fun to solve puzzles with the help of another player. Many times each player will have a very specific job to do on a puzzle. At these times teamwork becomes a whole lot of fun.
The down side is the bugginess. Twice I ran into bugs that prevents a puzzle from being solvable and bring the game to a frustrating halt. At one point a shield generator needed to be destroyed, but it never took any damage. Another time C-3PO was needed to open a door, but he constant ran into a wall and would not allow the player to control him. When this happens the only way to fix is to restart the level. Frustrating.
A little more QA could have made Lego Star Wars II a very solid cross-platform title.
Posted by binhqx at 11:38 AM | Comments (0) | TrackBack
October 7, 2006
Apple Harvest Day
Today is Apple Harvest Day in Dover NH. Is a big even where the entire center of town is turned into a festival. All the local stores had tents out in the streets to sell stuff and there was plenty of good food around.
I could not believe the number of people there. The streets where absolutely packed with people and children and there dogs. The whole event is only about 3 hours long, that probably explains the sudden influx of population.
Posted by binhqx at 4:26 PM | Comments (0) | TrackBack
October 6, 2006
WSDL Tools #1: Eclipse WSDL editor
Eclipse is a cool cross platform, open source IDE. In the Web Tools Platformversion of Eclipse is a nifty WSDL editor.
I played with this for most of the day and found it is only marginally helpful if you do not know what you are doing. I am still in the process of wrapping my head around the structure of a WSDL document. After quite a bit of experimentation I created a WSDL document that was needlessly complicated and difficult to work with. This is not the fault of Eclipse, it was due to my lack of understanding about WSDL's usage as "literal" or "encoded." A good explanation of the difference is available here. I need to go back into Eclipse using the rpc "encoded" mode and take another attempt at making a WSDL document.
Posted by binhqx at 12:00 PM | Comments (0) | TrackBack
October 5, 2006
Learning about self-disappointment.
Have you ever set a goal for your self and then failed to achieve it. It could be at work or at school or in your social life. The key attribute of it being you have no one to blame for your failure but yourself. You come to the realize that you are not smart enough or fast enough or lucky enough to reach your goal. This is a harsh realization and the feeling it produces is equally unpleasant.
It is easy enough to avoid self-disappointment. All one needs to do is not make difficult goals for themselves. Live in a bubble of mediocrity where there is no risk of failure. I have to admit I am like this. I find disappointment so unpleasant, I must avoid it by curbing my goals. The result is just that; mediocre.
Recently I have figured out that self-disappointment can also be a powerful tool in ones emotional kit. By experiencing self-disappointment one can strengthen their resolve. Remember how it feels to fail and putting that extra bit of effort into your next attempt. That is way one must fail in order to achieve success; grow and learn. That is the trick, self-disappointment is only useful if it one does not allow it to paralyze them.
So next time I feel self-disappointment I will remember how it feels and use it as a drive to try harder the next time.
Posted by binhqx at 11:27 PM | Comments (0) | TrackBack
October 4, 2006
WSDL is annoyingly complicated.
I am trying to create a simple web service using SOAP as the protocol. I am using PHP5 on the server side and want to create a WSDL document to define how the SOAP call works in order to minimize incompatibility between various clients.
The problem is that even a simple SOAP call requires a complicated WSDL document to define it. Add to that the minimal number of tools available to create WSDL documents without working in XML by hand.
Later this week I will be examining some WSDL tools and I will report back on which ones work.
Posted by binhqx at 3:51 PM | Comments (0) | TrackBack
October 3, 2006
Visit to BayRing Communications
During work today I had the opportunity to visit BayRing's facilities in Pease Tradeport. BayRing is a voice and data service provider that has been around for as long as I remember.
The reason for the trip was just to get a overview of the services that BayRing can provide for us. Especially a large volume of voice and data connections in a co-location facility. We are looking for another place we can setup redundant SIP network nodes and start running our own voice gateways. From what I saw, BayRing is a good candidate for hosting our equipment. I was impressed by the layers of redundancy they had on their power systems and network.
Perhaps the biggest benefit is the fact that co-location is housed only 15 minutes from home or work. So if there is a need for physical maintenance, it would take no time to do it.
Posted by binhqx at 2:05 AM | Comments (0) | TrackBack
October 2, 2006
Bad DDR night
Tonight I had the tough reminder that it is possible to not eat enough to play DDR. Balancing caloric load can be a trick thing. When making food choices, it is easy enough to just pick foods with the smallest calorie load. This us because most foods in this part of the world is loaded with calories. If the human metabolism worked differently, it would be easy to eat one meal per day.
But apparently my food choices did not provide enough energy to play my usual DDR session. After the first hour I felt like just dying there on the pad. I just had to give up and slink off to bed.
Posted by binhqx at 4:01 PM | Comments (0) | TrackBack
October 1, 2006
Dreary Sunday.
Sunday was positively dreary. Well, at least the last half of Sunday was dreary. The first half was spent sleeping to recover from the previous night. Saturday night Chris came over and all the guys just stayed up talking till 4:00 AM. So around noon on Sunday I woke up to the most oppressive weather ever, a cold October rain.
A good day to watch movies or TV. Cap had saved up a few episodes of the sci-fi show EUReKA. It is pretty good, or at least the premise in fairly original.
Today is also the first of the month, so I need to remember to make out a rent check.
Posted by binhqx at 12:50 PM | Comments (0) | TrackBack