Ask YC: Can a startup entrepreneur not be a coder? - <AUTHOR>

I am very interested in startups and business and its components (sales, marketing, finance, legal aspects, innovation) but am not into coding and hacking and so forth. So I am wondering if there is room on start ups founding teams for business people? <comment><USER2> Yes. But you might have a hard time convincing technical people that there is room in their tech startup for a non-technical person.

<comment><USER3> Lol. Very true. I am a coder, but on my startup I am not coding. It is because my partner's skills far surpass mine at programming and my skills at online marketing, sales and pr outweigh his. So I am focusing on branding and awareness while he focuses on the nit and gritty code. It is a great relationship. But we are also best friends and have worked on projects together in the passed.

<comment><USER2> That's pretty similar to my startup. When we're both working solely on code, he outproduces me at least three to one. I've written plenty of code in my life, and I still write quite a bit of code, but my priorities are mainly support, packaging, documentation, marketing, website maintenance, etc. while he builds the products. Mostly those are still technical skills, however...and when we bring in a third person later this year (not really "founder" status, but plenty of equity and a salary), it will be another technical person to help off-load some of the support and handle some of the ongoing UI and design work. Though I may hire a part-time assistant to deal with the books and such before then, but no serious equity will be involved. The fourth real hire will be an enterprise sales person who will see mainly commission-based compensation with some equity so that the long-term health of the company has some sway on their decisions. Those hires will probably come pretty close together.

But every company is different. Companies building much smaller web apps that require a lot more marketing, sales, PR, and evangelism than ours does could probably make use of a non-technical person much earlier in the process.

</comment></comment></comment><comment><USER4> Building product awareness is a full time task and so is programming.

</comment><comment><USER5> Ask Guy Kawasaki.

</comment><comment><USER6> I think technical skills are highly over-rated, whether it is programming or mechanical design. The most important ingredient for a successful startup is an insight into a set of problems experienced by a large enough population of potential customers that are currently unsolved and that they are willing to pay money to relieve the pain, even if it means that they might risk their career buying from an unproven startup. If they have identify such an opportunity, you can find technical talents which are highly interchangeable.

<comment><USER7> I disagree. My toughest problem is finding people I am comfortable with in terms of their technical ability.

<comment><USER6> This is exactly my point, that technical people are interchangeable. Your problem is not finding technical people but technical people whom you are comfortable with. In another words, the selection criteria here is not their technical ability (which there are plenty) but their compatibility with you. Again, none of these matters unless you have a good product idea.

</comment></comment></comment><comment><USER8> _"... Can a startup entrepreneur not be a coder? ..."_

Yes. Mitch Kapor was underestimated and you can use this to your advantage. He was seen as a novice non-tech in his Startup, recognised this & profited from it. Read about Mitch Kapor ~ <http://www.kapor.com/bio/> and I've written more about this here: <http://www.flickr.com/photos/bootload/2296168310/>

<comment><USER2> How is Kapor a non-coder? He was writing software throughout all of his early endeavors. He didn't outsource development of Visiplot and Visitrend.

I'm having a hard time imagining how Kapor could possibly be considered a non- technical/non-coding founder. He may not have gone to school for it...but most of us didn't learn to hack in school (if you didn't know how to hack until you got to school you obviously don't love computers enough to be a hacker).

So, sure Kapor hired additional developers, and his genius probably lies more in his dealings with other people than computers, but he was clearly a hacker from very early on, and one certainly can't hold him up as an example of an entrepreneur without any technical ability.

<comment><USER8> _"... How is Kapor a non-coder? ..."_

I'm not trying to say he has no technical ability. I'm saying that in this case an Entrepreneur succeeded in spite of what is considered by many to be the prime requirement of Entrepreneurship. The current mantra is, _"if you are non-technical, give up"_. If anything, Kapors success came more from his insight into human psychology than the his technical ability to code ~ <http://www.flickr.com/photos/bootload/2348902846/>

</comment></comment></comment><comment><USER9> If you've really got a handle on the business side of things and you're a great people person, I'd say yeah.

Even if you're not actually coding, you can provide ideas and feedback.

</comment><comment><USER10> Yes. Your startup doesn't _have_ to be in tech. We have two founders, me (tech, business, sales), and kasey (graphic designer (UX), marketer, sales, evangelism, business, etc) And that's just how it works us, and we're in tech.

</comment><comment> a-priori In my case, there was room because there's a significant non-technical component to the business. So, my co-founder is a business person. She handles that side of the business, and I do the technical.

</comment><comment><USER11> yes, if you have connections and an idea that comes from your experience which could be crucial for success, but joining an existing team maybe it's harder if there is not even a product yet...</comment>


SeatGeek Powers Artist Listings For DuckDuckGo - <AUTHOR> http://seatgeek.com/blog/seatgeek-news/seatgeek-powers-artist-listings-for-duckduckgo

<comment><USER2> How does DDG's relevance engine work?

e.g. Adele is on tour right now, but DDG won't return a SeatGeek listing for it

<comment><USER3> Looks like a bug -- will fix. I'm detecting and calling them in this case, but I'm not rendering it. Not sure why I'm throwing it out yet.

Update: looks like SG doesn't have any info on those concerts, with info defined as average price.

<comment><USER3> Fixed this bug. Thx!</comment></comment></comment>


Google I/O 2008 - Python, Django, and App Engine (Video) - <AUTHOR> http://www.youtube.com/watch?v=v1gTI4BOPUw

<comment><USER2> App Engine is good and everything but at present still has too many restrictions e.g. limited python/django implementations.

Without being able to use many of the python/django libraries, it makes life much harder.</comment>


Let us build your startup for you while you sleep - <AUTHOR> <comment><USER2> great to hear that. I have so many ideas to work on but not enough time to execute them</comment>


Research paper: Interstellar flight is at least 200 years away - <AUTHOR> http://arxiv.org/pdf/1101.1066v1.pdf

<comment><USER2> It's an interesting analysis, but I'm extremely dubious about the degree of extrapolation going on here. It's hard to imagine that the past 25 years have been typical in human history, or for that matter that the past 125 years have been. Is it really safe to make _any_ quantitative assumptions about how technology and society will support spaceflight 200 years from now?

Those concerns are only magnified by the author's willingness to list a "nominal readiness date" of the year 5000 for humanity to be able to capture and use 100% of the entire galaxy's energy output (last line of Table 5). It would take 20 times that long just for us to _reach_ the other edge of the galaxy, even assuming light speed travel.

</comment><comment><USER3> This paper appears to assume that no revolutionary changes in energy production make it vastly more available. Am I misreading it? With projects like polywell fusion reactors[1] showing great promise, I'm not sure if the conclusions drawn on that assumption are very predictive.

[1] <http://en.wikipedia.org/wiki/Polywell>

<comment><USER4> "calculated based on 27 years of data on historic energy trends, societal priorities, required mission energy, and the implications of the Incessant Obsolescence Postulate "

Yes, you're right. He's assuming everything proceeds growing the way it is now. You gotta start somewhere when predicting the future.

<comment><USER5> The problem is, that things like these create a misguided perception in the general public. Papers like these should be full of disclaimers that making predictions about any technology 200 years in the future is at best highly speculative. Ultimately I would argue the value of a constructed research like this is very little more than the work of a scifi author who just makes up some story based on the last 27 years of his life experience. The choice ultimately comes down to what method one prefers for speculating on what is going to happen 200 years from now.

</comment></comment></comment><comment><USER6> "We are not going to be able to operate our Spaceship Earth successfully nor for much longer unless we see it as a whole spaceship and our fate as common. It has to be everybody or nobody."

 _\--Buckminster Fuller_

<http://en.wikipedia.org/wiki/Spaceship_Earth>

</comment><comment><USER7> Interestingly, the author dismisses the 0.3c matter-antimatter possibility in favor of a much more modest 0.03c, and then goes on to list "earlier", "nominal", and "later" scenarios while ignoring an entire order of magnitude of velocity.

</comment><comment><USER8> That's a pretty interesting way to look at it. It also makes sense given that it'll take longer than that to exploit our own solar system, given that it's got millions of times the accessible resources of Earth.

<comment><USER9> The vertical axis of the graph on page 6 is in log scale - it already accounts for exponential growth, considering we get there in 600 years, which is, IMHO, a very reasonable (and I dare to say, optimistic) extrapolation.

Consider you need more than access to raw materials: you need the manufacturing capacity to harness the power source. Covering the Moon with 100% efficient solar panels wouldn't even put us on 1 at the Kardashev scale.</comment></comment>


Obamacare's Middle-Income Trap - <AUTHOR> http://www.forbes.com/sites/theapothecary/2014/01/18/obamacares-middle-income-trap/?partner=yahootix <comment><USER2> So, parts of this article make sense, but parts are sort of missing the point of health insurance by pointing out that you can come out ahead without it _if you don 't develop major health problems_. My parents have lost money on their home insurance every year, too, because their house has never been hit by a tornado. But it would be a pretty bad idea not to have home insurance, because if their house were leveled by a tornado, they would be completely screwed.

Similarly, the healthy 30-year-old saving $1455/yr by not buying insurance will come out ahead in the average case, and will be _completely_ fucked if he gets cancer, or gets in a serious car accident. Actually, the rest of us will be too, because the most likely outcome is that he'll declare medical bankruptcy and just shift his costs to the taxpayer anyway. Hence the dumbness of a non-universal, opt-in system.

</comment><comment><USER3> "Affordable" Care Act: When you put an adjective into a product's name, that's often the only place in the product you'll find that property.</comment>


