The Hustler's Manifesto - <AUTHOR> http://blog.niroka.com/post/12253356252/the-hustlers-manifesto <comment><USER2> It's a shame most of the comments are focusing on the not-testing point. The last point was much more interesting (if I may paraphrase, engineers in an early-stage startup should be responsible for _proving_ that the features they build actually add value).

Anyway, I agreed with pretty much everything, personally.

<comment><AUTHOR> agreed, i hope after all the testing controversy settles people will walk away with that. that was my favorite point too.

upvotes for you

</comment></comment><comment><USER3> "Don't worship the code." Well put. I've personally witnessed a situation where a startup was paralyzed by code narcissism. The business was asking for features they couldn't get because implementing those features would mean violating the lovely design patterns chosen by the architecture astronauts. Every developer wants to believe that someday their code will be released as a heroic open source project that solves everyone's problems but in the meantime they neglect to solve the problem their customer is having right now.

<comment><USER4> I've worked with a software vendor (as a fortune 50 client) where their architecture and product vision was solid but the engineering team was deciding what aspects of both they would implement. Not when they would implement but _if_ they would. Imagine if a carpenter or autoworker did this? The fallout from this was a major contributing factor to their loss of new business.

</comment></comment><comment><USER5> The main problem with this is that author is creating a false dichotomy between writing great software and running a business(hustling). I don't think you have to forgo one to succeed at the other.

I just think that you need to make a decision up front what your businesses core competency is, if it is supposed to be writing great software, then really should you be doing things like "Stop being such a nerd".?

<comment><AUTHOR> by "writing great software" do you mean writing software that other programmers will admire? or writing software that your users will love?

you shouldn't let the first one get in the way of the second.

<comment><USER5> I mean, writing software that is usable, useful, maintainable, robust and reliable. This is the type of code that both other developers AND your users will love.

</comment></comment></comment><comment><USER6> I think it's hilarious that most of the comments I'm seeing here so far seem to be doing the exact over analysis that this article is trying to dissuade us over-analytical types from doing ... maybe?

Just build it motherfuckas?

<comment><USER7> What I find hilarious is the idea that things can "just" be built (motherfuckas), rather than things built through lots of hard work, dedication, and yes even that apparently dirty word _analysis_.

What this article is suggesting sounds great for prototypes, which is what startups should be doing early on, but not forever.

</comment></comment><comment><USER8> "Here's what you do instead: write integration tests for the critical parts of your application."

Yes! The "unit" in unit tests makes sense when "units" are what define your code -- because you are delivering units. If you are delivering applications, focus your efforts on having quality tests for those.

(Of course competent coders will develop units, and collections of units aka libraries, along the way, and of course unit tests as such will be right for them. But the measure of an application must be taken at the application level, not at the unit- or aggregate-of-units- level.)

<comment><USER9> For that matter, what the author complained about in the article didn't strike me as unit testing. It was testing, and it may have been done using a unit testing package, but it sounds like what was being tested was not units.

</comment></comment><comment><USER10> As a consultant I am constantly called onto projects that are in varied states of "prototype gone wild" - they seem to already be following this advice on many levels and pay the price later. YMMV

<comment><USER11> Right, which is why he states TDD and agile development is best fit for consulting. It makes perfect sense there.

<comment><USER10> It is WAY more expensive to do later than it is to keep this sort of thing in mind up front. I've done a lot of work with product startups that have dug a massive tech dept hole that is actively affecting their bottom line. Rickety foundations.

TDD fully supports the concept of prototyping. You don't unit test a prototype. The trick is to STOP that prototype when the concept is proven and move onto something you can really build on.

<comment><USER12> A mess is not technical debt! [http://blog.objectmentor.com/articles/2009/09/22/a-mess- is-n...](http://blog.objectmentor.com/articles/2009/09/22/a-mess-is-not-a- technical-debt)

<comment><USER13> This is a nice idea, and perhaps is the original meaning of the term, but in practice sometimes a mess is exactly what you should be creating. Since you know you are going to be throwing it in the trash this mental mode of prototyping fosters creativity like no other.

</comment></comment></comment></comment></comment><comment><USER14> Am I the only person who is _incredibly_ turned off by the term "hustler"?

It's right up there with "I'm an idea guy".

In fact, I think that "I'm an idea guy", has just morphed into "I'm a hustler".

<comment><USER15> I don't know...a hustler actually _solves problems_. Nasty, gross, annoying, fuzzy problems that have no right to exist, but do anyway. Hackers hate these problems[1].

I moved into a new apartment complex a few months ago from out of state. The landlord was going to put us into a different living situation than we contracted for. All our calls were met with a bland, "We ran out of room." Resident hustler roommate had a talk with them and they meekly _knocked down a wall_ to make things right, and gave us a discount.

Hustling has a very different set of skills than hacking. Hacking rewards thinking carefully and doing the Right Thing The First Time, where hustling rewards more of a shotgun approach. Maneuvering one's way past secretaries, remembering 10 acquaintances who might be talked into putting up seed money and calling all of them---these are things hackers _hate_ to do if they can't accomplish them cleverly, and so they often go neglected for great products with hackers behind them (because no one else could be).

I'll take a good hustler over an idea guy any day. If they're legit a hustler, they're worth their weight in gold.

[1]<http://www.paulgraham.com/gh.html>, search "nasty"

<comment><USER16> "Hacking rewards thinking carefully and doing the Right Thing The First Time"

You have just won the gymkhana for linguistic drifting.

</comment></comment></comment><comment><USER17> _The point is, code evolves. It's never "done", so don't write tests that presume it will be static and your interfaces won't change._

That's exactly _why_ one does TDD, so that you can both be guided in your design (code that's hard to test is probably crappy code) and also have confidence when it comes to refactoring. This is _particularly_ important in a dynamic language.

Good tests are not written with the requirement or presumption that the codebase will be tightly coupled or be difficult to change. Good tests are written entirely to _support_ change and to give the developer confidence in the ability of that code to change easily.

I think we need more and more materials out there on good TDD and OOD because I'm finding that a lot of really smart people have just never seen or experienced it and have been turned off by the first few slimy rungs of the ladder (including me, once!)

<comment><USER18> I agree with a lot of what you say.

However, it takes a lot more time to write code guided by tests than it does to just write code. And you may end up throwing away a lot of those tests and rewriting them when the code changes in response to customer feedback.

In my mind that's the main argument against TDD.

I'm happy to write tests after the v1.0 of an application is shipped and I have sign-off from my customer, because it is clear then that the time is not wasted - they have the working product as soon as possible, after all.

However, in my world it's inevitable that I'll be assigned to another task almost immediately after I ship a product. Those tests often don't get written.

I suppose I'm accumulating a lot of technical debt, but everything seems to work...

<comment><USER19> i feel the exact opposite-- if you have a good test, the code is nearly trivial to write. the key is to always bounce back and forth between tests and code, so that you're always just writing the minimum possible thing that passes, which (when looking at a test) is super simple.

"throwing away tests due to customer feedback" is a red herring-- if you weren't throwing away tests, you'd be throwing away code. additionally, the goal with all development is to only sit down and write code when it's _extremely_ unlikely it's going to change. you should be sure that you're not going to drop this thing you're writing, because you've done the necessary user research to be sure the feature is needed and usable.

"I'm happy to write tests after the v1.0 of an application is shipped and I have sign-off from my customer". if you're shipping untested code, that's a huge problem. the last thing you want is to deal with scaled feedback from a 1.0 release alongside ironing out code quality and reliability with tests

<comment><USER17> _additionally, the goal with all development is to only sit down and write code when it's extremely unlikely it's going to change._

To a point. But as a general rule, I don't agree. The goal should be to write code that's both loosely coupled and highly cohesive enough that you can defer as many changes or decisions as possible to the latest point possible. While this might involve spending more time in planning, the process of developing will itself impact the overall design (in most, but not all, cases).

</comment></comment></comment></comment><comment><USER20> I think this is too coarse-grained.

Code I plan to keep? I'm writing unit tests for anything that I'm worried might get broken. Code I'm going to throw away? Fuck it. Rarely worth testing.

The problem comes when people start treating prototype code as production code. That tells me that a) their prototype was probably too rich, and b) they're asking for trouble by building on a shaky foundation.

I think the solution is to be very clear about whether a given chunk of code is a prototype or for real. When a prototype pays off enough that you want to take is seriously, rewrite it. Tests and all.

</comment><comment><USER21> The points made here seem like a great idea if your goal is to get something out the door as fast as possible. But they don't seem so great if your goal is to actually produce something that you can continue maintaining over the next few years. So maybe if your goal is to get bought out, then you only care about having something working for a short time, but if your goal is to build great software that you can continue to build and maintain for 5 or 10 years, then you might need to rethink some of this.

</comment><comment><USER22> TDD does work, and I use it in practice. I know a whole company full of people who all use it in practice, and it works.

I have a guess about why HN likes to upvote opinion pieces that hate on TDD. TDD initially feels like it takes discipline. It's natural to dislike things that require discipline. I think people are trying TDD, finding that it doesn't work as advertised, and gravitating towards the most pleasant explanation: that TDD sucks. They never consider the alternate explanation: you're doing it wrong.

<comment><USER17> I agree, from the perspective of once being one of those people.

I'm seeing a parallel with fitness or eating right. If you leap into a diet or heavy fitness regime right away, it _really sucks_ for a while. But eventually it works out. Practicing mindful, intelligent TDD and object oriented design results in a similar experience. There's a "dip" you need to plough through before things start to click.

</comment></comment><comment><USER23> I agree with almost all of what you said. I'm a coder, agilist, craftsman, blah, blah who has worked on a startup more than once. On the last one I wrote almost no unit tests. The whole thing was so experimental from the start that I never go around to it. I explained it to myself that I was being a hustler. I'm okay with that.

However, I gotta say it. If unit tests are making it harder to restructure your code, you're doing it wrong. The opposite should be true. The greatest purpose of unit tests is to add comfort and safety (and thus speed) to very big refactors and restructuring. If your system behavior changes, yes, your tests gotta change, and that takes effort. But if you restructure your code (e.g., break it apart to add an intermediate abstraction) and unit tests slow you down because you got get all up in 'em, then brother you got yourself some bad tests. Those should not have written.

