Archive for the 'software' Category

Desktop Analytics Platforms: Version 1

Thursday, June 19th, 2008

Thanks, everyone, for your feedback about the Desktop Analytics software.

I’ve made the following platform choices:

Initially, the embeddable client library will strictly provide a C interface for Windows. In future versions, I’ll also provide wrappers in popular high-level languages, starting with C# and Java. At some point, the library will also be available for Linux and Mac OS X.

The server will be developed as a standalone Java server (i.e., without requiring Tomcat or JBoss or anything like that) with a MySQL backend. Future versions will enable more database choices (probably starting with SQL Server), though I won’t develop a non-Java version.

In a subsequent version, I’ll also release a “reflector” module in PHP/MySQL. The reflector will be a dumb server component that listens for events from the embedded client library and stuffs them into a database. Periodically, it will connect to the main server and send a batch of data. The purpose of the reflector module will be for developers who don’t want their users to see an outgoing HTTP request to an unfamiliar domain, but who don’t want to actually host the main server themselves. At some point, the reflector will probably also serve as a load-balancer and/or a failover mechanism.

The reporting client, with all the fancy charts, will be developed in C# using the .Net 3.5 framework, for maximum WPF goodness.

Thanks again for your help in choosing platforms!

Client Platform? Server Platform?

Sunday, June 15th, 2008

I know not everyone is interested in getting a truckload of business intelligence about the users of their software. But for those of you who think the Desktop Analytics project is pretty cool, tell me a little bit about your development platforms.

Do you use Java or .Net to develop your desktop software? Or are you maybe using C++ with MFC or WxWidgets? Anyone selling desktop software built with Ruby or Python?

Do you have a server? Is it Windows or Linux? Do you have your own server, or do you use a VPS account? Or just a shared web server, with PHP/MySQL? Do you have permission to install your own software into your server environment? Are you already running a Java app server? Tomcat, or something else?

Whatever platforms people seem interested in are the ones I’ll focus on in my development, so express you preferences here!

Analytics GUI Mockup

Friday, June 13th, 2008

I’d like to solicit some feedback on a GUI mockup I’ve put together, for the deskop analytics project (click to enlarge):

Without any additional commentary on my part, what do you think of that design? I’ll answer questions in the comments section.

Business Intelligence for Desktop Software

Monday, June 2nd, 2008

First of all, let’s start by assuming that you love hilarious tee-shirts.

Something, perhaps, to express your knowledge of contemporary video-game pop culture, while simultaneously making an ironic commentary about being a complete social misfit. Not just a run-of-the-mill computer nerd. But maybe a former a member of an actual high school band. Brass section.

Maybe something like this…

(more…)

Concept to Product in 30 Days!!

Sunday, June 1st, 2008

A handful of steadfast readers out there may remember that, a few years back, I challenged myself with developing a list of 30 unique business ideas in 30 days, with the goal of launching a product and building a business.

During that time, I did a lot of blogging (sometimes as late as 3am, to write a blog entry while on vacation, after everyone else had fallen asleep). The whole endeavor really got me into a mindset of wide-open possibilities, to the point where it was hard to stop thinking of new ideas and actually focus on just one.

(I’m going to make a bold statement: The people who complain about a lack of software ideas have never really spent a significant chunk of time going through a methodical brainstorming process.)

Now, after two years, I’m finally making good on the implied promise of that brainstorming month.

At the end of June, I’m going to release a new product.

Later this afternoon, I’m going to write my first line of code.

(more…)

Going Solo

Monday, December 10th, 2007

So, I finally bit the bullet and started my own company. I’ve been a free-agent for about three weeks now, and I love it.

Hooray for me!!

The new company is called Wry Research, and at least at first, I’m mostly just doing AI research consulting for a couple of clients. I’m trying to also fit in some original product development, when I have spare time. But I don’t have a whole hell of a lot of spare time, so I’m mostly just consulting right now.

But life is very good, and I’m enjoying the freedom and flexibility of being a solo software developer.

In the near future, I’ll talk about some of the work I’m doing as a consultant. I’ll also talk a little bit about a really cool research project that I’m doing, in conjunction with the Columbia Medical School Neurovascular Research Lab. Depending on the success of the research, it could lead me to developing a very cool product/service for the medical research community.

I’ll keep ya posted :)

MIT Puzzle Research

Monday, June 4th, 2007

I was browsing around tonight, as I sometimes do, looking for interesting CS research publications, and I stumbled upon this little tidbit:

Jigsaw Puzzles, Edge Matching, and Polyomino Packing: Connections and Complexity

For those of you share my fascination with the Eternity II Puzzle, you’ll definitely be interested in reading this paper. In it, the author talks about the various degrees of complexity of jigsaw puzzles, polyomino packing puzzles (Eternity), and edge-matching puzzles (Eternity II).

I don’t mean to spoil the punchline or anything, but they’re all NP-complete, meaning the most successful algorithms will involve optimization, approximation, partial solutions, and problem decomposition.

Interestingly, the author also provides a proof that all three types of puzzles are trivially transformable into one another. In other words, a polyomino packing puzzle like Eternity could be logically transformed into an edge-matching puzzle like Eternity II, and the two puzzles would share the same locus of possible solutions.

Hopefully, that helps at least one of us get a little closer to the big $2 million bounty!!

Introducing Sproiiiing: the Hottest New EoC Framework

Wednesday, May 2nd, 2007

The last few years have been an exciting time in the Enterprise Java world. We’ve seen a proliferation of lightweight application frameworks that vastly simplify the wiring of applications without introducing dreaded dependencies into our precious class hierarchies.

But these frameworks still fall short of the mark. Every time you use an import statement or define a new class, you place a burden on the consumers of your application. Import statements create dependencies on other classes in your project. The existence of specific methods and (even worse) classes, constrain the functionality of your application to the features defined at compile-time by your developers.

Based on these unacceptable constraints, I’ve been working hard on a new “Elimination of Code” framework (EoC), and I’m proud today to announce the availability of the Sproiiiing framework!!!

(more…)

Solving Impossible Problems

Saturday, January 27th, 2007

I’ve always been interested in enormous, impossible progamming problems.

That’s probably why I’ve steered my career in the direction of machine learning algorithms and statistical AI.

And, for those of you who followed my 30-days-30-ideas thread last summer, that’s why I was so interested in the AI-Coder business idea.

But anyhow, about those impossible problems…

(more…)

The New Decision

Saturday, October 28th, 2006

Yesterday, I returned from obscurity to tell you that I’ve been busily grinding away at three major projects. Today, I’m going to tell you a little bit about the first project, with some background information for those who may not have been following along.

Over the summer (and immediately following my failed interview at Google) I announced a project to brainstorm 30 business ideas in 30 days. Although the project slipped a little bit (I ended up developing 28 ideas in 43 days), I came up with a broad range of possible software projects.

Over the next month or so, I arrived at a decision: the AI-Coder project rose to the top of my list, and I started working on an implementation. But within a few weeks, I ran into a number of difficulties (both technical and legal) and I decided to reconsider.

So, I returned to my list of semifinalist projects and began to weigh the options.

And now I’ve chosen a new project.

(more…)