A brief introduction to OCaml - <AUTHOR> http://www.lexicallyscoped.com/2015/06/06/intro-to-ocaml.html <comment><USER2> It's cool to see a link about learning OCaml so high on HN. I started teaching myself OCaml a few months ago and I really like it. Here's a few things I like so far and why I think anyone that uses Go or Rust should give OCaml a look:

1\. OCaml compiles to a binary like Go and Rust do

2\. The type system is helpful without being a huge burden on learning/productivity (unlike Rust and Haskell)

3\. Garbage collection

4\. Pattern matching and algebraic data types (like Rust)

5\. OCaml is plenty fast at CPU bound work(slower than Rust, faster than Go) despite not being parallel (yet)

Those are my takeaways of what I enjoy about OCaml so far. It has been the most approachable typed functional language that I've looked at yet! Depending on the type of things you want to learn and problems you want to solve, Your Mileage May Vary.

<comment><USER3> >1\. OCaml compiles to a binary like Go and Rust do

And Haskell.

>2\. The type system is helpful without being a huge burden on learning/productivity (unlike Rust and Haskell)

What? The type system is partly why my coauthor can use Haskell, unlike JS or Java. Haskell was her first time ever programming and now she's teaching Haskell to her 10 year old son.

I use Haskell in my day job, I couldn't do my job without the type system!

