Brazilian Identity


How does a person become a citizen? How does living in another country change you? Shared language is surely a precursor to it all. Interaction with natives comes next, followed by information spewed by popular media, books, movies, music, and other cultural events. One just becomes it, slowly and steadily.

Living in Brazil is no easy chore. There are daily reminders of corruption, bad infrastructure, substandard education, goods that cost twice as much as they should, and on and on. I have forfeited opportunities to live in countries with a better standard of living, America (as in US of A) for instance. Earlier due to the links with my birth place, and later due to my wife and kids. I know other people who have done the same. Figuratively speaking, I don’t believe the American dream should be realized only in North America.

I left for Brazil with love in my heart, a will to work that my education inculcated in me and very little of anything else. Everything that I have today has been given to me by this marvelous country I have adopted. Nothing that I have here has, at least materially, been inherited. If any one wants to remind me about my Brazilian identity, I want it to be in a way that fills me with pride, not as a sacrifice of any kind.

I’ll buy a Kindle Fire


20120124-114152.jpg

As soon as I can use Skype on it. A frontal camera and internal mic is all it needs. Its most remarkable aspect is the screen quality, followed closely by the speedy, dual core, processor, and snappy graphics.

FFmpeg on Windows


A quick post to document how audio and video can be captured on Windows using FFmpeg into different container formats like MKV, MP4 and WebM.

List DirectShow devices

The following command lists the names of audio and video devices currently installed

ffmpeg -list_devices true -f dshow -i dummy

Capture from webcam and microphone

With container format mkv the default video codec is H.264 and audio codec is Vorbis. With the mp4 container format (change output.mkv to output.mp4) the video codec is H.264 and audio code is MPEG AAC. With the webm container format the video codec is the Google/On2 VP8 and audio codec is Vorbis.

ffmpeg -f dshow -i video="video device name":audio="audio device name" -r 25 -s 320x240 output.mkv

I added the -s (video size) and -r (video frame rate) options because with mkv and mp4 I was getting lots of dropped frames.

References
ffmpeg directshow

Unlocked iPhone 3GS/4/4S pricing


Apple may be driving SmartPhone buyers to Android. Competition in the Android SmartPhone market is fierce and that drives down prices, even for the premium handsets, except maybe for the exclusive devices from Google.

So it is hard to understand why an unlocked iPhone 3GS costs $ 375 and the iPhone 4 8 GB almost $ 200 more, and just $ 100 less than the iPhone 4S. It is understandable that they don’t want to encourage sales of 4 over 4S, but then they may be driving consumers to Android. iPhone 3GS, even with iOS 5, cannot compete on price alone.

I can understand that most consumers get their SmartPhone on yearly or two-year contract periods, but for the mortals that buy their SmartPhones without contract or unlocked, Android has better pricing.

Android ICS on PandaBoard


PandaBoard has been graced with Android 4 ICS (Ice Cream Sandwich). Thanks to linaro.org it is fairly easy to obtain and try for yourself, their download page provides images for different ARM SoC development boards including PandaBoard.

My PandaBoard is a Rev A2. The Linaro Android image I tested is 11.12. You can use Win32 Image Writer to write the pre-built binary to SD card on Windows.

The staging build boots all right, but I noted the following issues:

  1. The mouse pointer is jerky in the home screen, indicative of high CPU load.
  2. Graphics are slow in the home screen,  graphics acceleration is so not being used. Settings screen is responsive enough as it does not have anything graphically fancy.
  3. Wireless LAN does not work.
  4. Main menu (launcher) does not work.

A screen capture obtained using the ddms tool of the Android SDK is shown below. A mini-USB cable can be used to connect the PandaBoard to a PC for debugging.

The tracking build has almost the same issues. With the landing build, I couldn’t get anything beyond an android logo/text. The display needs to be connected to the DVI port, HDMI port does not work.

I’ll be anxiously awaiting new updates. I wish I could delve into the source code but I don’t have a build machine with the adequate specs. Linaro does have daily AOSP build binaries for PandaBoard but the last successful build is almost a month old.

Gingerbread

The older Linaro 11.11 build (Android 2.3.7) boots up nicely. The graphics are snappy.

This is what I find noteworthy:

  1. Nice, high quality display at 1280 x 1024 pixels. I could not obtain a screen capture using the ddms tool of the Android SDK, all I get is a black screen.
  2. Wireless and Bluetooth work. File transfer over Bluetooth from an Android Phone works nicely.

Some issues I have observed:

  1. The default screen off timeout is 1 minute, the OS crashes when that expires. The only way to get back up is by rebooting (Ctrl-Alt-Del) or using the reset button on the board. The screen off timeout can be increased to a maximum of 30 min.
  2. No Android marketplace. Amazon marketplace does work, but only for those in the US.
  3. The browser crashes a lot.
  4. Miss the home button on a real device. The closest I could get was to use the ESC key on the keyboard and the right mouse button. Both seem to indicate “go back”. In the browser that means going back to the previous page. Press several times till you are out of the browser.
  5. No sound. I connected the HDMI out to a TV. Youtube videos play but without sound. High definition videos do not play, the output appears corrupted.
  6. It is possible to plugin a USB webcam and the dmesg output shows it has been successfully detected as a uvcvideo device but there is no app to do anything with it.
  7. The kernel does not have cdc_ether modules or RNDIS so any devices that require that will need to compile a custom kernel.
  8. USB flash drives are detected correctly but the device file is not created under /dev and no mount point is available to access it.
  9. VPN does not work. I tried PPTP and L2TP/IPSec with several subscription based VPNs but with no success.

Conclusions

Things are at an early experimental stage with Android on PandaBoard. Gingerbread is more mature when compared to ICS, but I wouldn’t hurry to replace Ubuntu with Android yet, unless I am willing to put in some significant development effort.

I have to really try and build the ICS from source, check the cool video below. I wish they provided an image to download.

2011 in review


The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

The concert hall at the Syndey Opera House holds 2,700 people. This blog was viewed about 40,000 times in 2011. If it were a concert at Sydney Opera House, it would take about 15 sold-out performances for that many people to see it.

Click here to see the complete report.