Sunday, July 10, 2011

Finding Lendable Kindle Books

If there is a search filter within Amazon to easily find lendable Kindle books, I cannot figure it out.  I almost think Amazon doesn't really want Kindle users to find lendable books because they'd rather everyone just buy a book.  This seems odd, since Amazon seems to always design site features with the customer's needs and desires as the primary driver.  Oh well, maybe I just can't figure it out.  But, the following Google search seems to surface many lendable Kindle books.  Just enter it into the Google.com search box (keep the double quotes intact):

"Format: Kindle Edition" "Lending: enabled" site:amazon.com


(direct search link for your convenience)

I've got to say, the lendable Kindle books are mostly self-published, $2 and $3 books.  You'll find very few books from prominent or currently popular authors.  Fact is, the big publishing houses (or major content owners) would rather you buy a book, than have it lent to you.

In my next post, I will highlight the difference between "sharing" and "lending" books on a Kindle.

Saturday, April 2, 2011

Windows Media Player 12 ... sucks?

I use Windows 7 primarily for 2 apps, Sony Vegas Pro and FL Studio.  I really like those apps.  Otherwise, I only use Ubuntu, which performs beautifully for all my other needs (web, graphics, software development, video, etc.).  Anyway, I bought a Sansa Clip+ from Costco.  I use it specifically for baby music for our cute little baby.

Yes, Windows Media Player 12 Sucks
A.  It constantly won't detect new MP3 files I've added to my My Music folder.
B.  It doubles up songs in the Library view.
C.  It has no explicit "Re Sync with folders" button.  Syncing is entirely a cross-your-fingers crap shoot.
D.  The main thing I hate:

The two crappy solutions Microsoft Support personnel always give for items A & B are, to paraphrase:

Lame Solution #1: "Your WMP12 database files are corrupt.  Turn off the Windows Media services.  Go into the database file directory and delete the database files.  Then, turn the Windows Media services back on."

AND

Lame Solution #2:  "You need to uninstall WMP12, then reboot, then reinstall it."

Just 2 examples threads and solutions.  There are many examples elsewhere on the web.
Songs do not appear in the library
Songs are doubled-up in the library

Ok, so I've done both, and WMP12 continually still suffers from items A & B.  I will say that my Windows 7 64bit install is on a very reliable computer that's way overpowered for WMP12 (due to my video and audio editing needs).  Generally, the OS works just fine and has been mostly reliable for the 2 third-party apps I use most (Vegas and FL Studio).  Yet, MS cannot get their own music player app to work properly.  Pitiful.

The situation I describe just tells me that Windows has become, and probably has been for a long time, a monolithic over-packed operating system that doesn't do any one thing truly well.  Kind of a big fat package of low quality apps.  Seriously, Microsoft engineers cannot even get a simple music library app to work without lame, invasive workarounds.  A lot of people on the web ask about items A & B, and the response by Microsoft support people and self-proclaimed Windows experts is always the same.

You ask: "Why did you ever choose to use WMP as your MP3 app?".

Great question.  The 2 key reasons I choose to use WMP as my music library/sync app are (1) because Sansa seems to suggest their player works well with WMP and with WMP playlists, and (2) it was available to me in Win7, so I figured I paid for it and it should work well.  So far, the Sansa device does work well with the mp3 files and playlists.  It's just the WMP app sucks.  One poster suggests MediaMonkey as an alternative to WMP, so I think I'll try it.  I don't encode to WMA, so there's no reason I should stick with WMP.  I'm sure Microsoft paid Sansa a big load of cash to promote WMP in their user guide and marketing.

If I find a great alternative to WMP, I'll update this post.  I'm sure that will be easy and very soon.

Side note: why I chose the Sansa:
  • It doesn't lock me into having to use iTunes to load it.  I prefer to buy my MP3s from Amazon.  In a word, Amazon *rips*.
  • It has a Sleep shutoff timer, which is critical for when the bambino is going to bed and needs music.
  • It's small
  • The rechargeable battery lasts a long time.
  • It has an sideloadable MicroSD slot (in addition to the internal memory, 8GB in my case)
  • It was $10 off at Costco.  I got the 8GB Sansa Clip+ for $44.

So far, the Sansa has performed beautifully.

Saturday, March 5, 2011

Painful Wireless Configuration During Android Initial Setup

I've run into this [catch-22, chicken or the egg] situation on three different Android phones. It has to do with configuring the phone for my home wireless. On my home wireless, I secure access to it with a really long 64-character (byte) key. That's a long key to type in by hand, and it's case-sensitive.  Needless to say, I won't even try typing it on a smartphone keyboard.  So, I usually just load a text file that contains the key onto the phone's storage via usb. Then, once on the phone, I cut-and-paste the key value into the wireless configuration in the phone.

