2008-10-22

IDEA: From Desktop to PMP

I think in the whirlpool of mobile computing, we're missing the big picture of what the desired goal is, so I'll map it out.

- Desktop for home computing and organization.
- Laptop for mobile computing and organization.
- PDA for mobile organization.
- Phone for communication.
- Mobile phone for mobile communication.
- Media playing software for home entertainment.
- Portable media player for mobile entertainment.

My idea is that as we go from home to mobile, we should be able to carry our data and preferences with us. An example of the implementation of my idea is the following: when moving from desktop to laptop, there is some common bridge that allows us to transfer our computer preferences and necessary files over to the laptop with no fuss or muss.

Taken a step further, the desktop and laptop could be combined into one, and the PDA, phone, and media player could also be combined into one. In this scenario, I envision two docking devices. The dock has the big hardware that drives the more powerful requirements needed at home, while the detatchable mobile parts carry the preferences, data, and necessary mobile applications to manipulate those items. When changes are made to any one device, it transfers to the rest of the devices upon docking. You could even have a single dock at home that has a detatchable laptop and mobile device.

Going even further, a degree of customization for shells is possible for the mobile devices.

This all loops back to my underlying premise of allowing the user as much control over their environment as possible, rather than being locked in to the company's software interface.

See also http://www.modumobile.com

2008-10-21

IDEA: Programming consolidation through primitive AI

[Neo] AI? You mean Artificial Intelligence?
[Morpheus] No, I mean Angsty Incompetent. You're a f***ing geek and you have to ask what AI means? Here's the blue pill, get the f*** outta here.

Ahem.

The idea is that a primitive AI system could simplify a lot of programming required of hardware systems. It's similar to teaching a pet to do a trick. You show the desired result, and the primitive intelligence learns. You could teach a visual identification system to allow a certain person in, and their built-in facial recognition software and hardware takes care of the rest.

This builds on another theory of mine: programs are essentially beings of primitive intelligence. I saw a bird circling over the same spot, and imagined it similar to an anti-burglar sensor. It takes a snapshot of the area, and if anything changes, act upon that change.

To expand a bit, the AI would require the needed hardware and software to observe objects as desired. Going back to the visual identification system example, it would first need the proper hardware and software required to make distinctions between faces. Once this is accomplished, then the learning may take place.

IDEA: Simple vs. complex processes

The idea running through my head is that I may, at some point, release software to the public that a company I work for deems as their own property. This brings up the idea regarding copyrighting and/or patenting software, which extends into the idea of copyrighting and/or patenting a simple idea.

Consider the following situations:

- Two people write books about a wizard that comes of age and defeats a wizard seeking a legendary "Philosopher's Stone". One writes a story that is marginally interesting and acquires little notice. The other story is written by J. K. Rowling.

- A coder writes a piece of code that is determined to be very useful. The company he is working for uses this code extensively, and it is a central part of their product. Said coder releases this code to the world in a package that in no way reflects the company product. Said company claims the coder violated a non-disclosure agreement, and is liable for damage in an attempt to thwart a copyright or patent on the software.

- You eat a bowl of cereal by pouring cereal into a bowl, pouring in some milk, then using a spoon to eat it. Then someone patents this process, and demands money in some way to compensate for use of their proprietary process

You see how silly this gets?

The worst part is that it is hard to determine the dividing line between a "commonly reachable" idea, and one that has a unique structure that should be protected. With human language, complexity increases with each word used. With constructs, the "parts" tend to be much larger, and therefore do not constitute a "complex" object until the object becomes quite large.

Food for thought.

MISSING: Try-before-you-buy stores

This is my first entry in the MISSING category, and it encompasses any kind of try-before-you-buy store. Here are the most prominent categories:

- video games (more specifically the games themselves, not the systems
- headphones
- "consumer electronics" (e.g. mp3 player)

I understand that it's likely you can ask a sales associate to demonstrate some of these, but that's a lot of hassle for something you may not buy, and then you have to deal with the social pressure of having the salesperson right in front of you to refuse.

I'm the kind of shopper that wants to be left alone. If I have a pressing question, then I will seek out assistance. Therefore, I'm very interested in having the ability to try things like these before buying them.

CODING: Getting computers to understand human speech

One bit of coding I have in mind to develop (public license of course) is a kind of language interpreter.

The premise: why can't we tell our computers what to do instead of moving around a mouse and typing on a keyboard?

As far as simple sentences go, it shouldn't be hard. The only difficult piece will be code that converts spoken words to text that the computer can parse, e.g. ANSI (or ASCII?)

After that, it comes down to linguistic rules. Here is an example, using two languages to show versatility.

Rule for identifying the weekday:

English: "Today is {weekday}"
Japanese: "Kyou wa {weekday} desu"


Rule for {weekday} (with a pipe "|" indiciating "or"):


"{sunday}|{monday}|..."


Rule for {sunday}:

English: "sunday"
Japanese: "nichiyoubi"

Same for the other days of the week.

For possible mis-translations, the pattern would be something like this:


"sunday|(sunny day)|..."


When the rule matches something said by the user, you could use logic like the following:


if ({Today rule hit})
if ({weekday} = {sunday})
{code for sunday}


And it would follow for the rest of the weekdays.

This somewhat mimics human memory recall. If a person asked what day it was, upon hearing an answer, their mind would search through their memory for things to remember on that particular day.