The Fisherman and the Businessman

October 13th, 2011

There was once a businessman who was sitting by the beach in a small Brazilian village. As he sat, he saw a Brazilian fisherman rowing a small boat towards the shore having caught quite few big fish. The businessman was impressed and asked the fisherman, “How long does it take you to catch so many fish?”

The fisherman replied, “Oh, just a short while.”

“Then why don’t you stay longer at sea and catch even more?” The businessman was astonished.

“This is enough to feed my whole family,” the fisherman said.

The businessman then asked, “So, what do you do for the rest of the day?”

The fisherman replied, “Well, I usually wake up early in the morning, go out to sea and catch a few fish, then go back and play with my kids. In the afternoon, I take a nap with my wife, and evening comes, I join my buddies in the village for a drink — we play guitar, sing and dance throughout the night.”

The businessman offered a suggestion to the fisherman. “I am a PhD in business management. I could help you to become a more successful person. From now on, you should spend more time at sea and try to catch as many fish as possible. When you have saved enough money, you could buy a bigger boat and catch even more fish. Soon you will be able to afford to buy more boats, set up your own company, your own production plant for canned food and distribution network. By then, you will have moved out of this village and to Sao Paulo, where you can set up HQ to manage your other branches.”

The fisherman continues, “And after that?”

The businessman laughs heartily, “After that, you can live like a king in your own house, and when the time is right, you can go public and float your shares in the Stock Exchange, and you will be rich.”

The fisherman asks, “And after that?”

The businessman says, “After that, you can finally retire, you can move to a house by the fishing village, wake up early in the morning, catch a few fish, then return home to play with your kids, have a nice afternoon nap with your wife, and when evening comes, you can join your buddies for a drink, play the guitar, sing and dance throughout the night!”

The fisherman smiled.

Source.

How to Delete a Motoblur Account (Atrix)

April 8th, 2011

I recently got a phone with Motoblur on it.  I love the phone, but have had problems with Motoblur right from the get go.  Here’s what happened..

I turn on my newly purchased phone and register for Motoblur.  I then begin to add my facebook account.  I see my facebook friends now being imported into my contacts list.  All of a sudden, the process halts.  I chill for a few hours and inspect my contacts list again — no luck, the import only half worked.  So, I decide just to delete my facebook entry in Motoblur and start over.

No such luck.  I go Menu -> Social Networking and see Facebook listed under “Motoblur Accounts”.  It has a green checkmark.  I go to my contacts (blue button)->menu->manage accounts and DON’T see facebook listed there.  I go back to the Social Networking app and try to add or adjust my facebook account settings but all it tells me is that you can only register one facebook account with Motoblur.  Great :(  So now, a part of Motoblur thinks facebook is installed and a part of it doesn’t.

I think that by doing a soft reset of the phone that the problem will go away.  Nope.  I do a hard reset.  Nope.  I clear the internal phone memory and then do said resets.  Still no.  I then do the remote wipe from the Motoblur website and STILL, no luck.  FYI, the remote wipe does not wipe the internal phone storage and thus, any music files, etc you store on the phone that are accessibly through the “Files” button are still available for prying eyes — quite the misadvertisement in my opinion.

So, I eventually conclude that the only way to fix this problem is to delete my Motoblur account and start over from scratch.   The short story is that this worked and now Motoblur is working smoothly.  Here’s how I deleted my Motoblur account (after several experiements).

  1. Call AT&T customer service and tell them that you want your Motoblur account deleted and that they need to call Motorola, in a 3-way call (yes, I did this and it worked), to verify your identity.
  2. Tell the ATT operator to call 800 734 5870.
  3. Once on the 3-way call, politely ask the Motorola agent that you want your Motoblur account deleted and that you have an agent from ATT on the line to verify your identity.
  4. Ask when you expect the account to be inactive.
  5. Politely thank both agents.
  6. Hang up.

That’s it.  Well, kind of…

I was told that my account would be deleted within 24 hours yet over 30 hours later, I could still login to Motoblur via the web.  I called around a few times to get this fixed and finally arrived at this solution:

  1. Call Motorola 800 734 5870
  2. Ask for “Level 2″ support and tell them you have an Atrix.
  3. Tell them your account was not deleted and that you want it deleted immediately.  Tell them you already had your identity verified by ATT with Motorola (there should be a log of this on Motorola’s side).

I did a soft reset (factory reset) and then resubscribed to Motoblur and this fixed all my issues.  Facebook and Google now live in harmony in my contacts list on my Atrix.

Hopefully Motorola fixes this buggy Motoblur software soon.

Simple UHD Transceiver Class

February 3rd, 2011

I wrote a simple transceiver class for the USRP1 (GNURadio) using the new UHD interface.

The class allows you to send and receive data.  What you fill in for the data is up to you.  Currently, the class performs simple energy detection (sends a 100 sample burst with constant envelope) and works when you hook the RX up to the TX on the Basic RX/TX boards (make sure you have proper attenuation as to not break the daughterboards).  But, with some simple modification, you can have it do more sophisticated processing.

The class creates two queues and three threads.

One queue is the TX queue and the other the RX queue. The TX queue is a vector of pointers to complex float vectors (variable length) and are waveforms to be transmitted. The RX queue is a vector of pointers to complex float vectors (const size) and are the data blocks received from the radio.

The three threads are the TX thread, the RX thread, and the processing thread.

The TX thread wakes up every 100ms and looks at the TX queue and sends any waveforms that are present.  The RX thread runs continuously and receives datablocks from the radio. The processing thread checks the RX queue and processes any blocks that are present on it.  Having an RX queue, RX thread, and processing thread allows the software to continually receive data without dropping packets and leaves the choice up to the software as to which packets to process.  For example, if the processing thread runs slower than the samples coming in (slower than real time), it may choose to intelligently process the remaining blocks instead of dropping data on the floor.  This would allow the processing thread to “catch up.”

The TX thread can be modified as to send the waveforms out immediately instead of on a queue for servicing.

I hope all this makes sense.

The code can be downloaded here.  I used this to compile:

g++ main.cpp SimpleTransceiver.cpp -lboost_thread -luhd -I/opt/uhd/include -L/opt/uhd/lib

Bugs, questions, comments welcomed.

Enjoy!