

Ask HN: How hard is your problem? - aaronblohowiak

Are you solving new problems (3d scene construction from mono audio recordings), applying existing techniques to a new problem space (social network for dog walkers), or trying to one-up the competition (bill your clients online for small businesses ?)<p>It seems like popular programming and most startups focus the latter two problem sets.  Focus on the latter two problem sets may be a "safer bet", but is far less satisfying as an engineer.<p>Where is the interesting computer science work being done in the first problem set?  Are you doing it? Do you wish you were?
======
SwellJoe
We're doing a bit of both, with the known and quantifiable (web hosting
management) supporting our pioneer efforts to be part of a new and almost
entirely unsettled territory (cloud computing). I wouldn't necessarily
recommend it over other tactics, but it's what fit our business and our
existing codebase--we launched based on an old and well-established Open
Source project and the existing code greatly directed our first couple of
years in operation. But, we also know that becoming a leader in a well-
established field, full of well-funded competitors, is not necessarily a
trivial endeavor.

So, while we think our hosting management products will be a nice source of
revenue for years to come, it's the combination of those tools with cutting
edge stuff in the virtualization space that will allow us to lead rather than
follow (because no matter how good your products are in an established market,
you'll probably always be playing catch up in the mind of the market).

I also think you're underestimating the amount of interesting work that can be
found underlying seemingly mundane tasks. I've found that data analysis and
visualization can be a really interesting and fun pursuit within systems
management software, and it's an area that brings tears of joy to customers
(seriously, people wet themselves over graphs and charts...if you also add
export to Excel or CSV, there will be fainting).

Regardless of all of that, you have to solve problems that customers want
solved. If you're doing that, the harder problems are _better_ , if you are
willing and able to solve them faster than your competitors.

But, if you are starting a business rather than a research project, you need
to make your decisions based on what people _want_ rather than what you want
to work on. You cannot start from "here's a cool technology, let's figure out
a way to sell it", at least not generally. You must start from, "Here is a
market that is being poorly served, and I can serve this market well." If you
can fit, "by building interesting and cutting edge technologies" into that
sentence without breaking it, then you've got yourself a winner.

~~~
aaronblohowiak
I'm looking forward to seeing the new virtualmin support xen.

I have been trying to make more interesting out of the apparently mundane;
reimplementing the google charting api internally cause we needed to make
charts, and even some good ol' csv exports (interestingly, csv export formats
that are useful for biz people are not the formats i would prefer as a
programmer.. the more you know..) further, I'm focusing on trying to learn the
_best_ tools for the job -- picking up vim finally, trying to grok sed/awk,
bash scripting where appropriate.. even perl is sneaking into my head.

make stuff that people want is a great mantra.

i suppose i got into programming because it was a process of discovery and a
process of invention. keeping it that way seems to require intention.

~~~
kirubakaran
_> trying to grok sed/awk, bash scripting where appropriate.. even perl is
sneaking into my head_

May I suggest that you roll all that into one neat little endeavor of learning
Python... :)

~~~
SwellJoe
I've written system administration tools in both Perl and Python. Perl is the
better tool for the job (Ruby might be better still, once Unicode and
performance are straightened out).

My Python code always ended up being significantly longer _and_ slower than
the same task written in Perl. Partly due to CPAN (if you can imagine it,
there's at least three libraries for it in CPAN), and partly due to the nature
of Perl. Perl is like a DSL built for system administration. Sometimes it gets
a little clumsy on non-system administration related tasks, but when you're
working in Perl's sweet spot of functionality, it's a very nice experience.

That said, Perl can be intimidating, because it is such a wide ranging
language, and some of its features aren't quite right (references, and the way
lists and arrays behave, can be confusing, and they're still a source of
confusion for me after years of working with Perl). Python has its own quirks,
and though I spent a couple of years working almost exclusively in Python, I
didn't find it at all painful to come back to Perl.

Ruby, on the other hand, is a language that could probably steal my heart.
Between deciding to shutdown my old company and starting up Virtualmin, I was
undecided on what to do with myself. I learned some Ruby and tinkered with
Ruby on Rails. Loved Ruby instantly. RoR, not as much.

~~~
kirubakaran
Great info. Thanks a lot.

------
ecuzzillo
Yeah, we're doing it. We make humanoid robots.

