At the Hadrian Hotel

At the Hadrian Hotel

Tuesday, October 06, 2009

Running Simplify Media's Software on CentOS 5

I love Simplify Media's music sharing system. It lets me have access to all of the music I have on one computer from my iPhone or any other computer I use. So, I no longer need multiple copies of every song, and I can listen to the entirety of my collection from the iPhone, regardless of the amount of memory available on the phone. Now, I don't have a ton of music, but I do have over 30 GB. Clearly, that would be a bit tough to shoe-horn on to a 16 GB iPhone.

Now, in addition to the iPhone app, Simplify has software for the Mac, MS-Windows, and Ubuntu Linux. My home fileserver, where all of my music lives, is a Linux system, but for a number fo reasons I am running CentOS, not Ubuntu. Unfortunately, the Linux code provided by Simplify will not "just run" on CentOS because of a system library problem.

Simplify's Linux software includes the SimplifyMedia client and the SimplifyPeer server. These programs are dynamically linked and written in C++, and therefore require the libstdc++.so library. The latest library version available on CentOS is libstdc++.6.0.8, but the Simplify programs require libstdc++.so.6.0.9. I found all of this out when I tried to run SimplifyPeer and got this error message:
./SimplifyPeer: /usr/lib/libstdc++.so.6:version `GLIBCXX_3.4.9' not found (required by ./SimplifyPeer)
Being the geek that I am, I ran the 'strings' command against the library and looked for "GLIBCXX." The highest number I found was "3.4.8," which clearly was not going to cut it. I did a number fo different Google searches, and most of the results I found spoke of replacing the libstdc++.so file, but very few of them actually told me how to go about getting a copy. I finally stumbled across a forum post on eurocardsharing.com that included a link to download a RAR file containing the libstdc++.6.0.9 library file.

Great! Now I had the library file I needed to run the program. The problem I now had was that I was a bit nervous about replacing /usr/lib/libstdc++.so.6. I wasn't sure if just replacing it with a later version would break anything. So I started looking at options for the dynamic linker, starting with LD_LIBRARY_PATH. Unfortunately, none of the various permutations of LD_LIBRARY_PATH values I could think of worked. It was time to check out the ld.so man page....

In the ld.so/ld-linux.so man page on my system, the first environment variable listed is LD_LIBABRY_PATH, and the second one is LD_PRELOAD. Herein lies the required magic. Files listed in this variable are "ELF shared libraries to be loaded before all others." This allows you to "selectively override functions in other shared libraries." It turns out this was just what I needed.

The SimplifyPeer program is normally invoked by a bash script that sets a number of arguments in addition to those required from the user. Since I had unpacked the .tgz file into /usr/local, all I needed to do was put the libstdc++.so.6.0.9 file in the same directory as the program, and add this line to the bash script before the SimplifyPeer program was run:
export LD_PRELOAD=/usr/local/simplifymedia/libstdc++.so.6.0.9
That done, I fired up the simplifyserver.sh script with the appropriate arguments for my account, machine name and MP3 directory, and it ran! My family and I could now use Simplify Media to access all of the music on my fileserver from my laptop, the various PCs around the house and, most importantly, the short-on-memory iPhone. This will allow for more varied musical choices on those long car rides to DC when transporting my oldest to and from college.

Wednesday, March 18, 2009

Google Voice: First Impressions

After waiting for what felt like forever, last night I finally got my invitation to upgrade from GrandCentral to Google Voice. Following are some of my first impressions....

Custom ring-back tones are gone - my British friends used to get something that sounded like home.

"Call Presentation" is now settable by group and address book entry - finally, I no longer need to press "1" to accept a call from members of my family. When I pick up the call is immediately connected. This is different form the GrandCentral call screening options. There, I could either screen everybody, screen blocked number, or screen nobody. This finer-grained control is something I (and others, I suspect) have been waiting for. There does seem to be a downside, though. If I have call presentation off (aka connect on answer), there's a chance that my home answering machine, my work voicemail, or my mobile voicemail will answer even if I don't, and then the advantage of Google Voice's voicemail is lost. I'll need to check up to 3 places if I don't pick up fast enough.

Custom greetings seem to still be available.

Voicemail messages now get transcribed to text. By default the transcribed messages is e-mailed to your GMail account. You can still also get notification of new voicemail via SMS to your cell phone, but now the SMS message has the transcribed message (at least if it's short enough). Nicely, the voicemail notification now comes from my Google Voice number, rather than some seemingly random SMS number. That allows me (at least on the iPhone) to call that number and then pick up the message, in case the entire thing didn't get sent in the SMS message or if the transcription looks strange. I've left myself a few simple voicemail messages that were not transcribed all too well.

Text messages are interesting... If somebody sends a SMS message to my Google Voice number, it shows up on my phone as coming from some number in the 406 area code. If I reply to that number, they get my reply. If somebody else sends a SMS message to that number, it is not delivered to the sender of the original message. Clearly there is some sort of mapping such that messages from me to that number get re-routed back to the originator. This mapping appears to last at least 2.5 hours - maybe it's permanent.

In addition, if I get a text message from somebody in my Google address book, their name shows up as a prefix in every message I get from them. If they aren't in my address book, then their originating phone number shows up there instead.

That's it for now. Lunch is over and I really should get back to doing what I get paid for. :-)

Technorati Tags: , ,

Tuesday, March 10, 2009

ETech Notes from "Refactor Your Wetware"

My morning ETech 09 tutorial was "Refactor Your Wetware," presented by Andy Hunt, the author of the book "Pragmatic Thinking & Learning." Below are some notes I took during the tutorial. Perhaps they will be useful to others.

----
There is a big difference between typing a note and hand-writing because of the way the brain processes during both activities.

----
The Dreyfus Model:

If you force experts to follow the rules laid out for novices, you can degrade their performance signifcantly (up to 100%?).

Experts are more likely to see themselves as part of the system. Novices feel that they are outside the system.

----
There is a cultural bias against intuition, which sprins from deeply ingrained knowledge. Experts operate on intuition.

----
The brain can be imagined as 2 different types of "CPUs" with shared access to the memory, where only 1 CPU can access the memory at a time. CPU #1 is more "von Neumann" and linear and slower in operation. CPU #2 is more like a DSP, non-linear and fast. CPU #1 is sometimes referenced as the left brain, and CPU #2 is sometimes referenced as the right brain. We'll use L-Mode (for linear mode) and R-Mode (for rich mode).

----
N. Negraponte: If you want to learn about a frog, don't disect one, build one.

----
Pretty (or aesthetically pleasing) things are actually easier to use.

----
When you're typing notes, L-Mode gets preference and shuts down R-Mode. You're forcing symbolic processing.

----
Dream state imagery is more R-Mode, which is why a dream evaporates as you you try to explain it, which utilizes L-Mode. You can't read signs in a dream because it would require L-Mode.

----
Math prodigies have better coordinated L-Mode and R-Mode processing, rather than having to switch back and forth like the rest of us.

----
Check into Lozanov Séances from the 1970s. He would immerse students in a rich R-Mode experience related to a given task. They would perform better than students who did not have the R-Mode experience.

Leading with an R-Mode experience before an L-Mode "lecture" gives a context for the L-Mode staff to better stick to.

----
Investigate Image Streaming and Morning Pages.

----
A "whack on the side of the head" can help to clarify thinking. Looking at a problem differently, such as "in reverse" can be helpful.

----
If you don't keep track of great ideas that you have, you'll stop noticing that you have them, and then you'll stop having them. Carry a notebook of some type so you can write down ideas as you have them.

----
"Education" comes from "edu" and "care" which translates to "drawn forth." Dumping a load of knowledge on somebody is less educational than getting them to realize and work things out.

----
Getting Things Done:

- scan a queue once and process what you can, catagorize other items
- work each pile
- don't keep mental lists, they will distract you -- write your lists
- join the "inbox 0" crowd

----
SQ3R:
- survey: scan the ToC and chapter summaries for an overview
- question: note any questions you have
- read: read in its entirety
- recite: summarize, take notes, and put things in your own words
- review: reread, expand notes, and discuss with colleagues

SQ3R can help you use books more effectively

----
Do Mind Maps, but do them by hand instead of using any software packages. Doing them by hand will use R-Mode, which can be more effective.

----
Affinity Grouping - have your team make notes on post-its and group them on a whiteboard. Use markers to show relationships.

----
Learn by Teaching - try to explain to others what you do, in terms they can understand

----
Gain Experience:
(tennis example) Place a chair in a tennis court. Hit balls from the other sid, but don't try to hit the chair. Instead, just hit the ball and verbalize where it goes in relation to the chair. This sets up a feedback loop. See "The Inner Game of Tennis" and other "The Inner Game of" books.

----
Prevent brain lock-up. Give your brain permission to fail. Your brain can lock-up when you arein a panic. Try to minimize deadline pressures.

----
Beware of e-mail apnea. Breathe!

----
Breathing:

Sit alert, with a straight back. Notice and release tension. Focus attention on just 1 thing at a time.

----
Managing the information torrent:

Keep a personal wiki. (eclipse has a wiki package)

----
Look into Sense Tuning

----
Checking e-mail too often can drop your effictive IQ by 10 points. Smoking a joint only drops it by 4.

E-Mail checking behavior can be driven by "variable intermittant reward" motivation.

----
More screen real estate can make you more productive by allowing more items to be visible, removing the need to switch applications (ALT-TAB), requiring a more overt context switch.

Use virtual desktops (eg Mac Spaces) to group related tasks, tools and applications. For example: put all the disruptive things such as e-mail and IM on their own desktop.

----
When interrupted (by a phone call, an office visitor, etc), leave yourself a breadcrumb in order to get bak to the interrupted task more quickly. Otherwise, you may need to re-create state from scratch.

----
New habits can take 3-4 weeks to gel.

----
Belief is physical. Belief can make changes to your brain. If you believe that someting is possible, your brain re-wires itself to make it easier to do the task. If you believe something is impossible, your brain will make it so.