Wednesday, March 3, 2010

A rough sketch of a software project

Indeed, I'm a graduate student of Software Engineering, and one of the classes I'm taking now is Software Engineering. In this class, we have to design a software product as class project. We don't need to do any coding, but we need to finish the detail design document like defining screen shots until the end of the semester.

I picked a communication aid for iPad as my project. I just completed a rough sketch of it, which is following. Please let me know if you have comments or suggestions.

Project Proposal.

Communication Pad for Cerebral Palsy and other disabled.

Talk aid with icons or combination of icons was good, but we needed to remember all patterns of words. For example, "Sunday" is [calender]+[Sun]. It's like to learn another language, and it takes time to learn. It's also a hardware device which costs $5,000. I understand that it is from the scale of economy. i.e. the market is too small to fit in mass production.

If we make it as software and put it into personal devices like tablet PC (iPad, for example), the cost of the device can be reduced dramatically. This is my motivation to design the communication aid software.

Besides, a talk aid has being a small computer, but the memory is not big. If it has bigger memory, then it can cache the sentences we typed in. We can reuse the sentences later in other conversation. Also I realized that time and place can be counted as dimensions of communication. We say "Good morning" in morning, and "Good night" at night. So if we put clock into the software, then users of the software just need to push greeting icon. Another example is place. Think about shopping in grocery store, "Please pick that fruit for me and put it into my basket" or "Please take cash from my wallet which is in my little bag" is common phrase I like to use. If the software got the current point that the user is standing or sitting in his wheelchair. The software can guess which messages the user use frequently. Nowadays, GPS can help with this.

Moreover we use blog or twitter to communicate with others. We usually put updates on it. Although it is not always a good idea to make the conversations open, but if the aid gather the messages from these internet sites, users can use them in every little conversations with friends or people around then when the user see them in person.

So I like to work on this software device for my Software Engineering class project in this semester.

Tuesday, February 23, 2010

Slides Show by a guy with cerebral palsy.

It was more than 2 years ago that I first implemented a speech aid with slides. As you know, I have cerebral palsy and speech impediment. So it's very hard to speak to people who have not talked with me in person. And many friends have hard time to have conversation with me even after years.

So even if I have some good ideas in my head, it's sometimes hard to pass them to other people, or more specifically, giving a presentation by myself would be nearly impossible.

However, there has been one helpful software, Text-to-Speech software, which blind people usually use as screen reader. Then I wrote a command which sends a text line to TTS driver and lets it speak. It was ok, but it was not successful especially when I gave a short lecture of the commands, how I had created it, in London Dec. 2007. It was big embarrassing, and I had temper to throw myself into River Themes after the failed speech, but I did allow myself not to commit it. :-)

2 years later, it was last December, actually; I had another idea doing the same thing. If I have slides images (jpeg) and audio (wav) files of narration which are generated through TTS, then I can make a movie file from them. I used Microsoft Movie Maker for it. Here is a first test movie:

And I had to give a presentation for my MBA class in last December, so that I used this method to create one for myself, which is following:

Tuesday, October 6, 2009

Just note: set up vim word completion

This is just a note for myself. And I'm still a learner of vim, but I did a tiny progress today.

As I have physical disability at my hand, word completion is a feature good to have.

Here is what I did today.
1. Add the following line to ~/.vimrc
isamu@hope:~$ grep dict .vimrc
set dictionary+=/usr/share/lib/dict/words

2. Get word_complete.vim from :
edit the file for uncomment "min_len" and "accept_key" probably at line 57, 58
and put the file into ~/.vim/plugin, which is the default vim plugin directory.

3. At ex mode of vim, type ":call DoWordComplete()" starts word completion,
Or at [insert-mode], [C-x][C-k] does the same job.

Pitfall: Without step 1, step 2 doesn't work. Vim needs a dictionary, of course.

Monday, July 13, 2009

My Wheelchair Ride to El Camino

On last Saturday, I went to Nijiya in Mountain View, CA. I actually missed Bus 54 which takes Mathilda ave. And I drove my chair to El Camino to get Bus 22. I love driving my chair and cruising cities, parks, and mountains, sometimes.

Here is the route I took on Saturday. It took just 30 minutes.

link tofrom my place to El Camino for larger map.

Bus 22 runs from early morning to late night. You can let me know if there are good public lectures, people gathering, or for just having a drink! Smile.

In theory, my char goes as far as 30 miles per charge. And I charge it each night, so ...

Thursday, July 9, 2009

Note: my first Inatant Rails app

I'm taking a Ruby class in this summer. In this class, We're learning how to build web applications using Ruby on Rails. I'm creating this blog post just as my cheating sheets for the class and recording what I did on my laptop before I forget.

