Search
The Way of the Software Engineer

Applying JOONE to Real-World Data

Posted by admin on June 6th, 2009

JOONE is a toolset used to build and run neural networks in Java.  To demonstrate its capability, I’ve built a simple supervised network and trained it on a common data set used for other machine learning projects.  By using a common data set, comparisons can be made between the different approaches.

The data set was published by the Audubon Society Field Guide and describes the characteristics of mushrooms found in North America.  Read the rest of this entry »

AvantGo is AvantGone

Posted by admin on June 2nd, 2009

AvantGo, the once ubiquitous application for all PDAs, is shutting down its web sync service.  Users of the service have just begun to see banners stating, “Starting June 30, Avantgo will no longer offer mobile web content.” With modern wireless networks and browsers built in to new smartphones, the on device browser just couldn’t meet the demands of modern consumers.  While there are no direct competitors to this service (in the consumer market) there are a few companies that meet the needs of some consumers.  AvantGo is suggesting mysnacs.com as an alternative.  Some users have received this message:

After June 30, 2009, AvantGo will no longer be providing mobile Web content for sync or online access, and you will not be able to access or update your AvantGo content or account.  Your account information will continue to be protected by our privacy policy, and we plan to delete any personally identifiable information you’ve provided (e.g., your e-mail address) as soon as reasonably possible.

If you are an 8MB account subscriber you may be entitled to a refund for a portion of your subscription fees that are unused. To request a refund, please click here and submit the refund request form. You will need to reference your AvantGo User ID (included in this email).

To continue receiving news and information from your favorite content providers, you should visit that content provider’s channel before June 30 for details on how to obtain their content other than through AvantGo.  Also, AvantGo recommends the Snac mobile widget application - a new, fun way to get your favorite content on your mobile device. You can find out more about Snac at: http://www.mysnacs.com/landing?token=avantgo0609

Best wishes,
The AvantGo Team

Read the rest of this entry »

Recently I’ve been playing with a tool set called JOONE.  The goal of the JOONE project is to produce a fast prototyping environment for Neural Nets and a series of libraries to training these networks.  I have so far ignored the prototyping environment, but I do find the libraries quite useful.

Two years ago I began building a series of base classes in Java that could be used to create neural networks.  I managed to get it to a somewhat useable state, but it needed a lot of cleaning up before I could release it or expand it to apply to a larger set of problems.  I found JOONE while writing my libraries, but shelved it because my goal was to learn more about machine learning.  Just using an existing toolset hides most the important “educational” bits.  I returned to JOONE a few months ago, and discovered it shared many of the design elements had built into my own library along with a bunch of really great features I hadn’t even thought of.

It comes pre-packaged with useful example codes to get you started, and an extensive PDF manual (which could use some copy-editing).  I ordered a book (that’s also available online) that discusses the basics of neural nets in the context of JOONE.  While I’ve found the book useful, I think the examples are written for a slightly older version of JOONE.  Some of the method calls suggested in the book are listed as @deprecated in the actual JOONE source.  Fortunately, the examples included with the JOONE source code make this easy enough to modify the book’s samples and use the more modern methods.

I like the example based format of the book.  There are a series of problems to solve and the JOONE way of solving them is presented.  The pace is good and they increase in complexity as more advanced topics are covered.  There is an element I dislike about the book: some of the topics covered are not in a JOONE context.  Heaton Research, which published the book, seems to have its own basic NN library and some sections of the book use this library instead of JOONE.  The lack of consistancy could be a problem for someone trying to use JOONE as an engine and apply it to an actual problem.  For simply a learning experience, the subject matter is well described no matter which library is used.

As I continue playing with JOONE, I may post my example codes or describe the process of getting JOONE to play nice with Eclipse.

The iPhone SDK is Calling Collect

Posted by admin on July 24th, 2008