Oh, but wait. On new Android phones, the OS doesn't ship with a basic text editor that supports cut-and-paste. On the latest phone, which has Gingerbread, I was offered HTML Viewer or ThinkFree Office. Both versions of these apps do not support cut-and-paste. I'm in this lame dilemma due to lack of a simple text editor. Again. Please Google, or phone vendors, put a damn editor on the OS that supports cut-n-paste out of the box.

Here are my steps (at time of initial phone setup, and I have NO access to any free wifi):

1. Go to www.OpenIntents.org on my home computer. The OpenIntents group makes awesome opensource apps and Intents/APIs for Android.

2. Download OI Notepad and OI File Manager to my home computer, which already has the Android SDK and the wifi key text file on it.

3. Connect the phone to the computer via USB debugging (not USB storage). Debug connection is enabled on most Android phones at Settings > Applications > Development > USB Debugging (check it).

4. Using the Android SDK tool "adb", on the computer, I run 3 commands:

adb devices (this starts the debugger service, which enables the next steps)
adb install Notepad-1.2.2.apk (version during my latest effort of this)
adb install FileManager-1.1.4.apk

5. Now connect the phone to the computer via USB storage (or enable it in the phone if not already done) and copy the file containing the 64-character wifi key to the phone's SD card (or internal storage).

6. Disconnect the phone from the computer (i.e., turn off USB storage and USB debugging).

7. In the phone, use OI File Manager to locate the wifi key file. Click on the file to open it. When prompted for an application, select Edit note. Do not select HTML Viewer or ThinkFree Office, because they don't support cut-n-paste.

8. In Edit note (aka OI Notepad), long press on the key value. Select and copy it.

9. Configure the wireless access point in the phone, pasting in the big long key.

What a pain. I could go out and find some free wifi access point to hit the Android Market to download the File Manager and Notepad apps, b that's a royal pain. Or, I could just use a super weak key for my wifi security.  Or not.  Well, I just wish Google would build in (or install) a basic text editor that supports cut-n-paste on all new phones.

I want to give thanks to all the developers working on OpenIntents projects. Their apps are no-nonsense, do as described, and are reliable. No fluff, no ads, no filler.  OpenIntents apps in the Android Market.

Have  fun :-/

Friday, February 25, 2011

Remember the Yumbo at Burger King

Back in the 1980s, I think, Burger King had an awesome sandwich called the Yumbo.  It was a big, fluffy enriched white bread flour bun stuffed with a pile of steamed ham smothered in crappy American cheese.  It was AWESOME.  It was the YUMBO.  Then, since all good things must come to an end, so did the Yumbo.  This website In the 80's has a page dedicated to the Yumbo.  Some forum posters say the Yumbo still exists, but with an egg.  I'll go check that out sometime.  I've not been to BK in probably 5 years.

Today, in our home, we happened to have something that we never usually have: a loaf of enriched white bread (which we never have).  In addition, we already had some really salty razor-thin sliced ham, and a bag of pre-shredded cheese.  Now, I know a Yumbo requires pre-sliced American cheese product (or maybe Velveta), but this combo will do.  May you drool in delight.



I didn't pile the ham as high as the historic Yumbo, because the ham is kind of expensive.  Also, the lack of American cheese is a bummer.  I made it by placing the ham and bread in a frying pan at really low heat.  The bread got nice and soggy with the flavor of ham.  Then I dumped the cheese on and let it warm up a bit longer.  Overall, it was great, but nothing like a real Yumbo.  I can only dream about that.




I wish I was cruising down Main Street in an 1976 AMC Pacer while eating my Yumbo.  That'd be BOMB!

Saturday, February 19, 2011

J. Ralph, Wretches & Jabberers, and Autism

I was checking the web for any updates on a composer/musician I really like.  His goes by the name J. Ralph (site).  During that search, I found out he did the soundtrack for an Autism documentary called Wretches & Jabberers (site).  I haven't seen the movie yet, but I plan to.  On the movie site, there are bios of several of the autistic folks who appeared in the film, with writings by each.  I read all their words, never realizing before that autistic people had the capacity for such thinking, writing, and communicating.  The movie is targeted exactly for the uninformed like me, I suppose.  Well, this one guy, Naoki Higashida (bio), an author and poet with with  severe autism, wrote the most memorable passage on how an autistic person perceives rain.  It makes me feel like I treat so many things in life cheaply, trivial, or with utter disregard.  Things as simple as the rain.

I call this Raindrops,
Written by Naoki Higashida (excerpted from his full bio, which you must read as well):

I think that “the world of autism narrated by people with autism” is something to be revealed more and more in future. For instance, an example of how I experience the world may be different from how most people experience the world is my experience with rain. My first reaction to rain is to be surprised at its sounds. Though everyone seems to know it rain instantly from hearing its sounds, I first become anxious, unable to tell what sound it is and where it comes from until someone tells me it’s rain. That is why I stare at rain so I can connect the sounds to the rain. But then I become so absorbed in watching raindrops that I forget where I am now. The feeling of continuous raindrops coming down from the sky and falling through my body on the ground causes me to forget myself. Like this, in the world of autism, there are sensory perceptions and ways of thinking that only people with autism can explain.