</comment><comment><USER24> There's too abrupt a distinction between integration and unit tests. Testing the behavior of your code before it's written can be organizing and efficient. Testing private methods or code that is otherwise internal, is, as was mentioned, an additional maintenance cost.

</comment><comment><USER25> I don't really agree that unit tests should need to be re-written quite as much as indicated in the article. Our unit tests tend to have good coverage at the lower, model level. At the UI level we rely more on usability testing because it's a bit harder to test automatically and things tend to change more frequently.

I do think it's best to find a balance that works for whatever particular product you're developing. If you don't follow any methodology at all you're likely to spend a lot of time reinventing the wheel. But you don't necessarily need to follow a methodology to the letter in order to have a great team and produce great software.

</comment><comment><USER26> I think a lot of startups (and companies in general) become so enamored with their work that they lose sight of the real value of what they're doing. For example, as the author said, losing the forest for the trees: getting tunnel vision on one very good feature causes stagnation to the rest of the system as a whole. It doesn't move forward, it just makes one 10/10 feature in a 7/10 system. Metrics that show how useful a userbase finds one feature are always good because they keep the programmer's eye on the difference between being objectively useful and just being neurotic.

</comment><comment><USER27> In case anyone is wondering, the meme 1\. Do xyz 2\. ??? 3\. Profit

Comes from South Park S02E17 Gnomes: <http://www.youtube.com/watch?v=TBiSI6OdqvA>

</comment><comment><USER28> The real point is: Proving stage and scaling stage are fundamentally different.

Not making the transition at the right time (or at all) has probably killed as many startups as over-engineering in the proving stage.

</comment><comment><USER29> > where if I had written unit tests I would have found myself essentially > rewriting all of them to respect the new abstraction layer.

Here's your problem: You're either not writing unit tests correctly, or you're writing _bad_ unit tests. If you have to rewrite all your unit tests to respect the new abstraction layer, you're programming astonishingly poorly - that should be a change to a few different tests, not all of them.

<comment><AUTHOR> the problem isn't that my tests are bad, the problem is that it's commonplace to adapt new interfaces in a constantly evolving codebase. when your unit tests were built for one interface, you have to change them when you change the interface.

for example, the interface to enroll in a course used to be an association between an "enrollment" and the "course". when we added "courses has_many sessions", you enrolled in "courses" via "sessions". you have to rewrite all your enrollment specs to respect that new interface now, regardless of if they were shitty or well-written.

to me, that's a maintenance cost that isn't worth it at a startup given how rapidly you have to change those internal interfaces.

<comment><USER29> > you have to rewrite all your enrollment specs to respect that new interface > now, regardless of if they were shitty or well-written.

No, not if you're doing it correctly.

Again, that's not a unit test, it's a functional test. Unit tests test _really_ small blocks of code. If you're crossing class boundaries, generally, it's not really a unit test.

Let me show you what I mean with tests I wrote:

[https://github.com/newrelic/rpm/blob/master/test/new_relic/a...](https://github.com/newrelic/rpm/blob/master/test/new_relic/agent/error_collector/notice_error_test.rb)

Those are unit tests (not beautiful ones, written to refactor, but I digress) - they mock cross-object (and even cross method, in some cases) and they _really_ focus on individual paths through the code. If you change a method, only tests relating to that method fail.

Edit: also, "the problem isn't that my tests are bad," is a poor assumption to start with - you're assuming _a priori_ something that we're discussing here, which is that you're complaining about problems resulting from not testing correctly. "Bad" is a loaded word in any case - I'm not sure there's a test I've seen that couldn't be improved.

<comment><USER13> And, if you decide to rename any of the methods on the classes you've mocked out here, your unit tests will continue to pass despite the fact your implementation is now full of bugs. And, if you do rename the methods or class you've mocked, you now have to update every single test for any class coupled with the changed method.

I've never understood endo-testing/mock objects in environments where the compiler cannot check your mocked interfaces. I also don't understand how people can aruge that you shouldn't be testing against the implementation and then say in the next breath you should be mocking out every single method call the internal implementation makes explicitly. You're just setting yourself to get lots and lots of green tests on code that will explode as soon as it hits production. Whenever I've done aggressive mock object based testing I soon have zero confidence in my tests because I get burned due to the fact that the mock objects eventually start asserting that the _wrong_ behavior is _right_ and my code explodes when integrated.

(And yes, I know the excuse here is that you should then write integration tests and functional tests too. But seriously now, how many tests are you going to end up writing for your 100 line Ruby class before you decide you're going overboard in the name of purity?)

Better to instead just write it so instead of worrying about no obvious deficiencies there are obviously no deficiencies (avoid side effects, state, extra coupling), and write some functional tests just to be safe. Yes, those ones that actually hit the database and test the interaction between multiple classes that TDD advocates loathe because they are so slow and impure. Slow they may be, but at least I know they're testing the code that's going to run on my servers. I'd rather have 10 tests break when I change one class that are easy to fix than have zero tests break when I change one class and let broken code get to production.

<comment><USER29> Comments one at a time inline:

> And, if you decide to rename any of the methods on the classes you've mocked > out here, your unit tests will continue to pass despite the fact your > implementation is now full of bugs.

Yes, that's why you have other tests to cover those implementations. This is just an isolated example.

> And, if you do rename the methods or class you've mocked, you now have to > update every single test for any class coupled with the changed method.

Yes, this is true. It's a helpful thing in my experience: you wish to mock as little as possible, and so having clear end points is important. Having to change every single usage of the method means you tend to write better code, in essence.

> I've never understood endo-testing/mock objects in environments where the > compiler cannot check your mocked interfaces.

That's fine, don't do it. This is just a demonstration of what works for me.

> I also don't understand how people can aruge that you shouldn't be testing > against the implementation and then say in the next breath you should be > mocking out every single method call the internal implementation makes > explicitly. You're just setting yourself to get lots and lots of green tests > on code that will explode as soon as it hits production.

This is true, however, it means that when you edit one method, at most a half dozen tests will fail, as opposed to your entire test suite failing. You end up with very good locality of failure, as opposed to binary 'something is wrong' tests.

> Whenever I've done aggressive mock object based testing I soon have zero > confidence in my tests because I get burned due to the fact that the mock > objects eventually start asserting that the wrong behavior is right and my > code explodes when integrated.

This is true, but not something that can be avoided - you end up with problems either way, and these test (as above) give you very good feedback about _where_ your error is. That, combined with very comprehensive testing, leads to a situation where you can trust your tests really well never to throw false positives.

> (And yes, I know the excuse here is that you should then write integration > tests and functional tests too. But seriously now, how many tests are you > going to end up writing for your 100 line Ruby class before you decide > you're going overboard in the name of purity?)

It depends on how important it is to you - for example, the tests above test functionality that is core to a piece of code that runs on many hundreds of applications - not something you ever want to break. As a result, the investment was worth it. You have to decide those tradeoffs on your own.

> Better to instead just write it so instead of worrying about no obvious > deficiencies there are obviously no deficiencies (avoid side effects, state, > extra coupling), and write some functional tests just to be safe.

I'm worried about more than obvious deficiencies - I'm worried about corner cases and things you haven't thought of. In writing these tests I caught dozens of unspecified and poor behavior corner cases.

> Yes, those ones that actually hit the database and test the interaction > between multiple classes that TDD advocates loathe because they are so slow > and impure. Slow they may be, but at least I know they're testing the code > that's going to run on my servers. I'd rather have 10 tests break when I > change one class that are easy to fix than have zero tests break when I > change one class and let broken code get to production.

I totally agree with that. There are comprehensive integration style tests and comprehensive functional tests too - but they're pointless without the assistance of specific tests that indicate which portion of the application is failing.

If a functional test fails without a unit test failing, you have work to do on your unit test suite. Unit testing is a tool for programming as much as it is a tool to verify correctness.

</comment></comment></comment></comment></comment><comment><USER30> Hustling is more than listening to customers. Making deals, negotiating, CLOSING smells more like hustling. What kind of manifesto is this?

</comment><comment><USER31> A strong dose of LUXr style UX work and Vlaskovits & Cooper style Customer Development will do a lot to fix these problems.

We all tend toward "doing what we know." (Coding the next feature, for example) If you recognize it in yourself, that's a big start.

</comment><comment><USER32> This is probably a bit of nitpicking, but did you mean tenets instead of tenants?

<comment><AUTHOR> yep, thanks! fixed it

</comment></comment><comment><USER33> Everything in moderation.

</comment><comment><USER34> I identify with Rule #2.

I often "lose" days making code look just a little better, after making it do what it needs to do.

</comment><comment><USER35> I liked the points he made, but didn't like the title because it didn't seem to involve hustling or a manifesto.

</comment><comment><USER36> I would like to add hat anyone that uses TDD to test develop any GUI application such as iphone or android is a freaking ill-informed idiot..unit tests are poor behavior analysts or indicators

<comment><USER37> I think "idiot" is a little harsh. You can definitely be too earnest in writing unit tests, but I think there are places in almost any program that would benefit from them. For example, in a GUI app chances are you have some sort of model of the data; tests could help ensure that the model is well behaved. This way, if you have an odd GUI glitch you can be confident it's actually in the GUI code rather than in the data underlying the interface.

</comment></comment><comment><USER38> Not engineering, though.</comment>


How to convince a restaurant owner to use a free product? - <AUTHOR>

Yet another post from Poucher (http://poucherapp.com) but this time we really hope to get a feedback, instead of gaining a couple of visits to our site.
We offer a FREE service to restaurant owners to increase their number of customers. As in terms of the business side, we've tried every possible way (cold calling, cold emailing, reaching out to food blogs, checking restaurant owner networks and many more sources) but we haven't received any results that we can say "good".
Our question is, how can we convince restaurant owners to use our product completely FREE for the first month and let them decide to continue. We target restaurants in New York and sincerely we don't believe the calls are helping and don't want to spend a fortune on advertising.
We really would love to have any feedback from the smart people here on HN and if you want to see what I'm talking about please refer (http://poucherapp.com/restaurant)
Thanks! <comment><USER2> _We offer a FREE service to restaurant owners to increase their number of customers._

Is this a proven statement or a hypothesis? In other words, are you trying to get your _first_ users or are you trying to get _more_ users?

If you already have users who have succeeded with your product, I would suggest publishing detailed and attractive case studies with your earliest clients.

If you don't have users, then it's a tougher proposition. You need to get out there and get to know the restaurant owners who have early adopter personalities (willing to take a leap of faith). I don't have a lot of advice on how to do this, other than continuing to network. Perhaps offer some additional incentives?

<comment><AUTHOR> Thanks a lot for the feedback! Yes, this is a hypothesis and we are trying to get our first users. We are willing to take that leap of faith definitely. So would you suggest us to search for specific restaurants and visit them in person or would there be any online source you could recommend that have better chances at reaching to restaurants?

</comment></comment><comment><USER3> Well, since you have tried every including cold calling, cold emailing, reaching out to food blogs, etc. etc.

I would advice you to create a free report explaining marketing tips which can help restaurant owners, managers and social media team to boost their business using different strategies and send it across to the key decision makers accompanying with a webinar (Which can be automated using tools available like WebinarJam, etc.) which should be a short 20-50 minutes depending on your plan.

This ways you can ask them to participate in a webinar which cost their business XXXX$ lose if they don't attend it. And its worth XX$ to attend generally but since you want to advice them and talk to them as an advisor or conselor point of standing can really help them out.

This ways you will be engaging your clients in from a different vantage point. And also talk about your system in this webinar on a personal level. Talk about how your product is already helping other clients by talking about case studies with clients who have already utilized your service and are reaping the benefits of using your product.

Just a thought...if you need more info about how to set it up. Let me know. Will become more description.

Advantage of using this kinda strategy will be many.

1\. Set you apart. 2\. Excite them 3\. You help them before hand. Even before asking them to try your service. 4\. They know you care, understand their pain, problems. 5\. You basically create it like an event. Making them understand if they don't participate then your competitors will. And they will have a first movers advantage.

<comment><AUTHOR> This is definitely amazing! Thanks a lot for your feedback, we'll definitely start working on your suggestion.

<comment><USER3> There are a lot of things that you need to make sure will bring in the maximum effect into the whole system. Feel free to ask me more questions if you have any. :)

<comment><AUTHOR> We would love to ask more, as your advices are quite helpful. Thanks for being a part of our project :)

</comment></comment></comment></comment><comment><USER4> Have you ever worked or operated a restaurant? Does anybody in your team have experience in the industry?

<comment><AUTHOR> Thanks a lot for the interest. Unfortunately, as a team we are completely new to the industry, thinking about building a network from scratch. We were trying to reach out to restaurants online. Do you think is that possible or meeting in real life is a must for this project?

<comment><USER4> _Please don 't take this wrong way._

1\. Stop asking for advice on the internet. You can't solve a sales problem by posting on forums. Figure out your own sales funnel by talking with real live prospects.

2\. You need experience in the industry. How can you tell a restaurant owner that your app will make them money when you don't know how a restaurant makes money?

3\. Are you sure restaurant owners want to handout discounts to a lot of patrons? I understand handing out discounts to get patrons into the restaurant. Once they are there the focus is on increasing the average check size, not decrease it. Given how overhead in a restaurant is very large.

4\. Percentages confuse people. They will always pick a dollar amount over a percentage when dealing with discounts. If something costs $20 and you give them a $5 discount they know how much they will pay without thinking too much. But those examples in your landing page have weird percentages. 18.53%? Few people can calculate that on their head.

</comment></comment></comment><comment><USER5> Tell them you're only offering the service to a coveted few restaurants and that their restaurant has been chosen - but they need to try it out within the next week or else a different restaurant will get to try it. Basically, create a sense of urgency and exclusivity.

<comment><AUTHOR> We'll definitely try. Hoping it's not too much fake it until you make it. Thanks a lot!

</comment></comment><comment><USER6> If they're not interested in using a free product, why not charge for it? :)

<comment><AUTHOR> This is literally the best comment/feedback/suggestion ever. Thanks a lot :)</comment></comment>


Should I build this? - <AUTHOR> There isn't a full podcast-in-a-box solution that I can find.  Many of them are focused on recording, or hosting, but none do a Good job of combining them the way YouTube does with videos, or even Tumblr for that matter.
http://complete.audio is the landing page.
Looked at podbean, tryca.st and others. <comment><USER2> The answer to this is always yes. Unless it takes months to build an MVP.

By building one you'll gain a lot of insights 99% of the population don't have, so it's a win win situation.

Don't ask for permission

<comment><USER3> I don't agree. Spend a week coming up with 100 other ideas first, and then get feedback on the most promising ones.

Then do the best one. It might still fail, and if it does you'll still learn a lot, but you won't be wasting months or years when you could have chosen something more promising from the beginning.

(And that's not a criticism of this specific business idea.)

<comment><USER4> Alternatively, solve your own problems first and you'll make your own life better and potentially others (i.e. your users) too.

<comment><USER5> I never liked this approach. I am a dev. If all I did was solve my own problems all I would write is developer tools. Which is about the worst market to sell in. Many problems out there that aren't my own.

<comment><USER6> You are also a human. You may be a father, a driver, a shopper, ... Most widely spread projects are not about jobs.

<comment><USER5> Sure, but think about b2b. An example problem is software for a port-a-potty business. I doubt many people that run a port-a-potty business are as good of software developers as I am. If everyone just scratches their own itch, who would write software for port-a-potty businesses? Do they just not get software?

Maybe a little bit of a stupid example, but there are many unsexy b2b software opportunities out there. There is no need for it to be an itch for someone to come in and make a lot of money making their life better.

If you can scratch your own itch and make something awesome, great! If not, it doesn't really matter as long as you scratch someone's itch.

In my opinion - The top reason to pick a product is where can you provide the most value. If you can solve your own problem of unorganized MP3 files but there is no value (i.e. no one will pay you $20 for it) - then don't do it. If you can solve something unsexy (i.e. save a port-a-potty company $2,000 a month), you can very likely make real money on it.

</comment></comment></comment></comment></comment></comment><comment><USER7> I read your message and looked at your landing page... I still don't have a clue about what you're trying to accomplish.

Are you building a search engine for podcasts?

</comment><comment><USER8> What complication of the current process would your product solve? I'm not all that familiar with the typical podcast workflow, but to me it seems the connection between recording/editing and publishing is just "upload an audio file", which doesn't _seem_ like a big issue, so there is probably more to what you are planning integration-wise?

<comment><AUTHOR> What problem are you trying to solve?

Let novice users (or even lazy pros) create a professional quality podcast without needing extra software or hosting.

Re: upload an audio file

Soundcloud built their business around doing just this, albeit for a different market. They do support Podcasts but you can tell from the interface it is meant for music primarily.

<comment><USER9> I'm not saying there's not a market here -- I'd like to hear more details (especially as someone starting a podcast).

Your landing page doesn't provide any information, and I'm still unclear what the specific pains you're solving are?

There's already several podcast-specific hosting companies (libsyn, blubrry, acast, buzzsprout), so what are you adding?

There's the RSS feed management and submitting to iTunes (most of the above have that).

On the audio creation part, there's Auphonic (automatic leveling and some mixing) and not much else (that I'm aware of) that's automated.

From my point of view, editing, transcribing, splicing ads, chapter-marking, compiling show notes, etc., are all manual processes right now, so automating or streamlining them would be great.

Something on the ads/sponsor side of things would be valuable: Google had tried doing this for radio spots back in the mid 2000's, but it flopped (not enough good inventory, among other things). I think with podcasts, there's a market that could be created.

</comment></comment></comment><comment><USER10> What about Spreaker[1] ? Supports recording, hosting, publishing and searching. Has mobile application to accompany the app and it's been around more than 2 years.

[1] [http://www.spreaker.com/](http://www.spreaker.com/)

</comment><comment><USER11> Twitcasting does that, but go ahead if you can do it better.</comment>


Microsoft Spartan browser UI demonstrated - <AUTHOR> https://www.youtube.com/watch?v=Fj9QAMVmdbM

<comment><USER2> If Cortana and other intelligent agents become integrated in browsers (Google Now in Chrome, Siri in Safari), how will Mozilla compete? Do they have the resources and tech? Perhaps Google, Apple, or Microsoft would allow Mozilla to use their services, but that seems like risky business, and how will Mozilla maintain their end-user confidentiality and control?

The same question applies to other FOSS projects where intelligent agents apply, which is potentially very many: Can a FOSS project really match this feature?

</comment><comment><USER2> The title of the video better conveys its subject than the one here (and IMO is more interesting): "Windows 10: Cortana Integration in Spartan"

<comment><AUTHOR> Since not everyone knows what Cortana is, and it's part of the UI, I decided to avoid the term. dang feel free to change it.</comment></comment>


Before the shock wave, the brightness of a nuclear explosion boils everything - <AUTHOR> http://engineer--cat.tumblr.com/post/85107895095/lumoblaze-jonkakes-bigcoolscorner <comment><USER2> Is this light converted into Kinetic energy? I don't see how this is possible.

<comment><USER3> Photons are absorbed by surfaces and those surfaces heat up--this is how radiative heating (as opposed to conduction or convection) works.

This works so well in fact that it burned the shadows of Japanese into surfaces when the bombs fell.

Nukes are fucking terrifying.

<comment><USER2> Oh wow! Thank you for explaining.</comment></comment></comment>


Show HN: Connect to Your Data, Clean, Wrangle, Combine, Explore, Publish - <AUTHOR> http://stagraph.com/ <comment><AUTHOR> Hi. This project was presented one year ago. But today it is a complete new tool for work with data. Using visual interface you can use R features without coding. Useful for beginners in areas such as data wrangling and data visualizations. Program transforms your actions in interface into R scripts. Now with freemium licensing.

<comment><USER2> How are you dealing with the GPL license that R has? Don't you have to open source this since it contains R?

Not trying to be a jerk but we have R integration with our product and it's a pain.

<comment><AUTHOR> I don't modify or close the R. Stagraph and R are independent apps. My app only sending R scripts via R console. Similarly like it is in other commercial apps.

</comment></comment></comment><comment><USER3> Site is down, Google Cache URL: [http://webcache.googleusercontent.com/search?q=cache%3Astagr...](http://webcache.googleusercontent.com/search?q=cache%3Astagraph.com)

</comment><comment><USER4> Any alternatives for macOS?

<comment><AUTHOR> I only know about open source Deducer ([http://www.deducer.org/pmwiki/pmwiki.php?n=Main.PlotBuilder](http://www.deducer.org/pmwiki/pmwiki.php?n=Main.PlotBuilder))</comment></comment>


The Resolution of the Human Eye Tested Is 10MP - <AUTHOR> https://ipvm.com/reports/testing-the-resolution-of-the-human-eye <comment><USER2> [https://en.wikipedia.org/wiki/Cone_cell](https://en.wikipedia.org/wiki/Cone_cell) claims (with caveats) around 100M light sensitive cells (90M rods and 5M cones), but that doesn't mean 100 megapixels for various reasons.

Some differences between the human eye and a typical digital camera:

\- resolution varies hugely over the retina

\- color sensitivity varies hugely over the retina (you can't see color outside of the fovea)

\- the optic nerve has only about 1M ganglion cells ([https://en.wikipedia.org/wiki/Optic_nerve#Structure](https://en.wikipedia.org/wiki/Optic_nerve#Structure)), so there is significant 'compression' very early on ("In the fovea, which has high acuity, these ganglion cells connect to as few as 5 photoreceptor cells; in other areas of retina, they connect to many thousand photoreceptors.")

\- bandwidth of the optic nerve is estimated at 10 mega _bit_ per second ([https://www.eurekalert.org/pub_releases/2006-07/uops- prc0726...](https://www.eurekalert.org/pub_releases/2006-07/uops- prc072606.php)) (1)

\- that is very soon further compressed; I can't find decent estimates for what can be consciously seen, but am sure it is less than 1kB/second (corollary: photographic memory doesn't exist)

=> "The eye is not a camera" would be a better answer.

(1) as with almost all of these estimates, a factor of ten is nothing.

<comment><AUTHOR> "The eye is not a camera" Yes, that is obviously true.

The point is that the eye has the effective resolution, in terms of reading an eye chart, of a 10MP camera.

<comment><USER2> No, it doesn't.

If you zoom in on those photos, you can see that the camera images entire lines of text at the same resolution. A camera can 'read' the entire chart in one snapshot.

The eye doesn't work that way. For example, it is anisotropic in resolution; at the fovea, it has more 'pixels', but away from it, it has way fewer. Effect? You cannot read a line from a Snellen chart without moving your eyes. The eye doesn't take snapshots.

</comment></comment></comment><comment><USER3> Curious why they used IP cameras, my guess is it had less to do with science and more to do with who they are.

Reason I point this out, notice how blocky the images in general are, especially with lower light? Take any prosumer/pro digital camera of the same resolution and you'll get significantly better results, especially at 1 lux.

To reword the title to be a lot more accurate, "the resolving power of the human eye is roughly equivalent to a 10MP IP camera in a well lit room". Definitely wordier and less click baity, but accurate to the "analysis" they did.

</comment><comment><USER4> I wonder what the other experiments were that were performed that came to such wildly different figures.</comment>


Will Apple remove the home button from the next-gen iPad and iPhone? - <AUTHOR> http://www.networkworld.com/community/blog/will-apple-remove-home-button-next-gen-ipad-a

<comment><USER2> I would be surprised.

The new gestures in iOS 4.3 are neither obvious nor discoverable. Will anybody instinctively know that getting back to the home screen requires a pinch gesture with five fingers? (Using more than one finger also precludes one hand use and is awkward on an iPhone or iPod touch.) You can currently comfortably use iOS without ever putting more than one finger on the screen. Zooming might be less precise but double tapping works perfectly fine (edit and correction: you need to double tap with two fingers to zoom out in Maps so this is not entirely true). A departure from that principle would be weird.

These gestures are nice shortcuts but, I think, not much more.

I might be less skeptical if there was any credible evidence that Apple plans to steal from Palm and Blackberry and will extend the touch surface onto the bezel. That would allow for much more obvious and intuitive one finger gestures.

That said, Apple does weird stuff from time to time. The iPod shuffle had no buttons for a year. (At least Apple is also willing to correct such mistakes. The current iPod shuffle regained buttons.)

<comment><USER3> Oddly enough, I asked 3 people in the office what they would do to close an app on an iPad and they all did the finger crumble gesture.

<comment><USER4> The gesture is remarkably natural to use. I was surprised.

</comment></comment></comment><comment><USER5> I doubt it. My two year old can easily use an IOS device as they are. There is no way she could do multi touch gestures. Disabled people can use them as they are many couldnt do complex many finger multi touch gestures. I think apple gets this.

</comment><comment><USER6> I hope not. I own an iPhone, Nexus One and a HTC Surround (WP7). I struggle with the soft keys on my Nexus One everyday. I think they're absolutely horrible. The soft keys on my HTC Surround is much better than the Nexus One, but I still prefer my hardware home button on my iPhone.

That said, seems like I'm not the only one that thinks the Pre's off-screen touch area is a good idea worth copying. But I can't imagine these four/five finger gestures translating well to the small screen on the iPhone. There goes one hand use...

</comment><comment><USER7> Home button is a major inconvenience on an iPad for me, I just never remember on which side it is, I would be totally happy if its replaced with a gesture. On an iPhone its a whole different story.

</comment><comment><USER8> That would get them an extra inch of real estate on the iPhone screen. That's significant.

<comment><USER4> Fingers still need somewhere to go when holding it. It's not just the button that defined the size of the border. However there's no reason to expect the border couldn't be a bit more narrow without a button. They could also possibly do something tricky with touch zones extending beyond the screen and into the border so perhaps they could detect when fingers are wrapped around near the edges and filter them out.

</comment></comment><comment><USER9> For the iPhone it could be an advantage, but since the iPad has/needs a 'bezel' area around the screen, there's not much point in removing it. Still the gestures would be a good backup/alternative option.

<comment><USER10> This has more point on the iPad than on the iPhone. The iPad is big and heavy, making it much more of a chore to reposition/flip it in order to find/press the button. It's also very easy to hit the button by accident.

Double-clicking to switch tasks is especially difficult. The weight and size makes it very hard to get the right muscle tension to press the button rapidly. I often press it too slowly and get the home screen instead of the task bar. I'm surprised that Apple even released it this way. Maybe the long delay bringing multitasking to the iPad had something to do with this.

</comment></comment><comment><USER11> How would you take screen-shots? Or more importantly, do a hard reset when it crashes. I find the home button is also easier to use to wake my iphone than the power button is.

</comment><comment><USER12> My home button died on my iPad after six months. Warranty replacement.</comment>


Most Favorited Hacker News Submissions of All Time - <AUTHOR> https://futurice.com/blog/hacker-news-favorites <comment><AUTHOR> It's pretty interesting the top favorited articles are about learning. It's a good list for finding curated educational resources. The top ones are really mind blowing in execution.</comment>


Plan B for Fundraising (Guy Kawasaki making sense) - <AUTHOR> http://blogs.openforum.com/2008/09/09/plan-b-for-fund-raising/

<comment><USER2> This reminds me of the Greg McAdoo vs David Heinemeier Hansson debate at Startup School. It totally polarises 'the VC approach' and 'bootstrapping' and talks in very general terms.

I don't believe there's a right answer to this. Surely the answer is always "it depends". And what it depends on is the interesting part of this whole debate.

<comment><USER3> I think it depends on your time line and whether you can create a working, valuable website/application/product/whatever by bootstrapping. Some industries you can, some you can't.

We could have easily done <http://TicketStumbler.com> by bootstrapping, but YC moved our time line up by at least six months to a year, which we deemed very much worth the equity we gave up.

<comment><USER4> As Guy stated, for most companies, going the YC route qualifies as plan B more than plan A. Two guys living in their parents basement and giving up 6% for 15 - 20k so they can scrape by for six months is a far cry from giving up 30 - 40% for $1-2m so you can hire five people and burn through that money in less than a year building a product for all the users you're sure you're going to get.

<comment><USER3> I definitely agree. I was responding more to langer's comment than the article itself.

Now the decision is: does the money, leverage and ability to expand faster (in theory) we'd receive from plan A outweigh the amount of additional equity we'd have to give up.

<comment><USER5> And the time and effort expended in the process of fundraising.

<comment><USER3> And the enjoyment experienced from all the free breakfasts/lunches/dinners/beers/paint ball outings. :)

</comment></comment></comment></comment></comment></comment><comment><USER6> Guy is clearly coming around to bootstrapping. Welcome to the bright side.

Why We Must Bootstrap to Succeed

<http://www.lovemytool.com/blog/2008/06/bootstrapping.html>

<comment><USER7> He's not necessarily saying to bootstrap. Only during the initial stages. Lack of money gives you a much more realistic picture of what's going on with your company.

<comment><USER6> I agree. And that's my view as well. Bootstrapping is not a lifestyle, but a strategy.

</comment></comment></comment><comment><USER8> Kind of surprised myself by how much I enjoyed this. It's refreshing to see Guy writing in his old style (the way he wrote for his personal blog around 2006). Great storytelling to demonstrate the point: that bootstrapping's the word for serious entrepreneurs.

The best piece of advice comes in the form of VC money for expansion, not creation... it's easy to look at VC as the key to all your grandiose plans, but that's almost never the way things play out. Better to take some or no money, grind away, and only take the funding exactly when (or just before) it's absolutely essential for your survival.

</comment><comment><USER9> Call me old-fashion but I wholeheartedly agree with Plan B, Plan B focuses on being cashflow positive first before ramping up the growth strategy while Plan A focuses on getting big fast before figuring out how to get to cashflow positive

And that brings me to the point made by Mark Cuban about how the current batch of entrepreneurs are being cheated by the likes of Netscape into believing that you should follow an eyeballs-then-cash strategy, instead of the common- sense cash-over-eyeballs strategy (or what Mark would say Cash-in-the-pocket strategy).

Fame/popularity on the Internet is ephemeral (Geocities? Youtube celebs?) and you jolly well make sure you are bringing in cash fast. Sony wouldn't have bought ClubPenguins for so much if they weren't bringing in USD 80 million in revenue every year. If ClubPenguins had twice the eyeballs but one-tenth of the revenue, the buyout price would be way lower.

That is not to say that the eyeballs-then-cash strategy wouldn't work but it is statistically insignificant when compared to the larger population.

</comment><comment><USER10> It makes me feel quite a bit more confident about my decision to save first.

[http://foohack.com/2008/08/why-im-not-working-on-my- startup-...](http://foohack.com/2008/08/why-im-not-working-on-my-startup-yet/)

<comment><USER11> Good luck. Make sure you quit and do it, though. There is no better time than the present... with Posterous we could have waited another 6 months to apply to YC, but I have no regret at all that we did it earlier.

Anything can happen, and tomorrow is not promised. So start. =)

</comment></comment><comment><USER11> This is Grade-A brilliant.

<comment><USER12> If you liked this, you might also like Seth Godin's Bootstrapper's Bible. It costs two bucks as a PDF on Amazon, but I personally got a lot out of it.

<comment><AUTHOR> I looked into this -- didn't know Seth wrote a boostrapper's bible. Turns out it's available for free now:

<http://www.changethis.com/8.BootstrappersBible>

<comment><USER13> Thanks for the link. Looks like a promising read!

</comment></comment></comment></comment><comment><USER14> _This is a fundamental fact of companies: they are bought not sold._

Excellent insight</comment>


Computer History Museum opens in Mountain View - <AUTHOR> http://www.sfgate.com/cgi-bin/article.cgi?f=%2Fc%2Fa%2F2011%2F01%2F16%2FBU6N1H999R.DTL <comment><USER2> I didn't realize they weren't "open" before!

This place is super cool. We showed up late for the Difference Engine demonstration, but the volunteer re-ran it just for us.

The collection in impressive, lots of cool stuff to look at ("We went to the moon with _that_??").

</comment><comment><USER3> I went here last year (the article's title confused me; didn't realize it didn't have regular hours until now) and was extremely impressed by the collection.

Plenty of enormous machines to marvel at, and plenty of smaller examples I once used to have at home or work that I got all nostalgic about.

Definitely a cool place to check out if you're visiting the area.

</comment><comment><USER4> Yeah, i was shocked, double checked the dates. I've been to the computer history museum several times over the years. Always at events, but still. I just assumed it'd been open for a long time.

</comment><comment><USER5> A donation from the Bill & Melinda Gates foundation! I'm glad Bill doesn't forget his roots.

</comment><comment><USER6> I visited last year, definitely worth a visit if you're in the area. The Babbage engine reconstruction and the PARC stuff I especially found neat. Not to mention the nostalgia of seeing your first TRS-80 Model I (or whatever your first was).

</comment><comment><USER7> Yeah. I visited the museum in May 2010 and it was open then. I recall that one portion was closed for renovation or something but there was still plenty to see. The Babbage engine was the star of the show.

</comment><comment><USER8> I went to an open-house for this new exhibit. I can't recommend it highly- enough... the collection is amazing, and the displays they've built around some of the pieces are just as much so. Definite +1.

</comment><comment><USER9> Re-opens.

</comment><comment><USER10> Is this museum starting the tour off with a simple, "old" video game with a custom joystick?

<comment><USER11> If I recall correctly the tour begins with an abacus.

</comment></comment><comment><USER12> Huh? SFGate is a little slow on the uptake. The museum has been open for many years now. I was there two years ago.

<comment><USER13> Parts of it have been closed for at least months - last time I went there wasn't much to see and the staff told us they were renovating.</comment></comment>


Ask HN: Learning go – why is "gofmt" such a big deal? - <AUTHOR>

Quite curious about this one, and thought I'd pose the question here. I've recently started to learn Go - quite a wonderful language for some server-side processing libraries I'm working on - and I recall seeing many people say, "gofmt is the bomb," or, "gofmt is one of the greatest things any programming language could have." It seems that the big deal is simply that nobody argues over code formatting.
However, with tools like EditorConfig [0] making code formatting concerns largely irrelevant in a given repo (aside from syntax-affecting formatting issues), it seems to me that the code formatting imposed by gofmt isn't really awesome, but rather that it was there first.
Is that the case? Is that all there is to gofmt - it was there first, so nobody bothered arguing? <comment><USER2> Yes. Source code reformatting has been around since `indent`, and probably before. The problem was getting everyone to agree on a style and use it consistently. Go solved that by providing an official style, and official tool, and a culture that consistently uses that tool. The only other language that's managed that was Lisp (via emacs), which for a variety of other reasons never became popular. Many others (eg. Java, C, Python, etc.) may provide the tool and/or the styleguide, but not the culture that consistently applies it.

In other words, it's a cultural innovation, not a technical one.

<comment><USER3> Formatting and indenting are slightly different things.

Formatting in Lisp is either called pretty printing or grinding. Formatting includes the layout of code including where the line breaks are in code.

        CL-USER 50 > (PPRINT '(DEFUN FOO (A B C) (* (+ A B C) (+ (EXPT A 2) (EXPT B 2) (EXPT C 2 )) (+ (EXPT A 3) (EXPT B 3) (EXPT C 3)))))

        (DEFUN FOO (A B C)
          (* (+ A B C)
             (+ (EXPT A 2) (EXPT B 2) (EXPT C 2))
             (+ (EXPT A 3) (EXPT B 3) (EXPT C 3))))

</comment></comment><comment><USER4> Most tools have a multitude of configuration options which everyone wants to set differently.

go fmt comes with the official distribution, is zero configuration, and everyone who uses go uses it.</comment>


Drawscript – convert Illustrator shapes into code - <AUTHOR> http://drawscri.pt/ <comment> TD-Linux Why is this implemented as an Illustrator plugin, rather than just a SVG to draw call converter that can be implemented in the build system? Or just a SVG reader in the final app?

Doing it this way seems to be encouraging people to paste in the code and then lose the original SVG, leading to pain later.

<comment><USER2> For those wanting Objective-C, Swift or C#, PaintCode [1] seems to support SVG conversion.

[1] [http://www.paintcodeapp.com/](http://www.paintcodeapp.com/)

<comment><USER3> another option is just keep the assets as SVG's and use a library to do the conversion (ios/osx specifically, I personally use SVGKit - [https://github.com/SVGKit/SVGKit](https://github.com/SVGKit/SVGKit) )

</comment></comment></comment><comment><USER4> Super cool, I've been on situations where this would have helped speed things up.

Very excited to give it a try, I have Illustrator 18.1.1 and it only works on 16 to 17.9, why is that?

<comment><USER5> There is an open issue[1] on github that might helps with that, but I haven't tried it myself. I will try tomorrow.

[1] [https://github.com/tomkrcha/drawscript/issues/8](https://github.com/tomkrcha/drawscript/issues/8)

</comment></comment><comment><USER6> > Obj-C C++ Javascript CreateJs/EasyJs Processing Actionscript 3 JSON Raw > Beizer Points

Why do we have a bunch of languages/technologies listed as one of the first things on the page with no explanation?

<comment><USER7> those are the export formats</comment></comment>


Here's what happens to your retina if you view an eclipse without protection - <AUTHOR> https://arstechnica.com/science/2017/08/heres-what-happens-to-your-retina-if-you-view-an-eclipse-without-protection/ <comment><USER2> I'm sorry, I know the official line is to be dead-scared of anything natural out there but this is just total bullshit. If sunshine was poisonous to your eyes you would already be blind. I look straight into the sun for several minutes at a time on a regular basis, if it gets uncomfortable I stop; been doing that for most of 40 years, no big deal. The sun is a life source, not our enemy. The only real danger is viewing the sun through lenses, glasses and other human contraptions. There even used to be a death penalty on sun gazing back in the days; you have to stop and ask yourself why the people at the top are so hellbent on preventing it. But then who will buy all the useless protection-gadgets, and pay for the useless certifications, I hear you ask; not my problem.</comment>


Ask YC: Move to valley from UK to do startup - <AUTHOR>

Hey guys,
We are looking to apply for the next batch of YC funding, but if that doesn't pan out then we still want to move to the valley to do the startup.
Visas seem like the biggest issue here. Anyone got any experience of this? <comment><USER2> I think the guys over at <http://auctomatic.com/about> did that. They might give a few pointers if you emailed them. They're still pretty small.

And, generally due to our current administration, I think that the visa thing tends to be a nightmare.

<comment><USER3> The visa thing, sadly, ends up being a nightmare under pretty much any administration. Not that the current one has helped matters (far from it), but basically it's been a bit of a hassle as far back as I can remember (mid-late 90ies).</comment></comment>


Bret Victor: Drawing Dynamic Visualizations - <AUTHOR> http://vimeo.com/66085662

<comment><USER2> Data-driven visualizations like these seem well-suited for data exploration, but the suggestion that scientists lives will change for the better from them seems like a stretch. I'm not just talking about constructing original visualizations like "Feynman Diagrams". As far as communicating science goes, plots need to be "as simple as possible but not simpler" and as reproducible as the science. If I see a paper with some homebrew plot and I can't immediately compare my data to it, that's a problem.

<comment><USER3> Bret mentions the symbols (in this case, code) still being used. What I would foresee is this: take the recent LightTable video that showed a code on the left, output on the right view (or Bret's similar construction from a prior talk). Now, add a "design" switch that converts the code half to something similar to the left panel from the video. Finally, turn your paper into something where the entire body is html, the "homebrew plot" is a javascript expression, and the entire work (data and code) is accessible via View Source and Inspect Element.

</comment></comment><comment><USER4> Bret Victor hits another homerun with this video.</comment>


Brain-melting Unity demo becoming reality-creating puzzle game - <AUTHOR> https://nwn.blogs.com/nwn/2020/02/matt-stark-viewfinder-unity-game.html <comment><USER2> It makes me really happy to see game developers experimenting with really novel and bold game mechanics. I used to play a lot of games, but they all feel the same: grinding, bland, and predictable. I have an appetite for something really new and innovative, and if the success of Portal is any indicator, so does the gaming community as a whole.

Some other games with interesting mechanics:

* Superliminal - [https://www.youtube.com/watch?v=qyQ_y5YzsKQ](https://www.youtube.com/watch?v=qyQ_y5YzsKQ)

* Teardown - [https://www.youtube.com/watch?v=aAgVSTrqNOc](https://www.youtube.com/watch?v=aAgVSTrqNOc)

<comment><USER3> Thanks for sharing this, I had no idea about the existence of these things!

</comment></comment><comment><USER4> This currently feels more like a tech demo than a game, and it looks like they might have to force the game part in. It will at most be a puzzle room solver game with probably an easy reset option.

<comment><USER5> He could add Tribbles. Your goal is to make more room for more tribbles, but if there are any tribbles in your photographs, they get duplicated too!</comment></comment>


Show HN: FizzBuzz in an esoteric programming language. - <AUTHOR>

I've been contemplating applying for HackerSchool, so I was looking at the application and saw the piece about FizzBuzz. I'd somehow never heard of this before. It is a trivial task in a conventional language, so I thought I would have some fun on a long internet-less train ride back to Rochester.
"Piet is a programming language in which programs look like abstract paintings" http://www.dangermouse.net/esoteric/piet.html
Doesn't it look kinda beautiful? http://benbrittain.com/imgs/fizzbuzzLarge.png
here is a picture of the execution so you can see what is actually code.
http://benbrittain.com/imgs/trace.png
to the best of my knowledge, I'm the first person to write FizzBuzz by hand in Piet. (one guy built a code generator) <comment><USER2> Possible that you're the first. I was going to do Piet but then saw your post, so I settled for Befunge instead to keep some two-dimensionality in there.

<comment><AUTHOR> wow... does everyone do this? I was hoping it would give a little uniqueness to my submission... oh well. It was a blast to write though.

</comment></comment><comment><USER3> Cool! I was a smartass and wrote mine in COBOL.

<comment><AUTHOR> I like it! best of luck to you!</comment></comment>


Ask HN: Database for collecting research data in rural areas - <AUTHOR> I'm designing an offline-first web apps that allows researchers to collect research data on-site in rural areas. The current requirements is that they would go out to areas with no electricity and fill out forms on their mobile devices. I choose mobile devices rather than laptop because everyone has it and with power banks, one can easily extend the battery.
At the end of the day, they would run return to hotel and sync the data with a remote or local server. I did my research and it seems like these are promising solutions:
- PouchDB (https://pouchdb.com/) - Gun.js (https://gun.eco) - Roll my own
Do you have any experiences regarding this? <comment><USER2> Couchbase Mobile's Couchbase Lite for iOS, Android, etc is open source and offers peer-to-peer sync. I'm not sure if it currently syncs with PouchDB also, but I think it might. [https://www.couchbase.com/products/mobile](https://www.couchbase.com/products/mobile)

Here is one user doing similar stuff with it: [https://www.datanami.com/2017/11/07/african-hospitals-go- dig...](https://www.datanami.com/2017/11/07/african-hospitals-go-digital- nosql-mobile-tech/)

And here is an older iteration: [http://radar.oreilly.com/2011/03/couchdb- zambia-healthcare.h...](http://radar.oreilly.com/2011/03/couchdb-zambia- healthcare.html)

<comment><AUTHOR> Thank you very much for your response. I didn't know about Couchbase and its relation with PouchDB. Those case study is also interesting as well. I'll take a closer look at those.

</comment></comment><comment><USER3> Have you looked into [https://datproject.org](https://datproject.org) ?

The dat protocol originated as well as a way to facilitate sharing in the scientific community: [https://www.datprotocol.com/](https://www.datprotocol.com/)

There is a project of a browser built on top of it: [https://beakerbrowser.com](https://beakerbrowser.com) It's only nodeJS for now, but maybe serves as inspiration.

<comment><AUTHOR> Thank you for responding. After a quick glance at datproject, I feel like it is not a fit for me. Dat feels like a better torrent for archiving data, not a protocol for building offline-first app with complex API</comment></comment>


Facebook Engineer blocks photosharing site imgur, apologises in Reddit fashion - <AUTHOR> http://thenextweb.com/facebook/2012/07/17/facebook-engineer-accidentally-blocks-photosharing-site-imgur-apologises-in-true-reddit-fashion/

<comment><USER2> I thought it was a legitimate block at first. Half of my newsfeed is imgur links that pretty much all qualify as spam. It's one of the reasons I've moved away from Facebook.

...I don't want to sound like a crotchety "I'm leaving Facebook" person, but it's deteriorated my experience to the point where I don't visit as often. That being said, blocking imgur would not be the appropriate way of solving that problem.

<comment><USER3> Easy fix: As not imgur or facebook are responsible for the spam but your friends, just unfriend them or remove them from your newsfeed.

<comment><USER4> So you are blaming users for myspace's fail? or myspace itself which created a platform that led users to make myspace useless.

<comment><USER5> He is saying you failed because you have stupid friends.

<comment><USER3> Pretty much:)

</comment></comment></comment></comment></comment><comment><USER6> Cool dog.</comment>


Who's Freezing Hiring from Coronavirus - <AUTHOR> https://candor.co/hiring-freezes/ <comment><USER2> Worst timing for me to be on the job market. Right as the pandemic hit, I got 3 separate job offers for Rails that all got subsequently delayed due to the city (philly) shutting down or because of the virus impacting customers for the one remote offer i got. They're all saying 2-4 weeks delay, but this is likely going to stretch on for months if we as a country don't making testing readily and frequently available to everyone. Easter is out of the question.

</comment><comment><USER3> I just got a couple recruiters at the end of last week, and a couple consulting offers, but I'm freezing getting a new job until this is over unless the offer is amazing - and since I am at near the top of the pay grade in my area it seems unlikely I would get something that amazing.

</comment><comment><USER4> It's actually a little encouraging to see the number of green 'hiring' spots.

</comment><comment><USER5> Just contributed as well. Thanks for doing this, it's great work.

</comment><comment><USER6> This is great. Thanks!

</comment><comment><USER7> It seems this person is not doing due diligence and some of this is factually incorrect. I've been seeing corrections but I don't recommend trusting this.

<comment><USER8> We're getting 1+ submission every minute and doing our best to cross reference everything. Email me at firstname.lastname@example.com with the specific entries that are incorrect and we'll fix them right away.</comment></comment>


Google Docs OCR in 34 languages - <AUTHOR> http://googledocs.blogspot.com/2011/02/optical-character-recognition-ocr-in-34.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+OfficialGoogleDocsBlog+%28Docs+Blog%29&utm_content=FaceBook

<comment><USER2> I was very disappointed in my results:

[https://docs.google.com/document/pub?id=17-AYllk3J2SRcIzHKpf...](https://docs.google.com/document/pub?id=17-AYllk3J2SRcIzHKpfy8gUZYPpaN7hnezXhiCwcDYo)

Does this image have a resolution or a font problem?

</comment><comment><USER3> I don't know what they're using, but I hope it gets better soon. Particularly with Asian character sets it's pretty hit or miss. Then put the result through Google Translate and... wow (not in a good way). Love the concept, just hope there's a 2.0 in the near future!

</comment><comment><USER4> Any idea if google is uing using <http://code.google.com/p/ocropus/> to do this?

I was under the impression that was what they used for the book scanning project.

<comment><USER5> Maybe they're using this: <http://code.google.com/p/tesseract-ocr/>

</comment></comment><comment><USER6> I wonder how long it'll take them to implement automatic language detection like what we see in Google Translate.

</comment><comment><USER7> Is there an API for this?</comment>


Gratipocalypse: Gratipay skipping weekly payment cycle - <AUTHOR> https://medium.com/gratipay-blog/gratipocalypse-42fd0ec0d9e8

<comment><AUTHOR> The drama unfolding on their forum seems messy. Apparently someone reported them to FinCen out of spite? Apparently weev is involved?</comment>


Show HN: App launched yesterday and already had acquisition offer - <AUTHOR> https://itunes.apple.com/us/app/at-the-pool/id726603832?ls=1&mt=8

<comment><USER2> There's a big difference between a launch and a pivot/relaunch: [http://techcrunch.com/2013/11/07/social-network-at-the- pool-...](http://techcrunch.com/2013/11/07/social-network-at-the-pool- relaunches-on-mobile-with-an-app-to-better-connect-nearby-friends/) The title as-is implies that this is a completely new app.

Again, there needs to be a clear guideline for how to use Show HN in submissions: should it be used to showcase a cool project, or should it be used as a form of Hacker News-friendly SEO for veiled product announcements?

<comment><USER3> I don't think there needs to be any official guideline about that. It's a community thing, and the community will vote based on whether it's interesting and whether the poster is known. I don't think those veiled SEO announcements get too many upvotes (unless said SEO black hats also commandeer an army of bots around here).

Personally, I've done a bunch of "Show HN" posts. A few of them did great (one went to #1 with over a hundred upvotes), while others only got one or two votes. That's how it should be, I guess.

<comment><AUTHOR> Sorry if it wasn't more clear. This is a completely new product built from ground up, new backend, new servers, new user tables, entirely new front-end, new features and functionality. The only thing that remains is the brand and the ultimate goal to connect people offline. I figured "Show HN" made sense because it's something we just made and went live with for the first time less than 24 hours ago and I wanted to show it to the HN community.</comment></comment></comment>


Libpostal: A C library for parsing/normalizing street addresses around the world - <AUTHOR> https://github.com/openvenues/libpostal <comment><USER2> I work for UPS as software developer and surprisingly, I work for the department that is responsible for parsing addresses and matching them with actual physical addresses. We cover US, CA & EU (incl. UK). In our department, we have a guy whose entire career at UPS is nothing but maintaining library that parses addresses. It is very hard to get things right, unless you maintain that library all the time. Genuinely wish you good luck !

<comment><USER3> BTW, I'm a guy who has been building address parsing software since 2005. ( geocoder.ca, geocode.xyz ) It is HARD.

Currently I'm using machine learning similarly to libpostal to improve my software.

It works better than libpostal in some cases (for eg:

USA: Start libpostal: 751 FAiR OKS AVENUE PASADNA CA

road => fair oks avenue pasadna

state => ca

house_number => 751

Geocoder.ca 751 FAiR OKS AVENUE PASADNA CA

[https://geocoder.ca/?locate=751+FAiR+OKS+AVENUE+++PASADNA+CA...](https://geocoder.ca/?locate=751+FAiR+OKS+AVENUE+++PASADNA+CA&geoit=x)

stnumber: 751

staddress: N Fair Oaks Ave

city: Pasadena

prov: CA

postal: 91103-3069

libpostal from Little Plate Shop 9 11 Deodar Drive Burliegh Heads QLD 4220

house => LITTLE PLATE SHOP

city => HEADS

postcode => 4220

road => DEODAR DRIVE BURLIEGH

state => QLD

house_number => 9 11

Geocode.xyz Little Plate Shop 9 11 Deodar Drive Burliegh Heads QLD 4220

addresst: DEODAR DR

region: QLD

postal: 4220

stnumber: 11

prov: AU

city: BURLEIGH HEADS

countryname: Australia

confidence: 0.7

And it works worse in some other cases...

Anyways, good luck to this developer. I don't think anyone will ever produce a solution that works better than all others, but it is better if more of us try.

<comment><USER4> I think that there is a good solution: supervised learning/segmentation with direct user verification.

You have the user enter a free form address, and then translate it into a structured address. If they correct any fields, you look at those and try to figure out if the final result is correct or not, and integrate that.

Maybe this could be done as a service with iframes (like ReCaptcha); and since the information in a full address is basically entirely public knowledge (at least in the U.S.), you can keep all of it around in full detail.

</comment></comment></comment><comment><USER5> Already the name vs description reveals confusion: a street address and postal address does not have a 1:1 correlation even before taking postal codes/zip codes into account...

EDIT: examples includes differences in e.g visitor address vs. where mail delivery should happen; leaving out or adding details for one or the other (e.g many rural places you don't need to include road details for postal addresses).

Different people also address the same location differently. E.g I regularly have to tell delivery companies my address is in Surrey, even though my house has been in London for more than 50 years.

</comment><comment><USER6> libpostal is a pretty incredible open source project, but addresses are so complicated and nuanced that depending on what you're doing, it might not be able to keep up. I work for a real estate tech company where we do a lot of address parsing and we had to move away from it because it's just not quite powerful enough to handle all of the edge cases you find in US addresses. Right now we use SmartyStreets because their address parser is a bit better for our use case. Libpostal is a great general purpose library but depending on what level of accuracy you need, you might have to look for alternatives.

I spent time trying to use libpostal and build USPS address normalization rules on top of it but there are so many edge cases it was more cost effective to just purchase a solution from a vendor.

That is not to take away from this project — it's quite good for a broad set of addresses across the world — but for narrow use cases such as ours it just couldn't quite cut it.

</comment><comment><USER3> Nice work, although it is a bit slow: (avg 5 seconds per address parsing)

date && perl geo.pl && date Sat Dec 29 16:18:30 UTC 2018 country => united kingdom suburb => shoreditch house => the book club city => london postcode => ec2a 4rh road => leonard st house_number => 100-106 Sat Dec 29 16:18:35 UTC 2018

<comment><USER7> It seems to have a whole lot of data that would probably need to be loaded. Maybe a lot of that time is spent in initialization. Is it faster at parsing a second, third, etc. address once loaded?

By the way, a more convenient way to benchmark Perl:

        perl -MBenchmark -e 'timethis(500, sub { ... your code here ... });'

<comment><USER3> You are correct. Only the first request takes about 4-5 seconds:

Start libpostal: Chong Co Thai Restaurant and Bar Shop 0039A Grand Central Shopping Centre 1-7 Dent St Toowoomba QLD 4350

house => chong co thai restaurant and bar shop 0039a grand central shopping centre

city => toowoomba

postcode => 4350

road => dent st

state => qld

house_number => 1-7

1: 4.10454607009888 seconds

Start libpostal: Little Plate Shop 9 11 Deodar Drive Burliegh Heads QLD 4220

house => little plate shop

city => heads

postcode => 4220

road => deodar drive burliegh

state => qld

house_number => 9 11

2: 0.000234127044677734 seconds

Start libpostal: Sheoak Shack Gallery Cafe 64 Fingal Rd Fingal Head NSW 2487

suburb => fingal head

house => sheoak shack gallery cafe

postcode => 2487

road => fingal rd

state => nsw

house_number => 64

3: 0.000188827514648438 seconds

Start libpostal: Chong Co Thai Restaurant and Bar Shop 0039A Grand Central Shopping Centre 1-7 Dent St Toowoomba QLD 4350

house => chong co thai restaurant and bar shop 0039a grand central shopping centre

city => toowoomba

postcode => 4350

road => dent st

state => qld

house_number => 1-7

4: 0.000257015228271484 seconds

</comment></comment></comment><comment><USER8> Does this use for it's inspiration Frank's Compulsive Guide to Postal Addresses? [1]

1\. [http://www.columbia.edu/~fdc/postal/](http://www.columbia.edu/~fdc/postal/)

</comment><comment><USER9> From the linked post

> Street addresses are among the more quirky artifacts of human language, yet > they are crucial to the increasing number of applications involving maps and > location.

The main goal seems to be positionning a point on a map.

As pointed out by the other comments, it's fairly different from dealing with delivery addresses or legal addresses.

In particular it means parsing locations inside buildings (i.e. "3 appt of 2nd floor", "Building 103 - code 17234, 34 foobar street") with random info baked in for humans could easily trip it up and are not expected to either work properly.

Still looks like a pretty ambitious and interesting effort.

<comment><USER10> It explicitly is not a geocoder (which is address->location), it just parses and normalizes addresses.

It's meant to deal with something like "3 appt of 2nd floor", parsing and tagging "3 appt" as unit=apt. 3 and "of 2nd floor" as level=2, even if that string is mixed with further info like street and city and so on.

</comment></comment><comment><USER11> From 2016: [https://news.ycombinator.com/item?id=11173920](https://news.ycombinator.com/item?id=11173920)

</comment><comment><USER12> I'm amazed that someone wrote something that's mostly string processing in pure C at this late date.

<comment><USER13> Building strings in C can be painful, but parsing them is not too bad. I suppose security is another big concern, especially with something built explicitly to process user-supplied data.

</comment></comment><comment><USER14> The libpostal developers have released bindings for a number of different languages, which can be found at the Github organization page: [https://github.com/openvenues](https://github.com/openvenues)

</comment><comment><USER15> > Street addresses

Well, this already fails for places that don't address by street. You might think it's only some pre-industrial villages in the jungle, but examples would be some eastern European countries and Japan - some (but not all) buildings simply don't have a street address. Instead they have a number within a district. But sometimes it's a building number on a street, but it's distinct from the street's numbering system, so you can have Building 5 on st. Foo as a distinct address from 5th Foo st., where there is a completely different building. And of course there's no number on Foo st. that corresponds to Building 5. Another fun case is when there's a district Foo and a street Foo and e.g. Google Maps resolves "district Foo, building 5" as "No. 5, Foo st.". Or when the district has a number in it, so "district Foo 3, building 275" resolves to "district Foo, building 3", because of course the first Foo doesn't have a number in it - there's no Foo 1, only Foo, Foo 2, etc.

Generally all residential buildings built by the communist regime follow that system, while older buildings follow street numbers. Open Street Map actually deals amazingly well with our addresses, while Google Maps fails miserably most of the time. This is starting to become a problem as online services here are integrating google's mapping technology, e.g. an app for hailing taxis would ask you to type in your starting and destination address and if google can't make sense of it, the taxi can go to some completely wrong place. I can deal with it fine since I live here, but woe be any foreigner that would rely on Google Maps.

The postal system works just fine, but sometimes I have to enter a district name in the street field in online forms. As long as it arrives to the right country, the postal workers here can make sense of the address just fine.

All of these shenanigans do work in a hierarchical way, so you can pretty much expect to always have City, City sub-unit, Building designator as your address schema, but the actual category of City sub-unit and Building designator is sometimes "Street/number", sometimes "District/building number". You can of course simply ignore that and not have your system work in weird places, but if you're making a library for wide use and publishing it, I would appreciate it if you take into account that not everybody addresses by street/number.

<comment><USER16> It worked quite fine for fairly approximate things like "Tetuán, Madrid, España" (district, city, country). However, it seemed to exhibit a tendency to attribute suburbs and districts as houses, at least with the handful of Madrid addresses I happened to have at hand.

If you have a use case for it and data to match, why not give it a try?</comment></comment>


AT&T, Apple and Google respond to the FCC - <AUTHOR> http://www.engadget.com/2009/08/21/atandt-tells-the-fcc-it-had-no-role-in-removing-google-voice-fro/ <comment><USER2> I don't get the BS from AT&T about bandwidth usage of VOIP and Video applications. You can download and stream media through all kinds of apps, even Apple's own Youtube app. There really is no difference between watching youtube for an hour or streaming video from some other source.</comment>


The Drugs Won't Work - <AUTHOR> https://medium.com/@belledejour_uk/the-drugs-won-t-work-659c6d7a4ac1 <comment><AUTHOR> The part of this story that most captivated me was the notion of drug discovery as search through a vast (10^200 nodes!) space, seeking positive effects (and avoiding negatives).

This has exceedingly strong analogues to programming, IMO, particularly if one considers a given state of source or object code as an integer. Which, of course, is _not_ how we code, generally, which may have implications for drug discovery, though that would involve understanding drug _mechanism_ and _operators_ in at least a metaphorical if not directly analogous sense to software development.

Large-search-space problems are hard.</comment>


Totemic–a digital trading card exchange built on an NFT-only blockchain - <AUTHOR> There's a new site for digital collectibles crypto trading called Totemic (https://www.totemic.co/?f=ct) where you can buy and sell and trade cool exclusive cards made by established artists. These cards are each unique and limited edition in a similar way that CryptoKitties and RarePepes are. Card ownership is recorded on the public Bitmark blockchain which is a built-for-purpose property blockchain (made for NFTs specifically).
Fans can buy packs of eight cards at a time. Cards are all noted as common, uncommon, or rare, giving collectors an authenticated understanding of the value and scarcity of each card as they buy, collect, and trade cards with other users within the marketplace. Collectors can also buy and trade single cards in the secondary market.
Cards accumulate value by being traded, the chain-of-ownership and provenance are viewable on Bitmark's built-for-purpose public blockchain.
Jamie King, former media executive at Bittorrent and producer of STEAL THIS FILM, recently launched this new exchange. It is not just another blockchain project with a white paper and a dream. Before even raising a dime there have been fully functioning prototypes we've tried and tested. It's live now… go get yourself some cards: https://www.totemic.co/?f=ct <comment><USER2> Interesting!</comment>


Why we skip Photoshop - <AUTHOR> http://www.37signals.com/svn/posts/1061-why-we-skip-photoshop <comment><USER2> The problem with religion like this is inflexibility.

The takeaway should be, "get to a functional prototype ASAP and don't sweat pixel level perfection if you use it", but eschewing Photoshop is not always the right path for design iteration.

The question designers should ask is "what is the most productive way to iterate/experiment with this design?" Oftentimes, it's in code. Sometimes it's in Photoshop. Hell, sometimes I take a screenshot of a working app and fiddle with it in Photoshop.

And statements like, "Photoshop gives you too many tools to focus on the details. When you use Photoshop you can't help but pay attention to the details." piss me off about as much as statements from their previous posts like, "People who are workaholics are likely to attempt to fix problems by throwing sheer hours at the problem."

Just because people CAN do something (focus on details or work inefficiently because they are throwing hours at the problem) don't mean that the DO.

</comment><comment><USER3> Because it's the wrong tool.

<http://labs.adobe.com/technologies/fireworkscs4/>

<comment><USER4> Neat. I didn't know about this. Is it cool? I'm going to try the beta right now.

<comment><USER5> It's very cool, but is in danger of being killed since Adobe bought Macromedia as there's now overlap between FW and Illustrator. And Adobe is generally pretty evil.

Let's hope they keep it around.

<comment><USER6> Adobe had image-ready to compete with fireworks. Upon acquiring the Macromedia products, they canceled the image-ready line. Illustrator is a vector editing/illustration suite. Fireworks is a web graphics suite. No need to worry, there is no major overlap (or at least not enough to warrant canceling a popular software title).

</comment></comment></comment></comment><comment><USER5> Horrible advice from a company who has never lost their ass on a project when the client didn't like their HTML/CSS 'mockup'.

For a small project I spend 4-5 hours in Adobe Fireworks, then upon approval (hint: very important if your client doesn't worship you like 37signals) I build the pages out in real HTML/CSS/JS etc.

My sketch/mockup step is digital, I don't use dead trees.

Alaskamiller is right on, Photoshop is the wrong tool for the job.

<comment><USER7> I hear what you're saying with regard to clients, but I think you totally missed 37s' point. They're NOT saying "don't mockup at all". Rather, they are encouraging an interactive process with real and _usable_ output that adapts more easily to collaboration and change. There is nothing you can do with Photoshop that you can't do with paper prototypes and follow-on HTML mockups.

<comment><USER8> I'd take that even further and say that instead of nothing, there's too much you can do with Photoshop that you can't with paper prototypes and HTML mockups.

The ability to do drop shadows on text and use all sorts of fonts and apply a motion blur and lens flare and opacity and all that doesn't translate well to the Web.

It's very frustrating as a Web developer to have someone send an over- Photoshopped mockup that won't work well as a functioning website.

</comment></comment></comment><comment><USER9> I don't necessarily agree / disagree however there is a whole lot more to learn from Philipp Lenssen's interview of Kevin Fox than this post from 37signals about iterative design / usability

<http://blogoscoped.com/archive/2008-06-02-n56.html>

</comment><comment><USER10> The reasoning behind the separation in these steps is for 2 reasons:

To save time on both halves. That is, the designer is designing his/her piece without worry of the difficulty, and the programmer is designing the framework without worry of user intuitiveness and style.

It so often occurs that the designer and the programmer have slightly different ways of thinking. Each party has separate concerns for the final product, and each half should be individually thinking about the future of their work and how each can be maintained.

This article may certainly apply to, and almost addresses, a programmer without a sense of concern for the user's experience and general usability.

As a front-end designer, I need the mockup process for my own sake even more than for the sake of the final product. Personally speaking, if I were to attempt complex mockups without first laying out a grid and carefully choosing my color palette, I would quickly be overcome with the duties of writing the code, and the hundreds of short-term problem solving that would arrive. My passion is never to become a flawless programmer, but it is to flawlessly design an intuitive interface. When I am creating a mockup in photoshop, what I'm doing in my head is pretending. I imagine over and over again that I am a first time user to the site, and maybe even to the internet. This duty is daunting enough without having concern over how I will make it work.

Again, this article may whisper sweet nothings to a programmer on a tight schedule, but I can guarantee you that the time to simply layout a grid and pretend will save you the time it takes to just load the monster application. And I don't know about you, but I cannot imagine a site's usability on a simple piece of paper.

<comment><USER11> I think his comments are aimed at developers who do a lot of design, not designers who do some development.

For a developer, making a HTML/CSS mockup is the same kind of pretending that you're talking about. They think in HTML/CSS terms natively. It requires extra thought for them to do a mock-up in Photoshop.

</comment></comment><comment><USER12> This article struck a nerve for me (in a good way). It's not just that Photoshop is the wrong tool for the job, it's also that it encourages a mentality in the designer which I think is totally at odds with a positive and productive user experience. In my experience, designers spend a lot of time in photoshop making designs that "look pretty" rather than actually useful and useable. Photoshop also completely fails if you do embrace a more iterative design process, where a lot of the design decisions and even feature ideas come from creating a working product or model and actually using it.

I do appreciate those who brought up Fireworks because in all honesty I had never heard of it. AT LEAST that encourages designers to embrace the native aspects of the web interface and thus to design more closely to the medium.

I don't know if my comments really add any value here, but I just had to get it off my chest. THANK GOD people are talking about this stuff though, because I really feel like web design is going to be stuck in 2002 until people move away from Photoshop.

</comment><comment><USER13> There was a recent post on HN about Apple requiring designers to do pixel- perfect mockups before they got approval to move forward.

I am guessing the right solution is somewhere in the middle.

</comment><comment><USER14> I think you have to , have a sketching/mockup process ... before you start coding html/css

\- If you like to sketch on paper, or do super quick mockups in photoshop it doesn't matter. The point is don't waste too much time making it perfect just to look at it.

<comment><USER15> Why can't html/css be your sketching/mockup process?

<comment><USER16> Because your brain works differently during both activities.

</comment></comment></comment><comment><USER17> I actually disagree with this. I typically use Illustrator to mock things up before going into CSS /HTML.

The reason I do this is that when I'm in CSS /HTML mode, I feel like I'm more limited in what I can actually design. When I'm in Illustrator, I have the freedom to explore different design elements that I might have overlooked in CSS . I've solved many hard design issues in Illustrator that would have taken me many back and forth tweaks in HTML and CSS .

The one thing I agree on is that Photoshop is a bit awkward for mockups. I only go into Photoshop before rendering design elements into pixels.

</comment><comment><USER18> I think that there is a big difference between designing a web site for an eventual user (37signals or startups) and designing a users web site (average web consulting). 37signals isn't so constrained by what end users want, and their end users generally have a better feel for how the technology actually works. The Photoshop or Fireworks step of the process is definitely important when dealing with users who are picky about looks and will make you redesign the HTML/CSS/JS over very minute details.

</comment><comment><USER19> One of my future startup ideas is a digital whiteboard, similar to dabbleboard.com (featured here recently) that would allow you to do a quick web ui design sketch and output the html/css (or, as long as I'm dreaming, haml/sass) for further development.

</comment><comment><USER20> I enjoy using photoshop, it allows for you to easily switch up designs, a lot faster than handcoding. Plus if you using it with ImageReady to slice and dice it into HTML. You can't beat it for quick prototyping

</comment><comment><USER21> I have found that when I do sites for myself, usually use this approach and minimize the initial design in Photoshop. For clients I try be "professional" and use the paper-psmockup-apporove-code flow.

</comment><comment><USER22> wow... lot of anger both ways.

All I know is a as a designer at a startup I almost never use photoshop. I use a pen and then I do mockups in HTML, CSS, and javascript. It's definitely the fastest way for web applications.

</comment><comment><USER23> Why I skip 37signals: because all those guys seem to know how to do is play contrarian.</comment>


Any ideas why our site's getting 404s to the /undefined URL? - <AUTHOR>

It's really strange: we're getting occasional 404 page-not-founds at the URL /undefined on our site (micropledge.com). HTTP_REFERER is set, usually to our home page, so it's not some random guy typing into his address bar. We saw who it was once when it happened, so we contacted him, but he said he didn't see anything wrong in his browser -- so it's something behind-the-scenes.<p>Haven't been able to reproduce it here, or find any answers on the web. Doesn't seem to be a specific browser. My hunch is that it's some JavaScript quirk, or possibly the Google Analytics JS code, but I'm not sure... <comment><USER2> In Javascript "<http://site.example/>"+undefined produces "<http://site.example/undefined>".

<comment><AUTHOR> Aha. This could explain a thing or two. Still not sure why or who's accessing the link after that string's created, but that's a good pointer. Thanks!

</comment></comment><comment><USER3> I think your javascript hunch sounds right. I see a few similar 404s in my logs on the 8th and the 9th. So, maybe it is Google Analytics?</comment>