<http://www.anybots.com>

~~~
icky
And the winner of "Startup most likely to accidentally eradicate human life"
is...

~~~
jbenz
Don't worry. I'm sure Will Smith will be there to save us.

Anybots looks super awesome, by the way. I can't imagine you'll have too hard
a time recruiting a young product designer. Seems like a dream job.

------
cousin_it
I'm solving a newish problem, posed (but not yet solved) by MS Photosynth:
build an immersive, 3D-like experience from photos. But then again, I'm not a
startup, but a one man nonprofit/research thing, releasing my code under the
GPL. <http://openphotovr.org>

My next project is definitely gonna be a for-profit in some other area. Still
deciding where exactly.

~~~
aaronblohowiak
Scene reconstruction is an interesting problem domain. Your manual stitching
of photos is a great example of crowd-sourcing.

Kick it up a notch and get the machine to do that for you =D

------
wheels
We are. Actually I think more startups are than you're assuming. There are two
reasons that this is not obvious:

\- Usually a good solution to a hard problem looks easy to users.

\- Simple problems get a lot harder when they're forced to scale. Just keeping
things from flying apart at the hinges often involves significant optimization
and engineering problems.

------
brianlash
I think most technical folks' occupancy of your latter two problem sets isn't
so much for lack of interest in new, hairy-scary problems. It's for want of
the necessary tools to do so.

On the flip side, it's my guess a lot of hackers consider themselves new-
problem-solvers-in-training. A 22 year old computer guy may not be solving the
clean water and efficient energy problems of the world, but could conceivably
have aspirations to do so when his or her talent is matched with the right
street savvy, is matched with the right entrepreneurial network, is matched
with the right funding opportunities, and so on. So in a lot of cases it's a
question of "when," not "whether."

And if it's people breaking new ground in computer work you're after, you've
got to make sure you're in the right ballpark; Plenty of universities are
doing remarkable things in CS, but again, it's usually older entrepreneurs
(with money and know-how) who get their hands on new tech through the
technology commercialization centers.

Which is to say that new problems _are_ being solved (in CS, too), just in
different territories and in different ways than we hear about in mainstream
tech news.

~~~
aaronblohowiak
What kind of tooling is lacking?

Your point about being in-training is an interesting one, particularly for the
readers of this site.

Where do you find out about the remarkable things that people are doing in CS?
Also, are you suggesting that most interesting new CS work comes out of
universities? If so, does that mean "If you want to solve problems, go to grad
school. if you want to make money, start a me-too business?"

~~~
scott_s
Check out the ACM publications: <http://www.acm.org/publications>

The Queue has decent stuff, but the real meat is looking at conference
proceedings.

------
mooneater
Interesting work seems to flow naturally from interesting data sets. Start by
seeking the data.

~~~
boredguy8
Interesting work makes boring data sets appear interesting. Start by seeking
interpretations.

~~~
marcus
Actually some of the most seminal work in machine learning and statistics for
example was done on the most boring datasets, for example read Fishers work on
classifying Iris sub-species.

~~~
mooneater
I doubt Fischer found the Iris dataset boring.

------
johns
I disagree with your assertion that the safer bets are less satisfying. If my
users like and use my app over our competitors', that's more satisfying to me
than building something challenging that no one uses or likes.

If you're working on something in a crowded market, designing your product to
stand out/work better than the rest can be just as challenging (and
satisfying) as writing something technologically complicated.

------
Prrometheus
Tipjoy is confronting a hard problem, but not in the technology space. They
are trying to create a useful convenient payment mechanism without running
afoul of finance laws. I don't envy them. There's a reason why all banks are
the same, and basically the same as they were decades ago.

------
jfornear
For fun about a month ago I actually bought the domain letsmakepuppies.com to
make a social network for dog breeders with a subtle dating aspect for humans.
I thought it was a cute idea, but then I saw a sticker that read, "Please
don't breed or buy when pets in the shelters die."

------
ericb
I'm working on a hosted load testing solution. I would say it is challenging
compared to many of my ideas since I have to basically build both a website,
and a load testing tool, but not in the difficult-computer-science-problem
category. The site is: <http://testomatix.com>

I'm getting there, but I am behind schedule. I struggle with whether I should
release before I've added reporting in, or if I should wait. If folks are
interested, the website has a mailing list signup.