by Naoki Higashida
Naoki, I'll probably never meet you.  But, thanks for writing that and helping me come a bit closer to capturing the real essence of life.

Android Intents: Should I Rely on Them?

I am developing an Android application that requires an image be taken by the phone's camera.  There should be tight integration between the application and the picture taking process.  To achieve this, without having to write my own camera application component, I plan to use an Intent to leverage the phone's existing camera application.

The Android application framework features the concept of "Intents", or messages, that (in short), let one application use the services  of another application.  So, for example, my application can raise an Intent to use the already-existent Camera application which ships with most Android phones.

I tried out using the existing camera application via an Intent on a Nexus One, and it works pretty well.  The user clicks a "Take Picture" button in my app, and then the Google-developed Camera app comes up.  When the picture is taken, the camera goes away and my app re-appears.  Pretty cool and rather seamless.

The major issue with Intents


Most Android OS'es are not pure and clean like that on a Nexus One.  The Nexus One is like a clean room implementation of Android.  In other words, the Android OS on most phones have likely been heavily modified by the hardware vendor (HTC, Motorola, for example), or the cell provider (Verizon, T-Mobile).  If the camera app has been modified in some way, or outright replaced, and it does not conform to the Intent parameters (whether when calling or returning) that I developed against, then my app is hosed.  This seems to be the case with the Camera application Intent with HTC and Motorola phones (see this bug and NOTE at end of this blog post).  So, this Intent system is in place, but it only works if there is compliant receiver app of your Intent message.

The Intent I want to use:
android.provider.MediaStore.ACTION_IMAGE_CAPTURE
and a parameter (aka Extra) that the Intent takes:
android.provider.MediaStore.EXTRA_OUTPUT

However, it seems that the Camera application on the HTC and Motorola phones where those companies have modified the OS in a large way, the Intent really doesn't work as expected.  So, what were left with is an "service" or API framework that isn't very reliable.

In the end, for me, it requires that I write my own Camera application component since I can't rely on the   ACTION_IMAGE_CAPTURE Intent to behave the same on every Android phone that has a Camera application.  Looking at it further, then, the openness of Android becomes a big pain in the ass that's not present on iPhones, because phone resellers and service providers are trashing the clean and pure OS that Google ships.

Note at end of this blog post


The bug I reference has to do with the Intent not returning the full-size image as taken by the camera, or even a reference to it.  That itself is a big issue with this Intent, but it's not the core reason for this blog post.  If you read throughout the bug text, several posters (like this one, shown below) state that the Intent doesn't even work as expected on certain HTC and Motorola phones.  That's what I'm really writing about.  The Intent system is nice, but there is no reliable contract that it will exist.  If the Camera app was forever in the core OS and very unlikely to change, that Camera Intent would be reliable.  Basically, you can't rely on Intents for apps not written by yourself or those which are not a permanent fixture, non-changing fixture in the OS.

A Key Post From the Bug

Comment 78 by russelljryan, Sep 15, 2010
johnyma22:
... snip ...
The bug was fixed in plain vanilla Android 2.0 (e.g. on an N1).

Part of the confusion is that the HTC Sense UI and the Samsung and Motorola custom UIs re-introduce this bug because they provide their own custom Camera application, which often times does not even accept the EXTRA_OUTPUT intent, and if it does, returns a tiny image as in Android 1.5. 

As in Comment #64, barking at Google about this is pointless. The person you need to be hounding is the creator of the impaired UI that came with your phone.

As an Android developer, this is easily the worst part of Android.

Wednesday, December 29, 2010

Pandora App Needs an Amazon Buy-now Button (Google TV)

Pictured here is the Pandora app on Google TV (Sony Blu-ray Internet TV Box model NSZ-GT1).  Click to see larger version.  I use the Pandora app about 80% of the time that my Goog TV is  on, usually about 4 hours per session.  I love all aspects of the app (navigation, ease of use, reliability, sound quality, etc.), except one major missing piece: I want a Buy-Now button for Amazon MP3s.  I get so tired of bookmarking songs and artisits, then having to go to Amazon, search for it, then buy it.  When I hear a song I love, I want it at that time in my music library.  Pandora would get a cut of all the sale.  Like a musical crack addiction.  A total no-brainer!  But, in any case, Pandora, thanks for deploying a kick-ass app so early on in Google TV.  As I've said in the past, I subscribe to Pandora One.  I deem it as one of the best ways I spend money (at only $36/year).

Firmware version: 2.1-update1
Build number: ogm_2.1_2010120903ON.164108