Tuesday, November 19, 2013
Walkie-Talkie - The Ultimate Phone Experience?
First on Android, and now iOS, they have built-in a microphone button on the on-screen keyboard to enable voice-to-text (dictation). I think this is the future I want to live in, but the thing is, I'm not very good at this dictating either.
I wonder if future generations will become very good at dictating or if its so socially unacceptable that our race is destined to be typing on these screens forever.
In any event, my issue with this voice-to-text button on the keyboard is that its buried on the keyboard. What I really want is something I can do without looking at the screen at all. Like "touch-typing" on a keyboard.
For instance, in the car, I can't afford to look down at my phone. And don't even get me started on our Ford Escape with Microsoft Sync...
Anyway, it turns out that holding the iPhone button to get to Apple's Siri gets me 'close' to what I want, but I think there's lots of room for improvement. I don't want to hold the button for a second before I can start talking. And I don't want Siri to listen for a while until she thinks I'm done...only to tell me that my request didn't make sense to her.
On my friend's new Android, the phone is "always listening". This is kinda cool (and kind of creepy), but you need to wake it up by saying something like "OK Google" which makes you feel a bit ridiculous in public (and maybe even in private).
On my ideal phone, I would instead have a physical button on the side that is devoted to voice input. This button would work like a walkie-talkie (or, perhaps less antiquated, something like that Sprint/Nextel "push to talk" feature). Only, instead of talking to a friend or a group of co-workers, I would push the button to talk to my digital assistant on the phone (Siri or Google Now). When I push the button, the phone listens. When I release the button, the phone stops listening. Its that simple. Why has no one done this?!
Aside from the physical button, I think we need all-around better conversational AI (or even just better screen-reader technology). Its really sad to me that GOOG-411 was actually better for in-car use that my JellyBean Android phone.
First one to make a phone like this will get my $.
*kshhhhh* Over *kshhhhh*
Thursday, November 14, 2013
The real hype cycle
According to Gartner, all technology goes through a hype cycle in the marketplace as it matures. It may be one of their most popular analysis pages (that or their 'magic quadrant' work).
But this isn't quite right. Everyone that's been in IT long enough knows that almost every technology (no matter how innovative) has its roots in some other idea/technology years before. It may have a new name. A new use case. A new distribution channel. But the technology just isn't that new.
So, I conjecture that the 'true' hype cycle doesn't end in the "Plateau of Productivity" but instead it is truly a cycle...with each iteration feeding into a NEW technology trigger (anywhere from 5-20 years down the line):
The Federal Internet Identity Service
What if the US Government acted as trusted 3rd party? They could assign a public/private key pair to every citizen (almost like a social security number) in order to provide verification services.
Maybe they could even offer something like an OpenId server as well.
If every citizen had a secret private key, that would enable you to digitally sign anything and anyone could verify it with a high degree of trust. In fact, verifying someone's identity would be as simple as checking their signature with the government service.
Then again, pretty sure no one trusts the government except me...
Pasting sample code into Eclipse
The Cancel Cancer
- windows hardware manager...update/search for driver
- eclipse jobs framework
- many others that I meant to put here but don't have the time to go find
Know some other culprits? List 'em below in the comments:
Copyright Infringement and Google Notebook
This notebook was flagged as violating Google Notebook Program Policies. If you feel it was flagged incorrectly, let us know.
Admittedly, when you follow the dialog to share a notebook, Google does a fair job of warning you this might happen:
But what I wonder is how to avoid this? My primary use of Google Notebook is to store relevant quotes/quips from websites for future reference. This has a couple advantages over bookmarks...
- It cuts away the cruft of webpages so that I only see my notes, while still allowing me to store a simple link to the original reference for context
- It allows me to tag/organize my notes/thoughts and provides a nice search to make them retreivable
- Using the Google Notebook Firefox Extension makes all this a breeze
When I was at EclipseCon this Spring, I had the privilege to hear Cory Doctorow talk about copyright law and the possible societal repercussions of laws which make the majority of its population criminals.
What do you think?
Wednesday, November 13, 2013
Clearing the backlog
So if you're one of my two subscribers (I'm looking at you +Jason Melbye), then I apologize for the stream of half-baked posts that I'm about to release on your stream. That said, after browsing for a few minutes, I do think that much of the content is as relevant now as it was when I first wrote it (for better or worse). Now the only decision left is how to do it...should I back-date them to their original draft date? Release them all at once or 1-per-day?
Here goes nothing...
Tuesday, March 26, 2013
One Laptop Per Baby
The Background
A while back I participated in the One Laptop Per Child program's "Give One, Get One" campaign in order to do some good and also give a cool/interesting Christmas gift to my little brother and sister. Well, needless to say, the spoiled adolescent of suburbia was not the intended user of an XO-1 and so the laptop was seldom used (what, no YouTube?!). So, a couple years ago when my wife and I were expecting our first child, I asked for the laptop back with the idea that our baby could grow up with this computer (and I would get a fun toy along the way).
The Project
Well, my daughter is 18 months now and I finally sat down to do my first project: Turning the $100 laptop into a $100 baby toy!
I remember when my little sister was very young, she got a toy that was a large plastic slate with a calculator-like screen and protruding keys that were shaped like the letters of the alphabet (capital and lowercase)...what was that thing called!? Anyway, it was pretty awesome and I'm relatively sure that, because of it, my sister knew all her letters at a very early age. So, the question is, could I turn the XO-1 into something like that? Shouldn't be too hard, right?
I began to think about what I wanted to create and here's what I came up with:
- Laptop should boot directly into my program (fullscreen) with no way out except for ctrl+alt+f2 (or similar) which should still bring up a tty terminal so that I can login and restore Sugar/whatever at a later date.
- Application should let you mash on the keys and do something fun/educational. For instance, when the user hits a letter key, the system should show an image of something that starts with that letter, pronounce the word (and the letter?), and maybe also print the word in big letters to the screen (with the first letter capitalized/underlined for emphasis).
- Preferably, power management still works so that the laptop goes to sleep when the lid is closed (and wakes up in the program). There should be some kind of inactivity timeout as well.
Research
I updated the laptop with the latest software release from laptop.org and browsed through the apps, but the only one that jumped out at me was the activity called "Speak".In this activity, a user tells the face on the screen what to say, and the face says it. It's not too far from what I was thinking...only in my version the user would only hit a single letter and the application would generate and speak a word that starts with that letter (and preferably show a picture as well).
Aside from playing with the fun espeak library on which it is based (and making it say things I wouldn't want my daughter to hear!), I moved on to google some other things I could use for my project. One promising thread was from a note I left myself while listening to a podcast at some time in the past (http://hanselminutes.com/ I believe). It is a simple .NET demo app called babysmash. I didn't want to mess with .NET/Mono for my simple project, so I looked for a simple equivalent for Linux.The first thing I found was http://jaredforsyth.com/projects/baby-tux/ and it seemed promising.
After learning how to boot the XO-1 into GNOME (gotta get something lighter on there...), I installed git on the terminal and cloned the project from github. Unfortunately, from what I could tell, the python libraries it sits on (Pyglet and Rabbyt) weren't in the olpc package repo. No worries, we've got "easy_install":
[olpc@xo]$ sudo easy_install Pyglet Success! [olpc@xo]$ sudo easy_install Rabbyt error: No gcc (or something like that) [olpc@xo]$ yum install gcc ... [olpc@xo]$ sudo easy_install Rabbyt error: Missing some python header file [olpc@xo]$ sudo yum install python-devel ... [olpc@xo]$ sudo easy_install Rabbyt fatal error: GL/gl.h: No such file or directory compilation terminated. [olpc@xo]$ sudo yum whatprovides gl.h No Matches foundUgh, not so "easy_install" after all. I did some OpenGL stuff in college but I really didn't feel like chasing down the OpenGL story on the XO.
A Different Tack
One google search later and I found another babysmash clone done in python: https://github.com/karel1980/babyslamIts not exactly what I wanted, but it does come with some customization points and seems simple enough to hack...woohoo!
Next up was my attempt to boot into this program. This proved WAY easier than I was expecting (a welcome change from the usual). The XO comes with a single default user named "olpc" (with auto-login already set up and no GDM to mess with) and the user home directory already has a .xsession-example file sitting there:
# Copy this file to ~/.xsession to customize your X session:-)
I added a single line to the file (to invoke babyslam) and rebooted. After a fairly slow boot process, I was greeted with an all-black screen which displayed numbers and letters when you press them and randomly showed animal pictures with sounds. A great start.
Things left to do/possible next steps:
- Let Emily try it out and see if she likes it!
- Improve the boot time. System takes over a minute to boot. Maybe it would improve with XOpup (Puppy Linux for the XO)?
- Maybe disable the mouse/pointer?
- Customize the app by adding my own images and sounds. Note to self: The XO uses ALSA so you can record and playback wav files with the 'arecord' and 'aplay' commands. You can also save wav files from espeak by passing the -w
switch. - Edit the python app to approach my original design?