So in terms of learning and productivity in Haskell (can't speak for Rust), I will strongly disagree here.

The rest of the points apply for Haskell as well.

Haskell doesn't need to be hard to learn at all, it hasn't had the learning resources it deserves and expectations weren't being set properly. It's more like learning a new way to program (functionally) rather than a dialect of an existing paradigm (imperative, but we give you a map and a reduce function).

That paradigm (functions alone) is very simple but the implications are non- obvious and require a method of introduction that involves a lot of exercises.

<comment><USER4> I'm sorry if this sounds rude, but what's the point you're trying to make? I can't quite figure it out.

<comment><USER5> OP suggests Haskell's type system interferes with productivity. GPP disagrees.

</comment></comment></comment></comment><comment><USER6> This is also great cheat sheet for someone still getting used to the OCaml syntax.

I usually advise people to pretend that double semicolons don't exist for anything but the interactive top level. In source files, you can forget about double semis entirely as long as you just remember to always assign the result of an imperative statement to the dummy "_" name.

        let _ = print_string "hi"

Then you can think of ;;<enter> as merely a fancy way of hitting the return key in the interactive REPL. There's also a way to use a different key mapping (control+enter) instead of ;; in utop, so there would be no reason to even acknowledge the existence of double semis. [https://github.com/diml/utop/issues/131](https://github.com/diml/utop/issues/131)

<comment><USER7> This is one thing I'm on the fence about F# doing "better", double semis are replaced by requiring you do something with your result, either assigning the result of piping it to the "ignore" builtin.

<comment><USER8> In some way, OCaml can be thought of doing this as well: [https://xivilization.net/~marek/blog/2014/12/28/reinventing-...](https://xivilization.net/~marek/blog/2014/12/28/reinventing- the-semicolon-operator/) You can consider the ; operator as a binary operator evaluating the left side, throwing away the result and then avaluating the right side and returning that result.

</comment></comment></comment><comment><USER9> im quite amazed that ocaml seems to be on a rise (judging from how often i've recently seen it on here). it reminds me of the time i started to dig into it more than a decade ago when mldonkey [0] was a thing.

also, this is the way to briefly introduce a programmer to a new language. just show the commented syntax. i just hate reading all the prefaces and texts of language manuals. it's good they're there but i'm just loosing interest too quickly if you don't show me code.

[0] [https://en.wikipedia.org/wiki/MLDonkey](https://en.wikipedia.org/wiki/MLDonkey)

<comment><USER10> You might want to give this a look: [https://realworldocaml.org/v1/en/html/a-guided- tour.html](https://realworldocaml.org/v1/en/html/a-guided-tour.html)

</comment></comment><comment><USER11> There are also more links/resources on the OCaml website.

[http://ocaml.org/learn/books.html](http://ocaml.org/learn/books.html)

</comment><comment><USER12> It seems `int_of_float` and `float_of_int` are deprecated by the Jane Streets Core library. It even throws errors on utop. I believe they need to be replaced by `Int.of_float` and `Float.of_int` respectively.

EDIT: Some more corrections:

1\. `List.hd []` doesn't raise an error as its return type is an option. So the result is a `None`.

2\. `List.map` and `List.filter` arguments should be reversed. First argument should be a list and the second should be the mapping function.

<comment><AUTHOR> The code examples doesn't use Jane Streets Core as the primary standard library. If you do, for example by adding `open Core.Std` to your .ocamlinit, you'll get the behaviour you're describing.

It is probably a good idea to use Core, but for this introduction I wanted as little requirements as possible.

edit: spelling

<comment><USER12> Right. Since you mention the installation instructions from Real World OCaml and the examples in the book need you to use Core, it is likely that beginners would experience these issues.

<comment><AUTHOR> That's a good point. I'll add a note to explicitly say that the examples doesn't use Core.

</comment></comment></comment></comment><comment><USER13> I do really like OCaml, although Rust is the one I'm starting to look to where in the past I'd consider OCaml (yes, two different languages, but similar in practical function approach and safety).

The one things that I absolutely can't stand about OCaml is the lack of an easy, available, include-in-the-standard-library, debugging function. Every damn time I work with OCaml, I end up having to write annoyingly time- consuming "print_blah_blah" functions to handle debugging. And such a debugging feature should handle errors already, and not return the Option type. I shouldn't have to write a function to handle errors on a debugging statement.

And yes, I'm sure there are some nice versions of this already available in 3rd-party libraries, but this should be in the standard library.

</comment><comment><USER14> How does OCaml compare to F# from a language point of view?

<comment><USER6> It's easy to get a quick comparison by searching stackoverflow so I won't reitterate those answers, but I would just mention a couple of my favorite things from OCaml that F# doesn't have that those answers tend to leave out:

\- Polymorphic variants

\- GADTs

\- Named arguments (that are still curried if you can believe it!)

\- Last time I checked OCaml had better record label scoping. F# doesn't allow two record types in scope that share a record label name. Does anyone know if F# has plans to implement what OCaml has (or have they already?) OCaml used to have the same problem but it was fixed and now dealing with OCaml records has been massively improved as a result.

<comment><USER15> Also, OCaml has functors.

On the other hand, interop with C# means instantly much larger ecosystem.

</comment></comment></comment><comment><USER16> How does concurrency in OCaml compare to Go, Clojure, Rust, etc?

Thanks

<comment><USER15> Concurrency is not built-in, you can get monadic concurrency from libraries (either lwt or Async). There is no parallelism support yet, but multicore support should be there by the end of the year.</comment></comment>


Computer Programming as an Art (1974) [pdf] - <AUTHOR> http://cacm.acm.org/magazines/1974/12/11626-computer-programming-as-an-art/pdf <comment><USER2> Richard Gabriel has an interesting and relevant proposal for a Master of Fine Arts in Software program. I think it would actually work better than a MSCS for many people who want to work as developers on regular applications.

[https://www.dreamsongs.com/MFASoftware.html](https://www.dreamsongs.com/MFASoftware.html)

</comment><comment><USER3> Hm - I have read many times that the "premature optimization is the root of all evil" quote was misattributed to Donald Knuth and actually came from C.A.R. Hoare, but here it is in print, and he seems to present it as his own thought. I'm going to go back to attributing this to Knuth. (and pointing out that almost everybody who repeats it is misunderstanding it)

<comment><USER4> That's because Knuth at some time thought he had it from Hoare. See [https://shreevatsa.wordpress.com/2008/05/16/premature- optimi...](https://shreevatsa.wordpress.com/2008/05/16/premature-optimization- is-the-root-of-all-evil/)

I guess we'll never know whether he was right, but all we know is that he used it at least twice in print, while we don't know any time Hoare used it.

</comment></comment><comment><USER5> The example of the "trapped housewife" on page 6 is a great example of just how spoiled and entitled we've become. We can't imagine doing a routine job every day unless it's somehow _fun_ , to the point where he describes the housewife as "trapped" just because she has to clean the same boring table day after day. Why isn't it rewarding enough to know that I'm cleaning a table so that my children can have a clean place to eat their food, so that they can grow up in a clean and healthy environment? Why do I have to _spice up_ this task to make it more stimulating to my brain? People successfully did boring and tedious tasks for _thousands of years_ without needing to turn them into enjoyable pleasant experiences. Maybe we should learn from them.

<comment><USER6> "People lived through winters and summers for _thousands of years_ without needing central heating! Maybe we should learn something." Yeah... Those effete workers using the fruit of their increased productivity to better their quality of life. How dare they!...

The statement above is the logical equivalent of your statement. Simply because people survived before <invention> was invented, does not automatically make <invention> bad, excessive, or unnecessary.

<comment><USER5> There's more to _quality of life_ , than life being convenient, easy, more productive with less effort, and other benefits that modern technology brought us over the past hundred years.

You know the old joke that the three virtues of programmers are laziness, impatience, and hubris? It's a joke for a reason: because it's obvious that these are _flaws_ and that the real virtues behind them are diligence, patience, and humility.

But it's harder than ever before to practice these thanks to technology and the riches of modern life.

How can we practice diligence if doing a full day's worth of work takes about 20 minutes thanks to dishwashers, little vacuum robots, the internet of things, Siri and her siblings, self-driving cars.

How can we practice patience when every task, from traveling to cleaning to getting food to communicating across the globe, is so much quicker to do than when we grew up?

How can we practice humility when we're applauded with thousands of approval- points for posting extremely mediocre content on social media, or when we make disproportionate money for the amount of work we're putting into it?

Quality of life is more than having an easy and comfortable life. I can't imagine it being disputed here that being lazy feels awful and that putting in a hard day's work makes a person feel much more fulfilled, or that being "soft" feels humiliating and that being able to handle a little more discomfort and physical adversity makes one feel a lot more proud to be human.

<comment><USER7> We can practice diligence by working persistently on things that are more valuable to ourselves and to our society than washing dishes, cleaning floors, making shopping lists, going to libraries for basic research, and spending the time in our self-driving cars reading, or thinking about things other driving.

We can practice patience by using all of the extra time we now have to not rush our actual jobs, to spend time thinking and researching and absorbing new thoughts and trying to create new strategies and techniques and sharing them with the World after plenty of iterations of deliberation, practice and adaptation.

We can practice humility by seeing the reality of who we really are through the data we generate, and stop believing the lies we tell ourselves. Work out, do you? Fitbit says your heart rate only went above 90bpm once in the last month. Don't snack, do you? MFP says you're averaging 600kCals/day in vending machine treats. Making too much money for low effort work? How come you have thousands in debt? Why is 75% of that debt accrued on eating out and fast food according to the app the card company gave you?

Quality of life is measurably improved by improvements in technology. If people decide to abuse it to use the extra capabilities it provides to do inane, stupid, irrational and vain activities, is it the fault of the technology? Really?

<comment><USER5> I never said technology can't _help_ people improve their quality of life. Only that technology makes it harder _not_ to be lazy, impatient, arrogant, etc.

The fact is that people tend more towards selfishness, laziness, arrogance, impatience, annoyed irritation, etc. than their contrary virtues. Technology won't and can't change that.

And every few months when a new iPhone app hits HN's front page claiming to be the solution to any of these human flaws, I can't help but roll my eyes. FitBits may be able to _help_ a person change their dietary and exercising habits if they're already inclined to, but they can't make that person be inclined to in the first place.

</comment></comment></comment></comment></comment><comment><USER8> >Dabblers & Blowhards (2004) [Response to Hackers & Painters] > [http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm](http://www.idlewords.com/2005/04/dabblers_and_blowhards.htm)

<comment><USER9> This article is trash. His conception of what a painter is is just lifted from mysogynistic pop-culture stereotypes, and his argument essentially rests on his inability to compare the two arts on an abstract level (e.g thinking he's refuted graham just by pointing out that painting is done with materials and programming is done on a machine.)

<comment><USER10> The article isn't trash. The author knows damn well what painters do and don't do. The "misogyny" is satire aimed at people who don't.

He also specifically calls out Graham for making statements about art history and practice that are factually wrong.

Graham's article isn't just uninformed, it's an example of Developer Exceptionalism - the mistaken belief that knowing how to code qualifies some developers as expert opinionators and practitioners in domains where they've barely reached amateur/dilettante levels of competence.

Art, music, architecture, physics, maths, law, and the rest, all require years of professional dues and effort to reach knowledge and competence - just as coding does.

It's fine having an opinion about them. It's hubris to believe that knowing how to code makes that opinion any more valuable than the opinion of any other untrained non-professional.

<comment><USER9> OK, I actually do agree with the art history errors he points out–Graham's comment that "The paintings made between 1430 and 1500 are still unsurpassed," for example, is completely ridiculous. And I also totally agree that Developer Exceptionalism is a very irritating thing that Graham is guilty of.

I just don't agree that painting and programming are completely different, and I don't find any of the author's arguments very compelling. I've spent many hours both painting and programming (working towards a BFA in painting and a BA in CS)–the mental states that happen during the creative process, the types of thinking strategies employed, and the problem-solving techniques are actually very similar. They're just abstractly similar–which is why it doesn't really matter that painting takes place through materials and programming doesn't, or that you could substitute painting for any creative discipline that involves dealing with constraints. His arguments are bad, and I hope nobody walks away from that post agreeing that "hackers are nothing like painters."

<comment><USER11> _" The paintings made between 1430 and 1500 are still unsurpassed," for example, is completely ridiculous_

Somewhat offtopic, but we can talk about it anyway, since we are talking about art. (and let's extend the range beyond 1500 a little).

It is true, for example, that Raphael's colors, while beautiful, are surpassed by the incredible range we have today. And certainly, photoshop and modern art gives artists more options in composition, conception, and execution than ever before. However, in terms of raw skill, I don't think anyone surpasses Michaelangelo. Certainly not anyone today (although Rodin and Monet come close).

</comment></comment></comment></comment></comment><comment><USER12> Artistry produces beauty. Craftsmanship produces quality. They are not the same thing, and they are not necessarily in conflict. But don't confuse one for the other.

<comment><USER13> Interesting observation, but I am not sure what your point is in this thread. Knuth understood the distinction and selected his words intentionally.

"When I speak about computer programming as an art, I am thinking primarily of it as an art _form_, in an aesthetic sense. The chief goal of my work as educator and author is to help people learn how to write _beautiful programs_."

<comment><USER12> If you're getting paid to write quality software, don't instead write software that's only beautiful.

<comment><USER14> To a programmer's aesthetic it seems they're usually the same.

</comment></comment></comment></comment><comment><USER15> I think Knuth makes some good points.

I'm also a fan or science that is presented artfully. I'm not sure those are the best words to describe it, but 'artful' is the feeling I get when watching a Richard Feynman lecture or see an interview where he talks about physics.</comment>


Apple's Hypercard website redirects to the Wikipedia article - <AUTHOR> https://www.apple.com/hypercard/ <comment><USER2> Meanwhile, the Internet Archive's trove of old Mac software that runs in your browser is growing by the week. Lots of Hypercard stacks already in there, e.g. [https://archive.org/details/TheManholeMacintosh](https://archive.org/details/TheManholeMacintosh)

<comment><USER3> Oooh, Manhole <3 <3 <3

Only problem with the Archive.org setup is that you need to use System 6.0.* or really early System 7 to get the animation timing correct. The slow and sluggish frame by frame animation with later System versions is so annoying and ruining my childhood memories ;D

</comment></comment><comment><USER4> According to The Wayback Machine, Apple started redirecting it around December 18th, 2007[1]. Before that, it just redirected to a "product not found" page.

[1] [https://web.archive.org/web/20071218153923/http://en.wikiped...](https://web.archive.org/web/20071218153923/http://en.wikipedia.org:80/wiki/Hypercard)

</comment><comment><USER5> Which makes you wonder how much control they're giving away to Wikipedia over the contents of the article. Endorsing it with a link from their own site, without any curation, sounds unlikely. I'm reminded of the Whopper article controversy after that Google Home ad [0]. Obviously there's no reason to believe companies aren't doing this already.

0\. [https://en.wikipedia.org/wiki/Talk:Whopper/Archive_2#Request...](https://en.wikipedia.org/wiki/Talk:Whopper/Archive_2#Request_for_Edit:_Whopper_Page)

<comment><AUTHOR> Well, at least they don't let you do /hypercard/foo -- although they do passalong the query string.

I wish they'd do the same with next.com tbh.

<comment><USER5> >although they do passalong the query string.

This is browser behaviour as defined by the spec for 301 (permamoved). Your browser redirects the GET request entirely, including the parameters in the URL.

</comment></comment></comment><comment><USER6> Does anyone know what's the reason for such redirect? Does it mean, they don't want to maintain web page of discontinued product and do this to avoid 404 or redirect to homepage?

<comment><USER7> Meaningful information for anybody who might stumble across the URL with near- zero investment in maintenance. Approach it from a company that prides itself on user experience - a 404 or other "unexpected" result is the worst user experience.

</comment></comment><comment><USER8> HyperCard was created by Bill Atkinson following an lysergic acid diethylamide (LSD) trip.[10]

</comment><comment><USER9> Anyone delightfully using any of the Hypercard successors like SuperCard or LiveCode?

</comment><comment><USER10> What's the URL?

<comment><USER11> [https://www.apple.com/hypercard/](https://www.apple.com/hypercard/)</comment></comment>


Blame Canada, Or, the Myth of the Shallow Talent Pool - <AUTHOR> https://medium.com/@lucyleid/blame-canada-or-the-myth-of-the-shallow-talent-pool-6d706b588054 <comment><USER2> I'm a US citizen that moved to Montreal for work. Living expenses here are low enough that it was a wash versus Los Angeles. Child care subsidies make it a net positive.

And the CS students coming out of Montreal universities are excellent (and bilingual). Plus there are generous tax incentives for R&D.

</comment><comment><USER3> I'm on my second TN status, and it really isn't very hard to get. If you have a relevant degree and a job offer, it's practically guaranteed.

Sure, it's not ideal living in a foreign country, but while I don't have dependents or large liabilities to pay off, I'll enjoy getting a salary which is literally double what Canadian companies have offered.

As for the cost of living. LA is cheaper than Vancouver. So are many US cities. The article seems to treat SF as the whole of the USA when comparing costs.

</comment><comment><USER4> This ignores the very real issue of big companies pulling the top talent out of the country. You'll be left picking over the left overs. The H1-B lottery is annoying, but most companies simply have their employees wait it out on a TN.

Not everyone that is talented will move to the USA, but you better believe the prospect of literally making 2x the pay is worth it to most people. Especially when most talent is hired right out of school before they start putting any real roots down.</comment>


Ask HN: How to be patient when learning? - <AUTHOR>

Please help me thank you! :) <comment><USER2> I think taking time to reflect on the progress you made in the last week/month can be good to keep you from burning out. That or finding someone who has a mastery of what you're learning and just talking with them about what you have been doing. Both of those helped me get through learning programming for the first time.

</comment><comment><USER3> Try to have a goal you want to accomplish. For example, while I was still learning to program, my goal was to make something like the ones you would find on chrome experiments. Having a goal not only gives you direction, it gives you something to look forward to.

</comment><comment><USER4> Change your expectations from short term to long term.

</comment><comment><USER5> Try and visualize how your life will be improved after you've invested in learning over a period of time.

</comment><comment><USER6> Eternal September?

</comment><comment><USER7> What exactly is the problem that you're facing?

<comment><AUTHOR> Learn foreign language for example.</comment></comment>


I was invited by Google to its 'secret' interview process – here's what happened - <AUTHOR> http://uk.businessinsider.com/i-was-invited-by-google-to-its-secret-interview-process-2015-8

<comment><USER2> I got served this B.S. the other day. It pisses me off. It's intrusive and disturbing and unethical.

</comment><comment><USER3> since when is foo.bar a "secret"? it was shown to thousands (possibly millions?) of people on the internet who displayed even a small amount of interest in programming based on their search history.

<comment><USER4> Now I'm wondering why it never showed up for me. The fact that I use an HTTPS connection for google? The long periods I've gone with javascript disabled when the option to disable on-the-fly updates as I typed my search queries didn't work? Different tech stacks than what Google is looking for?

</comment></comment><comment><USER5> Interesting, and this is why people think Google is abusing its popularity as a search engine in monopolistic ways. What better way to "inject yourself" into the conversation right?

It would be funny if it took points off for visits to StackOverflow :-)

As a hiring manager I have been bombarded with a wide variety of these 'skills based screens.' As everyone seems to have a take on it, I expect this to get worse before it gets better.

</comment><comment><USER6> Its super cool that just through means of monitoring search requests they were able to pin point a potential engineer.

"I am what I search" lawl.

<comment><USER7> I just find it super creepy. Do you think people at IBM will be happy to use Google for web searches related to machine learning and not worry about Google's monitoring? How about the engineers at Yahoo who may want to research ideas about building the ideal social network?

<comment><USER6> oh the irony is that Yahoo and Google both build mediocre social networks.

i had to remake a Facebook account today for a class that I'm taking, the professor states that in todays age we HAVE to have a Facebook account, all i gave them was an email, and within 3 days i "found" 50 friends. No school given, no work given, Nothing. SUPER CREEPY.

<comment><USER7> My point wasn't about their efficiency for implementing things but the trust that Google should cultivate instead of snooping on people's searches. If they are monitoring that, what else they are monitoring? And are they monitoring searches from potential competitors?

You do understand the problem here, don't you?

</comment></comment></comment></comment><comment><USER8> Hah. That's a very similar search term to the one that got me in foobar.

</comment><comment><USER9> This is a great and refreshing strategy as the actor points out at the end, however, I'm wondering who else has the resources and huge audience to implement it.

<comment><USER10> HN's own tptacek is working on that specific problem:

[http://www.kalzumeus.com/2015/03/09/announcing- starfighter/](http://www.kalzumeus.com/2015/03/09/announcing-starfighter/)</comment></comment>


Diffie: Don't secure the internet, it needs crime - <AUTHOR> http://www.zdnet.com/dont-secure-the-internet-it-needs-crime-diffie-7000005958/

<comment><USER2> These ideas sound a lot like one of the more amusing texts by Marx that I rediscovered just the other day. In Swedish it's called "brottets produktivitet" which roughly translates to "the productivity of the criminal".

With every crime a chain of business emerge where only first link is in itself criminal. For the internet security companies, graffiti removal services, security consultants, lawyers, anti-theft system resellers, locksmiths, insurance company and so on – it's business as usual.

I've found a part of text here: [http://www2.cddc.vt.edu/marxists/archive/deleon/pdf/1905/apr...](http://www2.cddc.vt.edu/marxists/archive/deleon/pdf/1905/apr14_1905.pdf)

 _"A philosopher 'produces' ideas, a poet poems, a preacher sermons, a professor text-books, and so forth. A criminal 'produces' crimes. If we look more closely at the relation in which this branch of industry stands to society, not a few prejudices will drop. "It is not crimes alone that the criminal 'produces'; he also 'produces' criminal legislation, and, as a consequence, he is also the first mover in the 'production' of the professors who 'produce' lectures thereon, along with the inevitable text-books in which these professors cast their lectures as 'goods' on the markets of the world. . . . "Furthermore, the criminal 'produces' all the criminal and correctionary branches of society—police, judges, hangmen, juries, etc., besides all the several branches of industry demanded by these, and all of which constitute just so many categories in the scale of social labor, develop different faculties of the human mind, create new wants and new means whereby to satisfy them. . . . "The criminal 'produces' an impression—good or bad, as the case may be. He thereby 'renders a service' to the moral and aesthetic sentiments of the public. It is not only text-books on criminal legislation that the criminal 'produces'; he 'produces' not merely the penal law itself, and consequently the legislators of that law. He also 'produces' art, literature, novels, even tragedies as shown by the appearance of Mullner's Tanjte, Schiller's Robbers, the Oedipus, and Richard III. The criminal breaks the monotony and humdrum security of bourgeois life, he thereby insures it against stagnation, and he arouses that excitement and restlessness without which even the spur of competition would be blunted. Thus the criminal furnishes the stimulants to the productive forces."_

<comment><USER3> <http://en.wikipedia.org/wiki/Parable_of_the_broken_window>

<comment><USER4> The fact that several people commenting here spotted that error, and still managed to frame the useful part of the argument properly, has given me renewed appreciation for the HN community.

</comment></comment></comment><comment><USER5> It's unfortunate that he invoked the ridiculous broken window fallacy (<http://en.wikipedia.org/wiki/Broken_window_fallacy>) in the course of making his real point, which was that making the internet secure or reliable from the bottom up is prohibitively expensive and that security and reliability should be layered on top only where required.

<comment><USER6> His "broken window fallacy" like point is an important one, but he poorly justified it. Stopping one rogue window breaker is admirable, stopping them universally has its disadvantages.

The proposals for a secure network usually include avoiding the security confrontation through vetting users, extreme legal protection, etc. These solutions prevents us from maintaining 'glaziers' at all, which in turn leads to catastrophe when our global security solution fails.

For example, if the FBI virtually eliminated viruses by chasing individual virus writers internationally with extreme laws and international agreement we would be even more vulnerable to the threat of state backed cyber attacks.

It is really a "War of the Worlds" analogy.

<comment><USER7> So, the argument is that you _can't_ stop all the criminal, rather than that it's undesirable to do so. As you wind down the population of criminals (at increasing marginal cost), you wind down the incentive to protect against crime, making the lives of the remaining criminals easier (further increasing the cost of apprehending them).

</comment></comment></comment><comment><USER8> Ignoring the nonsense logic quoted here, the Internet _does_ need crime because any medium that does not have crime does not have true freedom of expression.

A street where it's impossible to be mugged is also a street that you cannot freely walk down with no restrictions. Something fundamental about the act of walking down the street would have to be removed for it to be completely free from crime.

Similarly, a computer that can't get malware isn't a truly general-purpose computer -- it cannot run an arbitrary program.

<comment><USER9> Yes, I was surprised that this was not his argument.

</comment></comment><comment><USER10> Somewhat related link: [http://thisorthat.com/blog/why-the-joker-and-not- batman-is-t...](http://thisorthat.com/blog/why-the-joker-and-not-batman-is- the-savior-of-us-all)

"What if I told you that Batman is not the true hero in the Dark Knight saga? What if I told you instead that if The Joker did not exist, Gotham would be overrun by organized crime families and the corrupt politicians that live in their pockets? And what if I told you that there is mathematical proof of this argument's validity?"

<comment><USER11> These Jokers, would they be the equivalent of "Hacker Manifesto" type hackers / groups like Anonymous?

</comment></comment><comment><USER12> Silly notion, this is the same logic we use when we bomb a country then send people in to fix it up again.

<comment><USER13> Very good :)

..... And as we know, that could never happen...

</comment></comment><comment><USER14> I think you will always have cyber-crime or any type of crime for that matter. One thing that keeps a limit on the number of things that are considered criminal is that there is only so much that can be enforced. If people stopped doing things like murders it would free up enforcement resources to go after smaller perceived wrongs.

This article is quite vague, I don't see how it would be possible to make a truly secure internet without figuring out how to develop 100% non exploitable software.

The article also doesn't seem to draw a strong distinction between security and cryptography, this is something I have to explain to people _all the time_.

</comment><comment><USER15> The comments on this article, including Marx and an indirect link to a journal article about game theory in a biology journal are a great example of the "je ne sais quoi" that keeps me coming back to hn.</comment>


$530/month AT&T iPhone plan (with a data limit) - <AUTHOR> https://static.ips.apple.com.edgekey.net/ipa_preauth/content/catalog/en_US/index.html

<comment><AUTHOR> I knew mobile subscriptions aren't cheap in the US, 50 GB is not a low limit, and it includes unlimited messages and minutes (with "No domestic roaming charges") but $530 per month?

</comment><comment><USER2> ... What?

That got to be some kind of business oriented shared plan, right?</comment>


Tesla Powerwall: Crunching the Numbers for Australia - <AUTHOR> http://www.lifehacker.com.au/2015/05/tesla-powerwall-crunching-the-numbers-for-an-australian-suburban-home/ <comment><USER2> Interesting to see the different power usage and electricity rates for a different part of the globe. Here in the Houston, TX area we used 848 kWh in a 30 day winter period for a mid-sized home, which is as much as the article states the household used in a 95 day period. During the summer, when my old AC unit is running like crazy, we'll use ~1800 kWh, and our rate is an average of $0.102 USD, which is around 60% of the top rate from the article.

A Powerwall unit still wouldn't make sense for us, but this is rev 1, and so in a couple of generations we could be looking at something that actually could be impactful.

<comment><USER3> 848 kWh sounds a lot. For a 4 person house in germany you have a yearly usage ~1800kWh. You have the same amount in a 1/3 year. That's a shitload.

Currently I'm single and use 848 kWh for a whole year.

<comment><USER4> That sounds so little. Just having two 50W lightbulbs shining 24x7 would be slightly more than that in a year.

<comment><USER3> Currently I'm below average something like 200kWh below.

However currently I'm only at home on Sundays, all other days I'm only be here to sleep and eat, however I barely cook, so a toaster and breed doesn't use so much energy and I have LED's everywhere so I use max. 7W per room (2 rooms total + 1 bath) however I turn off the light's after leaving a room. I have no dishwasher and my watching machine is really really good when it comes to energy. I barely watch TV and I use my MacBook for surfing which gets loaded at my company (I use it there, too). So I only need a light with 7W for like 4 Hours, have a router running 24/7 which consumes nearly nothing. I'm a single. So no problem there. (Btw. my invoice for food is definitely higher than most ;))

oh and btw. in germany energy isn't as cheap as in the usa. also if you use solar energy in germany you could only use 30% since the rest goes to the public (and you get nearly nothing for that).

</comment></comment></comment></comment><comment><USER5> Kinda sad situation with the alternative energy source.

I did a similar back of the envelope calculation for my dad when he considered putting solar panels onto his house roof when the Australian Govn't was subsidizing it. It would have taken him 17 years to breakeven from the initial installation. This did not even consider the maintenance and insurance cost. We weren't even sure if my parents would have stayed in that house for that long. So we skipped it.

The initial costs is just too high for average Joe.

<comment><USER6> > Kinda sad situation with the alternative energy source.

I find it kind of sad that the only way people will consider alternative energy sources is if it's significantly cheaper than the existing, embedded, kill the planet options.

I find it sad, but I'm not surprised. People in general don't actually give a shit about anything around them.

<comment><USER7> You should cheer up. Rational people (like gp) only care about what's around them. Why should he waste money on solar instead of sending it to charity, etc?

<comment><USER8> The Rational Man is a economic construct which is dubious as an abstract concept for building economic models, and irrelevant as a justification for individual behaviour. If the limit of morality is the law and the market, we might all just as well give up now.

<comment><USER9> Apologies for this comment. I dashed off about 30% of my thoughts (the shittiest 30%) and this isn't really what I was trying to express. I'll leave it here to remind myself to think more. \-----

If the most convincing case you can make for your morals is "you should because I say so" then you can't be too surprised when it's not 100% convincing to people.

<comment><USER8> > If the most convincing case you can make for your morals is "you should > because I say so" then you can't be too surprised when it's not 100% > convincing to people.

Yeah, there are all sorts of questions you can discuss about how your values inform the way you spend money above and beyond what's necessary, whether it's about luxury, convenience, status, or how you would want to spend charitable money.

What annoyed me was the raising up of an observation ('people don't care about anything beyond their surroundings') into something which is glibly justified because it is Rational. I would say that's a "you should because I say so", or at best a "you should because it is" argument for morality.

Edit: Ah, I see your edit, consider the above part of the fossilized argument then!

</comment></comment></comment></comment></comment></comment><comment><USER10> The price for solar is not accurate in this article.

My parents just installed a 5KW system, with an inverter and smart meter in Warrnambool, Victoria. They paid $10k AUD, then the government refunded them $5k, so total out of pocket expense for them was only $5k

</comment><comment><USER11> The whole notion of the powerwall is based on the assumption that either utilities or consumers are irrational. If buying a powerwall was at all economical, utilities would buy them in bulk, charge them on wholesale power, alter their pricing structure, and make a larger margin than you ever could. If powerwalls aren't economical, the only reason they make sense is to capitalize on consumers who are willing to buy the thing because its cool, or because they like living "off the grid".

Utilities also have access to utility-scale energy storage -- pumped hydro, thermal, etc -- which is far cheaper than consumer focused powerwalls.

</comment><comment><USER12> Not to mention, if people actually used these in large enough numbers--or utilities building a battery reserve--the off peak power and peak power difference will be smaller. Because you have increased demand for off peak due to charging. And decreased peak usage.

<comment><USER13> That smoothing out of the daily demand curve might actually lead to significant capital savings on the part of utility companies as less need for short term high power reserve. Also the resilience of the system to problems would increase. UK is providing a degree of subsidy to reduce peak demand already. Smart meters may help in future.

[http://www2.nationalgrid.com/uk/Industry- information/Electri...](http://www2.nationalgrid.com/uk/Industry- information/Electricity-transmission-operational-data/Data-Explorer/)

[http://www.eunomia.co.uk/eunomia-supports-uks-first- electric...](http://www.eunomia.co.uk/eunomia-supports-uks-first-electricity- demand-reduction-auction/)

[http://www.carbonbrief.org/how-national-grid-keeps-the- light...](http://www.carbonbrief.org/how-national-grid-keeps-the-lights-on- when-a-large-power-station-catches-fire)</comment></comment>


Government shutdown: TLS certificates not renewed, many websites are down - <AUTHOR> https://www.zdnet.com/article/government-shutdown-tls-certificates-not-renewed-many-websites-are-down/ <comment><USER2> HSTS errors can be bypassed on Chrome by entering "thisisunsafe", if anyone wants to bypass these HSTS errors. Of course you probably shouldn't have to this: it _is_ unsafe.</comment>


I made $622,322.96 in 2009 from affiliate marketing. - <AUTHOR> http://www.reddit.com/r/IAmA/comments/azcni/i_made_62232296_in_2009_from_affiliate_marketing/ <comment><USER2> Anecdotally: Just about everyone I've met who run affiliate marketing and/or direct marketing companies (not necessarily their employees, but definitely the owners) are probably the most shady individuals I have ever dealt with.

<comment><USER3> It is sort of like SEO: it gets a bad rap from a contingent of the market who perpetuate abuses. This man, for example, made hundreds of thousands of dollars of sales by facilitating theft. (There is no other way to describe rebilling if you understand what the game is.)

</comment></comment><comment><USER4> One thing that always surprise me about most of the web startups is why we're so reluctant to the affiliate marketing.

The industry has a bad name, I agree. On the other hand, it's just selling something for a provision. It does not have to involve sneaky get-rich-quick schemes. Most of the world sells something for someone and does (financially) better than many startups.

It's relatively easy to start selling for someone and when it turns out to be profitable, creating your own product.

For instance, it's hard to get into booking industry, w/o some partnership initially. Once you're big, though, you can drop the middle party and speak with GDS or hotels directly.

EDIT: I know that many startups are about changing the world. I'd say, however, that many are just about making money. And affiliate is a good path.

<comment><USER3> It is difficult to scale affiliate marketing like you can scale products, at least in a way which makes sense. For example, typical affiliate payouts for many products are in the 30% range. Many startups want to have many, many millions in revenue. Once you start talking about a million here and a million there you have to ask yourself what it is about the affiliate that the merchant can't bring in house.

In some cases, the answer is that the affiliate's aggregation capabilities provides value -- hotels would be a good example of this. In many cases, the answer is NOT pleasant. Sometimes the right hand doesn't really want to know what the left hand is doing.

The other alternative is somehow making a scalable business out of bundling lots and lots of little merchants together and providing scalable affiliate services to all of them. By that metric, Google is almost the biggest affiliate in history. (You can even do CPA bidding!)

Relatedly, Google takes huge, huge amounts of money from advertisers whose hands are less than clean. (Ringtones, for example: essentially 100% of these are rebill scams. Ditto diet, weight loss, acai berry, teeth whitening products, whatever the flavor of the month is.)

Think ScamVille times two or three orders of magnitude and perpetuated under the curiously unseeing eye of the most beloved tech company in history.

<comment><USER5> " Sometimes the right hand doesn't really want to know what the left hand is doing."

I agree. There's a level of plausible deniability with using affiliates. They can resort to some black-hat tactics and when they are caught, you can claim you didn't know, and ban them.

"Google takes huge, huge amounts of money from advertisers whose hands are less than clean."

I agree with this, while noting that almost all ad networks do. No one wants to admit it, but a lot of the internet was built on rebills and affiliate ads. Now Google is bigger and has some large clients to keep happy, so they push back harder on scams as they crop up. But as long as rebills exist, Google and others are stuck playing "whack-a-mole" with the latest flavor of rebill.

The latest FTC moves have put some pressure on affiliates, but it's just a matter of time before they come up with something else.

</comment></comment></comment><comment><USER6> <http://www.sitepoint.com/forums/showthread.php?t=345974#> is also a good read. This is from a few years back, but he was getting £100K+/month, mainly from PPC in the UK.

It's fairly easy to find a niche and iterate until profitable. However, it can all go horribly wrong as well.

<comment><AUTHOR> A quick investigation of his company's published accounts for 2008 say he's actually making even better money now than he was back then.

Interesting.

<comment><USER6> I'm sure he is. Most of it is PPC...

eg

Find a good niche - say "order flowers online"

Find all the best keywords on Google

Setup landing pages if needed, or just send direct to affiliates.

Profit from the commissions

</comment></comment></comment><comment><USER7> When did "build something people want" turn into making money at any cost? This is the 2nd or 3rd highly voted article about ways to make money without building a startup that provides meaningful value to it's users.

<comment><USER8> The tech / startup world is filled with lots of people who are interested "building something people want" but with no clue about monetization. (Twitter, or just about any company with no revenue/profit model...) Articles like this provide contrast -- people who've figured out how to monetize the web (but aren't necessarily adding a ton of value). Affiliate marketers have at least figured out that "unique visitors" or "active users" doesn't pay the bills like it did in the late '90s. It does seem shady / etc, but I think there's lessons to be learned.

I think many in this community are hoping that there's a middle ground, with both value creation ("building something people want") and extracting that value via monetization.

<comment><USER7> There is plenty of information out there from great companies who are making money from day 1 while providing value, it seems like it's pretty damn simple actually. Create a product that does something useful, charge people for it.

</comment></comment></comment><comment><USER9> If you're interested in this, definitely check out ShoeMoney and his story. I've had his Google check photo hanging up in my office as motivation for 2 years. <http://www.shoemoney.com>

</comment><comment><USER10> Wow. How I wish I earn that kind of money.

I'm an affiliate marketer also but I prefer to refer to myself as a product reviwer. My mission statement is "To help buyers understand exactly what they are buying". It brings job to me when my readers comment on how my reviews helped them save money -- they avoided a bad product after reading my review.

To me, affiliate marketing is just another revenue model, part of the business model but not the business itself.

Whether your business is shady depends on how you're abusing the model. That said, all other revenue models can be abused.

Currently, I'm earning US$1500 per month, after a years of work. I work 2 hours per day and have a full time job besides that. My web marketing sucks but hopefully next year I can quit my job and explore other ways of building businesses around affiliate marketing.

</comment><comment><USER11> Can't agree more that marketing weight losses products is sh*t and will very likely end by spamming people (like the 50 or 60 SPAM Gmail catch every month).

But let's look from the good side. You design a new website (with flash for example), fancy and nice, good customer supports, easy transactions, product delivery management... and you take a % in sale.

You can end up earning something like $100K a month. Nothing weired with that, it's innovative and amazing and you are improving the user experience.

The real problem is that the current marketer are too busy earning money from ebay/email/twitter SPAM to build something innovative that solves buyers problems.

</comment><comment><USER10> If you guys don't already know, Firefox and other browsers also make major money through affiliate marketing.

Every sale that's make through that little search box nets the company a little commission. Imagine how many people are using web browsers, and which web browsers.

</comment><comment><USER12> Amazing, simply amazing. I've had some success doing Affiliate Marketing myself, but this is at a scale I could never imagine. Great, now you guys have depleted all my weekend hours....

</comment><comment><USER13> wow. I thought they're using it only in porn CJs. Progress is going on, and seems like I'm getting old.. =)

If this is an evolution of a porn technologies it works for sure. It is just a ponzi scheme where newcomers loses some money and established players gets them.</comment>


An Updated Performance Comparison of Virtual Machines and Linux Containers [pdf] - <AUTHOR> http://domino.research.ibm.com/library/cyberdig.nsf/papers/0929052195DD819C85257D2300681E7B/$File/rc25482.pdf <comment><USER2> A bit of a misleading title.

Comparing linux containers to native performance wouldn't be terribly interesting; there is little reason to believe there is any nontrivial overhead from using cgroups, chroot, etc.

Instead, this is comparing different Docker configurations to native performance (to Virtual Machines as well). The insights one can get is the amount of I/O overhead that is introduced by using local NAT as well as AUFS. (turns out NAT and AUFS overhead are quite significant.)

Finally, figure 17 is a bit interesting. It implies that there is some inherent overhead (before NAT/AUFS) of 2% from the container; it'd be interesting to find out what the source of that is.

/aside: putting percentage loss and absolute numbers on the same graph (figure 16) is incredibly confusing.

<comment><USER3> I don't know if the AUFS overhead matters in many workloads. If you're using for deploying code that gets loaded once and you're and you're not performing a lot of filesystem access.

Think of many webapps, their assets are deployed on a CDN and most of the time they are performing network IO with databases, memcache, etc...

</comment></comment><comment><USER4> On the linpack test, the KVM domain should have been configured for inheriting the CPU extensions from the host (or, alternatively, cherry picking the extensions relevant for such test).

For the rest, I think an updated KVM vs. Xen vs. VMWare comparison would have been way more interesting. If you don't need to run other OSes, process tagging (jails/zones/containers/whateveritscalledonyouros) will always give you better performance.

<comment><USER5> I would love to also see a comparison of hypervisors. Unfortunately, it violates practically everyone's EULA. I can understand why, there's so many different ways things can be implemented and it's almost never a 1:1 identical setup. That being said, I can only rely on anecdotal evidence accompanied with confirmation bias when determining which virtual environment is best.

</comment></comment><comment><USER6> Interesting that using vETH and NAT causes around 20% extra latency and around 20% less throughput. Is this expected from these technologies?

I was expecting them to have no significant impact at all, since surely the hardware NIC would be the bottleneck? perhaps the kernel is doing some memcpy'ing to achieve these features?

Then again, 10gbps NIC is quite fast, perhaps this performance losses are less significant with more reasonable 100mbit/1gbit interfaces?

<comment><USER7> NAT requires each and every packet to be rewritten with different source (or destination, or both, depending on the flavor) IP addressing information, so it isn't just a simple copy.

Drivers and sanity checking what's going in/out of the VM probably account for the rest. Hardware may be fast but adding layers of complexity will have a performance impact.

</comment></comment><comment><USER8> Virtualization costs something and the goals of any design should be to balance that cost against the benefits. I've designed systems that have crazy low-latency and high QPS needs and nothing beats bare metal for these systems. That said if you need to manage 5,000 of them you start to debate the advantages of having the application in a virtual environment against the cost of buying 600 more servers.

In most situations the difference is noise against the backdrop of security, maintenance, labor to manage a system -vs- the performance needed.

Sadly many people think virtualization and/or containers are "Free" and make uninformed decisions that have real impacts on systems at scale later in the system's lifetime.

In general if you need the flexibility or your application is usually 5% CPU 95% of the time you'd better off doing some form of virtualization to save labor and maximize resource utilization of systems you're deploying.

That said I agree with many of the comments here it would be nice to see more head-to-heads of hypervisors but that's scary stuff for the vendors involved and puts them at serious risk in the arms race to save every penny we can in managing large farms of applications and the systems running them.

Remember, Virtualization is just a technology like anything else it has it's benefits and brings with it resource usage and challenges.

There is no "Free Lunch".. :-)

</comment><comment><USER9> Assuming that the goal is to host a single "App" on the bare metal server, these tests results are indeed interesting.

Another interesting result -- not addressed in the paper -- is to see how many small Apps that the container approach can support versus the vitalization approach can support.

While hosting many Apps/VMs, not having to run the OS multiple times is one of the advantages that the Docker approach provides and it would be interesting to quantify the performance implications.

</comment><comment><USER10> Containers don't have the same security properties as full virtualization. Also containers can only run guests that require the same kernel as the host, ie. only Linux on Linux. In other words, they are not direct substitutes.

<comment><USER11> Still, it's important to understand their behaviour with regard to performance in order to inform trade-off decisions.

</comment></comment><comment><USER12> The first graph is already misleading, it's the graph about linpack. It shows that linpack is halved in performance in KVM, the explanation: ".. unless the system topology is faithfully carried forth into the virtualized environment. CPU-bound programs that don't attempt such tuning will likely have equal but equally poor performance across na- tive, Docker, and KVM"

Seriously? I am the only one who adds a simple parameter when launching KVM. In more production/deployment environments higher level libraries like Libvirt are hopefully used and handle CPU settings automagically.

Then we have the MySQL tests. Comparing qcow (KVM) filesystems against native and AUFS.. Really, at least make it a fair fight and include a test which passthroughs the KVM IO to something remotely bare metalish, like a LVM volume.

<comment><USER13> Why is it a fight at all? I enjoyed the paper for a few insights into the implementation of containers, but I didn't find the performance comparisons very relevant. As another commenter noted: it's not surprising that namespaces and cgroups are a crapload less demanding than a full virutalization stack.

I don't much like referring to containers as a virtualization technology, although it seems like that fight is lost. In my view they aren't the same thing, they aren't solving the same problems, so seeing people line up defensively around one or the other is sort of amusing.

</comment></comment><comment><USER7> A similar comparison of Solaris Zones (which, like FreeBSD Jails and similar existed before Docker but are comparable) to KVM and Xen:

[http://dtrace.org/blogs/brendan/2013/01/11/virtualization- pe...](http://dtrace.org/blogs/brendan/2013/01/11/virtualization-performance- zones-kvm-xen/)

Basically, you take a fairly sizable I/O performance hit whenever you try to virtualize.

<comment><USER14> I would love to see the comparision of these Linux hypervisors and BSD ones, like Jails and Bhyve...

</comment></comment><comment><USER15> TLDR; (1) Docker can be much slower than plain containers - particularly if using NAT or AUFS. (2) Run VMs inside containers, not the other way around.

</comment><comment><USER8> > This is also a case against bare metal, since a server running one container > per socket may actually be faster than spreading the workload across sockets > due to the reduced cross-traffic.

I'm sorry this doesn't preclude a well designed system on bare metal with multiple sockets being performant. As an example often I've pinned workers to cpu's to keep network buffers on the same core as the worker thread for low latency high through-put network applications. I would say the idea of a container per socket might make it "easier" to isolate applications not designed or deployed with this factor in mind but it isn't an indicator against bare metal.

</comment><comment><USER16> Just one minor point.There is one slight little typo on page 9 - Mysql because it is a "polular"(Popular) database.</comment>


F* - <AUTHOR> https://en.wikipedia.org/wiki/F*_(programming_language) <comment><USER2> Cannot find a "hello world" example anywhere</comment>


Ask HN: How do you successfully maintain your development narrative? - <AUTHOR> Every project has many steps, including preparatory motions, speculative forays, giant leaps forward, misadventures and dead ends, cleanups, rest phases, zig zags, et cetera.
I try to keep some degree of "cogent storyline" together about where I've come from, where I'm heading (at least, in what direction), and what issues I'm facing, fighting, or defeating along the way. It's not quite "Dear Diary," but I try to record intentions, expectations, plans, current findings, and thoughts about "next steps" to keep me us oriented and aiming toward the target. Writing these things down provides at least a "strawman" that others can critique and extend, leading to a more consistent shared view of where we stand, and what's important.
But this narrative gets naturally spread across disparate places--code comments, commit messages, documentation, to-do and patch lists, various design notes, status reports and change logs, agile/project management artifacts, etc. Like any story, the narrative should evolve as the plot moves along, but I find a lot of interesting/useful information churned into transient notes and artifacts. Both the historical and forward story arcs can be lost amidst the ever-present "what's happening RIGHT NOW?!" short-term view.
"Agile" techniques and version control systems tackled a lot of the problems we used to face in how we evolve code, but they're not specifically focused on helping maintain a project narrative. We haven't really achieved the project analog of "literate programming."
So I'm looking for successful techniques. Do you have any particular wins in how you maintain and evolve your project narrative? <comment><USER2> I once had to explain to our executive team why a project had been such a shitshow...it had ended in a two-week crunch to basically unfuck the work that had been to that point, where I cleaned up a mess one of my devs had gotten themselves into (and which, frankly, I had screwed up and let them fall into).

I used the emails, wiki revision history, and commit logs to piece back together what actually had happened. It's a lot different looking at things after the fact, and saying "Oh, I guess we really did take that long to do something...oh, interesting, yeah, we never had direction from the biz folks here, here, and here, and that's where this kinda went off the rails."

As for keeping together a cohesive narrative, as much as I'd love to be able to look at a bound volume of "The Trials and Tribulations of Angersock, Software Engineer", the only inarguable records are the grey hairs, the worry lines, and the eye tics.

Everything else is basically reality-by-consensus, even if you've got the paper trail to claim otherwise.

Just let it go.

</comment><comment><AUTHOR> One of the real problem areas I haven't solved particularly well: For complex project I might have several cloned repos or branches, each forked off to solve a particular issue, develop a specific feature, or try a particular approach. There doesn't seem to be a very good or integrated way to keep track of the purpose or intention of each branch/repo. It can be very confusion when trying to switch between them. "What was I doing in THIS repo? Where was I? Where was I heading?"

I've tried keeping a file `THISBRANCH` in each with just a one or two line "what's going on here?" description. Better than nothing--but it's not well- integrated into other repo commands/actions, and is a pain when merging back toward a more upstream repo. In general, Mercurial and Git don't seem to do a very good job tracking "intent" metadata about each repo/branch.

</comment><comment><AUTHOR> A couple of techniques I've found useful:

1\. "New and Notable" philosophy. Clear focus on documenting what is new and notable about each update. Putting it in a larger context than just "this branch/this sprint" and making it meaningful to those who may not be deeply embedded in the project. (Learned/adopted from the Eclipse project).

2\. Tagged comments. Be disciplined about tagging comments for specific purposes, such as `# TODO:` or `# FIXME:`, so that those working inside code can quickly jot down their thoughts and observations as they have them, while working, yet they can also be consolidated by IDE views or external grep scripts into broader reports about outstanding issues and options.

3\. Labeled commit messages. I often include "ATP" in commit messages, meaning "all tests pass." While you might rightfully assume that actual releases or even pushes to upstream repositories pass all tests as a condition of release/push, my projects follow a "commit early, commit often" protocol that sees many intermediate stages committed to local repos. Unless you're committed to regularly and extensively pruning/grooming repo history, even minor commits are going to be pushed upstream eventually. So I try to embed in the messages shorthand notes about testing status. (A variation on this theme is to include urls to CI test runs.)

4\. Diffable formats. Encode as many design notes, change logs, and other project narrative information into Markdown, YAML, RST, or other formats that can be easily diffed and tracked by version control systems over time. Microsoft Office, LibreOffice, and Google Docs also have built-in change tracking and collaboration features, making them another evolvable option, albeit with slightly less transparency than pure text formats.

5\. Constant vigilance. A disciplined, repeated return to, and updating of, change logs, release notes, design notes, to-do lists, tagged comments, architecture descriptions, and the other documents that form the project narrative.

</comment><comment><USER3> I'm sorry, but I don't understand the value in keeping such a narrative. Maybe it's inspiring to you, but it just demoralizes me to think "Well I had a month of solid progress...then 3 months of nothing. I'd be done by now if Life hadn't happened to me."

When I look at my self-driving trash can frame, or my fridge monitor, I don't want to remind myself that I haven't had time to work on them since 2012. I just want to start making progress again and having fun.

<comment><AUTHOR> "The truth will set you free--but first it will make you miserable."

Less cynically and more constructively: If you have projects or components that you weren't able to touch for a long while, then orienting notes seem even more valuable. They can help reset your context and get you back up to speed, working in a productive direction more quickly than if you come back to a project and have to relearn what you were doing and where you were heading.</comment></comment>


18F's new Code of Conduct - <AUTHOR> https://github.com/18F/code-of-conduct <comment><USER2> I honestly question the necessity of this. This is a government organization, why are the standard rules insufficient?

> national origin

The President has repeatedly tried to ban people from a certain set of countries.

Of course I dislike codes of conduct in general. Unnecessary SJW style political correctness. Which really is just censorship and a refusal to accept anything contrary because those people are _wrong_. They are _wrong_ and they must be silenced. If you disagree then you're just another shitlord I guess. Like that shitlord Eich who got tossed out of Mozilla. That horrible person who got fired for making a joke about dongles. That disgusting tenured professor of psychology who has been pretty viciously attacked for his stance on gender neutral pronouns, even though he has made his arguments based around freedom of speech.

Yeah, I'm tired of this stuff. Why can it not simply be summed up as "Treat people with respect". Just act like a professional, and treat the people you interact with as fellow professionals.</comment>


Github down (maybe because of GoDaddy?) - <AUTHOR>

Github is experiencing a major service outage. GoDaddy was down yesterday, see a pattern? <comment><USER2> Hey, nice analysis dude.. GoDaddy is DownDaddy now!!!</comment>


Show HN: Visualizing activity and reviews from a userbase of four million users - <AUTHOR> http://qbix.com/blog/index.php/2016/01/four-million-downloads/ <comment><AUTHOR> This should work well on both desktop and mobile browsers. It's now a reusable component that you could use in your own projects if you wanted to visualize reviews, etc.

If you have any questions about how it works, I'm happy to try to answer. I built this visualization in [http://qbix.com/platform](http://qbix.com/platform) ... we dogfood our own stuff :)</comment>


Strict Posix Nonconformance - <AUTHOR> http://www.tedunangst.com/flak/post/strict-posix-nonconformance

<comment><USER3> Oh no mkstemp is already obsolete (in Linux), now we have O_TMPFILE [1] for creating temporary files that do not even have names...

[1] [https://lwn.net/Articles/557314/](https://lwn.net/Articles/557314/)

<comment><USER4> I don't think that makes mkstemp obsolete as it may be important to have _named_ temp files.

(and of course though there is a slight race you can unlink the file you get through mkstemp while keeping it open, that seems to be the strategy used by python's tempfile.TemporaryFile)

<comment><USER3> I can't think of any case, except if you are too lazy to pass a file descriptor to another process, and its easier to pass the name (which cannot be ruled out, it is easier!). You can't safely close and reopen the file, or it might have been modified.

There is still a possibility that an attacker opens the file before you unlink it and starts writing to it, which O_TMPFILE gets rid of as it never has a name so can never be opened.

<comment><USER5> How about whenever you're writing a non=temporary file? I do this all the time:

1\. Create temporary file in the same directory as the target path.

2\. Write and fsync the temporary file

3\. Rename the temporary file to the target filename

Oh, and on Linux you can open even deleted files by using /proc/<N>/fd/<M>. It may look like a symlink, but it's not.

<comment><USER3> You can create files form the fd you get from O_TMPFILE it turns out [http://lwn.net/SubscriberLink/562488/3c6d56bef275c0b4/](http://lwn.net/SubscriberLink/562488/3c6d56bef275c0b4/)

</comment></comment></comment></comment></comment><comment><USER6> Some part of me would love to see a new group - one with a more pragmatic approach - fix the POSIX spec in a way similar to what happened with HTML5 and WHATWG. The other part of me wonders if it's even worth the trouble - <USER2> would involve taking the time of knowledgeable people away from projects worthy of that time to do this. What value would we get out if it? Would it be worth the cost?

<comment><USER7> So you want many broken implementations with quirks of their own? (HTML5 + WHATWG's output).

There needs to be a single dictator with a single standard. The problem so far is that the dictator and standard need to be hit with the clue stick man times before rather than pushing corporate features and agendas. POSIX, HTML5, Java are all design-by-committee crapfests.

Golang is about right on this. Once core standard and reference implementation which is opinionated and built by people who know their shit.

<comment><USER6> As I understood it, HTML5 was specifically about getting away from the design- by-committee mode that was causing problems in XHTML. It was a group of people that got together and said, "Okay, what are peole actually doing right now, that is what needs to be documented in the standard." They did not want a perscriptive standard, but rather, a descriptive one.

Am I wrong about this?

<comment><USER4> You're not.

And it's not like they wanted a descriptive standard, it's that they knew a prescriptive one would not fly and would just be completely ignored due to the conflicting interests of the half-dozen actors.

A standard everybody ignores is utterly pointless.

</comment></comment></comment></comment><comment><USER8> Strangely this post managed to give me the exact opposite impression of what the poster intended.

Based on the description in this post, it seems to me that shm_open() has been a successful addition to the standard. It's basically a semantic annotation: "I intend to use this file descriptor to share memory between processes". The OpenBSD people looked at projects that use this API and discovered that they're overwhelmingly using it to share memory between processes owned by one user (e.g. WebKit), so they solidified that practice into a hard limit as part of their implementation.

Isn't this perfectly in the spirit of why we have all these Unix variants in the first place? Some of them will be at the bleeding edge of implementing new APIs, whereas others like OpenBSD take the cautious and security-minded approach. Thanks to the work of the OpenBSD crew and the (granted, apparently largely implicit) semantics of shm_open(), WebKit is now a bit safer to use in a multi-user scenario on OpenBSD than elsewhere. Maybe others will adopt this interpretation of shm_open() and everyone wins.

<comment><USER3> Posix is not the bleeding edge though, it is mostly fairly trailing edge...

<comment><USER9> I think bleeding edge was in reference to the Posix standard. The Posix standard has been updated as recently as this year ([http://pubs.opengroup.org/onlinepubs/9699919799/](http://pubs.opengroup.org/onlinepubs/9699919799/)).

<comment><USER3> Yes but it is codifying old stuff largely not new things...

</comment></comment></comment></comment><comment><USER10> As I see it from my own programming experience, the main value of "everything is a file" philosophy is in the unified namespace. Except sockets are file descriptors but not in the filesystem namespace... except when they are "unix domain". The process identifiers aren't have their own namespace but they are sorta in the filesystem via the linux specific /proc. And of course there's the sysv shared memory which comes with it's own namspace (except if you mmap an actual filesystem node and just... ugh... open it from two different process). Sigh.

<comment><USER11> From what I've always understood, the philosophy isn't "everything is a file" (the unified namespace variant), but "everything is a file descriptor" (the API kind).

<comment><USER10> Well my point was that I personally find the idea of a unified namespace for global system objects (files, pipes, sockets, processes etc) more powerful than the idea of a unified namespace of fd's within a single process.

</comment></comment></comment><comment><USER12> The point of shm_open() is the relaxed guarantees as opposed to plain open() - primarily these two:

 _It is unspecified whether the name appears in the file system and is visible to other functions that take pathnames as arguments._

 _It is unspecified whether the name and shared memory object state remain valid after a system reboot._

That gives the implementation wider latitude in how it implements the function, for example shm_open() objects may be entirely in-memory.

</comment><comment><USER13> I was curious whether the fact that shm_open() essentially calls open() is true, and in fact it is, at least with eglibc on Linux:

[http://sources.debian.net/src/eglibc/2.17-3/sysdeps/posix/sh...](http://sources.debian.net/src/eglibc/2.17-3/sysdeps/posix/shm_open.c?hl=1#L1)

<comment><USER14> Cute, it doesn't even try to use the race-free O_CLOEXEC variant, which was introduced "only" 6 years ago. [http://www.eglibc.org/cgi- bin/viewvc.cgi/trunk/libc/sysdeps/...](http://www.eglibc.org/cgi- bin/viewvc.cgi/trunk/libc/sysdeps/posix/shm_open.c?view=markup) is the trunk version. Seems glibc trunk is the same

<comment><USER15> "It" (that is POSIX fall-back) don't try it because O_CLOEXEC is not POSIX. And you don't know how to look properly

[http://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix...](http://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/shm_open.c)

<comment><USER16> O_CLOEXEC was recently added to POSIX.

[http://pubs.opengroup.org/onlinepubs/9699919799/functions/op...](http://pubs.opengroup.org/onlinepubs/9699919799/functions/open.html)

</comment></comment></comment></comment><comment><USER17> I really liked QNX, when it fit on a couple floppies, and before it swallowed the POSIX anchor, and so .. sure.

<comment><USER17> Perhaps I should expand the history, for those who don't know. In the early 80s, QNX was the first fully multitasking operating system available for the IBM PC architecture. It was small, efficient, real-time, and somewhat idiosyncratic. It was fully ten years ahead of its time.

At the same time, in another sphere, POSIX was shaping up as factor in the emerging Open Systems wars. It drove compatibility between big vendors like IBM and HP and Sun (over other idiosyncratic offerings, like Apollo).

Perhaps POSIX as a user response to corporate power had value, but there was also collateral damage. As I understand the story, Canadian colleges standardized on POSIX, and so a great little Canadian OS (QNX) was left out in the cold. They had to become like others to survive.

Conformity served to reduce innovation and developer choice.

Now fast forward to 2013, and leaving aside shared memory details, what is POSIX driving today? Don't forget that ultimately a non-POSIX OS killed them all. And don't forget that users have their own means of bubbling up new features and architectures in the Open Source projects. Their control is far beyond what users got out of POSIX in the Open Systems age.

</comment></comment><comment><USER18> It seems like this is only really a problem if someone uses mode = 0777. But not every caller is going to do that. Are there really such a large group of bad programmers who are still using low-level C interfaces? And can't OpenBSD just audit the handful of programs that are using shared memory?

[note: if your reply is going to be some variant of "all programmers are shit"\-- not interested, heard it before.]

<comment><USER19> I think the attack goes something like: You figure out how you should name a temp file by checking to see if files with the same name already exist. Between when you decide on the name and when you open the file, a nefarious user creates her own temp file with mode = 0777. You open your file and write to it, not realizing that another user can now read all your temporary data. Because the file was already created when you opened it, whether your umask is set properly doesn't matter.

It sounds like the OpenBSD implementation would throw an error if the file was owned by someone else when you tried to shm_open() it, which mitigates this race attack. mkstemp mitigates this attack by atomically determining the name and opening the file without the opportunity for a nefarious process to touch the file system in between.

<comment><USER18> I suppose it depends on how good you are at coming up with random file names. You could also use O_EXCL | O_CREAT to fail if the file already existed. The more I think about it, though, the worse this whole interface is starting to smell.</comment></comment></comment>


What are the most technically hip companies in NYC? - <AUTHOR>

What is hip?  For VC, it's git or hg.  Never svn or (hurk) some commercial relic.
What is hip?  On the JVM, it's Scala or Clojure or maybe a friend.  And only the minimum Java needed to make that fly.
What is hip?  It's C++ in just the spots where it's absolutely necessary.  Not everywhere because it's the default hammer.
What is hip?  On the front end, it's standards, sometimes even if it's just whatever Chrome does.  It's never Flash.
What is hip?  On the back end, it's Linux all the way.  (Okay, BSDs are old school but passably cool.)
What is hip?  For databases, SQL, NoSQL, it's all cool, as long as it's not proprietary.
What is hip?  It's plain text, markdown, markup, even PDFs.  But never Word.
What is hip?  It's writing code like you really care about the reader.  Code that's art.  Code with style.  Code that looks like it came from The Book.
What is hip?  Hip is delight when someone shows you a better way than what you knew.
What is hip?  Hipness is. <comment><USER2> The Hipster Hacker would know <https://twitter.com/hipsterhacker>

<comment><AUTHOR> Thanks. Not really germane, but definitely a good laugh.

Frustrating that this information isn't really available--I wonder if it'd be a business opportunity for someone.</comment></comment>


A Brief, Incomplete, and Mostly Wrong History of Programming Languages  - <AUTHOR> http://james-iry.blogspot.se/2009/05/brief-incomplete-and-mostly-wrong.html

<comment><USER2> In case you're wondering why this obviously brilliant article doesn't get much discussion, or many votes, some people here have seen it before. Here are some of the previous submissions:

[https://hn.algolia.com/?q=brief+imcomplete#!/story/forever/p...](https://hn.algolia.com/?q=brief+imcomplete#!/story/forever/prefix/0/brief%20incomplete)

Of course, it may get _lots_ of discussion and _lots_ of up-votes. We'll see.</comment>


Canonical "abused trademark law" to target a site critical of Ubuntu privacy? - <AUTHOR> http://arstechnica.com/information-technology/2013/11/canonical-abused-trademark-law-to-target-a-site-critical-of-ubuntu-privacy/

<comment><USER2> It would be nice if they allowed the community to form a foundation and transferred the trademark to the foundation that way they don't give the entire community and project a bad name.

</comment><comment><USER3> This is obviously an attempt to silence a critic. I'm really starting to wonder about Canonical's judgement.

</comment><comment><USER4> Thanks for using the Barbara Streisand effect, Canonical. I would not have been aware of this informative website if not for your legal threats.</comment>


5 ways Google glass will make us Trashumans - <AUTHOR> http://ieet.org/index.php/IEET/more/desouza20130619

<comment><USER2> This article is a bunch of buzzwords and half-baked ideas. As if spell correction was anywhere close to intelligence, and what's this nonsense about deep learning fueling Quantum Archaeology? Does the author even know what deep learning is? I've heard more convincing arguments of how Google Glass will change society, and this one is speculative in all the wrong ways.

</comment><comment><USER3> I think "Trashumans" is a better description than "Transhumans"</comment>