So as my first entry of this series (whether I'm making this series or not) I put how I tested scaffold in this time. Scaffold is the simplest way creating M-V-C app. We just need to specify a table as model. Controller (list, new, edit, and delete) and Views (which is the presentation layer of app) are created automatically. So, let me start!
  1. Start Instant Rails by clicking the Icon or whatever
  2. Open a Terminal from Instant Rails
    (click [I]->Rails Applications -> Manage Rails Applications, and click "Create New Rails App..." button at the bottom of the new window.

  3. In the Terminal, type
    rails -d mysql app_name
    ... like rails -d mysql namelist
    This creates a batch of files under app_name

  4. check \config/database.yml for connection to DB.
    Notepad doesn't quite work, so use another text editor. (I'm using ConTEXT as my professor recommended.)

  5. In the Terminal,
    cd app_name .......... entering app dir
    rake db:create ........ create database named app_name_development
  6. In the Terminal,
    ruby script\generate scaffold table_name col_name:type...
    ... like ruby script\generate scaffold user name:string contact:string
    Technically, this creates a model which is actually a table in DB.
  7. In the Terminal,
    rake db:migrate ................ This creates the table in DB
    You can check it by entering mysql from another Terminal
    (show databases, use database, show tables are a few of mysql commands.)
  8. In Managing Rails App Window,
    click refresh, check your app, and click start with Morgel
    This starts your app.

  9. To test your app, in a browser, go to;
    http://localhost:3000/table name/new
    ... like http://localhost:3000/users/new
    I saw a couple of errors from Ruby console window being created as the app started. But after reloading the URL a few times, it went through.

Thursday, June 25, 2009

A digest of my trip back to Japan

Well, two weeks have passed since the last post. I've not been good at writing diaries since I was a school kid. And there is another excuse keeping myself away from this blog. I've just moved from Mountain View to Sunnyvale getting closer to my school. Many of my friends helped me with this. Besides, my parents flew from Tokyo, Japan on this Monday, June 22nd and have been helping me and made me settle in the new place. My actual move was June 23rd, and we still need to put the huge stuffs away as you can imagine, and my parents have to work day and night on it until they fly back to Japan on June 29. I really wish that they have time to enjoy California as well, but not sure if they can. I've been really useless on moving...

Anyway, I and my parents also plan to visit friends. We knew some of them for years. The following is just exception from my mail to a friend of mine describing my recent trip to Japan. Since another friend of mine looks to keep asking me about it, I post this to this blog:

My trip back to Japan was interesting. I met some of my old friends and went to drink often. I visited an university which is famous in Japan; as one of my friends is a professor at the univ for human science and rehabilitation engineering, I gave a 1 hour talk about how I've been living in the U.S. in his class. The attendees were just 14 people, but most of them were young female students. This put more smiles on my face, actually. :-)

I also went hiking. There is very popular visiting site in my city in Tokyo, which is Mount Takao, about 1,800 ft high. It's famous for the temple and short hikes. And I made it the top by my wheel. This is not so common. People usually walk or climb to the top. But there is a small Japanese cafe serving Japanese noodles and beverages, and small commercial vehicles can get to the top though a hidden road. People can walk through it, but no motor vehicles are allowed to come through, except power chairs :-). It's not well paved, so I had to drive carefully. And by the way, we took a cable car to 1500 ft high, so I went from the cable car's station to the top, so 300 ft in hight? This was my recent .......... something.

You can see the pics in my other blogs.

I like to share more stories in the trip with you later, but not sure if I have time.

Thursday, June 11, 2009

key shortcut in Gmail

One thing in which I'm not good at operating desktop is to use a mouse. This little pointing device is very convenient for other folks who has no disability at their upper limbs; they just point what they want and click it. They don't need to remember command names and options using computer this way through GUI.

I know that it came from Object Oriented. A window or widget is an object, and clicking it means to invoke one of the methods the object has. This is basically how a GUI window application work. I played with Java AWT once upon a time.

But for me, who has Cerebral Palsy, pointing something by a mouse is not so easy. I can use it for games like chess or card games, but it takes longer. One solution for it is to use shortcut keys. Actually, most of window applications has shortcut keys. But now more applications are web based, and so their user interfaces are in browser.

So once I thought that key shortcuts can't be set up in a browser. But I was not right. I believe that it's related to Ajax. And I felt that I was lucky to find that Gmail has shortcut.

Here is the link to its help page, which is one of the page I have to visit often, To enabling this feature, you need to turn it on from your Gmail setting.

Now, let me try 'ctrl+P' to publish this page. :-)

mozilla firefox shortcuts from Stace.