This blog has moved to Medium

Subscribe via email

Posts tagged ‘AI’

Unsolved Problems in Technology / Computers

In 1900, the great mathematician David Hilbert presented twenty-three open problems in mathematics. A Google search for open problems in computing gives this Wikipedia article with problems like P = NP and existence of one-way functions. I’d like to list a few, more practical, open problems in computing, that I believe will start to get solved in the following years (most are being work upon for years, but I believe the rate of solving them is accelerating).

Here are my choice problems – I am sure I left many important problems out, and perhaps some of the ones I present are more solved than I know. Please, comment if you’re interested.

  • Search – Google has redefined the field in the last ten years, but I think it’s too early to call search a solved problems (otherwise startups like Delver wouldn’t get started :)). The bleeding edge seems to be in Social/Personal search.
  • Instant video & audio playback – play any video or audio clip, episode or movie. High quality. Free! We’re very close to the solution here. Youtube, bittorrent, Internet radios (I’ve tried,, Jango). We’re not there yet though, all of these still have problems in pricing, availability or quality.
  • Naive AI – the most undefined term in computer history. I’m not talking about Terminator-style AI (yet). What I want is solid, prevalent voice-recognition. Image and video recognition (auto-tagging on Facebook, for starters). Some system I could speak to and say “please find my next open slot on Tuesday in my calendar, invite Oren & Avishay for a design review, oh, and send them the presentation beforehand”. Something that has just enough smarts to automagically integrate all the other smart systems we already have today.
  • Organization. No need to backup your computer, or put everything into folders, or manually tag stuff. No need to remember passwords, logins, websites. Wait, did I upload that image to Flickr or Facebook? Do I have Anton’s contact from Facebook or Gmail? I think I the copy of the seminar I saved to my desktop is more recent than the one on my laptop… The login/password problem, at least, is nearing its solution – usage of OpenID is accelerating, and it is getting more comfrtable to use as well.
  • Availability. Sure, we’ve got iPhone 3g. But still costs 500-600$. And is suffering much criticism. I want a cheap, good endpoint to the worldnet (imaginary word I just invented to describe the combination of all the world’s networks – internet, phone, TV, …). I want one for my office, one for my bedroom, one above the kitchen table, one in the grocery store… You get my drift.
  • Power consumption. Why are laptop battery life measured in hours, not days or weeks?
  • Viruses and other malware. It’s not as prevalent as a few years ago (for me), but I still run across virus-infected files.
  • Universal data portability. Standards, standards, standards, starting from how to write web pages, to how to write software that doesn’t require root permissions to work, how to access address books and social networks. Lots of work in process here, not yet wildly adopted.
  • Information consumption. How to get really good personalized content without being blown away by the quantity or poor quality.
  • SPAM – I’m not sure this problem will go away, it might just get worse. Computers are getting better and better at pretending to be humans.
  • Planning – computers are excellent planners, right? So why can’t I use the computer to automatically plan a trip from Tel Aviv to Kiryat Bialik, where my parents live? I take the train to Kiryat Motskin, and a bus or taxi to Kiryat Bialik, but no single system (as of today, in Israel) is able to plan a complete route using both means of transportation. This bullet is deeply related (some would say included) in data portability, a few paragraphs above.

Future of Real Time Strategy

I think RTS games are currently wrong. What do I mean by that?

Current RTS games do test strategy and tactics, but they also require a high degree of micro-management. Top Starcraft players are measured by their APM, and a player with high thinking skills but a less than agile hand is at a disadvantage. The anticipatd Starcraft 2 doesn’t seem to hold great promise to change this.

What I want is this: In addition to the point-and-click action we all know (and love), I want RTS games to offer me strategy/tactics menus. I want to be able to order the computer AI things like:

  • “build the base, 10 drones, and the entire tech tree up to Guardian
  • . Then build 10 of these and 25 Mutalisks and send them after the nearest Terran opponent.

  • “Organize all my troups into battle formations while leaving 10% on defense and go search & destroy all opponents”
  • “Build up to 3 overlords and scout for Vespene gas. Once found, take a drone there to build a base. Once the base nears completions, send other drones there to mine the gas”.

Such commands should be easily programmable in the game as it ships. Special player-made commands could be added before and during a game. The player’s major role should be to select and define strategies, not to gather up individual drones to build structures or to micro-manage an attack. Of course, as I said, the micromanagement can stay, but it must not be how you spend the better part of a game.

Note that most of the “strategy commands” I want are probably already present at some form inside the computer’s native AI player. As a player, I want to have access to this AI and parts of it. Once this is developed enough, I can imagine different Starcraft tournaments where players are only allowed to pre-program the strategy.

Now I wonder how long till these ideas become reality and how difficult it would be to program a extension for the existing Starcraft that accomplishes something like this.

Why is Open Source so hard?

Today I came with with an idea for a cool feature for RSS clients. What I want is intelligent filtering like StumbleUpon – users would click “I like it” or “I like it not” on RSS items, and the client could learn a user’s “taste” and prioritize future items. Google revealed someone just thought of this about 2 weeks ago. Still, I don’t want to pay 20$ for an RSS reader, and I don’t want a reader that specializes in this, I want this as just another feature of a standard RSS reader, so I went on to try and add this to some existing open source RSS client.

I immediately found NClassifier, an open source .NET text classifier. Looks promising.

For an RSS client I mainly found Rssbandit. A bit ugly, but I could work with that.

Then, crash. I spent several good hours just trying to get the blasted code. At first I naively thought perhaps the code would be attached to some version of the installer. Nope. I went to the CVS, installed TortoiseCVS, and failed to login with a blank password. At this point I decided to try accessing the SVN version, since I’m already familiar with SVN. I managed to get the code, but it did not build due to a LicenseException 🙁

I figured the SVN version might be different from the CVS, so I went back to my efforts to use TortoiseCVS, and succeeded … to connect. In SVN, I could just get the entire latest version. In CVS, I had to choose “packages” to download. Trying some packages, I found that TortoiseSVN does download, only it deletes the downloaded file just at the end of the download. ARG!

I really don’t understand why this entire process has to be so complicated. This entire process should have taken half an hour, including downloading the code, modifying and initial testing. Why almost every time you download open source code, it never compiles on the first build. Why the SVN and CVS versions are different.

Bottom Line
I still like my idea of intelligent, learning RSS reader. If anyone has more knowledge in the mysterious ways of Sourceforge and wants to help, call.