Back in the day (okay, if I can so use a term to denote the '90's), devs cared for one thing, and one thing only; the coolness to code. And to hell with whether the d**b-users got it on how to use the software. Or if the software was crappy.
Okay, so maybe I'm generalizing a bit here. But I do remember getting this piece of code thrown over the wall. I write a 1-line piece of test code that "new's" the class. I get a null-ref. And I'm sitting there thinking... "Really! The dev couldn't write 1 line to verify if the class could be instantiated??"
Fast forward to the early 21st century. The young-un devs I meet nowadays have one totally exemplary attribute. They get the need for quality. They write unit tests without nagging, begging, fisticuffs. They ask how they can help us in Test test better. They care about the quality of their code. They don't want to break the build. They want to find bugs BEFORE they checkin!
This is the world we in Test have been struggling for, for so long. Hurrah!!
Except...
Now that we're here, I believe an existential crisis is at hand: So why do we need Test? What's the role of the tester in this new world? Can devs not do the entirety of building and shipping quality software?
James Whittaker has a provocative and thought-provoking set of ideas on this topic in a webinar titled "More Bang for your Testing":
Thursday, December 23, 2010
Tuesday, December 21, 2010
Setting up the Android phone for debugging
Now that my Linux laptop is setup for debugging Android, I need to make sure that my phone is in a debuggable state. Setting up the phone to do this is simple enough.
Now check to make sure that the Android Debugging Bridge (adb) does indeed see the phone device. To do this, from a terminal run:
$ adb devices
List of devices attached
T95960a0752a device
NOTE:
If you've restarted your machine, then in all likelihood "adb devices" will return a blank. In which case, kill and restart the adb service:
$ sudo ./adb kill-server
$ sudo ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ adb devices
List of devices attached
T95960a0752a device
- Launch the Settings app on the phone, and select Applications as so:
- In the Applications app, click on Development:
- In the Development app, make sure that "USB debugging" is enabled:
Now check to make sure that the Android Debugging Bridge (adb) does indeed see the phone device. To do this, from a terminal run:
$ adb devices
List of devices attached
T95960a0752a device
NOTE:
If you've restarted your machine, then in all likelihood "adb devices" will return a blank. In which case, kill and restart the adb service:
$ sudo ./adb kill-server
$ sudo ./adb start-server
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
$ adb devices
List of devices attached
T95960a0752a device
Sunday, December 19, 2010
Setting up Ubuntu 10.10 for Android device debugging
I'm flabbergasted that Skype does not work on the Samsung Vibrant phone. The phone is running Android 2.1 Update 1 (whatever that is). Skype works on a number of other Android 2.1 phones, but not the Vibrant.
So then I got to thinking, maybe I can attach an Android debugger to Skype and get more info that I can send to Skype support?
Okay, sounds like a fun project with the little time I can squeeze in between work and family duties.
Kudos to this link that pretty much had all the steps to setup my Linux laptop to be able to debug my Android phone: http://coffeecokeandcode.blogspot.com/2009/12/android-debug-bridge-on-ubuntu-910.html
So here are the steps I took:
So then I got to thinking, maybe I can attach an Android debugger to Skype and get more info that I can send to Skype support?
Okay, sounds like a fun project with the little time I can squeeze in between work and family duties.
Kudos to this link that pretty much had all the steps to setup my Linux laptop to be able to debug my Android phone: http://coffeecokeandcode.blogspot.com/2009/12/android-debug-bridge-on-ubuntu-910.html
So here are the steps I took:
- Make sure that the Android SDK is installed
- Make sure that the OS does recognize the phone when it's tethered to the laptop. To do this:
- From a terminal, run the command "lsusb" and note the list of USB devices
- Connect the phone using the USB cable for the phone, and run "lsusb" again. This time you should see one more entry for the phone, in the list of USB devices
- Install the rule for the device, as follows:
- Create the file /etc/udev/rules.d/51.android.rules:
- sudo gedit /etc/udev/rules.d/51.android.rules
- Add this entry into the file:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
- Replace
idVendor
with the correct vendor id as per: http://developer.android.com/guide/developin/g/device.html#VendorIds - Save the file
- Set the correct file permissions:
- sudo chmod a+r /etc/udev/rules.d/51.android.rules
- Restart the udev service
- sudo udev service reload
- Finally, make sure that the adb service is running as super-user:
- cd to wherever you've installed the Android sdk
- cd to the tools directory
- Kill the service if it is already running:
- sudo adb kill-server
- Start the adb server as super-user
- sudo adb start-server
- Now, if everything has been setup correctly, run "adb devices" and you should see your Android device listed
Sunday, December 12, 2010
Skype does not work on the Galaxy Vibrant Android phone
So on Black Friday, we took the plunge and ditched our ancient flip phones for the Samsung Vibrant. At $40 per phone, this felt like a steal. And with that, we finally entered the era of the smartphone.
One of the main reasons of wanting to go with a smartphone was the ability to use Skype on-the-go. As we make a lot of international calls, having family spread all over the planet. Skype now has a mobile version that runs on Android.
Installed Skype from the Android marketplace, entered my credentials, and then all I see is this:
Skype would not get past signing in....
Sent mail to Skype support. They were very quick to respond. Told me to uninstall the app, repower the phone, and install again. Did that. No juice. Skype still stuck at signing in again. Searched the web and found that there is indeed an issue with Skype on the Galaxy S series of phones.
One of the main reasons of wanting to go with a smartphone was the ability to use Skype on-the-go. As we make a lot of international calls, having family spread all over the planet. Skype now has a mobile version that runs on Android.
Installed Skype from the Android marketplace, entered my credentials, and then all I see is this:
Skype would not get past signing in....
Sent mail to Skype support. They were very quick to respond. Told me to uninstall the app, repower the phone, and install again. Did that. No juice. Skype still stuck at signing in again. Searched the web and found that there is indeed an issue with Skype on the Galaxy S series of phones.
Tuesday, November 23, 2010
Kinect hacked; The beginnings of a new paradigm?
Without doubt, Kinect is a very exciting technology.
And it was inevitable that the hobbyist-types would waste no time to dismantle the device to observe the "gears" in action.
It's now official that the persevering few have indeed figured out the protocol and have built drivers that allow the Kinect to interface with the PC, and not just XBox 360.
I found this DIY step-by-step of figuring out the USB protocol to be particularly interesting: http://www.ladyada.net/learn/diykinect/
What is particularly interesting to me is that academic types are using the hacked device to build some interesting scenarios. Such as described in this NYTimes article.
I would wager that this is classic disruptive technology behavior, that would result in some interesting product breakthroughs.
And it was inevitable that the hobbyist-types would waste no time to dismantle the device to observe the "gears" in action.
It's now official that the persevering few have indeed figured out the protocol and have built drivers that allow the Kinect to interface with the PC, and not just XBox 360.
I found this DIY step-by-step of figuring out the USB protocol to be particularly interesting: http://www.ladyada.net/learn/diykinect/
What is particularly interesting to me is that academic types are using the hacked device to build some interesting scenarios. Such as described in this NYTimes article.
I would wager that this is classic disruptive technology behavior, that would result in some interesting product breakthroughs.
Thursday, September 30, 2010
Linux: Free has a cost
I'm running Ubuntu Linux 10.04 LTS (Long Term Support) on my HP DV6-3010US laptop. Works pretty good for the most part.
EXCEPT, every once in a while, the entire desktop freezes.
No response from mouse/keyboard.
Requiring the infamous 3 finger salute, ie a reboot.
This seems to be a known problem with the 10.04.
Here's a bug report: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/647993
Still digging into this issue.
EXCEPT, every once in a while, the entire desktop freezes.
No response from mouse/keyboard.
Requiring the infamous 3 finger salute, ie a reboot.
This seems to be a known problem with the 10.04.
Here's a bug report: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/647993
Still digging into this issue.
Sunday, September 26, 2010
Linux: Updates myth busted
There's one Linux myth that I'd like to knock down for good. Updates.
One of the rants of the anti-Windows crowd is on updates. Long story short, its a bogus argument that Linux is any more stable/bug free/secure than Windows.
Having been running Ubuntu Linux for about 2 months now, I am prompted with updates almost every day or every other day. And many of these updates are security related, dealing with buffer overflows, denial-of-service attacks (yes I have Apache running on my Linux box) etc. Here are some examples of recent updates:
Version 0.6.25-1ubuntu6.1:
* SECURITY UPDATE: denial of service via invalid DNS packet
- debian/patches/CVE-2010-2244.patch: fail gracefully on corrupt
packets in avahi-core/socket.c.
- CVE-2010-2244
* SECURITY UPDATE: denial of service via invalid DNS packet
- debian/patches/CVE-2010-2244.patch: fail gracefully on corrupt
packets in avahi-core/socket.c.
- CVE-2010-2244
Yes, there was a time till atleast Windows XP days when updates were painfully apparent. But with the auto-update feature in Vista and Windows 7, all that is transparent now. With the occassional polite bubble telling me that my system was rebooted as a result of updates.
Bottom line, Linux (atleast the Ubuntu distribution) is no more update free that Windows. And I would go so far as to say that the updates are much more and much more frequent.
One of the rants of the anti-Windows crowd is on updates. Long story short, its a bogus argument that Linux is any more stable/bug free/secure than Windows.
Having been running Ubuntu Linux for about 2 months now, I am prompted with updates almost every day or every other day. And many of these updates are security related, dealing with buffer overflows, denial-of-service attacks (yes I have Apache running on my Linux box) etc. Here are some examples of recent updates:
Version 0.6.25-1ubuntu6.1:
* SECURITY UPDATE: denial of service via invalid DNS packet
- debian/patches/CVE-2010-2244.patch: fail gracefully on corrupt
packets in avahi-core/socket.c.
- CVE-2010-2244
* SECURITY UPDATE: denial of service via invalid DNS packet
- debian/patches/CVE-2010-2244.patch: fail gracefully on corrupt
packets in avahi-core/socket.c.
- CVE-2010-2244
Yes, there was a time till atleast Windows XP days when updates were painfully apparent. But with the auto-update feature in Vista and Windows 7, all that is transparent now. With the occassional polite bubble telling me that my system was rebooted as a result of updates.
Bottom line, Linux (atleast the Ubuntu distribution) is no more update free that Windows. And I would go so far as to say that the updates are much more and much more frequent.
Sunday, September 12, 2010
Getting autocompletion to work in a bash terminal on Ubuntu Linux
Been playing around with Ubuntu/Linux for a while now, and my memory of working on HP-UX is slowly awakening.
One thing that has happened lately is that I'm using the terminal (command window in Windows parlance) more and more. And one of the things I've come to use without thinking on Windows is the autocompletion feature in the command window.
By default, autocompletion is switched off on Ubuntu (not sure on other Linux environments). The way to switch it back on is to uncomment the following lines in the bash.bashrc config file:
# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi
Restart the terminal window, and voila, autocompletion now works.
One thing that has happened lately is that I'm using the terminal (command window in Windows parlance) more and more. And one of the things I've come to use without thinking on Windows is the autocompletion feature in the command window.
By default, autocompletion is switched off on Ubuntu (not sure on other Linux environments). The way to switch it back on is to uncomment the following lines in the bash.bashrc config file:
# enable bash completion in interactive shells
#if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
# . /etc/bash_completion
#fi
Restart the terminal window, and voila, autocompletion now works.
Friday, August 27, 2010
Going for a Linux laptop
So for the heck of it, I thought it was high time I explored things outside of the Microsoft bubble, and therefore decided to get myself a laptop running Linux.
Did the usual internet search for Linux based laptops but found that the only ones available were custom ones that were pretty expensive. Dell had one for $579, but overall wasn't too impressed with the specs.
So I decided to get a cheap regular Windows-based laptop, and convert it to Linux. A random visit to the local Staples store revealed a bunch of HP laptops for less than $500. I finally decided on the HP DV6-3010US which has a dual-core AMD CPU, with 4 GB of RAM and more diskspace than I'll ever need.
I'll do another blog post that provides details on converting the laptop to Linux, but overall it was a breeze!
The laptop is now running Ubuntu 10.04 (Lucid Lynx), is connected over wireless (which took a bit to setup), with a few apps I installed later like Eclipse for development purposes.
On the whole I'm pretty impressed with Ubuntu. Happily, Ubuntu's borrowed many of Windows GUI and usability aspects, so using the OS was easy enough.
A quick note on the HP DV6-3010US. Without a doubt it's a cheap laptop, and the cheapness is very evident in the quality of the materials used for the laptop (think Kia or Hyundai quality years ago). The processing horsepower with memory is decent enough, though. The most irritating part of the laptop is the mouse-pad which is close to impossible to use, and if you touch it wrong, does all sorts of wacky things (like suddenly highlighting and deleting all your text as you type). I clearly need to get a wireless (or wired) mouse before the mouse-pad drives me nuts.
Did the usual internet search for Linux based laptops but found that the only ones available were custom ones that were pretty expensive. Dell had one for $579, but overall wasn't too impressed with the specs.
So I decided to get a cheap regular Windows-based laptop, and convert it to Linux. A random visit to the local Staples store revealed a bunch of HP laptops for less than $500. I finally decided on the HP DV6-3010US which has a dual-core AMD CPU, with 4 GB of RAM and more diskspace than I'll ever need.
I'll do another blog post that provides details on converting the laptop to Linux, but overall it was a breeze!
The laptop is now running Ubuntu 10.04 (Lucid Lynx), is connected over wireless (which took a bit to setup), with a few apps I installed later like Eclipse for development purposes.
On the whole I'm pretty impressed with Ubuntu. Happily, Ubuntu's borrowed many of Windows GUI and usability aspects, so using the OS was easy enough.
A quick note on the HP DV6-3010US. Without a doubt it's a cheap laptop, and the cheapness is very evident in the quality of the materials used for the laptop (think Kia or Hyundai quality years ago). The processing horsepower with memory is decent enough, though. The most irritating part of the laptop is the mouse-pad which is close to impossible to use, and if you touch it wrong, does all sorts of wacky things (like suddenly highlighting and deleting all your text as you type). I clearly need to get a wireless (or wired) mouse before the mouse-pad drives me nuts.
Thursday, July 15, 2010
The Feynman lectures, courtesy Project Tuva
Microsoft Research has a cool video player that showcases interesting videos on science topics. I found the Feynman lectures to be facinating.
Link is: http://research.microsoft.com/apps/tools/tuva/index.html#data=3%7C6b89dded-3eb8-4fa4-bbcd-7c69fe78ed0c%7C%7C
Link is: http://research.microsoft.com/apps/tools/tuva/index.html#data=3%7C6b89dded-3eb8-4fa4-bbcd-7c69fe78ed0c%7C%7C
Sunday, May 23, 2010
Netflix Culture
This is a popular set of slides from Netflix outlining their corporate philosophy. There are many timeless nuggets within those slides.
Saturday, February 6, 2010
Creativity
I'm currently on a quest (for want of something better to do) to get a better understanding of the creative process. As always, I start by reading and learning from whatever I can get my hands on on the topic.
- http://www.goalsys.com/books/documents/DESTRUCTION_AND_CREATION.pdf.This article is just mind blowing stuff. It's one of the few known articles by an ex-fighter pilot known as John Boyd. Boyd was an extremely interesting character. He was legendary as a fighter pilot known as 40-second Boyd. The reason for this moniker being that he could beat any fighter pilot in a dogfight in 40 seconds or less. Jockness aside, Boyd also developed the Energy-Manueverability (E-M) theory that revolutionized air combat and fighter aircraft design for the American military. Somewhere along the way, Boyd started thinking about the creative process.
- "Borrowing Brilliance: David Kord Murray" Murray states that innovation and creativity is really the use of existing ideas, but combined in a unique way to solve a specific problem. The process starts by gaining a good understanding of the problem from many dimensions. Murray is also a good storyteller making this book an enjoyable read too.
- Ken Robinson's talk at the 2006 TED conference, titled "Ken Robinson says schools kill creativity"
- "Creativity: Flow and the Psychology of Discovery and Invention", Mihaly Csikszentmihalyi: Mihaly is a psychologist who has studied the creative process for decades and came up with a theory called Flow to explain how individuals are able to unleash their creative side. A very interesting read.
Saturday, January 9, 2010
Optimized Link State Routing (OLSR) protocol
Came across this interesting piece of info on the Seattle Tech Startup DL.
OLSR (Optimized Link State Routing) protocol is a really lightweight mesh protocol that can run on mobile handsets over WiFi. It's been known to run over a 2000 node mesh.
See http://www.olsr.org/?q=about
I found this really interesting because I've been thinking (background low priority thread) about a low-cost way for peer-to-peer communication.
Adding this to my "list of things to look at" this year.
OLSR (Optimized Link State Routing) protocol is a really lightweight mesh protocol that can run on mobile handsets over WiFi. It's been known to run over a 2000 node mesh.
See http://www.olsr.org/?q=about
I found this really interesting because I've been thinking (background low priority thread) about a low-cost way for peer-to-peer communication.
Adding this to my "list of things to look at" this year.
Subscribe to:
Posts (Atom)