New Ideas – Search by Singing, PDA tag clouds

Yesterday, I had some interesting ideas come to mind that I think I will share here.

First, I have to provide a link to one of the coolest new sites that I’ve seen on the Internet in quite a while. System One Labs has a new product that they are testing called retrievr. It is a search by sketch application. Currently, System One Labs has indexed the photos that are ranked as the most interesting on flickr. Users can then create a sketch of an image with really basic paint tools, and retrievr will run its algorithm for finding the images that match the best. It is a fun exercise to pick a photo in the interesting archives and see if you can get it to turn up in the results as you sketch it. This is way cool!

So, if they can do this with sketching, I bet it can be done with singing. How many times have you had a song melody or chorus come to mind, but you can’t remember the name or artist of the song. You might not even remember how the rest of the song goes.

It would be a really cool application if you could go online, sing into a microphone the chorus of a song, and you would get samples of the top 20 songs that match your singing. When you find the song you were trying to sing, you would select the correct song, and the program would match your singing file with that song. There could be a link to buy the song online from Apple, or another music store. You could also listen to other people’s renditions of the song. This is where I think it could become very entertaining. It would kind of be like a virtual karaoke. I think this would be really cool, and Flash has the capability to connect to media devices, so I think it could be done.

My next idea is kind of more vague, and I’m still trying to put my finger down on what it is exactly that the application would do. It stems from my thought that we are always making and wanting lists of things. My wife has a stack of post-it size papers which she always creates lists on. She writes down lists of movies we want to watch, grocery lists, things to do that day, lists of songs to buy, lists of meals she can cook, etc.

I was thinking, there has to be a better way to manage all of these lists. I know there are palm applications for creating lists and such, but I’m thinking of moving more into a Web 2.0 style of things. What if your palm or pocketpc indexed things like we do on blogs (all blogs except blogger blogs, which I happen to use). Tagging seems to be the new favorite thing for people. We tag everything now, and then we have these tag clouds that show us the most pressing, or most interesting tags.

So, what if we began tagging on our pdas, adding metadata to all of our data. Our lists and things could synchronize with an Internet database, and we could have tag clouds on our pda, and all of our lists and interests online. I’m thinking that there could probably be some linking algorithms between lists, comparing different people’s lists with matching tags, doing kind of a Google Sets type of thing. I don’t know there might be something cool in this.

Blog Aggregator and Feed Syndicator php5

This last week, I used the PEAR XML_Feed_Parser class to create a Blog Aggregator. After attempting to use various feed aggregation scripts that were currently available, I found that I never had enough control over what I wanted to do with it.

Here is what my Blog Aggregator does:

  • Accept an array of feed urls, fetch and cache the results
  • Create Blog objects and store appropriate information (Title, Link, etc.)
  • Create BlogEntry objects for each item in the blogs. These BlogEntries have a reference to blog from which they came.
  • Sort the BlogEntries so that they are in chronoligical order (or any other order you wish)

Now that my aggregator can give me all of the entries to the array of feeds that I gave it, and I can re-order the feeds how I want, I have enough to re-display the feeds on my site. I will place a link here when we have the new php5 server up and running, with the new site installed. This has made things very convenient for taking blog data and formatting it how I would like.

I am also creating RSS 2.0 feeds from the blog aggregation. The new php5 DOM library is great for creating feeds. It is also very easy to use Cache_Lite to cache your feeds for future use. I will be posting some code here when the software is a little bit more stable.

I am also trying to get set up so that I can work on PEAR classes and contribute back to the open source community.

Once again 5 stars for php5.

Switch from php4 to php5

Hello world,

This last week and a half I have finally made the switch from php4 to php5. I had read for months about the cool things that php5 does, but I never found a good php5 web host. Does anyone know of any?

I am working for Provo Labs, a cutting-edge Internet business incubator, and we are building a new server this next week that will host php5. So, I finally was able to make the switch.

So far, I love php5. Php5 helps developers create Web 2.0 applications much quicker with its new DOM library and SOAP extension. As I was working in php4 I always had to find an extension, or some kind of class that someone had written to do fundamental tasks for web services, and after making the switch, things became so much easier and clearer.

Implementing RFID

RFID has been all the buzz these last couple of years. Some say RFID is the “Mark of the Beast.” Others see it as a big brother, government privacy invasion. In the supply chain world and in other aspects of business, there are huge benefits to using RFID.

About three years ago I co-founded with my uncle a company called Sweaty Palms Software, which was a company specializing in software creation for the Palm OS and barcode scanning handhelds. Lots of businesses saw Microsoft as taking the market, which has happened, they decided to move towards Windows CE .NET handheld computers. Before we decided to let the business go, I was able to do a little bit of research into RFID but found that it was very hard to find information for implementing rfid.

Yesterday, I was able to jump back into the RFID technology game and do some research on implementing rfid in various business settings. I think rfid is finally to the point to where more and more people are going to be able to start implementing the technology in their arena of business.

One thing I didn’t understand was that there are so many different types of rfid tags and readers out there. Here is a summary of definitions and technologies that one must understand in deciding what types of devices and tags they want to use to begin implementing rfid.

EPC (Electronic Product Code) -

  • is the standard encoding used on industry RFID tags
  • consists of EPC version, Manufacture Code, SKU, and Serial Number

Active vs. Passive Tags

  • Active Tags – battery powered tags (lasts from 5 to 10 years). Transmits long distances (up to 100 meters). Usually cost $20+ per tag.
  • Passive Tags – powered by reader’s radio waves. Transmits short distances. Cost around $.50 per tag

Read/Write-ability of Tags

  • Type 0: Read-only
  • Type 0+: Read/Write – Can be written to (once) by a reader
  • Type 1: Read/Write – Can be rewritten by a reader

Common Frequencies and Standards

  • Low Frequency – 125 KHz
    • Read range: less than 0.5m (1.5 ft)
    • Used for: Access control, animal tracking, vehicle immobilizers, POS applications
  • High Frequency – 13.56 MHz (ISO 15693)
    • Read range: 1m (3 ft) a.k.a. “Vicinity” reader
    • Used for: Access control, smart cards, smart shelves, item level tracking such as baggage handling, library books, etc.
  • High Frequency – 13.56 MHz (ISO 14443)
    • Read range: couple of inches “Proximity” readers
  • Ultra-High Frequency – 860 MHz – 930 MHz
    • Read range: 3m (10 ft)
    • Used for: Pallet tracking, electronic toll collection, baggage handling
  • Microwave Frequency – 2.45 GHz / 5.8 GHz
    • Read range: 1m (3 ft)
    • Used for: Supply Chain applications & electronic toll collection

Sources: Symbol, Psion TekLogix

Once you determine the application of rfid, you can then begin to purchase the hardware and begin developing software that will allow you to benefit from this amazing new technology.