Monthly ArchiveJuly 2007
Book review Alexander Shyrokov on 31 Jul 2007
Ishmael by Daniel Quinn
As scientists we are bound to ask questions. A lot of times there is no ready-to-use answer. So we imagine that we know the answer and call it a hypothesis. The goal is to make a law (I am talking about physical laws in this post) out of a hypothesis. Laws must serve as a grounding material for our actions, and these actions are what moves us towards our goals, whatever they are. What is important to understand is that using logic is not enough to ensure reasonable actions. The logic must be grounded in laws. As Richard Dawkins suggests if we start with a “spaghetti-monster” we can apply all kinds of logic and still arrive at nothing.
The interesting thing about the physical laws is that everything is subject to these laws (that’s why they are laws) and nothing can disobey these laws. One good example is the law of gravity. It says “the earth is coming” (as a skydiver I can testify that it’s true). If there are no other laws applied such as aerodynamic laws (that’s why I was able to make more than one jump) the “earth will come”.
Given that all of that is pretty obvious we can ask a question: “What is the law that is used to develop our society (if any)?”. Daniel Quinn in his book “Ishmael” talks about this question. I found Quinn’s way of developing ideas very similar to the approach that is used by Jared Diamond in his books.
The beauty of this book is that it looks at things we see every day, but because we see these things every day we fail to make connections between them. Everyone saw apples on the ground, everyone saw apples fall to the ground… But it was Newton who discovered the law of gravity. This law shows a connection between apples and Earth in this particular case. That’s why connections are important to understand.
I was able to see the “problem”, “approach”, “hypothesis”, “solution”, and “future work” in this book. A good structure coupled with a very clear language and a very important topic (if our society is not following laws it will not survive exactly as aircrafts not following aerodynamic laws will not fly) makes this an excellent book.
Now what does it have to do with us? Well… our civilization develops using technology. And technology is developed by engineers. Hence I believe that even though it is a very good read, it’s very beneficial for engineers (in fact I consider this book “must read” for everyone). But in case you doubt my opinion (a very reasonable thing to do) Daniel Quinn won Turner Tomorrow Award’s half-million-dollar first prize for this book.
PDA & Software & Technology & Tips and tools András Fekete on 31 Jul 2007
Ad-hoc wireless connectivity issues
Hello ECE blogger readers!
Once again I’m here with a technical issue that was tough to trace and eliminate. It involved a Symbol MC50 PDA and a Linksys WUSB54G wireless adapter. The trouble I had was reconnecting the PDA to the access point in ad-hoc mode. It was possible to get an initial connection by setting up an ad-hoc network with the PDA, enabling the wireless on the PC and then they would be connected. However, once the wireless link was broken, they would never reestablish a connection.
How can we fix this? This problem was remedied by completely uninstalling the Linksys wireless connection utility. Unfortunately, this also uninstalls the Linksys USB driver which we do need. However, it is possible to just simply reinstall this USB driver without needing to install the wireless connection utility.
Where can you find the USB driver? When the wireless utility is installed, it creates a folder on the C:/ drive called “Linksys Drivers”. In that folder there will be a drivers directory from which the USB driver can be taken from and installed.
Once these two steps are done, the whole connection is more stable (I’ll talk more about this in a future tech report), and reconnection is not a problem.
András Fekete
Conferences & Driving simulator & Project54 & UNH ECE Alexander Shyrokov on 30 Jul 2007
Experimental modeling of human-human multi-threaded dialogues in the presence of a manual-visual task
It’s Alexander Shyrokov, and this is my first post here. Andrew Kun, Peter Heeman and I wrote a paper entitled “Experimental modeling of human-human multi-threaded dialogues in the presence of a manual-visual task” that was accepted to the 8th SIGdial Workshop on Discourse and Dialogue in Belgium (will be held this September). In short (the paper itself is a short paper, but it’s still four pages long) we were looking at how a person who is engaged in driving (the driver, or as we refer to this person in the paper, the officer) and some ongoing task communicates a new thread to the other person (the dispatcher) involved in an ongoing task. The ongoing task was navigation from one place to another and the new thread was forced by presenting a warning message on the screen of the driving simulator.
The following video demonstrates the experiment we ran to collect data. Text in the right bottom corner shows what task is active at any given time. There are three segments in this video. The first two show the driver, and the last shows the dispatcher. In all cases the driver and the dispatcher are involved in the ongoing task and then switch to the interrupting task.
Project54 & Software & Tips and tools Jonathan Oppelaar on 30 Jul 2007
Automating MapPoint in C++ with the built in GPS enabled
Project54 is currently developing a GPS Navigation application to be used in police cruisers. This navigation application is using MapPoint 2006 as its routing and mapping engine. MapPoint 2006 has an SDK which gives developers software control of MapPoint. With this SDK Project54 developers are able to integrate MapPoint into the Project54 system. However, there are a few limitations to MapPoint’s SDK that need to be resolved before MapPoint can be installed in a car.The first limitation is that there are no API calls to turn GPS Tracking on or off. GPS Tracking is a MapPoint feature that reads data from a GPS receiver and displays your current position on the map. This feature also has the ability to rotate the map, which cannot be done via APIs.
Driving Guidance is another MapPoint feature that cannot be controlled by the SDK. Driving Guidance displays turn by turn directions while a user is driving along a route. These directions are also presented to the user through speech. A status bar is shown to keep the user up to date with progress on a certain road segment.
These limitations must be overcome if we want to use MapPoint as the navigation backbone in the Project54 system. This post is about my workaround to MapPoint’s SDK that allows developers to enable MapPoint’s GPS Tracking and Driving Guidance.
I chose to develop a solution in C++ because I am most familiar with that language and Project54 applications are written using C++. Unfortunately for C++ developers, almost all resources for MapPoint are given in C# and VB. Since Project54 is COM based it would have been possible to write an application using C# or VB and incorporate it into Project54 but, that is not as clean of a solution and would require more work.
After researching my problem on the Internet I was able to find an article that uses Windows messages to control MapPoint. In this article Paul Larson describes his API in VB that can control MapPoint’s window panes as well as the check boxes in the panes which enables the GPS Tracking and Driver Guidance. I also found an article that gives an example on how to automate MapPoint in C++.
With the combination of these two articles and other resources I was able to write an application that integrates MapPoint into Project54. Unfortunately, even after enabling the Driving Guidance by help of Paul Larson’s code, the turn by turn directions would not update. The only message given by the guidance was “Proceed to Route”. This seemed odd to me because the turn by turn direction update perfectly when I would run MapPoint.exe outside of Project54.
This led me to try something different than what is the suggested way to start MapPoint. Every example I have come across initializes MapPoint using the CreateInstance(LPSTR clsid) (in C++) or the CreateObject(LPSTR clsid) (VB) function call. This returns a COM pointer to the MapPoint application. You need this pointer in order to call any of MapPoint’s APIs. My approach was to use CreateProcess(LPSTR path) to open MapPoint.exe and then get a pointer to the application that is already running. I am able to do this by calling the GetActiveObject(LPSTR clsid) function. This function returns the application pointer to an active COM object.
Now that MapPoint is initialized differently, the Driving Guidance works perfectly. Also, no other code has to be altered. I cannot tell you why the driving directions did not work with the original solution but, I can tell you that when the new method is applied there are no issues enabling the GPS Tracking and Driving Guidance by windows messages. Here is a screenshot of working turn by turn directions in the Project54 software:
Jon Oppelaar
PowerPoint & Tips and tools András Fekete on 27 Jul 2007
PowerPoint presentations
My fellow ECE Bloggers! I come to you with a neat site about tips on how to do PowerPoint presentations. This concept has never been my strong suit but the guy points out some things to think about when creating those slides. It’s worth a read!
András Fekete
SPSS & Software & Tips and tools & Vista Andrew Kun on 26 Jul 2007
Installing SPSS under Vista
As it turns out, you may run into a couple of obstacles when installing SPSS under Vista. I certainly did. First, when I ran the installation program I got an “internal error 2738,” which a website told me was due to a problem with the VBScript DLL. When I tried to use regsvr32 to register this DLL I got the unhelpful “DllRegisterServer failed with error code 0×80004005.” It turns out that this is also discussed at the bottom of the same website. The key is to run regsvr32 from a command prompt with Administrator priviledges. Here is a post from My Digital Life on how you can open a command prompt with Administrator privileges. This website also gives a little more general overview of error code 0×80004005 when running regsvr32.
Andrew Kun
Project54 & UNH ECE Andrew Kun on 26 Jul 2007
Ed Bourbeau defends MS thesis
One of my graduate students, Ed Bourbeau, successfully defended his MS thesis today. Ed created software for collecting, analyzing and visualizing human-computer interactions in police cruisers equipped with the Project54 system. This work is paving the way for future work on exploring how officers use the system in the field. The officers have three ways to accomplish in-car tasks: using the speech user interface (SUI), using the GUI and using the hardware interfaces provided by in-car device manufacturers. The future work, which will build on Ed’s work, will quantify which interfaces officers use for which tasks, it will attempt to provide explanations for these choices and it will help us design better user interfaces.
Ed gave an excellent presentation which was followed by a good number of questions from the audience. Here’s a picture showing Ed responding to one of the questions.

