Why most "clever" code ain't so clever after all - <AUTHOR> https://drive.google.com/file/d/0B59Tysg-nEQZOGhsU0U5QXo0Sjg/view <comment><USER2> This article hinges on a rather silly fallacy. Luckily the author does us the favor of making his mistake very clear in the curve-fitting analogy; but first look at the code.

He gives several examples of poorly-written FP code (which we're supposed to believe is "clever" by virtue of being FP), then introduces some new problem constraint which is carefully _selected_ to make the FP solution break but some equally ridiculous imperative-style code not break. In fact, what he really wants to say is, "FP is stupid", but he won't come out and say it.

This is illustrated perfectly by the curve-fitting analogy: a perfectly-fit 5th degree polynomial is the "clever" solution, but oh wouldn't it be so much simpler to use an best-fit 3rd degree function? And oh look, the 3rd-degree polynomial has a positive slope at the end whereas the 5th degree polynomial has a negative slope, ergo if we _just happen to pick a point greater than the previous one_ , ta-da! The 3rd-degree polynomial fits the new set better than the 5th-degree. QED.

When put that way, the argument is completely idiotic. You could just as easily have picked a new point lying, say, _on_ the 5th-degree polynomial and thus "prove" that it was a better fit for some yet-to-be-defined data than was the "non-clever" 3rd-degree polynomial. The analogy to the code is that it would be trivial to come up with new requirements which could be easily solved by the "clever" FP code and very difficult by the imperative-style code; and in fact the author admits as much in the second case.

By the end I can't help but wonder if this was satire, designed to make anyone agreeing with the article look silly when the author later comes out pointing out all the above...

<comment><USER3> As a physics grad that curve fitting section was hard to read. Only very low degree polynomial fits can ever be used, through some coincidence with the underlying trend, for extrapolation. A polynomial fit is a simple and easy method to fit a curve which you can use for interpolation if you want. Unless you have some clearly identifiable trend, then extrapolation doesn't mean anything no matter what curve fitting method you use.

It's like criticizing a Taylor series for diverging from the target function as you get far away from its centre. No shit that'll happen. It's the name of the game.

I do have to agree that that section read a lot like satire.

<comment><USER4> You can get away with high-degree polynomial interpretation if you have control over the node locations, see for example Nick Trefethen's chebfun: [http://www.chebfun.org](http://www.chebfun.org) and book: [https://people.maths.ox.ac.uk/trefethen/ATAP/](https://people.maths.ox.ac.uk/trefethen/ATAP/)

</comment></comment></comment><comment><USER5> Some like to say that you should never write clever code. But clever to who? Some people lambdas, map, reduce, and even polymorphism are clever. So in a vacuum the statement is meaningless.

Whenever you're writing code you need to know your audience. Is the Haskell solution really that clever to someone who uses Haskell on a daily basis?

That said, I always liked the saying: it's easier to write code than read it. Which means, that if you're writing code at "maximum cleverness" you're writing code you won't be able to read.

<comment><USER6> My rule of thumb is that I attempt to write code that a junior programmer whose experience is limited to a little more than having taken a course in the language and has done a couple tutorials on the framework(s) can maintain. I see so many developers try to squeeze every new language feature or loads of esoteric library use cases into their code because they learned something and feel like it MUST belong in the production code. Sometimes you have to write complicated code, but 99% of the time it should be possible to write very simple code using only the most commonly used language features.

<comment><USER7> For all of Java's pitfalls, this is one of the things it really has going for it. The language itself is extremely simple. I think adding properties instead of the weirdness of getters and setters would take it to peak simplicity and straight-forwardness. (Also, maybe eliminate inheritance and force interfaces and composition instead.)

<comment><USER8> Adding properties would just make the language MORE complex. Then you would have fields, getters/setters AND properties. That said, a "property" keyword that auto-generated default getters/setters would be nice.

This was one of things that always bothered me about C#, What is the point of properties. What do the offer that public fields don't?

<comment><USER9> You don't need getters and setters in c#. If you don't have any side effect in a read-write property you can just use an automatic property. The same for read only properties that don't need to be recalculated on the fly. And I hope that I don't need to explain why using a write only property is almost always a code smell. In the other cases you can use a normal property with a backing field. If your code is well written and you use the appropriate tools, only rarely you need normal properties (that are as annoying as getters/setters).

What do getters and setters offer that public fields don't? Properties offer exactly the same advantage as getters and setters, fields encapsulation [https://en.m.wikipedia.org/wiki/Field_encapsulation](https://en.m.wikipedia.org/wiki/Field_encapsulation) No wonder that you don't understand properties if you don't know why getters and setters are useful.

</comment></comment></comment></comment></comment><comment> squeaky-clean I understand what they're getting at, but I think the final listing is even more "clever" than the first. The first one I could read and understand pretty easily, and I've never written Haskell. The few things it does, and how, are easy to spot. The final one is harder to understand at a glance, even though it's more generalized. Some people take it even further than that, to where the implementation is totally abstracted from it's only uses.

If you removed the "fizzbuzz" related names from the code, could you tell that listing 4 is being used for a FizzBuzz? Sometimes a 3&5 FizzBuzz is just a 3&5 FizzBuzz and nothing more, and doing anything further is akin to premature optimization. Planning is hard, haha.

I realize FizzBuzz is a toy solution for the sake of example, and the solution with fewer assumptions is more often the better choice when dealing with larger problems, overall this was a very good article. But we also need more programmers to understand that if you're writing an internal backend function which is passed a date-as-integer, you probably don't need to double check that it's actually string representation of the integer, or an ISO formatted date, or YYYY-MM-DD formatted string, or YY-MM-DD formatted string, or....

<comment><USER10> The FizzBuzz example was just to underline how a "considered clever" solution for an academic problem behave when moved into "real life" situations. If we are taught to solve and think problems as if we were in an idealized world we are going to suffer once we enter the battlefield.

</comment></comment><comment><USER11> I run a small dev company. This is the first lessons we teach our programmers. If your code cant be understood by someone else with minimal efforts it is not good enough.

<comment><USER12> Do you maintain a high-enough level within the team though? Most "clever code" I've seen is called clever by people who are not yet proficient enough in a language to understand it. So with unskilled programmers pretty much anything that isn't straight combination of classes, loops and conditionals will be considered clever. There's a tradeoff here - I get the business reasons why one may want to have the codebase at the "lowest common denominator" level for the team. But then again, programming is a craft, so that person who says lambdas in Java are "clever code" (real example from my work) should IMO suck it up and spend few hours learning; then the code will stop being "clever" to them.

<comment><USER13> Not every company wants highly skilled programmers. Depending on the complexity of the project, and cost of defects unskilled programmers may be the most cost effective.

<comment><USER12> I know. Took me a while to realize it and understand why companies think that way, but it boils down to the fact that as programmers, we're not paid to do a _good_ job, we're paid to do a _good enough_ job. Those two goals are very often at odds. It seems to be a typical clash of craftsmanship with market economy.

<comment><USER14> Another articulation is - we aren't paid to write code, we are paid to build stuff.

Authors get paid to write prose people can read - the readability of our work only 'matters' insofar as good craftsmanship practices help the team maintain velocity over the long haul.

</comment></comment></comment></comment></comment><comment><USER15> You can code yourself into a corner no matter what language you use. I've not seen much of this beautiful many-seamed code that could suddenly accommodate unanticipated feature requirements without rearchitecture, but I have enjoyed a certain amount of seamful boilerplate requiring much burnishment as changes are made. I don't think I'm anywhere near as experienced as the author but I still think this article is setting up strawmen and knocking them down.

</comment><comment><USER16> Code can be clever to allow (significantly more) other code to be simple.

For example, we are using Higher Order Messaging[1] to turn this:

       if ( [delegate respondsToSelector:@selector(doSomethingElse:)]) {
          [delegate doSomething:self];
       }

into this:

       [[delegate ifResponds] doSomething:self];

Yes, the implementation of -ifResponds is slightly clever, though I've gotten it simpler over time, but it certainly is worth it in the simplification of client code.

Engineers manage tradeoffs. That's what makes them engineers.

[1] [https://en.wikipedia.org/wiki/Higher_order_message](https://en.wikipedia.org/wiki/Higher_order_message)

</comment><comment><USER17> Whether or not something is "clever" as opposed to annoying or obtuse depends heavily on context. In the context of a production programming environment, it's all about cost/benefit. Does it reduce the team's cognitive load? At what cost?

</comment><comment><USER18> Software _design_ is often about finding the correct balance between the available implementation methods. Trading memory for time (low-mem/slow recalculation vs higher-mem/fast precomputed-table) is the usual example.

Software design involves a similar trade-off where simple (but repetitive) code can be traded for a smaller (and maybe more complex abstraction). It's not about "cleverness" (though that can be a strong warning sign), but instead if the abstraction involved is correct, useful, and appropriate.

> My code in Listing 4 is not based on those assumptions.

Yes. It's based on the _new_ assumption that it might be necessary to "add that pair to the list of cases" in the future.

> I choose not to read into requirements _more than needed_.

Except for the new abstraction that attempts to allow for other word replacements not mentioned in the original specification.

While I agree that hard-coding assumptions is usually a bad idea, soft- coding[1] can also be a problem.

> FP

> OO

That's the Expression Problem[2], which always involves yet another trade-off. Some types of modifications are easier under FP, others are easier under OO.

[1] [http://thedailywtf.com/articles/Soft_Coding](http://thedailywtf.com/articles/Soft_Coding)

[2] [http://c2.com/cgi/wiki?ExpressionProblem](http://c2.com/cgi/wiki?ExpressionProblem)

</comment><comment><USER19> I didn't make it past the fizzbuzz example. But I wouldn't call the solution with cycle all that clever. Here's a better one: [https://themonadreader.files.wordpress.com/2014/04/fizzbuzz....](https://themonadreader.files.wordpress.com/2014/04/fizzbuzz.pdf) the punchline reproduced below:

      fizzbuzz' :: Int -> String
      fizzbuzz' n = (test 3 "fizz" . test 5 "buzz") id (show n)
        where
         test d s x | n `mod` d == 0 = const (s ++ x "")
                    | otherwise = x

      fizzbuzz :: [String]
      fizzbuzz = map fizzbuzz' [1..]

The article is very interesting and worth a read. In particular, this implementation doesn't come out of "thin air": it's been golfed from an implementation that defines a simple domain specific language to solve FizzBuzz. And if you understand your problem well enough, DSLs are an extreme force multiplier.

<comment> squeaky-clean Feature request: Client should be able to specify either 3, or 1023 for the number needed to print "fizz."

Feature request: Client should be able to optionally request "Lizard" as another string whenever the number is a multiple of 13.

That's what the article is referring to. Your function may be more clever, but it's more specific, works in only exactly the requested cases and is harder to change.

<comment><USER20>
      fizzbuzz' :: Bool -> Bool -> Int -> String
      fizzbuzz' big doLiz n = (fizz . test 5 "buzz" . lizz) id (show n)
        where
         test d s x | n `mod` d == 0 = const (s ++ x "")
                    | otherwise = x
         fizz = if big then (test 1023 "fizz") else (test 3 "fizz")
         lizz = if doLiz then (test 13 "Lizard") else id

      fizzbuzz :: Bool -> Bool -> [String]
      fizzbuzz big doLiz = map (fizzbuzz' big doLiz) [1..]

</comment></comment></comment><comment><USER21> Cycled lists and the modulo operator are two different abstractions for thinking about the same problem, in the same vein of "blind men grasping at elephant." They are different perspectives on the similar problem.

The reason we think that cycling a list is "clever" but using modulo is "boring" is because most of us use modulo often, and cycling rarely. There is nothing inherently "clever" about either of the two approaches.

In an alternate universe where we all used Haskell, perhaps the modulo solution would come off as "clever". And perhaps this article would be pointing out the flaws in the modulo approach instead: the fact that numbers divisible by both 3 and 5 have to be treated by a special case, the fact that it doesn't easily generalize to fizz buzz bazz, etc.

<comment><USER22> The issue with the first fizzbuzz isn't just cylcling lists, it's also the use of zipWith. At least, that's what causes some of the brittleness in his examples.

\---

Also, I think you're _slightly_ wrong in that cycled lists and modulo are "just different abstractions" \- they may be to a machine, but they are not to people. And in this case, critically, the _original problem 's phrasing_ is much closer to the modulo implementation than the cycled list equivalent: "...for multiples of three print Fizz...".

By choosing to _encode_ that constant 3, rather than represent it, you're being clever; by failing to use a straightforward analog of "is multiple of", you're being clever.

This "encoding" has real risks - for instance, because you're human, you'd immediately notice that 5 is not 6. You don't need to think to do that; don't need to process equivalence or do any kind of algebraic reasoning; a kid can and will notice the identical shapes before they can talk or walk. It's built in. By contrast, even a trained professional might overlook a list with _5_ spaces followed by Buzz as opposed to a list of _5_ elements consisting of spaces followed by a single Buzz. Sure, it's a really stupid mistake, and one I hope you make very rarely - but _people make stupid mistakes_. No need to encourage that habit by making them think.

So no, it's not that cycled lists are bad and module is good, it's that the problem description is closer to the definition of modulo than it is to list cycling. (This is my interpretation, the article's definition of clever is more about seems and changes and doesn't really touch this).

<comment><USER23> Modular arithmetic (a.k.a. clock arithmetic) is equivalent to cycles in a very real, mathematical way. There's a reason that clocks are round -- in order to count the naturals modulo 12 (and again modulo 60), you simply need to cycle 1..12 (or 1..60). I'd argue that for anyone who understands modular arithmetic, the `cycle` solution doesn't seem particularly clever. Anyone with enough knowledge of number theory to understand that " _x_ is a multiple of _y_ " -> " _y_ divides _x_ " -> " _x_ (mod _y_ ) = 0" ought to have an understanding of the relationship between modular arithmetic and cycles. This is introductory-level discrete mathematics.

</comment></comment></comment><comment><USER24> Your API should strive to be clever (it should allow end users to do countless things straightforwardly without error). Your implementation should not.

<comment><USER25> What does that mean? How is that clever?

</comment></comment><comment><USER26> C. Alexander in _Notes on the Synthesis of Form_, rather explicitly puts forth the essential architectural problem in a semiformal form - a constraint satisfaction problem.

The closest application of CSP-like problems in places close to statistics- land is in neural networks, where Rumelhart published in multiple places that the objective of neural networks, including the backprop net that he reinvented, was soft CSP. So actually, there is probably a path towards formal equivalence.

Of course, there's a disgustingly large amount of work done on the analogies between CSP and Ising model at criticality, because you only need to look at the damned things (compare to Hopfield model). The other path is to look at R. Sole's work on munging for power law-ish things in software. So physical methods for software are actually quite old hat (from the 90's). It's just that it's all really fucking hard condensed matter stuff.

This is quite close to Huberman's work at PARC about networks and stuff, which led to the different Adamic and Huberman munging for power laws in networks and Internet things.

</comment><comment><USER27> So long as the "cleverness" is well-documented it's not a problem. Authors should explain why it is written the way it is. Problem solved.

I've seen some weird-ass calculations in code with no comments. If the author has gone through so much effort to come up with the clever solution why not add some commentary so the next guy can read it quickly.

That's why every language has support for comments..

<comment><USER28> OTOH comments easily become outdated, and it's painfully easy to make a change that subtly invalidates a comment in another file. They're like lines of code that is never tested or run.

For calculations, I'm not really sure I agree either. I used to work in games, specifically on physics and collision, and there's a point at which you have to assume that the person maintaining it has a reasonable level of familiarity with the subject matter, or else you'd need to write a comment that contains all of a linear algebra course.

<comment><USER29> I do not see this as an issue if the comment immediately Precedes the "Clever" section of code.

Calculations are the most important part of the code to comment I'm an Engineer most of the guys I work with have never been formally taught any programming often I see a bunch of code written in Fortran with notoriously short variable names if it wasn't for comment very easy to get lost.

So long as there is a comment saying something like

"Ergun's Equation - Calculates Pressure Drop"

You don't need to follow all the fluid dynamics to know what the code does - at minimum someone reviewing it can google "Ergun's Equation"

You don't need to comment linear Alegbra but at least comment what the code does "//Solve using LU factorization" or similar is sufficient and it beats seeing segments of code like this with no explanation:

r[i] = 1/(p _b[i]+t[i]-f_ r1[i-1]-g _r2[i-2]); u[i] = a[i]-r1[i-1]_ u[i-1]-r2[i-2] _u[i-2]; f = p_ c[i]+t1[i]-h*r1[i-1];

Edit: It stripped chunks of the above code but you get the idea.

<comment><USER27> True--sometimes when translating from a mathematical context to programming causes some readability pains! Especially if it's something that takes advantage of multiprocessing to solve the problem.

</comment></comment></comment></comment><comment><USER30>
      for(var i in list) {
        (function(element) {
          someAsyncCallThatNeedsTheRightIndexedElement(element);
        })(list[i]);
      }

I've seen people grumble that this is " _too clever_ "

I've been known to snap back " _Bootcamps don 't have a monopoly on what technical solutions are valid_"

Pointers are probably too clever for most people.

Admittedly, _goto_ is too clever for me. :(

<comment><USER31> Try using .call

<comment><USER30> The binding of the element to the lexical scope is done for later executions. .call is immediate.

<comment><USER32> I think they meant try using .call and see the 'too clever' remarks come in. I'll delete this if they clarify...

</comment></comment></comment></comment><comment><USER33> Hmm, it may not be very helpful, but there's a replicate function[1] right in the Prelude. I always thought that being clever in Haskell is to be able to find all the strange but powerful packages and functions and weave them in as tight a program as possible. Having to implement replicate by hand is definitely not clever from the start.

Hmm, it's also what drove me away from Haskell and kept me on and off with the language, as most of the powerful stuff are too powerful and so hard to tame...

[1] [http://hackage.haskell.org/package/base-126.96.36.199/docs/Prelude...](http://hackage.haskell.org/package/base-126.96.36.199/docs/Prelude.html#v:replicate)

</comment><comment><USER34> I think the real problem with the fizzbuzz example is that the "clever" solution fails to properly break the problem down. Fizz buzz essentially consists of two parts:

1\. We have an increasing sequence of numbers.

2\. Every number divisible by 3 is replaced with "fizz", every number divisible by 5 is replaced with "buzz", every number divisible by both is replaced with "fizzbuzz".

If you set out to solve these two parts individually, you would never come up with the clever solution.

While the desired result of fizzbuzz is a specific sequence of numbers, that fact is almost incidental. The clever solution doesn't really look at the problem definition but instead merely generates the desired sequence.

</comment><comment><USER35> This is a fairly well known thing in all programming communities that matter, but it was good to see it pointed out once again.

However, I would argue that the classic guarded function using modulo would actually be clearer. It takes a moment to follow the logic of cycling up an infinite list, and modulo statments are far clearer and easier to understand to most people, I would say. In addition, it's easier to change than either of the above, and equally declarative: modulo is a declarative operation as is a guard: when x % 3 is zero, it IS fizz.

<comment><USER36> What about when x is 15?

<comment><USER35> What about it? You make it a higher precedence guard.

</comment></comment></comment><comment><USER37> As a company we use C# and Visual Studio as an IDE.

Everyone has Resharper, which is undoubtedly an invaluable tool. However, Resharper had a feature that will convert for/for each loops with conditional logic into LINQ lambdas.

For simple cases I find it's conversion useful and readable, but for more complex cases it becomes an unreadable nightmare for anyone bug fixing later on. I find that to be the case even when I personally wrote the original code, so I avoid these conversions whenever they become overly complicated.

<comment><USER38> Thankfully, it also has the same "Alt-Enter" to revert said LINQ query :)

<comment><USER37> Exactly, but colleagues also have to be encouraged not to always trust what Resharper suggests!

<comment><USER38> Definitely agree - my pet peeve (although I haven't seen it for a while) is introducting circular references by adding compiled dlls from /bin/debug as references instead of adding a project reference.

I use to see it a lot a few years ago, maybe I just got a little better at my job?

</comment></comment></comment></comment><comment><USER39> There is an interesting genre of complexity that is justified (by its creators) on the grounds of simplicity. One sub-genre makes reducing the line count the primary measure of simplicity. Another sub-genre aims for the most generic and flexible code in order to simplify reuse and modification, regardless of the chances those capabilities will ever be used, or whether several different specific programs would be the simpler, faster and cheaper solution.

</comment><comment><USER40> I remember the days of seeing inline assembly in code (delphi). We griped about that code quite a bit, but this was in the days before "you can't outsmart the compiler". Was it clever: yes. Was it maintainable: no. Was it necessary: YES! This was drawing code, doing it via the normal language routines was just not a performant solution.

</comment><comment><AUTHOR> Not the OP of the article. Just wanted to get perspective from Haskell devs on the points raised in the article.

<comment><USER41> I find it interesting that he dismisses the use of Maybe. The monadic solution isn't clear, but when used as a Monoid, it's clear and easy to modify:

[https://gist.github.com/anonymous/7a1829f61cf9302c188f80a736...](https://gist.github.com/anonymous/7a1829f61cf9302c188f80a7366e9803)

</comment></comment><comment><USER42> I wonder how common the use of "ain't" is today. I grew up in the rural US in the 1980s, and it was common. And today I don't hear it, but I live in a more... well, educted area. It throws me off when I see it in writing now.

<comment><USER43> I think it is just more common to say it rather than write it (I too have noticed this).

</comment></comment><comment><USER44> i've often complained about "clever" code. simple code is easier to maintain, and clever tricks are difficult to read...

speaking of difficult to read. please don't set examples with terrible single letter variable names. and terrible two letter variable names. these are even less forgiveable than clever tricks in my book. don't encourage abbreviating things.

programming is about thinking about, reading and writing code a hell of a lot more than it is about typing.

</comment><comment><USER25> Why post this draft to HN instead of letting the other make it more refined and readable?

<comment><USER45> I think it's because it hit "1.0"

</comment></comment><comment><USER46> "There's a fine line between being clever and being a smartass."

</comment><comment><USER45> This article/paper/draft was a bit of a strange read. Just looking at Experiment 1: it seems like he is taking weird / baseline-acceptable code for fizzbuzz (perhaps warranting a PR to frege) and refactoring to make it more flexible/production-friendly (overkill for fizzbuzz). He then argues that the latter isn't clever? Honestly, it seems too clever for fizzbuzz! If I asked fizzbuzz in an interview and the candidate told me the final solution, I'd think it was very clever and very overkill. I guess I don't understand what he means by clever!

I like that he made an attempt to make this language-agnostic, the final example, but now he's introducing the idea of "elegance," (missing a definition) and kind of saying that "cleverness == elegance == overfitting?" I think the problem here is that he's _too_ generic (might I say, he's trying to be too clever : P) and pulls in a third field to make his abstract "cleverness" case. But, from my understanding, I'm under the assumption that cross-validate is a given for models: overfitting is for chumps and students. I'd give that a "to be improved" for draft 1.1.

\---

Overall, from the recap:

> "Clever" code tends to exploit explicit and implicit symmetries in the > problem structure, building highly-symmetrical solutions by exploiting > highly-symmetrical library functions / types.

and from the abstract:

> Unfortunately, people tend to assume that the style of such (supposedly) > clever code is representative of "good" functional programming.

The main issue here is that clearly the first part is correct and makes for fragile code (given context), but he's completely opinion based on the latter. What he needs to do is find "production-level code" or "education-level practices" that are handed down to new FP developers and taken as "truths." After reviewing the citations, I think that his points on [6] and [7] are weak: he needs to show more than just comments and one-offs, and needs to hammer in the "why this is bad" more. Instead, it feels like he's just trying to show his contempt for haskell. I'm also thinking that, if he wasn't just trying to run haskell through a ringer, you'd think he'd use other functional languages / language-features (frege is designed as "a Haskell for the JVM").

His opening line of 'there is a deluge of "clever" code constantly pushed down from gurus to hipsters to innocent readers' also primes me to think that this is more of a cathartic article than a useful one.

I'd love to agree with him, say that "stupid code, everywhere" is a problem in educating new devs for pure-functional languages, then spider the internet, comment/fix all these code examples, and finally make all my friends haskell developers : P (disclaimer: I'm just an enthusiast). However, I remain unconvinced — I think the problems in haskell education is elsewhere. Perhaps I have simply been lucky in finding sane, good resources, and all the production code I study is uncommonly blessed. Looking forward a 2.0 so that I can convert all my friends.

(I redacted some more thoughts since this is my first real post to HN; be nice!).</comment>


Support the FSF compliant EOMA68 modular libre computing device - <AUTHOR> https://www.crowdsupply.com/eoma68/micro-desktop <comment><USER2> I love that it reuses PCMCIA connectors, receptacles, and enclosures. All that hoarding I did in the 90s will finally pay off!

</comment><comment><USER3> Boots from SD card. Uses U-Boot for bootloader. Hardware support in two BSD projects as well as Linux.

Godspeed.</comment>


China wants us to forget the horrors of Tiananmen as it rewrites its history - <AUTHOR> https://www.theguardian.com/commentisfree/2019/may/19/china-wants-us-to-forget-the-horrors-of-tiananmen-as-it-rewrites-its-history <comment><USER2> Every country rewrites history continuously. Some just use softer ways to rewrite dominant historical narration then others.

> What is a nation? A group of people united in mistaken view about the past > and hatred of their neighbours.

> Forgetfulness, and I would even say historical error, are essential in the > creation of a nation. [1]

[1] [https://en.m.wikipedia.org/wiki/What_Is_a_Nation%3F](https://en.m.wikipedia.org/wiki/What_Is_a_Nation%3F)

</comment><comment><USER3> Oddly this was accessible from mainland without VPN. Wonder how long this will last?

</comment><comment><USER4> If they don't want remembered for atrocities in the past, maybe they shouldn't keep doing them in the present (e.g. ethnic concentration camps).

</comment><comment><USER5> Unlike "us", we never rewrote our history, right?

<comment><USER6> Any example of events 'us' is actively removing from history the same way China is doing with the the Tiananmen event ?

edit: I can think of the Armenian genocide but it's not yet dealt with the same diligence and tech level than the Tiananmen event is.

<comment><USER7> I'm neither the parent poster nor American, but from a Europeans perspective I'd say that America handles their censorship differently. Dissenters disappear in China. In America they're discredited and made into conspiracy theorist.

But nonetheless: the tiananmen square is quite unique in it's bloodiness.i know of nothing even remotely as bad as military personal killing unarmed civilians in the hundreds which mostly just try to flee.

<comment><USER8> Because no one cares to report anything else.

How is it unique in its bloodiness? You are rendering the human history a lovely picture of peace and kind. It may not be as nice as the Chinese government portrait it, and it may not be as bad as europeans portrait it either. There is nothing wrong with leaving it to the past and move one.

<comment><USER7> > _How is it unique in its bloodiness? You are rendering the human history a > lovely picture of peace and kind_

Absolutely not. It's uniqueness comes from is bloodiness in the context of the situation.

Most crimes of that caliber happen by systematically alienating a people, 'legitimizing' these clearly inhumane actions in some way.

Take the Holocaust for example. Jews were portrayed as the source of all problems for years and subsequently slaughtered in the millions. Clearly inhumane and wrong... And way worse than the square was, but still a 'us vs them' situation.

On the square, you got the military doing a parade and civilians standing in the way in a demonstration. Their only crime was their unwillingness to let the parade continue. And the military opened fire on these people, because _they were standing in the way and unwilling to leave_

You don't think that such a situation is unique?</comment></comment></comment></comment></comment>


Ask HN - why are more and more web apps requiring FB login? - <AUTHOR>

I'm seeing more and more web apps requiring a Facebook account to log in instead of supporting OpenID - web apps which stand on their own and (other than the login) do not require Facebook to work. Is there a reason for this? Is it laziness, i.e. it's just easier to implement a FB login?<p>Or are there other reasons - are Facebook users are more valuable users to web app developers because they are inherently more likely to spread news about the service? <comment><USER2> I recently had to choose a way to authenticate users for a prototype web app I was building. My first choice was OpenId, because the promise behind it is awesome (1 login everywhere) and I wanted to avoid depending on FB.

First annoying thing about OpenId is that most providers make an awesome job of hiding their entry point, or the exact URL that is each user ID. Except for Google, I had to extract URLs from various authentication pages (StackOverflow has a nice one) and plug-ins (<http://jvance.com/pages/JQueryOpenIDPlugin.xhtml> among others).

Second annoying thing about OpenId is consistency. Some providers provide a distinct URL for each user, and some have a unique URL for every users. This makes your auth form an UX nightmare where users have to paste their URL instead of just clicking a button.

Add to this the fact that each providers has it's own understanding of the spec, which leads to some weird implementations of the protocol (once again except for Google's). That and the not-so-occasional errors from several providers (these raw "Error 500 - contact our administrator" we all love).

At this point, I had spent almost 20% of the time I had to make the whole prototype, trying to figure how openId could fit in. So I changed my mind and switched to FB Connect...which can be integrated in about 20 minutes.

I'm no FB fan, really. But I have to admit it just works...

<comment><USER2> By the way, since we're on HN, there's a multi-billion dollar idea here : Create a way to add OpenId to any website, that is easy and fast to implement and friction-less for users.</comment></comment>


Giving away an Idea: The Dyson of Laundry Machines - <AUTHOR> http://chris.smeder.com/essays/2_laundry.htm

<comment><USER2> My time saving hack: Don't buy/wear white clothes. I have black socks, and no white shirts. I can do my laundry in one load. Saves me about 50 minutes from the eliminated load, plus any inefficiencies from waiting to switch the loads.

The biggest time-sink for me (and something I'd consider spending money to have removed) is folding/sorting/putting away the clothes. I have a bad habit of keeping clean clothes in the hamper and moving the dirty ones to the floor, just because I don't bother to spend the 15 minutes folding my clothes.

<comment><USER3> Why not two baskets (or hampers), one for clean, one for dirty? That makes it easier to take the dirty to the laundry.

<comment><USER2> Because I don't mean to keep the clean clothes in the basket. I plan on putting them away, but I don't get around to it, and then the clean clothes get wrinkled to the point where I don't bother putting them away - I just put them in the wash with the dirty clothes from the floor.

I'm thinking of moving to more hangable clothes (button up shirts, etc.) so that I can skip the folding step.

<comment><USER4> Most clothes stop looking wrinkled within an hour or two of putting them on, so if you have a commute, it might not matter whether you fold them.

</comment></comment></comment></comment><comment><USER5> Dyson actually have a washing machine already:

<http://www.dyson.com/insidedyson/article.asp?aID=cr01>

<comment><USER6> That is interesting that they could not find a way to reduce the costs to an acceptable level. Especially since their products seem to be 2-3x more expensive as the next viable alternative.

</comment></comment><comment><USER7> Interesting idea, although I am not sure this is a big existing problem (it's convenient, but not by leaps).

I think the bigger problem that needs a solution is the steps that are needed after the washing, that still require manual labor: folding, hanging, or just flattening or simply flattening them as we lazy ones do. Since no matter how much you want everything to be wrinkle free, they never come out that way.

If I can have a fully automated ironing|hanging|folding machine, that would hit the sweet spot for a lot of folks. <http://www.youtube.com/watch?v=rMnNHA_GrT8> there is that, but still requires you to lay the cloth flat (I want zero labor).

</comment><comment><AUTHOR> This is too hard for me to implement by myself so I'm giving away this idea in hopes that some one runs with it.

Well, I doubt anyone will, but what do you think of it? I've had the idea for quite some time now, I'm curious what you guys think.

<comment><USER8> These exist: e.g. <http://www.lgwasherdryer.com/>

The first time I'd ever seen one of these things was in Dubai at a hotel/apartment. I'm surprised they aren't proliferating through Asia given the limited amount of space but I figure give it time.

Incidentally, the cost on these washer dryer combo's aren't excessively high... in fact probably just a relatively small premium above what a good washer or dryer cost.

<comment><USER9> Those LG washer dryer combos are condensing dryers. Possibly energy saving, but also consumes water to dry the clothes. Pretty slick technique.

People living in deserts (Dubai excepted, SOCA included) probably don't want one.

<http://www.lgwasherdryer.com/pdf/condensing_dryers.pdf>

<http://en.wikipedia.org/wiki/Clothes_dryer#Condenser_dryers>

</comment></comment></comment><comment><USER10> It's a perfect illustration of a time vs. space trade-off.

</comment><comment><USER11> You would be paying premium for baskets (as happens w/ anything that fits in a product. E.g. Ink cartridges, car parts) for the benefit of speeding "throw cloths in machine" wich usually takes 2seconds on my top feeding cleaner/dryer machine.

now, taking the clothes out and ironing them... I will still have to do w/out any change to the process</comment>


Ask HN: Need help and support to fight through challenges - <AUTHOR> I've been struggling a long time. Some of it I admit is self inflicted due to my own weaknesses and inability to move past pain and problems, but most is external and there has been a lot. I have failed to grab securely the occasional lifelines I have had over the years. One from a kind member here. Not long ago I completely gave out and tried to stop living. Now I am trying to recover from that and new issues and feel very alone and adrift. I have no holistic support or care. Each day is such a fight, each moment. If anyone has the time and energy I could use real caring, love, strength. "If I could just go back" is my mantra but its not served me at all I see. I need to go forward but things are SO bad now I don't know how and am getting pawned off by the local people I asked for help. The healthcare system has failed me repeatedly. So another desperation post. Few people have written me in past but I lost all messages/contacts as I seem to have deleted the accounts content. I want a life...a future...but I am simply not able to do it alone. Timing of world events makes it even worse I know. Please if you have the energy reach out. Email is in profile. I am probably even beyond trying to stay anonymous as its so critical and desperate. I am past forums or crisis texts etc. I need real people and real guidance.<p>Thank you <comment><USER2> Hey dude, hope you're doing okay. Lately, I've been telling myself that there are times when just staying alive is enough, and I think that's what you need right now. There are a lot of different ways we hate on ourselves, but always try to remember, you lived, and you survived the day. Try not to think of surviving as doing nothing, you're always doing something for every moment you're on Earth.

I know you mentioned this, but just remember that times are hard for everyone right now since most of us are sheltering in place, so you're not alone there. I had always hoped that the internet would be a great resource for people like us, but I do agree with you, forums and crisis hotlines can only go so far. I don't think there's really much else we can do with the internet.

<comment><AUTHOR> I appreciate the well wishes. I am really struggling hence the post. I don't see myself making it like this, but am being hemmed in with no options. I really want a path and a life. I have burned out most of the people who seemed to care at all because things just don't get better and they can't stand constant failure and loss. A couple people who truly love me will be there to the end...but they are far away and have their own great struggles so I cannot lean to hard on them.

I feel like this was just a pause and the weight of it all will crush me again any way. I really need better doctors, some mental care, and a social network. I failed to capitalize on the most recent chance out of fear since everything keeps failing so I messed it up by trying to do it right instead of just doing it. Lesson learned too late. Don't see another chance happening.

I want a life so badly...this experience just proved it to me...but I think I am out of people and roads. I regret letting my fears and bad past get in the way of great hopes. I ruined them because I didn't have enough sense and awareness. Lesson learned too late. Now I feel pushed right back to the dark place and ending it. So terrifying and angering. I don't deserve this...nobody does. We all just want safety and love for ourselves and families.

</comment></comment><comment><USER3> I suggest you regularly going for a walk (at least 30 minutes), in an area with plenty of greenery. Perhaps a park. The change of scene (from being inside) plus the exercise, sunshine and face to face contact with others should help.

When you're at home, play music regularly and often. [https://www.gethealthystayhealthy.com/en- au/articles/10-heal...](https://www.gethealthystayhealthy.com/en- au/articles/10-health-benefits-of-music)

While listening to your music a little DARK chocolate may also help. [https://healthyeating.sfgate.com/dark-chocolate-serotonin- le...](https://healthyeating.sfgate.com/dark-chocolate-serotonin- levels-5558.html)

<comment><AUTHOR> I would love to go for a long walk or better run. I have a disability, one of the things that led to this act, that makes walking very painful so I shuffle around short distances often outside to try and get sunshine. It really does help. But I live rural so no other people. Listening to Satie now and just ate an Andes Mint...no dark around. I am trying. Fighting. I am just losing again after already losing one and botching that. At the time I need the most support and love, I have the least. The ironies of my life keep hitting.</comment></comment>


New experiment places limits on the smallest possible increment of time - <AUTHOR> https://www.scientificamerican.com/article/the-universes-clock-might-have-bigger-ticks-than-we-imagine/ <comment><USER2> Long ago, I played around with a simple Newtonian gravity simulator, because playing billiards with a solar system is fun, etc. And I noticed that orbits precessed proportionally to the size of the time step.

I was momentarily like "I wonder if this means quantization of time could be an alternative explanation for the precession of Mercury" before it became clear that it just wasn't a very good algorithm, and the amount of precession vs. time step was way too large to be consistent with reality.

I wonder though, if you can take the hypothetical minimum time as in the article and come up with a precession figure that would be potentially measurable on some natural object.

</comment><comment><USER3> Sabine Hossenfelder examining if there is a minimal length might complement this.

[http://backreaction.blogspot.com/2020/02/does-nature-have- mi...](http://backreaction.blogspot.com/2020/02/does-nature-have-minimal- length.html?m=1)

<comment><AUTHOR> I like the "blur" vs "pixelation" analogy. Maybe she will cover the time issue. :)

</comment></comment><comment><AUTHOR> Can someone explain this so a non-physics PhD can (at least partially) understand it? ;)</comment>


WeWork to Remake Real Estate with Code - <AUTHOR> http://www.wired.com/2016/03/weworks-radical-plan-remake-real-estate-code/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website <comment><USER2> I could use a summary, its bit long winded.</comment>


Accused College Students Deserve the Presumption of Innocence - <AUTHOR> https://www.theatlantic.com/ideas/archive/2019/02/title-ix-ags/582673/ <comment><USER2> Everyone deserves the Presumption of Innocence. Without the Presumption of Innocence, it becomes too easy for the government or sufficiently powerful people in the community to use accusations for their own purposes. This was seen in the Salem Witch trials, where one study found evidence that some accusations were used to eliminate rivals or to make property available. This was seen in the activities of the English crown prior to the formulation of the Magna Carta. It is seen time and again in history. In 2019, it is seen in very recent history.

<comment><USER3> Everyone deserves due process.

<comment><USER2> If the consequences are potentially life destroying, then it's the height of dishonesty to handwave away due process, saying, "It's not a criminal prosecution." It might as well be. Such an accusation outside of the Title IX process would be seen as _" per se defamation."_ In plain English, some accusations are so damaging, there's no need for the purposes of defamation to prove they are damaging.

By eliminating most of due process, reducing the burden of proof, and denying the ability of the accused to face and cross examine their accuser, Title IX is basically declaring "open season" on life damaging accusations. Granted, it's often a bad situation to be in, to be an accuser. No due process worth its name is going to be easy for either party. If it were easy for one side or another, that's a signal the system is broken. Example: Falsely accused black men in the South suffered injustice because the role of accuser was made too easy by racial bias.

(EDIT: Note that there are even local DAs and prosecutors in the US who are seeking to erode presumption of innocence in sexual misconduct cases in the actual judicial system, for similar reasons as cited for Title IX.)</comment></comment></comment>


NetPlenish: Mobile Shopping Service Finds Lowest Prices On Household Goods - <AUTHOR> http://techcrunch.com/2012/05/03/netplenish-raises-1-9m-for-mobile-shopping-service-that-finds-lowest-prices-on-household-goods/

<comment><USER2> I want one of these</comment>


Amazon Has the Most Generous Shareholders in the World - <AUTHOR> http://www.slate.com/blogs/moneybox/2012/12/12/amazon_s_zero_profit_business_strategy_it_s_amazing_but_someday_we_may_all.html

<comment><USER3> He doesn't seem to know what he is talking about. This "If your profit is not healthy, people sell your shares and then you get bought out by a private equity firm" There are P/E ratios between "massively overvalued" and "massively undervalued" and there is no rule that you have to jump from one territory into the next - you can be overvalued and then adequately valued by the market as well...

And there are many companies not paying dividends. In growing companies it can make sense. The Washington Post pays dividends and is down >50% for the last 5 years, while Amazon is up 166%... Who has the generous shareholders now?

<comment><USER4> "He doesn't seem to know what he is talking about."

HN has this sort of innate skepticism that is just adorable. I assure you Matt Yglesias knows what he is talking about.

"There are P/E ratios between "massively overvalued" and "massively undervalued" and there is no rule that you have to jump from one territory into the next"

He's making a general point about share price and profit not saying that unless you have giant profits you will be bought out. Low profits are normally punished by wall street, Amazon is an anomaly.

"Who has the generous shareholders now?"

Probably the company with a 3600 P/E ratio.

<comment><USER5> 'HN has this sort of innate skepticism that is just adorable. I assure you Matt Yglesias knows what he is talking about.'

Yglesias is a bright guy, but he's routinely mocked in the political blogosphere for commenting on every issue under the sun, regardless of whether he knows what he's talking about.

It produces a mix of cogent commentary and absolute nonsense, and if you're not familiar with the underlying issues it's very difficult to tell which is which.

I can't cite any examples, because I stopped reading political blogs around 2009. But that was his rep amongst various bloggers and commentors back then.

<comment><USER4> "routinely mocked in the political blogosphere for commenting on every issue under the sun"

My impression is the opposite. He's intensely disliked by the firedoglake set for being insufficiently liberal and by conservatives because they are batshit crazy and he said something insensitive after Breitbart died.

As far as being mocked I don't think I've seen much outside of his basketball posts which can indeed be lawlworthy.

</comment></comment></comment></comment><comment><USER6> I read the article and don't come to the same "generous" conclusion. You've got a visionary, well-respected, CEO running a very (by many, but not all metrics) successful business with a lot of runway. The result is analysis that runs from calculated, to wildly optimistic, to delusional. There are people afraid to miss the boat if Amazon conquers the world and people already counting their millions as they wait for what they assume is inevitable. Amazon has the benefit of being a very proven business with sustainable competitive advantages, but at the core, this is no different from any of the other speculative manias in financial history. Amazon shareholders could be right, they could be wrong - I'm not good at predicting these things - <USER2> they're definitely not generous. They're fearful, and greedy, and emotional, and human.

</comment><comment><USER7> Conveniently ignoring 34% revenue growth per year for the last 5 years: <http://ycharts.com/companies/AMZN/revenue_growth>

Perhaps Amazon's investors recognise that there is still a lot of room for growth in online commerce...

<comment><USER8> He's not ignoring the growth. He's dismissing it because growth by itself is meaningless. Profit is what's relevant, and unless you can improve your earnings, you're not functioning efficiently from a capitalistic viewpoint. As he discusses, Amazon shareholders are expecting that at some point, Amazon will be able to somehow ratchet up their profit margins, and the subsequent earnings boost will provide value to their shareholders. If that never happens, AMZN is a bubble just like tulips.

<comment><USER9> Except that every time they can, Amazon reduces their prices. Any investor who thinks that they will at some point increase margins doesn't listen to what Jeff Bezos says: we're good at running low margin businesses, and that's what we will continue to do.

<comment><USER10> Broadly speaking, there are two ways of increasing your net income(which, at the end of the day, is what investors care about): Increase your margins by charging more or spending less, or increasing your revenue by servicing new markets. In either case, the end result for the investors in the same. In the first case, they get a bigger piece of the pie. In the second, the pie is bigger, which means that their percentage is worth more.

Amazon's entire business model is currently focused on growth through new markets. Here, the idea is that you spend money to make more money in the future. The problem, from an investment perspective, isn't that Amazon's been successful at doing that. Their revenue shows that they've been wildly so. The real problem is that their net income has not been increasing at all (<http://ycharts.com/companies/AMZN/net_income> ). Since their costs currently aren't scaling well with revenue, it might become a major issue in the future for Amazon's investors.

The market has given Bezos 15 years so far, and to his credit, he's done an outstanding job. Revenue growth has been pretty good for the company, and they're pretty stable. He's managed expectations better than just about any CEO out there, since he's completely open about how his plan is to spend money now to make more money in the future. The market has been fine with that, so far. But there will be a point where the investors will want their investment in Amazon to give a decent return. The question is when that's going to happen, and whether or not Amazon can get all their ducks in a row before it finally does.

<comment><USER8> I agree with what Bezos has been saying and doing, but the main gist of the argument against Amazon is that investors seem to be expecting Amazon to bump prices and margins at some point, completely the opposite of what Bezos has been saying and doing. Perhaps he means what he says, and simply wants to be like a grocery store making 1-2% margins. Now when your revenue is $100 billion a year, that's not a lot of meat to justify high P/E ratios. And just like Apple is experiencing now with having huge revenue rates, eventually your growth will have to taper off.

</comment></comment></comment></comment></comment><comment><USER11> <https://news.ycombinator.com/item?id=3641184> I was pretty shocked when I read this, opened up my eyes to what happens behind the scenes at these online ordering companies. This article seems like it is mostly PR, I've heard a few other horror stories about Amazon, such as the kindle remote deletion crap. <http://news.ycombinator.com/item?id=4682392>

<comment><USER12> That original article does... distort and decorate the truth quite a bit.

</comment></comment><comment><USER13> Perhaps I don't understand the money side of things enough to comment but I think Amazon is doing a hell of a lot more than undercutting competition by withholding profit from shareholders. They are identifying vulnerable businesses and totally reinventing them. While they are out there conquering the world I can understand why shareholders would be happy to see them reinvest in their business.

<comment><USER14> But they eventually will have to make money, or (so orthodox thinking goes), the rational market will punish them. I am skeptical to the point of open cynicism over rational market theory, but that's the point that Yglesias is trying to make.

</comment></comment><comment><USER15> Making profits and realizing profits are not the same thing. Amazon is acting as its own venture capital company. They make that much known in their shareholder statements. And the reason why people pay 3600x earnings for a share of the company is that they know where the company is headed.

Let me put this in perspective: Amazon grows consistently between 30-40% a year. Not a big deal...right? I mean lots of companies grow quickly. But how many companies do you know that grow 30-40% per year, when starting from the ~$50B range? They are literally adding a new Fortune 500 company's revenue every year. Nobody does that. And that is what makes them distinct.

You may argue that you still don't think they are worth it. But the story of the 3600x P/E anomaly is actually a story of an anomaly in revenue growth...not of charity, generosity, or ignorance.

<comment><USER16> >But how many companies do you know that grow 30-40% per year, when starting from the ~$50B range? They are literally adding a new Fortune 500 company's revenue every year. Nobody does that.

Well, AAPL does.

</comment></comment><comment><USER17> I think MS was pretty much the same way until very recent. Maybe companies really start making money when they stop being innovative.

</comment><comment><USER18> No one doubts that Amazon's customers love them and that Amazon is growing revenue at an incredible rate.

The question is when and if will this revenue growth translate into increasing margins? Revenue growth without profit has very little value (see Groupon) and the nature of their current businesses make it difficult to establish a competitive position where you can increase margins by charging a premium versus your competitors.

For reference - Wal-Mart has operating margins of 6x those of Amazon, has 8x as much revenue as Amazon yet is only valued at 2x that of Amazon. It would take Amazon almost 8 years of nearly 30% growth in revenue and profit margin to match Wal-Mart, a company which trades at a PE in the low teens.

</comment><comment><USER19> We sell jewelry on Amazon as a third party seller. Growth has been consistent for us and substantial over the past two years. We also drop-ship for a number of wholesale customers also on Amazon who are increasing sales in step with us.

</comment><comment><USER20> To be fair, part of Amazon's stock price is the incredible durability it has shown as an internet company. It's one of the few companies that survived the .com bubble. Also, it's growing and innovating in about every direction. Five or ten years ago they were an online bookstore or an online store. Now they're an online marketplace more akin to eBay. And they almost singlehandedly made digital books relevant. And they are powering the infrastructure of huge companies like Netflix, Zynga, etc. And they have the most popular Android tablets. And... And... And...

Amazon's customers love them.

</comment><comment><USER21> What's their ownership structure like? Do Jeff Bezos and friends control enough of the company that they can just go on, assuming that the profit will work itself out?

</comment><comment><USER22> Oddly, I think their warehouse employees might beg to differ. (Especially right now, since it's the middle of the Christmas rush.)

<comment><USER23> Just a couple weeks ago, I met someone who works at an Amazon warehouse. He liked his job, and he seemed happy about the overtime he'd receive during the Christmas rush.

<comment><USER22> That's good. I remember reading an article a while back about the working conditions in amazon warehouses and it sounded really unpleasant. I don't think it was this article exactly, but this one is pretty similar: [http://www.mcall.com/news/local/amazon/mc-allentown- amazon-c...](http://www.mcall.com/news/local/amazon/mc-allentown-amazon- complaints-20110917,0,6503103.story)

I love Amazon, but I hate to think of people being miserable and in terrible pain as they put my order together.

</comment></comment></comment><comment><USER24> It's not a mystery, it's supply & demand. The stock stays high in part due to who the shareholders are. Bezos and his family control 1/4 of the company directly, and a handful of institutions control another 1/2 of the company. Lack of oversupply of freely available shares at a high valuation, is one reason the stock defies gravity.

The other part of it is the narrative that Amazon sells.

But let's not pretend it has always defied gravity. Besides the obvious dotcom crash, their stock produced essentially a flat return from June 2000 until April 2007, with various ups and downs.

</comment><comment><USER25> PR bullshit

<comment><USER4> How is this PR? This is not a pro-Amazon article in the slightest.

<comment><USER25> Then it fails at being anti-Amazon too. Either case it's a waste of time.

</comment></comment></comment><comment><USER26> I call submarine on this.</comment>


Observations from a 4 year old's first interaction with MS Surface - <AUTHOR> http://blogs.conchango.com/richardwand/archive/2008/11/19/breaking-down-traditional-barriers.aspx <comment><USER2> I thought this was interesting: "She found selecting, moving and orientating the photos very intuitive using natural gestures. She took a little guidance to get a handle on photo resizing but by the time she'd played for 15 minutes she had got to grips with it and could shrink and enlarge the photos with relative ease."

So moving images was easy and resizing them was hard. 15 minutes seems like a long time for a 4 year-old to learn a skill like that relatively well.

I think the conclusion you can draw from this, and the rest of the article, is that she could quickly do things that behaved exactly as they do in the real world (e.g. pushing a picture across a table), but things fell apart as soon as a new action had to be learned. That's why some of the actions seemed "intuitive," because they fit exactly into previous experience. I wonder if it would have been easier for her if they had played the "stretch a newspaper comic with silly putty" game a few days before.

<comment><USER3> After watching the video, I think the problem she had in resizing is not because it isn't intuitive, but because it required more delicate movement. The same reason it would be harder for her to twist a screw driver than to hit a hammer.

<comment><USER4> Having played with one of these, and knowing how it works under the hood, it's more likely that she just didn't have the technique right. Surface prefers you use single fingertips as points of control; Isobel was using her entire hand.

</comment></comment></comment><comment><USER5> I remember when the multi-touch first came out and everybody was excited. Few years and thousands of iphones have passed and the only "revolutionary" thing we can do with it is still zoom-in and zoom-out pinching pictures.

I am quite amazed by the resistance people have when thinking about HDI: take the multitouch pad on the new mac, for instance. I love it, but why there isn't even a way to do something like middle mouse button?

<comment><USER6> middle mouse button isn't relevant in the context of a trackpad imho. I also don't see the need for it (except closing FF tabs).

<comment><USER5> It's not just for browsing (FF let you close tabs and open new ones too when you middle click on a link). For instance it is instrumental if you want unix- like copy and paste, to which I am addicted by now.

<comment><USER7> Don't you just have your other hand on the keyboard all the time anyway? Set FF to open everything in tabs, so that's solved, and then use cmd+: w to close windows, q to quit, c to copy, v to paste, etc etc... they're all right there under your non-trackpad fingers.

I didn't even use middle-click back before wheel mice (when they literally had 3 _buttons_ ).

</comment></comment></comment></comment><comment><USER8> I was at TNRIS, a Texas GIS conference, and MS had a Surface there. I admit it was really cool to fly through Virtual Earth imagery with it, but it was pretty buggy. After a few minutes of light use I managed to freeze the interface, crashing the surface service, subsequently sending the machine back to the Vista desktop.

Unfortunately, this is my typical experience with most Microsoft software products.

<comment><USER7> It didn't look very smooth either, the pictures jumped around a lot and... wait did you say _Vista desktop_!? Nevermind :)

</comment></comment><comment><USER9> Alternate title: "World's smallest person plays with an iPhone."

</comment><comment><USER10> This is somewhat tangential to the story, but I think virtual painting, while novel, deprives a young child of the sensory experience necessary at that age.

<comment><USER11> Paints and paper are also an abstract technology, and time spend working on paper takes kids away from walking and other physical, outdoor experiences. Obviously it can go too far, but most of us feel that painting and drawing and writing and reading have become part of the appropriate mix of experiences for children in our culture.

Computers are no different. I do make sure my toddler spends almost all her time away from glowing screens, but I also remember that I first really got into computers over twenty years ago by spending hours with MacPaint. My daughter is growing up in a world where her parents work all day on computers, play on computers, and talk to friends and family through computers. She's going to be influenced by that, and I'd like it to be as an active participant and not just an observer.

<comment><USER12> Also in my experience, kids are less interested in computers than we were precisely because they are so ubiquitous.

Back to the original artice: We ruined my 2 year old by letting her play with an iPhone (which she can handle perfectly well - find videos, look at photos as she pleases). Now she expects every screen to be multi-touch. I haven't tried her on the mouse - I figure technology will soon catch up with her expectations :-)

</comment></comment></comment><comment><USER13> When our kid was 2 and a few months we set him up with an old-school touchscreen. He had no problem playing games that would be hard for a 3.5 yr old with a mouse. May not sound like much, but a year at that age is huge, and even at 4, as the article states, kids are just barely getting the hang of a mouse. By 4, our kid was a mouse jockey. Transitioning from touchscreen to mouse was trivial.

</comment><comment><USER14> Nice article, although this bit seemed a bit of a stretch:

> This highlights how the direct manipulation and natural gestures of > Microsoft Surface can blur the real and virtual world.

I can imagine that results may vary for people older than 4 years old.

</comment><comment><USER15> Imagine that in the future, after enough Moore cycles, this amazing technology is shrunk down to a multi-touch device that can fit in your pocket!

<comment><USER16> yeah I can't wait

</comment></comment><comment><USER17> The future is a big-ass table: <http://www.youtube.com/watch?v=CZrr7AZ9nCY></comment>


Ask HN: What are some optimal places to live in NYC? - <AUTHOR> I am going to be graduating from school soon and have my sights set on working for a startup in New York City (have already gotten a few offers). Now, what I was wondering is what would be the best place for me to live in terms of housing costs, proximity to cool places (nice bars, restaurants, music venues, art galleries et cetera), and overall interesting-ness of the area.
I've been looking at Bushwick in Brooklyn and Long Island City, but I am unsure of any other neighborhoods that would be worth a look.
Oh and if anyone is interested in getting together for drinks sometime and maybe coding up some projects, don't hesitate to drop me a line! My email is in my HN profile. <comment><USER2> Depends on your cost/time tradeoff.

Manhattan is extremely walkable. If you live close to where your office is, you might be spending 10 minutes commuting each way (including elevators in both buildings). That's rather short, but not unheard of in NYC. However, it might be more expensive.

If you (say) work in Chelsea and live in deep Brooklyn, you'll have 40 minutes commute each direction each day, and that would save you some $1000/month on rent. Some people would rather pay that money than spend that time daily.

Jersey City and hoboken are, in many senses, close than Brooklyn or Queens, definitely closer than Long Island City. The commute is not bad at all, as long as you find a place close to a PATH station, and your office is walkable from a PATH station (if you need to switch between the PATH and the subway, you'll have a much longer and more expensive commute).

Don't immediately discard manhattan - there are good deals to be found, and brooklyn is not as cheap as it was five years ago.

Finally, if that's feasible, I'd recommend finding a one month rental (airbnb / sublets on craigslist, corporate housing / long stay hotel if you can afford it) close to your office BEFORE you commit; that would let you get a better idea of what you need and what's your cost/benefit tradeoff. Basically all reasonably priced nice apartments in NYC are yearly contracts, and many owners will not let you out easily if you want to leave earlier than that.

<comment><USER3> Do you realise that Long Island City is basically the bit of Queens that is closest to midtown Manhattan? I suspect that you're a little confused. Long Island City is close and well connected to Manhattan.

Just a clarification :).

<comment><USER2> Oops, I was thinking of Long Island rather than Long Island City. Thanks for the correction.

</comment></comment></comment><comment><USER4> Where do you think your job will be? On manhattan or off?

Lower manhattan is really expensive, but upper manhattan is actually remarkably affordable (for NYC). You can actually find prices comparable to brooklyn or queens if you go up far enough. I'd look for something in washington heights or harlem if you have work on manhattan somewhere.

Staten Island is a dump and so is Jersey. I've had friends try to live in Jersey City and etc before and while it is a bit cheaper, you lose all of that money when you factor in the extra transport costs of having to buy transit in two states from two different systems. It's also a huge pain to get to manhattan from there and you'll lose a lot of time in transit.

The main thing is to get an apartment near a subway stop if at all possible. It will make your life SO much easier.

I might actually be moving to NYC next year to finish my degree, so hopefully if there is a hacker scene there, I'll be able to find it and integrate smoothly. The midwest really sucks for this sort of thing, and with a city the size of NYC, there's got to be at least SOME cool tech inclined people. Just a matter of finding them, I'm sure.

<comment><AUTHOR> If you ever want to get together, grab a drink, and hack on something then definitely drop me a line in my email.

</comment></comment><comment><USER5> I spent a week in August in a hostel around Long Island City. It took ~10 minutes by subway to get to Midtown, another 15 or so to get anywhere else in Manhattan. The main drawback is that you can't easily walk there - you have to go across the Queensboro Bridge. Walking back to LIC late at night is much more of a hassle than walking back to say, LES or Hell's Kitchen.

</comment><comment><USER6> The border of Prospect Heights and Crown Heights around Franklin Ave. might be a good fit for you. It is relatively affordable, somewhat close to Prospect Park, and around some cool places.

Fort Greene and Clinton Hill are really wonderful neighborhoods. It is a bit more expensive, but you can stumble upon some "gems" from time to time.

Best wishes and welcome! :-)

<comment><AUTHOR> Any knowledge of what the hacker scene is like? I'm not expecting a tech mecca like Palo Alto but it'd be nice if there were some workspaces or meetup groups in the area.

I really do love NYC (I'm at school about 90 mins away and have plenty of friends living there) and want to do everything I can to make it a hacker's paradise.

</comment></comment><comment><USER7> the public transportation in NYC is great. Finding great cheap apts is like finding a needle in a haystack. Some friends are reading obituaries to find vacant apts. Everything is available within 1 hr commute via public transportation. I would look at a 30-45 minutes commute from your work location. Look at L magazine and Time Out New York and see where your interests are located. Some of the more affordable places are upper manhattan, the upper east side of manhattan and the outskirts of brooklyn and queens. Even Staten Island for some and if your a real homesteader there are some areas in the South Bronx which are getting cool, although very slowly.

</comment><comment><USER8> Don't overlook Hoboken, Jersey City etc, even though they are technically in a different state</comment>


Neuron – Electron, ES6, React, PouchDB, Sass, Webpack - <AUTHOR> https://github.com/JamesTheHacker/Neuron <comment><USER2> This is little more than a few common npm packages in a package.json and super basic folder structure. There isn't even a sample app in this. Why was this posted? This is nothing more than some buzzwords glued together with no example.

<comment><AUTHOR> This project is not intended to be a sample application. As it stands it's a simple starter kit to avoid having to repeat the same configurations for every application. I created it purely for personal use, and decided to share it.

Over time I will be adding more features. Today PouchDB and CouchDB remote replication has been added comply with offline first development practices. Along with a few other tweaks. Next I'll be adding common React components that I use often in my own commercial projects.

It's every growing, and an attempt to get contributors to jump on board to create something that will be beneficial and helpful to all.

Rome wasn't built in a day.

</comment></comment><comment><USER3> This is similar to electron-compile, built by my fellow desktop app coders over at Slack.

[https://github.com/electron/electron- compile](https://github.com/electron/electron-compile)

</comment><comment><USER4> On the one hand, all these web tech products are interesting. On the other hand, I've recently discovered that writing desktop apps with web tech is just about as awful as doing it in C++, albeit awful in different ways.

<comment><USER5> Personally, the appeal of electron is that most of my knowledge for writing web apps is immediately portable to desktop apps as well. Using the same tooling, language, and with more control over the environment, you can build good enough applications.

Are there gray areas where everything is an awful hellscape of trying to mix node apis and a browser? Oh yes. Is the experience not the absolute best? Yeah. However, I feel the trade is worth it to defer sinking time into native desktop applications.

<comment><USER4> Yeah, so with no extra work, I can run on Linux and Mac...

>> awful hellscape

In my opinion, there are just a few not so insignificant problems with web tech, not the least of which is that the incredibly serious flaws and limitations of the text-as-data-structures programming model in web tech seems to be a like a perpetual motion machine for technical debt.

I cannot be the only one who is deeply unsettled by the notion that the web tech world is populated by thousands of libraries designed to help paper over incredibly serious problems/limitations with the basic programming model. Even stuff like Angular just exists to help paper over problems that had already been solved in the 1980s.

But yeah, maybe it's cool for doing stuff that's good enough. I can definitely see that!

</comment></comment></comment><comment><USER6> I have to give a shout-out to this Electron + React + Redux boilerplate: [https://github.com/chentsulin/electron-react- boilerplate](https://github.com/chentsulin/electron-react-boilerplate)

I've been using it for about 8 months and it's very well maintained. Neuron looks like a nice lightweight alternative though.

</comment><comment><USER7> Is there any electron style solution that works for both desktop and mobile?

<comment><USER8> Apache Cordova [https://cordova.apache.org](https://cordova.apache.org)

</comment></comment><comment><USER9> Very cool. I have been getting into Electron for the past couple of months and I'm starting to find it better than working with C# and WPF for smaller apps. I have never thought about using React. Will play with this today thanks :)</comment>


Analogies Between Kubernetes and an Operating System? - <AUTHOR> Hi hackernews.
I was introduced to the world of kubernetes couple of days ago and it reminds me alot to my lectures about operating systems. Let me draw some analogies:
kubernetes - the operating system (like windows)
docker - a process
prometheus - task manager
fluentd - event log viewer
... do you guys agree? do you have more examples? i am curious <comment><USER2> If you have no CS background, I can understand why you think so, but then you don't need to know K8s in details.

If you have CS background, you shouldn't be asking this question at all...</comment>


What is the highest rated link ever on HN? - <AUTHOR>

I noticed that the post by Steve Jobs had over 900 points and close to 500 comments. Wondering if there is anyway to get the all time top posts? <comment><USER2> Someone asked for similar reasons yesterday: <http://news.ycombinator.com/item?id=1306124>

And in that thread someone else posted this list: <http://top.searchyc.com/submissions_by_points>

From which it looks like that Jobs-on-Flash post is now the 2nd-most-upvoted of all time, after the Google "new approach to China" post.</comment>


Face Detection in JavaScript via Canvas - <AUTHOR> http://badassjs.com/post/1461943420/face-detection-in-javascript-via-html5-canvas

<comment><USER2> Here is the face detection demo I ran: [http://liuliu.me/detect/detect.html#http%3A%2F%2Fimg.dailyma...](http://liuliu.me/detect/detect.html#http%3A%2F%2Fimg.dailymail.co.uk%2Fi%2Fpix%2F2008%2F03_02%2FnicolebatLL_1000x895.jpg)

(press the Detect button when the page loads)

That is impressive.

</comment><comment><USER3> The blog post is a little light on details. Just go to the source and demo on the original creator's site: <http://liuliu.me/detect/detect.html>

Canvas allows access to individual pixels in an image, and JS is arguably faster than BASIC interpreters of the 80s. Fun things lie ahead in client-side image processing.

EDIT: Incidentally, the code is pretty hairy and has about 3 comments. It's hard to figure out what ML approach he's using from a cursory look.

EDIT: Aah, definitely an image pyramid in there, so some multi-resolution stuff happening.

</comment><comment><USER4> <http://squidder.com/face/> \- real time face detection with flash

</comment><comment><USER5> It seems to on average get about half the faces. [http://liuliu.me/detect/detect.html#http%3A%2F%2Fwww.alexrei...](http://liuliu.me/detect/detect.html#http%3A%2F%2Fwww.alexreisner.com%2Fimg%2Fbaseball%2Ffaces.reisner.gif) [http://liuliu.me/detect/detect.html#http%3A%2F%2Fkk.org%2Fct...](http://liuliu.me/detect/detect.html#http%3A%2F%2Fkk.org%2Fct2%2FFaceSw2.jpg) It recognizes upside down faces though, which is impressive. [http://liuliu.me/detect/detect.html#http%3A%2F%2Fwww.scifun....](http://liuliu.me/detect/detect.html#http%3A%2F%2Fwww.scifun.ed.ac.uk%2Fpages%2Fabout_us%2Fshows%2FJennifer_Lopez- upside-down-face.jpg) Overall, a great demo.

</comment><comment><USER6> I did this one: [http://liuliu.me/detect/detect.html#http://antikewl.com/dail...](http://liuliu.me/detect/detect.html#http://antikewl.com/daily/wp- content/uploads/2007/12/stevejobs19751.jpg)

And it only detected Jobs, but not Woz ...

</comment><comment><USER7> Trouble with false positives : [http://liuliu.me/detect/detect.html#http%3A%2F%2Ffarm1.stati...](http://liuliu.me/detect/detect.html#http%3A%2F%2Ffarm1.static.flickr.com%2F25%2F95283121_f300f7d188_o.jpg)

<comment><USER8> Some of the bricks look like the Face on Mars :) <http://bit.ly/aWTgzA>

</comment></comment><comment><USER9> There already is a Facebook app to aide in tagging photos by detecting faces:

<http://apps.facebook.com/photo-finder/>

It's actually quite accurate too...

</comment><comment><USER10> I don't know too much about face detection, can you anyone tell which algorithm the author is using? It doesn't work on a lot of pictures so I was wondering if this is the best face detection algorithm available?

<comment><USER11> I didn't look at the source in detail, but almost all face detection systems today (including those implemented in hardware in cameras) use a variant of Viola and Jones' Haar-Like Cascade Detector [1].

The major exception is work from CMU and PittPatt [2], which uses Neural Networks [3].

[1] [http://en.wikipedia.org/wiki/Viola- Jones_object_detection_fr...](http://en.wikipedia.org/wiki/Viola- Jones_object_detection_framework)

[2] <http://www.pittpatt.com/>

[3] <http://vasc.ri.cmu.edu/NNFaceDetector/>

<comment><USER12> I doubt that PittPatt uses NN. Here is the reference I found:

Feature-Centric Evaluation for Efficient Cascaded Object Detection, Henry Schneiderman

Maybe Schneiderman himself can clarify this :)

<comment><USER11> Ah good point. I forgot that he had his own method, separate from Takeo's.

</comment></comment></comment></comment><comment><USER13> Doesn't really seem to work that good on pictures with more objects on it.

</comment><comment><USER14> It's pretty sweet. I wrote qoobster.com/bieber to get Antoine Dodson's sweet headband instead of that silly red square plastered on my friends.

<comment><USER15> haha, nice!</comment></comment>


Your Excuse Sucks - <AUTHOR> http://yourexcusesucks.com/excuse/my-vote-doesnt-matter-in-my-state <comment><USER2> I discourage people from voting on things that they don't understand. You should feel easy about leaving propositions or measures blank. I know that I didn't vote on some city measures. Although there is an electoral college, especially when it comes to propositions and measures, if you don't understand the topic, and if you didn't look at both sides, then you're adding chaos to a process that should be led by people who have an authentic position. Everyone should be able to vote, but voting comes with the responsibility of being informed.</comment>


The .Org Domain Will No Longer Be Sold to Private Equity Vultures - <AUTHOR> https://www.vice.com/en_us/article/akw5pg/the-org-domain-will-no-longer-be-sold-to-private-equity-vultures <comment><USER2> This really is a "stunning" victory that I did not expect. In today's world, big money rarely loses a round to NGOs and the public interest. Maybe this happened because the circumstances around the selling were _that_ egregious.

<comment><USER3> If they thought .org as a domain would be tarnished by this, perhaps big money redid some revenue projections on the sale and found that numbers would no longer add up.</comment></comment>


"Cumulative Code" smell - <AUTHOR> https://hackernoon.com/cumulative-code-smell-6d5344646c46 <comment><USER2> I rarely find code style articles to be interesting, but this one spoke to me. I've seen this happen a lot in Python and C codebases, possibly because the languages encourage/allow long procedural functions.

</comment><comment><USER3> Thanks for sharing! I hope you liked the post!</comment>


Light throws a curve ball - <AUTHOR> http://www.st-andrews.ac.uk/news/Title,24711,en.html

<comment><USER2> More on Airy beams: <http://focus.aps.org/story/v20/st19>

</comment><comment><USER3> This blew my mind a little bit. Actually, the fact that light can travel along a curve wasn't as exciting to me as the fact that apparently they are using light to move physical objects. (?) I can see some really great applications for that in the future.

</comment><comment><USER4> Light throws like a girl.</comment>


Trimming the money mustache - <AUTHOR> https://medium.com/i-m-h-o/6a2f4160a206

<comment><USER2> I think he covers your points in this post - [http://www.mrmoneymustache.com/2013/04/29/frequently- complai...](http://www.mrmoneymustache.com/2013/04/29/frequently-complained- questions/)</comment>


Voxel Plotting with Gnuplot 5.4 - <AUTHOR> https://lwn.net/SubscriberLink/828761/6d8c7ddc142a67a0/ <comment><USER2> Nice, I've been looking for a way to visualize the evolution of a volatility surface over the course of a month, the trick of just outputting the files and greating a gif with ImageMagick seems like a nice, quick way to show it. Any idea how you could make something like this but interactive, say within a Jupyter notebook with a slider?

Really great work here, I need to renew my expired LWN subscription clearly. Thanks for posting!

<comment><USER3> 3D viz that integrates well with Jupyter: [https://yt- project.org/](https://yt-project.org/)

Also MayaVi ([https://docs.enthought.com/mayavi/mayavi/index.html](https://docs.enthought.com/mayavi/mayavi/index.html)), which is more Pythonic.

Paraview ([https://www.paraview.org/](https://www.paraview.org/)), which is widely used and has a relatively good GUI, but not as good for Jupyter.

Ascent ([https://ascent.readthedocs.io/en/latest/](https://ascent.readthedocs.io/en/latest/)) for visualization of in-situ data.

<comment><USER4> You can use ParaView from Jupiter just fine ? You can even embed its views, pipelines, controls, make interactive notebooks, etc...

</comment></comment></comment><comment><USER5> Voxels are the 3D equivalent of pixels</comment>


Canadians Are Mad as Hell at Tim Hortons - <AUTHOR> https://www.vice.com/en_us/article/wjppaw/canadians-are-mad-as-hell-at-tim-hortons <comment><USER2> LOL. Minimum wage laws always have unintended consequences that create more problems than benefits. The anger is driven because advocates are attempting to deny this is true. And this is just a minor consequence, stripping completely optional benefits to keep costs down is a pretty normal reaction.

Look at it this way, assume Tim Hortons thought they needed to pay $14 per hour to attract the type of help they needed. Previously if the minimum wage was $12, they could either pay $14 per hour, or add $2 an hour in benefits. If they were paying $12 + $2 in benefits, and the minimum wage goes to $14, they aren't going to raise their labor costs to $16 per hour, they don't need to in order to attract the types of employees they need.

Minimum wage benefits are also focused on those who need them the least. It causes companies to reduce hiring and jobs, and to invest more in automation. Those who lose jobs because of it are much more likely to be of color, in poverty, and single parents. Those who keep their jobs are much more likely to be middle class, more highly educated, or students still being supported by their parents.

Instead of a minimum wage, we should have government programs provide benefits to the working poor and single parents earning less than living wages. Without giving a dime to yuppie kids and yuppie spouses. That would make the job market far more robust and open, easier for everyone to find work, while doing far more to help the people we should be trying to help, all at a much lower overall cost.

<comment><USER3> stick it in your ear. This is the rich owners of a particular Tim Hortons franchise, who are the heirs to the billion dollar Tim Horton fortune, being petty.

<comment><USER2> Maybe, but these are people who also voluntarily gave benefits in excess of minimum wage before it was raised.

Clearly the change increases their costs and lowers their profitablity. Whether they are billionaires doesn't matter, it's a business, not a charity. It's easy to tell others they don't need to make as much money, how would you feel if told the same?

</comment></comment></comment><comment><USER4> Tim Hortons is a shitpile. I worked in one once...for a week....just after highschool, I left when A&W called me back to offer me a job. As crappy as A&W was, Timmy's was so much fucking worse. The pay was crappier, the work was harder, they didn't supply me with a uniform, they made me use one from the dirty uniform bin, my breaks were not paid as it was, I got no benefits and there was zero hint of any future benefits. The schedule was ridiculous and illegal, they had people working opening shifts right after graveyard shifts, they gave even the people who'd been there for years less than 32 hours effectively making them part time employees. The owner of that particular location also owned a Wendy's, he would make his employees work at both of them without a proper working agreement. Right around the time I worked there was also when Claus, the owner, began bringing philipino workers in on visas, keeping them in homes he owned and deducting rent and expenses directly from their pay cheques. Which is fairly illegal. The last time I was in either of his establishments all his workers had been replaced by them.

I really try not to support Tim Hortons. Also their coffee sucks and their food is frozen garbage.

</comment><comment><USER5> Yeah, but we were mad when it sold to the Americans, like many other Canadian companies like Eatons (sold to Sears) and Stelco was sold to US Steel. CN Rail is majority (over 50%) US-owned.

This is an interesting article on the "pennies matter" franchise of Dunkin Donuts, which falls into a similar target market: [https://www.bostonglobe.com/magazine/2014/09/17/the- secret-w...](https://www.bostonglobe.com/magazine/2014/09/17/the-secret-world- dunkin-donuts-franchise-kings/pb2UmxauJrZv08wcBig6CO/story.html)

</comment><comment><AUTHOR> For those not in the know Tim Horton's (named after its founder a famed hockey star) is a Canadian donut chain. They're also very popular along the Canadian border. Here in Michigan they're everywhere. Recently they've expanded into sandwiches and are trying to be seen as more of a restaurant.

<comment><USER6> "Tim Hortons Inc. (known internationally as Tim Hortons Cafe and Bake Shop, colloquially known as Timmies or Tim's) is a Canadian-based multinational fast food restaurant known for its coffee and donuts." \-- Wikipedia

Most ppl go Tim Hortons for coffee, not donut.

<comment><USER7> Uh, Timbits? They're a kid favorite.</comment></comment></comment>


When is the best time to launch? season? month? day of week? - <AUTHOR>

To maximize success, when should you launch your startup?  Is there a best time of year? Do certain months have advantages? Days of week? Times of day? Any amount if detail is valuable. <comment><USER2> Cioc, it depends on what type of "launch" you are talking about.

.

If you mean the first time showing your product to users, you don't need an official "launch". You should be constantly posting about your startup in circles where your userbase resides.

Starting from scratch, it's hard enough to get a decent number of users to care. You shouldn't restrict yourself to trying to get a lot of users in a short burst. The goal here is to incrementally grow out the feature set as well as the userbase.

.

If you are talking about the big tech publication launch, it should happen when you are sure your product is magnificent and you are confident that people will love the novelty / utility / efficiency. You have to somehow convince tech publications that you are interesting. You don't want to mess up by having them visit a substandard product and establishing a bad impression.

Note that if your targeted audience is not tech, what you are doing with tech publication launches is building brand familiarity with investors. This is a different aim than blowing up your user count, but is an important goal nevertheless.

.

I think a big source of confusion is the term "launch". It somehow predicates that in the pre-state, there are zero users and in the post-state, there is either a huge number of users if your startup is a success or a low number of users if your startup is a failure.

I like to think of launches as a way to get a nice boost up in user count or awareness on top of the incremental increase.

.

You should know before you "launch" whether it will be a successful or not.

</comment><comment><USER3> Launch to who? To press? To end users? You should ideally not have anything called a "launch" at all. Start showing the prototype as early as possible to potential users and refine it along the way. There is no golden launch season. It's a process, not an event.

</comment><comment><USER4> Your best chance for success will be at 4:00 PST on a Tuesday as close to March 27th as possible.

</comment><comment><USER5> It should happen by accident, when one person says "lunch" and the other person thinks he said "launch".</comment>


GoldieBlox viral video turns tables on little-girl princess fantasy - <AUTHOR> http://www.latimes.com/nation/shareitnow/la-sh-goldieblox-20131121,0,3605772.story <comment><USER2> As well intentioned as GoldieBlox might be, they apparently violated the wishes of Adam Yauch of the Beastie Boys, and possibly his will, which prohibits the use of his music "artistic property" for advertising purposes after his death.

[http://www.rollingstone.com/music/news/adam-yauchs-will- proh...](http://www.rollingstone.com/music/news/adam-yauchs-will-prohibits- use-of-his-music-in-ads-20120809)

According to the Hollywood Reporter, [http://www.hollywoodreporter.com/thr- esq/beastie-boys-girls-...](http://www.hollywoodreporter.com/thr-esq/beastie- boys-girls-viral-video-659308), the Beastie Boys have threatened Goldblox with copyright infringement, and GoldieBlox has filed a lawsuit asking "declaratory relief that the video is not a copyright infringement" ([http://www.scribd.com/doc/186402972/Beastie](http://www.scribd.com/doc/186402972/Beastie))

I am certainly not a lawyer, and I enjoyed the video, and it sort of seems like a fair use parody, except that I am led to understand fair use often depends on things like if it's for commercial use and how much of the original material is used. So it could be an interesting legal fight.

It does seem to be disrespectful and a misstep. In contrast, Weird Al Yankovic famously asks for permission of the targeted artists to parody their songs.

Word is GoldieBlox is now learning the lesson of:

(You Gotta) Fight For Your Right (To Parody)

<comment><USER3> Thanks for the info.

On a personal note, I hope GoldieBlox wins it.

<comment><USER2> I am genuinely torn. I would like them to win in terms of copyright theory. I wish there was someway to come to terms with Adam's will however. Though presumably an innocent mistake, I do think that's a very big deal (on a karmic level.)

<comment><USER4>
        >Though presumably an innocent mistake

Oh come on, no need to be naive. It's not like the Goldieblox people heard the melody to "Girls" and thought it would work well for their commercial, they knew the pop-cultural baggage that came with that song and leveraged it for the marketing angle. That's not a criticism, it was savvy, regardless of how any lawsuits pan out Goldieblox should could out ahead.

</comment></comment></comment></comment><comment><USER5> The GoldieBlox lyrics complain about stereotypes regarding what girls want. Specifically they mention buying pink items. Then I go to the GoldieBlox website and the toys are pink and purple. They feature cute animals including a dolphin ballerina. Seems a bit hypocritical to me.

<comment><USER6> That's where I am on the topic. Despite my name, I am indeed a stereotypical hacker (overweight, beared, white and male). I have two daughters, the eldest of which loves the Lego set I've passed down to her. Not once has she complained that there are only a few pink blocks in the box - and come to think of it, I don't think _I_ complained when I somehow acquired a "girl" set when I was younger; I just added them to the box. They're blocks, not genitalia.

My daughter shoots guns, plays with Legos, and competes in a ballet competitions and pageants. Later today, we're going to make home-made sugar rockets. Time and weather permitting we'll take my Jeep up in the mountains this evening and launch a few.

I think what these guys are doing is admirable, but in the end implying that girls' toys have to be pink and cute is nothing more than a complex version of "separate but equal".

</comment></comment><comment><USER7> My daughters have this game. They played it twice over the past 6 months ... they much prefer Legos.

</comment><comment><USER8> For anyone curious about the Rube Goldberg machine in the video, here's a behind-the-scenes video with its inventor Brett Doar:

[https://www.youtube.com/watch?v=TrzCrXRpI4k](https://www.youtube.com/watch?v=TrzCrXRpI4k)

</comment><comment><USER9> I want to support this company.</comment>