I recently borrowed an iPod Touch from a friend and co-worker to play with the new 2.0 firmware version and App Store.  There’s a lot of potential with this new platform.  The very attractive device, capable hardware and ridiculous hype associated with iPhone makes it a great platform for developers to get wide exposure for simple applications (just google on iBeer).  The development tools - particularly Interface Builder - are top-notch.  I was looking for blogs and forums that had iPhone development tutorials to get the “tips and tricks” view of these tools, but I came up dry.  I did come across a few articles that have begun to address this lack of useful information.  Basically, the licensing agreement for the SDK is a gag order preventing developers from releaseing their code or writing about the SDK.

Read the rest of this entry »

Behavioural Location Tracking

Posted by admin on May 26th, 2008

SkyHook Wireless is sitting on the greatest behavioral corpus known to man. This software that powers the location based services for the Apple iPhone and iPod Touch is a self-learning map of wireless access point to GPS locations. They seeded this database over the past several years by war driving across the US and recording the ESSIDs and MAC addresses of wireless access points and GPS locations of all the exposed wireless networks they found. Read the rest of this entry »

Yahoo SearchMonkey

Posted by admin on May 23rd, 2008

Yahoo has published another tool in their series of open technologies called SearchMonkey.  The principle is that website owners can create a “data service” that runs an XSLT on their site output and then pipe it to a “presentation application” that produces a custom L&F for search results relating to your site.

CodeMonkey Enhanced Search Results

Read the rest of this entry »

OCR with Tesseract

Posted by admin on May 13th, 2008

Optical Character Recognition is one of those technologies that has been around for a long time and never quite met customer demands. This is a common AI application, but I thought I’d see what’s currently available publicly instead of trying to write my own from scratch. The primary options I found were PHPOCR, GOCR, and Tesseract. PHPOCR is a system written by a developer in the Ukraine as a platform for further OCR research. The examples were very easy to get working, but it’s not the quickest solution for my project. GOCR is generally considered the market winner. It installs easily via the OS X macports tree, and works quickly on the command line. I also downloaded Tesseract, but with GOCR’s ease of use and prevalence in the open source community, I thought I’d try that first. Read the rest of this entry »

Open Calais

Posted by admin on May 8th, 2008

In February, the OpenCalais project was slashdotted because it had opened a bounty on a WordPress plug-in to produce RDF formatted version of blog posts.  The project sounded interesting, and my previous semantic web project had just stalled.  The specification was very loose, so I assumed that they were expecting a simple alpha that could be expanded on.  So, I signed up for the project and began hacking away at a simple plugin.  I spent a couple hours on it and stopped.  I realized I wouldn’t be able to work on it for several days and by that time my entry would be lost.  I was expecting OpenCalais to be inundated with so many entries from the slashdot community they would close the submissions in 48 hours.  Boy was I wrong.

Read the rest of this entry »

Google “We’re Sorry…”

Posted by admin on April 1st, 2008

Apparently Google has finally gotten sick of spyware authors taking advantage of them and have devised a system for preventing automated searches. Unfortunately, they’re just blocking entire IP blocks from using their service. This means that large corporate networks who’s outbound net goes through a small number of IPs gets entirely blocked from Google access.

“We’re Sorry… … but your query looks similar to automated requests from a computer virus or spyware application. To protect our users, we can’t process your request right now.

We’ll restore your access as quickly as possible, so try again soon. In the meantime, if you suspect that your computer or network has been infected, you might want to run a virus checker or spyware remover to make sure that your systems are free of viruses and other spurious software.

If you’re continually receiving this error, you may be able to resolve the problem by deleting your Google cookie and revisiting Google. For browser-specific instructions, please consult your browser’s online support center.

If your entire network is affected, more information is available in the Google Web Search Help Center.

We apologize for the inconvenience, and hope we’ll see you again on Google.
To continue searching, please type the characters you see below:”

Google is sorry

Of course, considering the date this could just be a well crafted joke.

Conditional Independence

Posted by admin on February 28th, 2008

An honest man is flipping a fair coin. After flipping ‘heads’ seven times in a row, a banker walks up and offers the honest man a bet of $50 if the next flip is ‘heads’. The banker hasn’t seen the previous seven flips. Should the honest man take the bet?

More importantly, do the previous flips effect the outcome of the next?

Read the rest of this entry »