Ed is now moving to the Philadelphia area. Best of luck Ed!
Andrew Kun
PDA & Project54 András Fekete on 19 Jul 2007
PDA wireless chat
Hello again readers!
It is I, András Fekete coming to you with another interesting application. During the summer, I was working on a program involving PDAs, wireless, and voice communication. I have developed this program called WiChatter. It uses a wireless ad-hoc network and constantly monitors who is nearby on the network using the same program. Once a new person comes within range, the PDAs exchange information about who they see around them and pass that information onto the user. Then the user can pick from any one of those users and talk to them privately or broadcast text messages for others to see. The catch however is that you must have matching encryption passwords to read other’s messages. This app was a reimplementation of the Project54’s AroundMe application. When trying to use that program, there were a lot of configuration options that needed to be set correctly in order to function.
With WiChatter, all you do is set your name and it handles the rest. You may want to change the default password if you know you’re going to be only talking to a private group and want nobody else to read into your conversation (at the same time, you won’t be able to read theirs either). Some PDAs have a proprietary method of setting up the wireless card so you may have to connect manually, but the application tells you very simply how to get that accomplished. Just connect to the ad-hoc network with no encryption (it’s handled within the program to allow those PDAs that don’t support any encryption to work as well).
This application was made for the police and emergency rescue teams who in the near future will be using PDAs on a regular basis to wirelessly control their vehicles. Since many of them already have a PDA (or at least a cell phone), then it seemed logical to develop a program that would help them communicate at an incident scene. They would be able to share data and notes on a chat screen. Those PDAs equipped with cameras could send pictures to others as well. PDAs with microphones and speakers could exchange short voice messages.
This application has been thoroughly tested on the HP IPAQ HX2795 (Mobile 5.0), and the Symbol MC50 (Pocket PC 2003), but it should work well on any Windows Pocket PC edition PDA. Here is a video of the program in action. Note that voice messages are sent by activating a press-to-talk (PTT) button (in the video one click to turn the PTT on, one click to turn it off). However the PTT automatically stops recording after 10 seconds.
András Fekete
PDA & Project54 András Fekete on 19 Jul 2007
Symbol MC50 battery
So get this…. A couple months ago, I thought I bricked one of my Symbol PDAs at work. Yeah, people made fun of me for being a bit thorough in my testing. As it turned out, it was nothing I had done. Only today had I found out what the true nature of the problem was. When the battery gets low, the PDA for some reason shuts itself off. When you press the power button, the PDA tries to start (showing the fancy splash screen), but cannot finish loading because the battery dies. So why not put the PDA in the cradle you ask. Well I tried that, but unfortunately the PDA has to be up and running before it can charge the battery. I am 100% certain it is an issue with the battery, because I switched batteries with an identical PDA, and the one that got the dead battery refused to start.
András Fekete