~~~
apgwoz
I tried to sign up, but got an error...

 __System Error

* Oops! It looks like there was an error.

~~~
ericb
Doh! Sorry... That's down at the moment. It's the join the mailing list on the
right that _does_ work or you can email me at ebeland on gmail. I should have
been more clear on that, sorry.

I'm connecting the load tool to the site, currently, although more still needs
to be done.

------
brlewis
I'm making photo sharing work the way it should have worked five years ago,
using programming techniques I learned twenty years ago. I'm enjoying it
immensely and wouldn't trade it.

------
swombat
Problem toughness is not only defined by technical difficulty. Most
programmers (myself included) tend to focus on that, but the toughness has
many other components, such as the number of users, their fickleness, the
strength of the competition, etc.

I wrote an article about this some time ago on my blog: [http://www.inter-
sections.net/2008/02/11/how-tough-is-your-p...](http://www.inter-
sections.net/2008/02/11/how-tough-is-your-project/)

------
iron_ball
I make Flash brochureware!

...no, it is not satisfying.

~~~
emmett
You should apply to Justin.tv! We have nice hard flash problems here...

------
dejb
I agree that solving 'new' problems is a lot of fun. This can cause problem if
you try to turn more mundane problems into interesting ones by making your
code cover substantiatlly more general cases than is necessary. This is what
has happened to me sometimes.

I guess you could consider the optimisation problem of how to finish your
'less than new' problem most effectively as a potentially interesting meta-
problem.

------
nelud
I'm wokring on local climate model. But one question that bothers me - how
will i sell it?... May be i should change direction, i wonder...

------
engtech
The title had me at a/s/l

------
LPTS
We are going to create a 21rst century patient facing medical experience.

The experience of going to a pharmacy sucks, and is obsolete. The entire
medical industry is complacent in allowing 100 billion in unnecessary medical
costs because of non-adherence to medications. The doctors don't consider it
their job to make their patients adhere. The pharmacist maybe talks to you for
a few minutes and hands you a sheet of medical and legal jargon that says, on
page 3, how important it is to take medicine. The drug companies also fail to
ensure adherence. Yet patients don't know enough to care.

None of these people have stepped up to the plate. So we're gonna do it, and
when we solve the problem, we can start upending all the parts of the patient
facing medical experience where bad decisions and stupid compromises have been
calcified into the shitty experience that anyone who has had a sick family
member knows all to well.

We are not exactly a web start up though. We must design some actual stuff
people will use too. The computer science part of our project is that all this
adherence stuff can actually reduce to a flow of information problem given a
few assumptions and the right way of conceptualizing the problem from a
psychological and brain science standpoint. The computer science forms the
informational backbone along which we can build a medical experience that
doesn't suck and isn't full of compromises that suck for the patient. From a
computer science point of view, we are applying existing techniques to a new
problem, but from the point of view of the medical establishment, we are
solving a currently unsolved problem of huge proportions.

Information about your medication is some of the most important information
you encounter, because it directly influences how long you live and how well
you live. Edward Tufte is an old man now, and the pharmacies are still
basically acting like it's 1952 in the way they present this vital
information.

~~~
jacobbijani
Since when do people resist taking medicine prescribed by a doctor? Why see a
doctor if you aren't going to do what he says.

~~~
xenoterracide
just to find out what's wrong. Doctor's tend to over-prescribe.

~~~
yummyfajitas
Woman: Doctor, my daughter has trouble breathing.

House: Have you been keeping up with her medication?

Woman: She doesn't use that except in emergencies. Pharmaceuticals are very
risky.

House: You know what else is risky? NOT BREATHING. That has some minor side
effects such as DEATH. Your doctor, after carefully weighing all the options,
decided that NOT BREATHING is more dangerous than [insert minor side effect of
pills].

(Paraphrased, I don't remember the exact lines.)

~~~
xenoterracide
me: I'm sick doctor: here's some anti-biotics.

repeat for 20 years.

me: realizes doctor prescribes anti-biotics for allergies, the flu, and the
common cold.

------
bjclark
That's what she said.

~~~
aaronblohowiak
You could have said NP-Hard if you wanted to go for the cheap thrill but
remain on topic.

