Dictionary + algorithm + PoD t-shirt printer + meme = rape t-shirts on Amazon - <AUTHOR> http://iam.peteashton.com/keep-calm-rape-tshirt-amazon/ <comment><USER2> [http://uk.news.yahoo.com/keep-calm-rape-t-shirts- mistake-041...](http://uk.news.yahoo.com/keep-calm-rape-t-shirts- mistake-041926992.html)

 _When Solid Gold Bomb withdrew the 'rape' garment it also posted a statement on its website which said: "We have been informed of the fact that we were selling an offensive T-shirt primarily in the UK._

 _"This has been immediately deleted as it was and had been automatically generated using a scripted computer process running against 100s of thousands of dictionary words."_

Not on sale: computer generated t shirt advocating rape.

Still on sale: human authored book advocating throwing rocks at boys. [http://www.amazon.co.uk/Boys-Stupid-Throw-Rocks- Them/dp/0761...](http://www.amazon.co.uk/Boys-Stupid-Throw-Rocks- Them/dp/0761135936) human authored 2013 calendar, boys are stupid: [http://www.amazon.co.uk/Boys-Are- Stupid-2013-Calendar/dp/184...](http://www.amazon.co.uk/Boys-Are- Stupid-2013-Calendar/dp/1847573932/ref=pd_cp_b_0)

Also on sale: bunny suicides: [http://www.amazon.co.uk/Bunny-Suicides-Grid- Calendar-teNeues...](http://www.amazon.co.uk/Bunny-Suicides-Grid-Calendar- teNeues/dp/3832757368/ref=pd_sim_sbs_b_2)

And Nuns having fun: [http://www.amazon.co.uk/Nuns-Having- Calendar-2013-Wall/dp/07...](http://www.amazon.co.uk/Nuns-Having- Calendar-2013-Wall/dp/0761167013/ref=pd_sim_sbs_b_6)

<comment><USER3> >Not on sale: computer generated t shirt advocating rape.

Assuming this is a computer generated t-shirt as you and OP suggest, how can anyone be certain that the shirt refers to rape as in forced intercourse?

More often than not when I hear someone use the word rape, they are not talking about forced intercourse. Rather they are using the word rape as a synonym for "debellatio", having nothing to do with a sex.

Examples:

1\. I just took my final exam and I raped it.

2\. Did you see the superbowl? SF was getting raped until the second half, then they made it a good game.

If the rape t-shirt was not made by a human, but an algorithm, can anyone say for certain that the algorithm intended to mean rape as in forced intercourse or rape as in debellatio or any other definition whether it comes from urbandictionary or Websters?

<comment><USER4> a) Does it matter what the "intent" was, if the result is very offensive and advocates rape? Edit: Intent matters, but knowing the computer meant something else doesn't change the meaning of this item for a lot of people.

b) Your examples are offensive, and I don't appreciate people who carelessly use the word "rape" like that. You might think it's OK in some twisted way, but it's probably worse than calling random things "gay" even though they have nothing to do with homosexuality.

<comment><USER3> >You might think it's OK in some twisted way, but it's probably worse than calling random things "gay" even though they have nothing to do with homosexuality.

I never said it was OK - I simply asked how does anyone know which definition an algorithm selected and does it matter? I thought you gave an insightful answer noting intent matters, but in this case you feel it does not because either use is offensive.

I did give the examples of how I have heard rape used in non-sexual contexts, and I am sorry if you were offended - but more importantly it is you who personally gets offensive by saying I am OK with that usage in some "twisted way". Did I ever say I was OK with it? No. In fact I go out of my way to explain that is how I have heard it used, but that is not enough you go on to say my being OK with using the word rape in a non-sexual context (which I don't) is worse than some form of homophobia where one calls things "gay".

Please do not make up behvior I do NOT engage in and then compare it to other forms of behavior I do not engage in.

Finally, you may have unknowingly brought up real insight to who you are, because even if I or others were to call something "gay" who is not to say it is being done using the traditional definition of gay meaning "happy or joyous"? Are you offended the same way when people use "gay" to describe something as "happy or joyous" having nothing to do with homosexuality, the same way you get offended when others use "rape" in a non-sexual context?

<comment><USER5> Rape does not have a non-sexual context.

<comment><USER6> I suspect that the English "rape" has its roots in the Latin "rapio", which is very much not about sexual conduct--though the meaning clearly could be mutated over time (as it seems to have been) to mean forced intercourse.

<http://en.wiktionary.org/wiki/rapio>

EDIT: For a further stack trace, consider "enrapture", derived from "rapture", itself derived from the future form of "rapio": <http://en.wiktionary.org/wiki/rapture> .

And people say that a classical education and liberal arts is useless. :)

<comment><USER7> "The rape of the Sabine women", to give an example.

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

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I think it's socially pathological to appeal to Amazon (the tweets shown) to remove something offensive or distateful. Demanding intervention by random intermediaries simply sets the precedent that Amazon's role is to censor, which everyone hates the rest of the year. I think it's more responsible and effective to financially boycott something like this, assuming of course that you don't find this ironic, if dark (the original "keep calm and carry on" could be seen as promoting sheepish obedience, which I personally find _genuinely_ offensive rather than merely distasteful...).

<comment><USER9> Wha…?

Sorry, if Amazon does disgusting shit like sell this (and it is disgusting shit, no matter how it was created) Amazon deserves to be scolded for it. Nothing to do with censorship.

Boycotts are ineffective and most certainly wouldn't work here. What's wrong with making clear that something someone does is disgusting and they should stop it? That's quite simple.

<comment><USER8> Amazon is a retail interface for the original seller. If we pull Amazon's levers, causing them to filter (as opposed to directing criticism at the origin), Amazon, a vast-reaching intermediary, becomes an explicit and expected tool for anyone who has the influence (social, monetary, etc) to manipulate it, and it can quickly become the norm in the same way that ISPs are quick to become copyright/content police in the absence of effective safe- harbor rights. In not liking something, it's OK to be loud about it, but Amazon is the wrong target IMHO, and by directly targeting/shaming Amazon, the long-term result is, in addition to the immediate effect of cutting off the originator, a warping of accountability in ways that seem to me to increase the probability of censorship (and anti-competition, etc).

For example, a likely next step for Amazon would be to implement pre- screening, by a human, of all products before listing.

Net neutrality, and good government, and fair markets, all depend on the most direct forms of accountability available, IMHO. Again, I can certainly understand how the shirt could be offensive.

</comment></comment></comment><comment><USER3> People are offended because an Amazon user is selling "rape t-shirt" on Amazon's website. People are so offended they will boycott Amazon?

Would it be hypocritical for the offended to not also boycott: Twitter because they permit their users to Tweet rape jokes (I have seen them); YouTube because their users can upload videos that recorded people telling rape jokes; for a long period of time Facebook allowed "pro-rape" pages; and finally do not forget to boycott Google because they have indexed every rape joke on the web, they even indexed the "rape t-shirt" permitting such things to be searched in an instant, plus Google makes money when you search for rape jokes.

<comment><USER10> The difference, of course, is that Amazon takes a cut when any of these "Keep calm and rape her" t-shirts gets sold. Twitter doesn't.

<comment><USER3> How does Twitter make money? Ads and "sponsored" tweets; therefore, it is entirely concivable if someone is reading tweets that include rape jokes Twitter is profiting because ads or sponsored Tweets appear on the same page. This would be similar to Google search, YouTube and Facebook - I am not making the arguement, but I could see people take the position the ad companies are even more culpable than Amazon because they are using advertiser dollars to include ads with content about rape - how happy would you be as an advertiser to place ads for keywords like "jokes" or "comedy" and come to find out you website/product ads appear next to searches for "rape jokes"?

</comment></comment></comment><comment><USER11> T shirts like this aren't new, neither are rape jokes. Stand up comedians like Jimmy Carr are known for making jokes of this type quite frequently.

The joke isn't to "promote rape", the joke is the absurdity of putting a statement like that in a context where it doesn't really fit. In this case the "keep calm" meme.

<comment><USER12> I don't understand a lot of the oversensitivity in the Western-culture. It's as if the whole thing is a large field of booby-traps. If you make a joke about rape, it does not mean you're promoting rape. It just means you're raising a sensitive subject. Sensitive subjects are not allowed in open-minded societies? Even as jokes? Contrast with the uproar that Islamists have against pictures they feel offensive about their religion.

<comment><USER13> The reasoning is that it's misogynistic because it normalizes rape. Of course, men are effected too.

See: Prison rape jokes.

<comment><USER14> The prison rape jokes are especially noteworthy, as many people now seem to assume that getting raped as an inmate is indeed normal.

<comment><USER11> As far as I'm aware prison rape is actually pretty rare outside of a handful of mainly US institutions.

<comment><USER15> Yes it is mainly in the US, but I think calling it "pretty rare" isn't helpful.

 _For 2008, for example, the government had previously tallied 935 confirmed instances of sexual abuse. After asking around, and performing some calculations, the Justice Department came up with a new number: 216,000. That's 216,000 victims, not instances. These victims are often assaulted multiple times over the course of the year. The Justice Department now seems to be saying that prison rape accounted for the majority of all rapes committed in the US in 2008, likely making the United States the first country in the history of the world to count more rapes for men than for women._

<http://nplusonemag.com/raise-the-crime-rate>

<comment><USER11> Interestingly (in the UK) sometimes minors are actually glad to get sent to youth offenders institutes because they can get away from the sexual abuse that they had on the outside.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> I like the author's conclusion. It brings to mind Clarke's Third Law. Applied to independent individuals, though, there is a somewhat disturbing conclusion: if you allow technology to progress without correspondingly advancing your own knowledge, you will increasingly find yourself living in a magical realm.

<comment><USER17> This is already true for most people in the modern world.

</comment></comment><comment><USER18> Really, this guys conclusion is that the problem here is people who don't understand automation on the customer side, not (if he's even correct about the system) people creating automated systems without thinking about possible failures in the system? Yea, they're all holding it wrong, its their fault for not being technically literate enough.

<comment><USER19> That's not how I read it. I see him saying they should have checked their verb list (thought about possible failures, as you said.) He also says that if people are more aware of the algorithmic nature of these things that they are less likely to get offended.

Quite honestly, I think he's right. If people were informed about amazon not being the ones who are selling the t-shirts and the algorithmic nature of the t-shirt generation then people would probably react completely different to encountering that t-shirt.

<comment><USER9> No, the content is the same disgusting shit. Algorithms are not some sort of magic excuse that frees you from responsibility.

Ok, so there was no bad intent. That's alright. But the bottom line still is that Amazon is selling disgusting crap and nothing can change that. People criticizing that led to the removal of said disgusting crap. This played out quite nicely, actually.

<comment><USER20> If you attach a markov chain bot to a bunch of IRC channels, and a few days later it starts spewing racial slurs, would you be _offended_ and accuse the author of wrongdoing?

That's not a silly hypothetical, it happens all the time. Even cleverbot is racist as hell.

<comment><USER21> Of course I'd be offended. Racist slurs cause actual harm (by supporting a longstanding environment of racist thought and action, and by causing distress in those who are targeted). To paraphrase a blog post I've recently read, _impact_ is what defines harm, not intent. ([http://www.huffingtonpost.com/jennifer-harvey/its-not- about-...](http://www.huffingtonpost.com/jennifer-harvey/its-not-about-the- onion-i_b_2786840.html))

If you write a bot and let it participate on IRC, you are ultimately responsible for what it does there. If there's a bug that makes it spew random ASCII text twenty times per second that clogs the channel and makes it unusable, that's your fault. If it spews racist hatred and makes minorities unwilling to participate (or makes bigots feel emboldened and at home), that's your fault too.

When your nanobots go haywire and start converting the entire planet into grey goo, _I will blame you_. (For all the good it'll do me.)

<comment><USER20> If I am made aware of what my IRC bot is doing, and refuse to sanitize its corpus, then it would be reasonable to call me a jackass. I see no such refusal in this instance.

Otherwise though? It would be plainly irrational to become angry at me for writing a bot that, during the course of it's remixing, reveals or highlights racism on IRC.

To put a finer point on it, if I make a twitter bot that immediately echos anything you tweet it, and one day someone says something offensive to it, am _I_ to blame? Of course not, that is absurd. A markov chain bot is different in no way relevant to this discussion.

</comment></comment></comment></comment></comment></comment><comment><USER22> Reminds me of this story: "Programmer creates 800,000 books algorithmically and starts selling them on Amazon"

[http://www.extremetech.com/extreme/143382-programmer- creates...](http://www.extremetech.com/extreme/143382-programmer- creates-800000-books-algorithmically-starts-selling-them-on-amazon)

</comment><comment><USER23> The key takeaway for me is that when marketing products to non programmers, you can still create a very believable personal touch with emails and all correspondence. Using first names, sending emails at non scheduled times, and even potentially adding "Sent From my iPhone" at the bottom can turn marketing emails into unbelievable personal notes to the eyes of a "typical user".

</comment><comment><USER24> Fascinating to see Automated Design (optimization software applied to product development) in the wild. Some of the more interesting applications deal with situations where the definition of 'optimal' is based on a changing data set, like trending topics on Twitter.

Obviously, this went horribly wrong in this case, which brings us to the lesson:

Optimization technology can generate lots of designs that score well against some set of metrics. You still need someone with decent 'taste' to select which solutions you'll put into production. It doesn't matter if you're optimizing stock trading strategies, jet engines, or t-shirts.

Creating a decent UI for selecting good designs from a giant batch of autogenerated designs is a hard and interesting problem, and almost always needs to be custom built for the domain. Picking the best jet engine needs a totally different UI than picking the best stock trading strategy.

</comment><comment><USER25> Keep calm and don't buy their merchandise if you're offended. Telling the world about this company and trying to crucify them for it is the wrong way of going after them. The shit storm that followed the 2 minutes the shirt was for sale is probably the best publicity the company could have ever asked for.

I for one am glad amazon is not in the business of censoring what's for sale or not. Their company provides an online market place to sell goods, period. Blaming amazon for something that 1) offended you and 2) was a mistake is incredibly short sighted.

Ever make a mistake in your life? They did, it happened, they apologized.

</comment><comment><USER26> More to the point, algorithms aren't buying these shirts.. what kind of sick fuck is?

<comment> rkuykendall-com Read the article. You are making an incorrect assumption that anybody has purchased these shirts, or that they even exist.

<comment><USER26> Cool, thanks.. faith in humanity restored.

I am in the bad habit of reading HN on my old phone (CM7). The comments load much quicker than the articles, and sometimes they lead me astray.

<comment> rkuykendall-com I understand. I am guilty of only reading the comments when I feel an article is meant to address a single very interesting question, and then fails to go anywhere near it in the first two paragraphs.

</comment></comment></comment></comment><comment><USER27> The idea of an algorithm actually automatically generating and submitting shirt designs to Amazon is pretty much ridiculous. Yes, you could do it. But would you really? Who would actually invest that much engineering time into saving yourself the few minutes it would take to cobble that stuff together by hand? The author links to the company's catalog on Amazon and if you scroll through it, there is a lot of variety there - they aren't all just shirts created by a single algorithm playing mad libs.

I'm sure lots of automated scripts are involved in a product going up onto Amazon, but to suggest that no humans were ever involved in the creation of those shirts is probably nonsense, unless you have evidence to show that it actually is the case. The most obvious explanation is that a human made them, and it's not particularly difficult to believe that someone out there would make that shirt design. I've met people like that.

<comment><USER28> How much engineering time do you imagine was involved in this?

<comment><USER29> You can generate the sentences with something like this:

<?php

$sentence = "Keep Calm And Carry On";

$replacements = array('Carry' => 'Other', 'Dictionary', 'Words', 'On' => 'A Lot', 'Off', 'Them', 'Us');

echo strtr($sentence, $replacements);

?>

Once you've done that, simply use a Macro to add it to Amazon.</comment></comment></comment>


The Two Types of Companies in Silicon Valley - <AUTHOR> http://www.forbes.com/sites/michaelkanellos/2012/07/27/the-two-types-of-companies-in-silicon-valley/

<comment><USER2> Sigh, generally I don't click through to Forbes articles, I should know better. This one did not disappoint, I stopped reading right here:

 _"Look at Facebook. The company didn't invent anything. Instead, it just picked a better demographic—18 to 35-than LinkedIn or MySpace."_

Now look at a comparison of the market performance of FB and LNKD [1].

[1] [http://www.google.com/finance?chdnp=1&chdd=1&chds=1&...](http://www.google.com/finance?chdnp=1&chdd=1&chds=1&chdv=1&chvs=maximized&chdeh=1&chfdeh=0&chdet=1343423819927&chddm=19159&chls=IntervalBasedLine&cmpto=NYSE:LNKD&cmptdms=0&q=NASDAQ:FB&ntsp=0)

<comment><USER3> Besides which, Zynga has been innovative and has come up with new ways of spreading games. They might not have much of a technical edge, but it's not like Zynga has never done anything new.

<comment><USER4> Scrabulous was two years before Farmville.

</comment></comment></comment><comment><USER5> Surprised that there are no comments here in favor of his premise: I for one am getting sick of constantly hearing about the next "social local mobile app that helps you rate the experiences of friend's of friend's cousins" getting funded.

I know I am not the only one: the Founder's Fund's tagline goes something like "We asked for flying cars, we got 140 characters."

Yes there is value in Facebook and Youtube etc., but he makes a good point that most of these companies got the formula just a bit more right than many other competitors with similar ideas. It is often just as easy for them to get the next iteration wrong and lose the consumer. Instagram was the perfect example.

There isn't anything necessarily wrong with this, I take a somewhat agnostic view of it all, if you can make money doing it it is obviously valuable to someone. And perhaps it's easier. But the companies who are doing something more concrete and valuable should be getting more attention in my opinion, and the investors should be focusing on them more.

</comment><comment><USER6> The author is too extreme in his framing of business models and is missing the middle ground that can be argued to be the place where a lot of true and real businesses are.

For example, Apple did not invent the personal computer or the smartphone, they just made these products actually useful for the masses. Microsoft's OSes were not that good for the first twenty years, and Microsoft Office was in no way a technological breakthrough, but MSDos/MSWindows + MSOffice did bring a PC revolution and a PC on (almost) every desk.

</comment><comment><USER7> To summarize: a company is genetically either an innovating "Breakthrough"(Intel, Texas Instruments, Google) or a sexy and shallow "Best- Of-Show" (Zynga, Facebook, YouTube).

As others have pointed out, false dichotomy is false on several levels.

1) Even Breakthrough companies go through cycles of stagnation and innovation, especially in the tech industry. Best-Of-Show Apple in the 90s compared to Breakthrough Apple in the 21st century. Breakthrough HP in the middle of the 20th century versus Best-of-Show HP today. The list goes on and on.

2) Best-Of-Show companies often are innovating within their own domain. Facebook today is simply in a different ballpark than 2003 Myspace with sharing, groups, pages, etc.

3) Best-Of-Show companies can cause massive disruption in adjacent verticles. Try finding a news station (online or offline) that will not reference discussions on Facebook/Twitter.

The author repeatedly claims he is not making "a moral judgment", but that is exactly what he is doing. His opinion is that innovation in hardware/algorithms is more important than innovation in social/games. I am not sure why he is afraid of speaking directly, but hiding arguments in false dichotomies isn't helping anyone.

<comment><USER8> I've worked at plenty of places that were better analogised as "Participant" than "Breakthough" or "Best-Of-Show".

</comment></comment><comment><USER9> Nope, sorry, there is no such line to be drawn. The level of innovation of a company is a continuum. The height of the barrier to entry that they create is an orthogonal continuum.</comment>


The 1972 Chouinard Catalog that changed a business – and climbing – forever - <AUTHOR> http://37signals.com/svn/posts/2776-on-writing-the-1972-chouinard-catalog-that-changed-a-business-and-climbing-forever <comment><USER2> This was a hugely significant change in the climbing community at the time. There was real risk involved in climbing "clean" without pitons. A piton hammered into a granite crack is very solid protection, it's pretty straightforward to find where to place one and to place one in a manner such that it will hold a fall. In contrast, it takes a lot more skill and experience (neither of which existed anywhere initially) to place a hex or a nut correctly. And if you place them incorrectly, or even if you sling them incorrectly, there's a very real risk they can pull out or not hold a fall. Moreover, passive protection of this sort only works in certain kinds of rock, some of the more popular routes at the time were cracks which were very hard to protect.

This meant that a lot of very popular routes became a lot more dangerous to climb cleanly. To their credit, the climbing community just accepted that and moved on.

It wasn't until the late 70s that cams (SLCDs) were invented and clean protection devices attained sufficient breadth to protect very nearly any climb that could have been protected with pitons.

<comment><USER3> For those that are interested in what a pin-scarred crack looks like:

[http://farm3.static.flickr.com/2555/3916660721_88390fb2f0_z....](http://farm3.static.flickr.com/2555/3916660721_88390fb2f0_z.jpg)

Each one of those wider flaring sections are places where people pounded or repounded in pitons.

</comment></comment><comment><USER4> If you find this interesting, Chouinard's story of the history of patagonia, "Let my people go surfing," is a quick and interesting read on how he built patagonia, while trying to stick to his beliefs about the environment.

<comment><USER5> Came here to say this. Every entrepreneur should read this book as it's a great manifesto about what a business can be. How you work can (and should) be as revolutionary as what you produce.

Here's an Amazon link -- no kickback, I just want more people to read it.

[http://www.amazon.com/Let-People-Surfing-Education- Businessm...](http://www.amazon.com/Let-People-Surfing-Education- Businessman/dp/0143037838/ref=sr_1_1?ie=UTF8&qid=1298248810&sr=8-1)

</comment></comment><comment><USER6> What a great solution to a moral quandary: take the high road, and _sell_ it. Of course, it needs to be a dilemma that affects the whole community, no just you.

<comment><USER5> Imagine, however, if Chouinard had sold his piton business to some generic manufacturing concern. They would not have had the creativity to imagine "clean climbing" methods, nor would they ever have been personally inspired to keep the mountains in a pristine state.

You could tell a similar horror story about what would have happened if anyone had bought Google in say 2001 or 2002. The ethic of "clean search results" would probably never have become the industry standard.

<comment><USER2> Chouinard was neither the inventor nor the sole proponent of clean climbing, merely one of the most influential. Before it swept the US climbing community clean climbing already had a substantial history in Europe, especially in the UK. A UK climber, Royal Robbins, for example, manufactured artificial chocks several years before Chouinard and also pioneered clean climbing techniques in the US.

That being said, he did have a huge impact, and it's probably for the better that he retained personal control of the company for as long as he did.

</comment></comment></comment><comment><USER7> Yvon Chouinard is legendary, and not just for his gear. If you can find a copy of "The Vertical World of Yosemite", read the piece about the first ascent of the south face of Mount Watkins. Really, really great story.

</comment><comment><USER8> highly recommed the movie '180 degrees south' if you want more insight into Chouinard's perspective and journey - <http://www.180south.com/trailer.html>

<comment><USER9> My takeaway from watching is that he's incredibly self-absorbed and a total douchebag. I had to stop watching it halfway through because the people in it are just so absurd.</comment></comment>


Ask HN: Will work for free, anyone need a backend web developer? - <AUTHOR>

Hello, I am working to build up my portfolio, so I'm looking to offer my web development services freely for anyone that needs some work done. The only thing I ask in return is a testimonial and permission to add it to my portfolio. My skills are primarily with Python and PHP, but have some experience with Ruby as well. I am not as experienced in front end things, but I can get by. My email is email@example.com. I am also on freenode as JesseH <comment><USER2> Working for free? Why not OSS? </zoidberg>

But seriously, look into any project on Github that catches your attention. Mine, PuPHPet[0], is accepting PRs!

[0] [https://github.com/puphpet/puphpet](https://github.com/puphpet/puphpet)

<comment><AUTHOR> I laughed at the zoidberg thing. But yes, I am a fan of FOSS, and that project looks pretty neat. I will definitely have a good look at it.

</comment></comment><comment><USER3> Jesse is starting out but is more determined than most. He has worked on a commercial game and is interested in internships or similar arrangements. He has demonstrated the ability to pick up new languages and frameworks. Might be an asset for startups with limited funds.

</comment><comment><USER4> Hi Jesse,

We're looking to develop a few game like elements into our interactive grammar site, Quill.org. Please check it out and let me know if you'd be interested in contributing. We're an open source project as well. [https://github.com/empirical-org/quill](https://github.com/empirical- org/quill)

<comment><AUTHOR> Hey, that's a neat project as well. I love the Quill mission, and will definitely look into the project.

<comment><USER4> Cool. You can reach me at peter at quill dot org

</comment></comment></comment><comment><USER5> Why not use that time to work on a personal project instead? Build something cool and useful and then show it to HN :)

<comment><AUTHOR> I want to help out my fellow entrepreneurs if I can, and I will likely get a wider-range of experience working on things others need.

</comment></comment><comment><USER6> An amazing offer. Are you comfortable with working remote? The project is low pressure (for now), so 2-5 hours suits. Early stage, so will be fun experience wise not only building, but shaping a continuously evolving product. Python/Django. Do email if interested (profile) :)

</comment><comment><USER7> At theneeds we do use PHP (website+api) and Python (backend tasks, crawling, ranking, learning...). Check it out and, if interested, drop me a line.

<comment><AUTHOR> Sure, can you drop a link please? I am thinking its [http://www.theneeds.com/](http://www.theneeds.com/) Edit* Yes that's the one. I am interested in what you guys are doing, how should I contact you?

</comment></comment><comment><AUTHOR> Sorry guys, my email that I use is firstname.lastname@example.com. I will check the old one though.

<comment><USER8> Tip: Put it in your profile!

Aside, were there really 2795 j.horne's before you?

</comment></comment><comment><USER9> How much free time do you have to work on projects?

Also, where are you currently based?

<comment><AUTHOR> I'm based in the US on the east coast(Georgia). I can normally put around 2-5 hours each day into a project.

<comment><USER10> Gracious offer, do you have a linkedin or a link to your current profolio?

<comment><USER11> Do you work for Binary Cocoa? Is this your LinkedIn profile [http://www.linkedin.com/pub/jesse- horne/5a/a33/b04](http://www.linkedin.com/pub/jesse-horne/5a/a33/b04)

<comment><AUTHOR> Did do some work with them a few months ago. Had to update my linkedin.

</comment></comment></comment></comment></comment><comment><USER12> Have emailed you.

<comment><AUTHOR> Hi, I haven't received an email, so I think something must have went wrong.

<comment><AUTHOR> Ops, I put the wrong email. It's firstname.lastname@example.com</comment></comment></comment>


Amplifying C (2010) - <AUTHOR> http://voodoo-slide.blogspot.com/2010/01/amplifying-c.html <comment><USER2> > The system introduces an "amplification" phase where s-expressions are > transformed to C code before a traditional build system runs.

In other words, this is a compiler.

At this point I have to say what I always say: Don't compile to C. You will spend forever eliminating undefined behavior, the debugging experience will be bad because you don't have direct control over the DWARF DIEs, your compilation will be slower for no reason, you will not be able to add custom metadata to be consumed by optimization passes (for example, aliasing passes), you won't have access to special instructions like LLVM add nuw/nsw, etc.

Virtually all languages I know of that started out compiling to C stopped doing it at some point in their development, for one or more of the above reasons. Skip the major technical overhaul you're going to inevitably have to do and just build LLVM IR from the beginning. The LLVM API is excellent, so it ends up being less work to begin with.

<comment><USER3> > In other words, this is a compiler.

Its not a compiler it a pre-processor.

People look at C in isolation but don't realise it was designed to be part of the full Unix system that included Sed, Awk, M4, Lex, Yacc, Sh and all the other tools.

Writing custom C abstractions with Awk is fairly trivial and you end up with efficient C code that can be further processed or tuned. Thats what tools like Awk are there for.

The compiler itself is built on the same principles doing successive transformations on source, IR, assembly etc. There is really no rigid boundary.

If you want C with custom abstractions a custom dialect that compiles to C makes perfect sense. That use case was taken into account in its design.

<comment><USER4> Can you given an example of how to write custom C abstractions with Awk?

<comment><USER5> [https://www.cs.rit.edu/~ats/books/ooc.pdf](https://www.cs.rit.edu/~ats/books/ooc.pdf)

</comment></comment></comment></comment><comment><USER6> This road is well traveled. Objective-C, C#, and Java are all on that road - start with C, and add only the stuff you need. A few years down the road, and the new language has feature bloat.

The three big problems in C are "how big is it", "who released it", and "who locks it". The language provides no help with any of these issues. C++ allows papering over the problem, but the abstractions always leak and the mold always comes through the wallpaper. There are times when you need a raw pointer (for system calls, for example) and the availability of raw pointers breaks the size and ownership protection.

Rust deals effectively with all three of those issues. That was a major breakthrough, one of the few fundamental advances in language design in years. Rust, unfortunately, seems to have taken a turn for the worse in the last year. Rust has been infected with the Boost disease - overly clever templates. Rust is a procedural language, but template enthusiasts have been making it pseudo-functional with constructs like ".and_then()" and ".or_else()". Then there's "try!()", with its invisible return statement. The result is painful to read and hard to maintain.

The author of the parent article has a point about "with-" type constructs. Python has a general "with" statement, which can be used on any object that implements "__enter__" and "__exit__". That's a very useful and safe language feature. Both Go and Rust lack it, and their workarounds ("defer" and destructors) are worse.

Python's "with" plays well with exceptions. Exceptions in Python work well. Exceptions in C++, not so much, mainly because ownership and exceptions mix badly. Go could fix that with GC, and Rust could fix that with the borrow checker. But neither has exceptions. As a result, error handling in Go is wordy, and in Rust, both complicated and wordy.

I had high hopes for Rust, but they may have jumped the shark by getting too clever. We don't need a new C, but we may need a new Rust. At this point, any new low level language that doesn't have a borrow checker is flawed from the start.

<comment><USER7> > Objective-C, C#, and Java are all on that road - start with C, and add only > the stuff you need.

If »starting with C« means »use a mostly similar syntax for basic things«, then yes. Otherwise only ObjC has been on that road, given that C supports things that C# and Java don't. And then it's a »start with C, remove stuff you don't like, and add stuff you need«, which is probably more akin to »start wherever and pick things you want in the language«. E.g. syntax aside, C# probably has much more in common with Delphi in its inception and design than with C.

</comment></comment><comment><USER8> There is a project by Fernando Borretti for Lisp-style macros in C, with macro expander written in Common Lisp: [https://github.com/eudoxia0/cmacro](https://github.com/eudoxia0/cmacro), and a collection of basic macros: [https://github.com/eudoxia0/magma](https://github.com/eudoxia0/magma)

This way he has already added lambdas, lazy evaluation, types, anaphoric macros, with- macros.

<comment><USER9> The difference between cmacro is it builds on C syntax (and allows for syntax extensions, by having a very flexible parser), while this is more like the "defmacro for C" system described here[0] and here[1], because it uses a Lisp syntax.

I prefer the former approach because it's less likely to alienate C programmers. At the same time, being able to define new syntax can have the same effect, since every new syntax you add carves out a smaller and smaller set of the community that is willing to use it. The same is true for Common Lisp reader macros, which is why few of the many syntax extensions that are available become commonly used.

[0]: [http://www.european-lisp- symposium.org/editions/2014/ELS2014...](http://www.european-lisp- symposium.org/editions/2014/ELS2014.pdf)

[1]: [http://www.european-lisp- symposium.org/editions/2014/selgrad...](http://www.european-lisp- symposium.org/editions/2014/selgrad.pdf)

</comment></comment><comment><USER10> Always fun to see projects like this, but I don't get some of the motivations. Regarding the code examples:

      // c++
      AutoFile file("c:/temp/foo.txt", "w");
      fprintf(file, "Hello, world");

      // lisp
      (with-open-file (f "c:/temp/foo.txt" "w")
        (fprintf f "Hello, world"))

.. the author thinks the former is cluttered and latter uncluttered (simply because the fprintf is within a sub-scope of with-open-file)? That's a fragile rationale, but you can certainly write c++ that way if you like.

<comment><USER11> If you actually use RAII, and write braces in a bit of an unorthodox style, the distinction disappears even further:

        { AutoFile file("c:/temp/foo.txt", "w");
             fprintf(file, "Hello, world"); }

        (with-open-file (f "c:/temp/foo.txt" "w")
            (fprintf f "Hello, world"))

<comment><USER12> I honestly think explicit scopes, even though unorthodox, should become more of a thing. I personally do it in my C play projects to emphasize particular parts in a function as being independent "subordinate clauses", and with variables that only have a limited scope, but not being independent enough to be factored into a function--for example when the clause needs to be within reach of a label.

In C++ with RAII, the "emphasis" makes even more sense, to the extent that it doesn't make things ugly.

</comment></comment></comment><comment><USER13> Wouldn't it make more sense to use a Scheme that compiles down to C (like, Chicken scheme or something like that)?

I guess the argument might be readability of the output, but I'm guessing as his lisp grows more complex the output is going to diverge from the input quite a bit anyway (I'm trying to imagine what a closure would look like.. I'm guessing it wouldn't be pretty)

<comment><USER14> Amplify is mainly used to generate C code that does not need a Lisp runtime. It is used effectively as a smarter preprocessor.

Embeddable Common Lisp (ECL) [1] is an efficient implementation of Lisp that compiles to C. It can be easily used to interface C and Lisp.

Regarding C++, nowadays there is Clasp [2] that is under active development and looks very promising.

[1] [https://common-lisp.net/project/ecl/](https://common- lisp.net/project/ecl/) [2] [https://github.com/drmeister/clasp](https://github.com/drmeister/clasp)

</comment></comment><comment><USER15> I don't know a lot about C or about Lisp, but I do know that this isn't the first compile-to-C Lisp. So why not use one of the ones that already exist instead of starting from scratch? And the blog post seemed to treat it like this is the first attempt to compile a high level language to C (MLTon, JHC, various Schemes, etc).

<comment><USER16> It's because the author doesn't want a whole new language, but rather a better way to build abstractions over C.

What he wants is C's conceptual model with sexpr syntax and (therefore) the ability to build custom abstractions on top of it. That's different from working in an entirely other programming language with its own conceptual model that happens to compile to C.

You would see this difference vividly in the C that the two systems generate: the first would read like a more verbose version of the same application in which the skeleton of the program is recognizable; the second would look like machine gobbledygook. The former would be debuggable in a way that let you step through the logic of the surface program, while the other probably wouldn't. And so on.

Instead of thinking of this as a different language, think of it as 'magic C with DSLs', or 'C, with a macro system that lets you do what you want'. That distinction isn't absolute, because if you push your abstractions far enough you will end up with a different language, but the style of programming the author is talking about gives you incentives not to do that.

<comment><USER2> Even if all you want is C semantics with a different syntax, though, I think it's better to emit LLVM IR. LLVM IR is close to C semantics (though aliasing information has to be supplied explicitly), but you have direct control over debug info, which is important to avoid a huge regression in the debugging experience. As an added bonus, you eliminate the necessity of serializing and deserializing your IR during your compilation pipeline for no reason (which is effectively what compiling and reparsing C is doing).

<comment><USER16> You may be right, but learning curve is an issue. If you're already familiar with C, writing a sexpr C generator is super easy. I can see why someone would balk at learning a new conceptual model and toolset, and just take the path of least resistance, especially if they already know the kind of C program they'd like to write. This would have been even more true in 2010 of course.

So what's the best way to tackle the learning curve of what you're suggesting? If I know zero about LLVM and I want to make something like the OP, what should I do?

<comment><USER17> Another good option is to use Joe Armstrong's approach: look at the LLVM IR generated by clang for example and then emit those.

My first attempt at using LLVM was using the C++ API. It was...a struggle. Using this approach (IR snippets), I made more progress in a day than I had in months using the API.

<comment><USER18> Also worth mentioning an invaluable learning tool: 'cpp' backend in LLVM. It emits an idiomatic C++ code that generates any given IR module using the LLVM API.

<comment><USER17> Yup, that's what I used in my first attempt. Didn't work for me. (Actually: a later part of my first attempt, I think I initially tried with the straight API. Good luck with that).

<comment><USER18> What exactly did not work? Have you filed a bug?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER19> IMO Terra ([http://terralang.org/](http://terralang.org/)) is a more interesting approach to this problem, since it not only enables macros but also staged compilation, polymorphism-as-a-library, runtime specialization etc.

> You can use Terra and Lua as…

> A scripting-language with high-performance extensions. While the performance > of Lua and other dynamic languages is always getting better, a low-level of > abstraction gives you predictable control of performance when you need it. > Terra programs use the same LLVM backend that Apple uses for its C > compilers. This means that Terra code performs similarly to equivalent C > code. For instance, our translations of the nbody and fannhakunen programs > from the programming language shootout1 perform within 5% of the speed of > their C equivalents when compiled with Clang, LLVM's C frontend. Terra also > includes built-in support for SIMD operations, and other low-level features > like non-temporal writes and prefetches. You can use Lua to organize and > configure your application, and then call into Terra code when you need > controllable performance.

> An embedded JIT-compiler for building languages. We use techniques from > multi-stage programming to make it possible to meta-program Terra using Lua. > Terra expressions, types, and functions are all first-class Lua values, > making it possible to generate arbitrary programs at runtime. This allows > you to compile domain-specific languages (DSLs) written in Lua into high- > performance Terra code. Furthermore, since Terra is built on the Lua > ecosystem, it is easy to embed Terra-Lua programs in other software as a > library. This design allows you to add a JIT-compiler into your existing > software. You can use it to add a JIT-compiled DSL to your application, or > to auto-tune high-performance code dynamically.

> A stand-alone low-level language. Terra was designed so that it can run > independently from Lua. In fact, if your final program doesn't need Lua, you > can save Terra code into a .o file or executable. In addition to ensuring a > clean separation between high- and low-level code, this design lets you use > Terra as a stand-alone low-level language. In this use-case, Lua serves as a > powerful meta-programming language. You can think of it as a replacement for > C++ template metaprogramming or C preprocessor X-Macros4 with better syntax > and nicer properties such as hygiene. Since Terra exists only as code > embedded in a Lua meta-program, features that are normally built into low- > level languages can be implemented as Lua libraries. This design keeps the > core of Terra simple, while enabling powerful behavior such as conditional > compilation, namespaces, templating, and even class systems implemented as > libraries.

<comment><USER20> +1. I can't say enough good things about Terra.

I self identify as a Lisper (Clojure), but have done a fair amount of professional work in C/C++/Go too. I was productive in Lua/Terra practically overnight. I ported a bunch of Rust (that I had originally ported from C and was considering porting back to C + custom string-templating) to Lua in a few days and the code got shorter, simpler, faster, and with build times of a tiny fraction of those in Rust. Terra just matches how I think about programming low-level code: Types are about shifting work to compile time. Yes, some error-detection work, sure, but that's totally secondary for me as compared to shifting work to compile time for performance, memory representation, etc.

</comment></comment><comment><USER14> Code: [https://github.com/deplinenoise/c-amplify](https://github.com/deplinenoise/c-amplify)

<comment><USER12> It seems like it hasn't been touched since the year of publication of this article :)

</comment></comment><comment><USER21> This quote from the article really echoes my experience:

"Every C++ shop has its own 'accepted' subset."

And it's frustrating. This quote from the article too:

 _" these are clear signs that C++ isn't providing any real cost benefit for us, and that we should be writing code in other ways."_

<comment><USER22> Except this happens to all languages when they grow big.

If the language is a rich one, then every shop uses part of it.

If the language has a rich library ecosystem, then each shop has its own little garden of libraries.

<comment><USER23> This problem is much more serious when you are talking about opaque DSLs. Even having to retreat to dramatically different corners of a huge language is not too hot. By comparison, a garden of libraries that are all readable by anyone in command of a smaller core language is a smaller problem.

<comment><USER22> Depends how big the libraries are and if they are commercial or open.

But I agree with the DSLs, that is the curse of many Common Lisp shops, yet Lisp is a very simple language.

</comment></comment></comment></comment><comment><USER24> Is debugging C++ worse than generated C code?

<comment><USER2> No, it's not. Debugging generated C code is always worse. One of the major reasons why C++ compilers stopped compiling to C is that it is basically impossible to emit proper debug information that way.

</comment></comment><comment><USER25> "compiles super fast": compared to C++, sure. But not really, no.

<comment><USER26> Compiling stb_image, an incredibly useful image loader:

      $ wc -l stb_image.h
          6433 stb_image.h

      $ more stb_image.c
      #define STBI_ONLY_JPEG
      #define STBI_ONLY_PNG
      #define STBI_FAILURE_USERMSG
      #define STB_IMAGE_IMPLEMENTATION
      #include "stb_image.h"

      $ time clang -c stb_image.c -o stb_image.o

      real	0m0.091s
      user	0m0.075s
      sys	0m0.014s

Seems pretty fast to me!

<comment><USER25> Have you ever written Pascal, Go, or D? That's what fast compilation looks like. The D standard library compiles in 3.5s from scratch.

<comment><USER26> Yes, I've used Go. The compiler is fast and that's really nice; fast compilation was one of their explicit goals.

Pascal and C are fast because they're old and relatively simple, and their implementations are mature.

C++ becomes super slow when you start doing anything interesting, when I tried Rust it seemed very slow, even Java is slow although it seems like it shouldn't have to be. Those languages are all more widely used than D, I think.

[edit: typo]

</comment></comment></comment></comment><comment><USER27> > from the article: "In my prototype system, c-amplify, I'm doing exactly > this. The system introduces an "amplification" phase where s-expressions are > transformed to C code before a traditional build system runs."

haven't gambit/chicken already tried something similar for scheme ? don't know what the latest state of affairs there is though.

</comment><comment><USER28> We've experimented extensively with code generation resulting in C and there a single most important reason why it does not work: Nobody except the authors can read and understand, let alone modify, the source code.

</comment><comment><USER29> > Answer: none, they are equivalent as far as semantics go.

The C function does not have any defined semantics for certain values of a and b. The Common Lisp function merely adds two integers (or runs out of memory trying).

<comment><USER14> But this is not a Common Lisp function, it is the AST of the previous C fragment. In fact the code makes no sense interpreted as Common Lisp.

</comment></comment><comment><USER30> I built something like this that compiled BASIC to C or C++ to avoid dealing with the later. Later re-implemented it in LISP. Doing a one-to-one mapping from LISP to 3GL code makes it easier than some here think. Using a correct- by-construction coding method eliminates a _lot_ of the problems. Your code generator can also avoid C-related errors and undefined behavior wherever possible with tools available to check for most of both. Mine was a simplistic tool with very-few targets in terms of compilers. _Great_ safety and productivity, though.

Here's main benefits a LISP-like C can give you:

1\. Automate boilerplate 2\. Automate safety 3\. 4GL-style doing very much with very little 4\. Context-specific optimizations 5\. My favorite: interactive testing & incremental compilation for sub-1s code-to-execute and maximizing mental flow. Safe, C alternatives will probably never be able to do this. 6\. Update while the system is running if still in prototyping mode. Fun stuff. 7\. Save exact execution state of mock C application for debugging if you design that feature.

I don't recall most of details of implementation due to a broken memory. I worked in industrial BASIC more than C because C has too many issues. However, as "dang" and "jhack" are into this, I'll add that I did find it useful as a non-compiler-expert to setup at least two versions or states of the development environment: prototyping and production.

The prototyping system was designed for interactive development. It had all the libraries I might use loaded up, pre-wrapped, and with interface checks. The 3GL commands, or emulation of them, ran instantly as LISP expressions. You develop in this mode with no connection to the 3GL except logical and [mostly] semantic equivalence. Your code is straight up code at the moment.

When done with that, you switch to production where your code is data that's interpreted and turned into the 3GL. The generator should take care to make portable code or at least cover your targets. Throw in out-of-bounds checks and such by default. Can have a declaration to decide that. Anyway, you get your BASIC, C, C++, whatever code here. I can even imagine one for Rust that works faster than the actual compiler.

So, two versions of the system: interactive interpretation, incremental compilation, and live updating of LISP version for quick development w/ optional checks inside (eg typing); version that generates code for external compilers. Both operate on same input but ignore what they don't need. Can avoid most debugging issues with a robust, coding style and plenty interface checks. All I did with that.

Hope lessons from that old project helps someone doing the next. I expect if I recreate it that the Amplifying C stuff will be helpful in figuring out how to do that. So might be tools like Racket and me learning LISP _for real_. ;)

</comment><comment><USER31> I seem to recall something about C programs becoming bug ridden implementations of half of Common Lisp

<comment><USER32> This is Greenspun's tenth rule ([https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule](https://en.wikipedia.org/wiki/Greenspun%27s_tenth_rule)):

"Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp."

<comment><USER21> The Morris corollary:

"Including Common Lisp." [http://paulgraham.com/quotes.html](http://paulgraham.com/quotes.html)

<comment><USER32> Can also be read on the wikipedia link that I posted. :-)

</comment></comment></comment></comment><comment><USER18> I tried "amplifying" C with Lisp-like syntax macros. Looks like there is a lot of potential on this route:

[https://github.com/combinatorylogic/clike](https://github.com/combinatorylogic/clike)</comment>


Ask HN: What is your favorite font? - <AUTHOR>

What is your favorite font. Serif and San Serif. <comment><USER2> Inconsolata - <http://www.levien.com/type/myfonts/inconsolata.html> \- I won't work on in any IDE without first making this the default. It is incredibly worth of consistently being considered among the best programming fonts (<http://hivelogic.com/articles/top-10-programming-fonts>).

<comment><USER3> I just downloaded Inconsolata, installed it, and set it to be the default font in Notepad++. It looks terrible. Is there something in particular I should do to make it not look terrible? This is on a Win7 machine.

</comment></comment><comment><USER4> Of the fonts that are widely compatible on the web, I like Georgia and I especially like Palatino - it's way under-rated. Both are serif fonts.</comment>


Apple sales downturn -- as Linux and netbooks become the new hotness - <AUTHOR> http://www.osnews.com/story/21000/Apple_To_Face_First_Mac_Sales_Slowdown_in_Six_Years_

<comment><USER2> Does anyone here actually use a netbook as their day-to-day computer? I, for one, can't imagine coding on the small screens and typing on the small keyboards for eight hours. They make good travel companions, for sure, but that makes them a good secondary computer and not a primary -- in my opinion anyway.

<comment><USER3> I agree, except I found that the netbooks I've looked at were too small for me to use even for travel. Either the keyboards were too cramped or the trackpad was too small, or both.

</comment></comment><comment><USER4> Toyota lost sales last month, too. Perhaps Toyota should come out with a Linux-based netbook.

</comment><comment><USER5> This is some shoddy analysis.</comment>


Send text messages to your Dropbox. - <AUTHOR> http://txtdrop.us/ A simple app which allows you to send text messages to your Dropbox. It's a least viable product. Maybe someone will find it useful. <comment><USER2> I quite like the idea behind this, really cool.

Just one niggling question... how secure is it? Is it encrypted? Or can you see what I send?

Also, why is everyone getting silly domain names?! .me .us .ly etc... what's wrong with the good ol' .com :)

<comment><USER3> If you're sending the message in plaintext to them (or to someone), then obviously they (or someone) can see what you sent. Simple.

<comment><USER2> SMS are plaintext... d'oh. My bad. I guess a revised part of my question would be: do they save what I send them in a database?

<comment><AUTHOR> Currently, yes, so you can go back see the messages you have received. I will make it an option to not store it in the DB in the future.

</comment></comment></comment></comment><comment><USER4> Support for country codes would be great!

</comment><comment><USER5> I'd love to see such extension to todoist

<comment><AUTHOR> I'm an Emacs org-mode kinda guy. Why I wrote it.

</comment></comment><comment><USER6> whyyyy

<comment><USER7> Not sure why you are downvoted, but I'm wondering too why anyone would use this costly method instead of, say, SimpleNote.

<comment><USER8> In short: the southern hemisphere. SMS is the internet of africa, among other places.

Maybe that wasn't the driving force behind the development, but its certainly a potential use.

<comment><USER9> The majority of Africa's land area and population are in the Northern Hemisphere.

<comment><USER10> .. in fact, almost the entire land area of the planet is in the NH. Except Australia (mostly uninhabited) and Antarctica (nearly completely uninhabited).</comment></comment></comment></comment></comment>


Ask HN: What software engineering space should I get into? - <AUTHOR> Brief background: I'm a second year college student. I've built small programs/applications in class, used algorithms extensively, learned about data structures, discrete structures, etc. My school's undergraduate lower division courses encompass C++ and Python. Thus, I'm only comfortable with the latter languages but I think now it's only a matter of learning the syntax if I wish to know a language. Outside of class, I've also built a few small applications/programs using Rails, Ruby, RSpec, Python, etc.
Writing small programs/applications for particular academic problem sets are fun in their own way but not entirely exciting. Side projects are particularly more exciting than academic projects, but I have yet to find a space that grabs me. From surfing the web, front-end software engineering seems fairly spectacular (given that I love design and dictating what constitutes 'good' design). Though I'm unsure whether the latter space will see significant growth in the future. I have also briefly looked into machine learning/artificial intelligence engineering but not extensively thus I have yet to personally find it as a great space (though I am aware it will have significant growth in the near future). But above all, I currently use my computer 3/4's of the day for the majority of the week, and I am particularly not fond of it. I've then thought of looking into product management, but that's a slightly different ball-game (would you recommend?).
I have also looked at potential companies, and the list I have compiled are mostly product studios (one where they primarily build products for clients but also builds their own ventures). The latter seeming refreshing because every quarter or so, you have a new product to build and deciding how build and the design factors that come into are intriguing.
I suppose what I am looking for is: - Something fairly exciting - In significant demand - Has significant growth in the future (5-10 years) - Has great pay
To the question: What software engineering space should I get into? I know a lot of variables come into play with choosing a software engineering space, particularly one's likes and dislikes and it really comes down to that, but otherwise: What software engineering space would you recommend? What is particularly exciting about your space? What is not exciting about your space? Is it something you see yourself doing for years to come? Is there some other space you wish you could get into?
Any other advice related to my position is welcome! <comment><USER2> A few things I find interesting:

* databases and data management

* distributed systems

* implications of the finiteness of the speed of light

* protocols

<comment><USER3> I would second distributed systems. I regret not taking more classes on the subject in grad school.</comment></comment>


Launch for software which allows sharing music bought on iTunes - <AUTHOR> http://news.bbc.co.uk/1/hi/technology/7253542.stm

<comment><USER2> <http://news.ycombinator.com/item?id=119161>

It's even on this page.</comment>


1965 scientist claims the moon is plasma, landing on it won't be possible - <AUTHOR> https://www.youtube.com/watch?v=1oCNGcbwxWg <comment><USER2> This appears to be widely circulated by the Flat Earthers and Moon Landing is a Hoax people.

It is pure bunk. Even posting it to HN without context is a disservice to HN readers.

You'll notice that no actual evidence is given. In addition to the tide problem mentioned, it is extremely hard for the plasma theory to explain the consistency of shapes and patterns, the observed spectra, the ability to reflect radio waves, the observed flashes of meteorite impacts, and more.

The argument along the lines "if it is made of plasma then it will call for new physics" is true. However, one must first demonstrate the plasma nature of the moon.

Besides, the moon is actually made of cheese. I saw the documentary where a human and dog went there.

</comment><comment><USER3> But by 1965 we'd _already_ landed on the Moon, just not with men aboard...</comment>


New Popcorn Time version leaks user's IP address to third party for VPN ad - <AUTHOR> https://github.com/popcorn-official/popcorn-desktop/issues/1186 <comment><AUTHOR> The new v4 update has been plagued by various glitches, performance issues, and bugs (subtitles not working, movies not loading, etc.), as a look at the Github issue page shows: [https://github.com/popcorn-official/popcorn- desktop/issues?q...](https://github.com/popcorn-official/popcorn- desktop/issues?q=is%3Aissue)</comment>


Bitcoin.com loses 13.2BTC trying to fork the network - <AUTHOR> https://imgur.com/a/1EvhE <comment><USER2> Wait, whats going on in bitcoin land?</comment>


Life 'In The Plex': The Future Of Google - <AUTHOR> http://www.npr.org/2011/04/04/135023714/life-in-the-plex-the-future-of-google <comment><USER2>
      People used it to search for information. You would ask
      it a question, and it would immediately give you the
      answer from huge repositories of information it had gathered

I found this part rather funny. They blatantly lied to this man. Google doesn't give you direct answers immediately, and they never will because that's not how Google makes moey. Instead they present you with dozens of SEO optimized links and paid advertisements that might (but usually don't) contain relevant information.

<comment><USER3> _Google doesn't give you direct answers immediately, and they never will because that's not how Google makes moey._

<http://www.google.com/search?q=90210+weather>

<http://www.google.com/search?q=2%2B3>

<http://www.google.com/search?q=aapl>

<comment><USER2> I obviously wasn't referring to Google's canned responses which offer no real insight or understanding. The description they gave make it sound like futuristic AI, when clearly its not. Let me know when Google approaches IBM's Watson level.

[http://www.google.com/search?q=is+five+dollars+more+than+8+c...](http://www.google.com/search?q=is+five+dollars+more+than+8+cents&ie=UTF-8&oe=UTF-8&hl=en&client=safari)

<comment><USER4> That is like saying a racecar tuned for closed tracks is more impressive than a general purpose modern car because its faster. Both leverage the same principles and similar components but with different focuses and optimize for different results. Watson is not futuristic when compared to what Google does, its mainly its packaging that makes it so readily impressive.

Google are focused on different goals. Watson is optimized to list a set of confidence weighted answers/hypotheses. Google is optimized to surface a list of relevance and authority weighted documents. A Watson like google is orthogonal and could essentially be another UX on top of regular google that would completely transform the product to a different set of use cases.

Your example is easy when run through an engine that's tuned for it. But it does look like google is experimenting.

[http://www.wolframalpha.com/input/?i=is+6+dollars+less+than+...](http://www.wolframalpha.com/input/?i=is+6+dollars+less+than+5+pounds)

[http://www.google.com/search?q=who+produced+all+of+the+light...](http://www.google.com/search?q=who+produced+all+of+the+lights)

[http://www.wolframalpha.com/input/?i=who+produced+all+of+the...](http://www.wolframalpha.com/input/?i=who+produced+all+of+the+lights)

<comment><USER5> Re: "is 6 dollars less than 5 pounds", this is how Wolfram Alpha interpreted it: "TrueQ[$6 (US dollars)<5 lb (pounds)] ". It interpreted pounds as a unit of mass, not as the currency and gave "False" as a result.

You have to pick "British Pounds" from a list of other interpretations in order to get the right answer, "True".

I don't know what it says about your argument, other than it's hard to tune the engine.

<comment><USER6> Worked for me (interpreted "pounds" as "British pounds")</comment></comment></comment></comment></comment></comment>


Adobe abandons iPhone code tools - <AUTHOR> http://news.bbc.co.uk/2/hi/technology/8639240.stm

<comment><USER2> _Apple responded in a statement to technology news site CNet in which it described Flash as "closed and proprietary". Apple preferred to support more open standards which replicate everything Flash can do, added the statement._

So heaped in hypocrisy that they can't even see it -- this is getting ridiculous.

<comment><USER3> Can you be more specific about the hypocrisy you're seeing here?

Apple is closed and proprietary for _native_ applications.

Flash is closed and proprietary for _web_ applications.

From my vantage point, whether or not you approve of Apple's restrictions on native app development (like most, I don't), their refusal to allow Flash on the platform is _good for the Internet_ ; it's driving companies towards HTML5.

<comment><USER2> Apple isn't interested in 'what's good for the internet' (and neither is Adobe). Closed and proprietary for _X_ is still closed and proprietary, regardless of what you slot in for _X_. The hypocrisy is self evident in both cases, and frankly not uncommon in this sort of corporate competition. What I found funny was the sheer boldness of the statement.

Basically what each is saying (and doing) is: "We support open standards for whatever isn't under our direct control (because if it was we would close it)."

Substitute 'free markets' for 'open standards' and you have a pretty good description of what happens in the world economy on a larger scale.

<comment><USER4> _The hypocrisy is self evident in both cases_

It isn't. That's why you were asked to clarify, which you haven't done. I'm even more uncertain of what you mean by all of this. It sounds like you think any company that uses both closed and open technology is hypocritical, but that's painting with such an incredibly broad brush that I find it hard to believe that that is what you really mean.

<comment><USER2> I'll spell it out:

Apple controls what can run on the iPhone. Apple doesn't control content that comes in over the internet. Apple makes iPhone a closed proprietary system. Apple advocates for open standards for internet content.

Adobe 'controls' a sizable portion of content over the internet, by virtue of their Flash format being proprietary. Adobe doesn't control what software can run on end-user machines (specifically iPhone). Adobe advocates for openness in regard to what can run on iPhone (by enabling Flash apps to compile to native iPhone code). Adobe still keeps Flash a proprietary format.

If that doesn't make things crystal clear I don't know what will. Each controls X, which they keep closed and proprietary, yet doesn't control Y, which they push for Y be 'open' in some form or another.

The hypocrisy is here: _Apple preferred to support more open standards which replicate everything Flash can do, added the statement._

Which we can translate as: _Apple preferred to support more open standards, because they don't control Flash and don't want Adobe to gain control of what runs on iPhone (because that they do control and therefore want to keep closed)._

<comment><USER4> I understand where the confusion lies now: you're using the word hypocrisy to mean something else. Hypocrisy concerns the relation between statement and action, not motives.

What you're pointing to here would be hypocrisy if (for example) Apple were claiming to support these open standards but in fact made no effort to support them at all. The closed nature of their native platform is irrelevant in determining hypocrisy unless they were claiming to support openness there, which they aren't.

Your "translation" indicates you're more concerned about motives, but having a "bad" motive for acting in accordance with what you profess does not make you hypocritical any more than having a "good" motive for not acting in accordance with what you profess makes you not hypocritical.

You may find it disagreeable--and again, it sounds like you must feel the same way about most tech companies--but it's not hypocrisy.

<comment><USER2> No no no. I don't care about their motives. And I realize that with regards to internet content (aka Flash) there isn't anything explicitly hypocritical about supporting open standards instead of Flash. But I think it's a bit off to think that the potential for hypocrisy is confined to the specific context of any particular comment.

If a gay person says, 'I support marriage rights for gay people but not for lesbians' -- is that not hypocritical?

My explanation earlier was meant to spell out the important facts related to which areas Apple and Adobe support open standards and which areas they don't. It's simply about what they control and what they don't control, and it's based on the same principles as when someone would want free markets.

For example, before the Industrial Revolution, England imported most of it's cotton from India, which was the supplier of most of the world's cotton. At that point, the English government made all sorts of hindrances to how much could be imported and so on, in order to protect local cotton producers.

After the Industrial Revolution, Britain became one of the leading producers of cotton fabric, and suddenly they were huge supporters of 'free markets' ...in places where they didn't explicitly control the pricing of cotton (aka India).

So free markets/open standards is the same thing. It's entirely about what someone controls and what someone doesn't control. And it's hypocritical for Apple to talk about supporting open standards for flash-like functionality, because they don't care about open standards, as evidenced by the way they close off nearly everything they touch (which are _actions_ , not just motives). It's simply about market control.

<comment><USER4> _No no no. I don't care about their motives._

...but...

 _it's hypocritical for Apple to talk about supporting open standards for flash-like functionality, because they don't care about open standards_

See what I mean? You're saying it's hypocritical "because they don't care", not "because they don't do". That's why it was confusing.

 _But I think it's a bit off to think that the potential for hypocrisy is confined to the specific context of any particular comment._

If not for the fact that you're changing the meaning by ignoring the context, I'd agree, but you are. It is not "off" to consider things actually said in light of things actually done. What you've done here is add an additional statement that wasn't actually stated, i.e. turning "We support X." into "We support X and Y.", and then say it's hypocritical because they don't actually support Y. Perhaps this is clearer with the more specific original quote: <http://news.ycombinator.com/item?id=1292218>

_If a gay person says, 'I support marriage rights for gay people but not for lesbians' -- is that not hypocritical?_

A statement alone can't be hypocritical. Without knowing the action (or in absence of action some other indicator of true belief) there is no way to be sure either way. Just specifying does not make it hypocritical.

Word: "I support marriage rights for some homosexuals but not others." Deed: Support marriage rights for some homosexuals but not others. Hypocritical: No.

Word: "I support marriage rights for some homosexuals but not others." Deed: Support marriage rights no homosexuals. Hypocritical: Yes.

Word: "I support marriage rights for all homosexuals." Deed: Support marriage rights for some homosexuals but not others. Hypocritical: Yes.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> This is actually really bad for Apple. For people that don't know what this is all about, but know who Adobe and Apple are (my parents), it may appear that the iPhone is becoming a failing platform and Adobe is jumping ship (actual conversation I just had about this).

<comment><USER6> Doubtful -- those who don't know the underlying reasons will still look at one thing: their stock price / market cap. Adobe has an unstable stock price over 2yrs with a 20bn market cap and Apple has a hockey stick stock price over 2yrs with a 250bn market cap.

<comment><USER5> I did not realize that my parents were stock investors, who look up Price:Cap ratios when deciding what phone to buy.

Not to be snarky, but most people don't care about a company's stock value or market cap. They tend to care about less meaningful things like "is it popular?", "is it pretty?", "is it easy to use?", "is it affordable?"...if they are particularly shrewed "what's the return/replacement policy?" and/or "can I get this on sale?". Not everybody in the world cares about the latest tech news or stock market reports. In fact, _most_ people don't care about those things.

They heard about Adobe and Apple, and they know vaguely that Adobe makes things that allow people to make things that work on computers, and that Apple makes computers and iPods and iPhones (they don't yet know about the iPad). In their minds, their question was "if a company that makes things that allow people to make things for computers isn't going to make those things for Apple, it must really be a powerful signal that Apple isn't worth Adobe's time. Should I get an Android for my next phone?"

I filled them in on the details, and Apple's rationality for causing the issue, but not every person has somebody who can lay it out for them because honestly, most people don't care enough. If I hadn't done that, their next phone would not have been an iPhone.

</comment></comment></comment><comment><USER7> Nothing new here if you've read any of the other posts covering the story.

</comment><comment><USER8> Good.Adobe should have in its flash licensing a prohibition against having tools that convert to video formats viewable on an iphone.

</comment><comment><USER9> Was this part of Apple's game plan all along - to turn Android into a Flash ghetto?</comment>


Are Gamers More Evolutionarily Advanced?  - <AUTHOR> http://www.fastcompany.com/blog/chris-dannen/techwatch/are-gamers-more-evolutionarily-advanced <comment><USER2> Iff they have more children.

</comment><comment><USER3> So overweight, depressed, 'pattern-hunters' are more 'evolutionarily advanced' than people who aren't?

Sounds like the 'fast company' (url) is trying to pull a fast one on _us_.</comment>


Icecomm – Add Serverless Video Chat and Data Transfer to Your Site - <AUTHOR> http://icecomm.io <comment><USER2> This looks interesting but when I scrolled down I saw the message "Built for Chrome" and I'm left with the impression that this software is for Chrome only. Is that correct? I use Firefox so won't be able to use it.

If the notice is just about the website, I'm left wondering why they would include an advertisement for a browser from an advertising company on the site?

Users that are okay with ads and vendor lock-in already have plenty of bigger and more established options, so I'm still trying to figure out how this service might appeal to me - maybe not at all?

<comment><AUTHOR> built for chrome, still building for firefox.. lol

The 2 browsers still have not agreed completely on implementations for WebRTC, but we are definitely working on it.

Thank you

<comment><USER2> Okay, well good luck with the project then. I think I'll stick with Firefox Hello for now, but I'd love to be able to implement a 'video click to call' button on a website using WebRTC. Much like Skype but using no plugins and with the option to self-host it.

</comment></comment></comment><comment><USER3> Why isn't there a Google Hangout clone with WebRTC already? It seems so easy to setup (similar to url shortener or pastebins), but there is no standard site everybody uses (like tinyurl.com before everybody made his own).

edit: Thanks for the suggestions, I appreciate your work. My point is that there is no _standard_ yet. Is it just too early or does Hangout/Skype have some inherent advantage?

<comment><USER4> There is [https://tokbox.com/opentok/](https://tokbox.com/opentok/)

It's probably the backend used by the forthcoming Mozilla Hello, as the two companies have ties (in Firefox OS).

<comment><USER5> Looks like it (about:config?filter=loop.CSP)

default-src 'self' about: file: chrome:;

img-src 'self' data: [http://www.gravatar.com/](http://www.gravatar.com/) about: file: chrome:;

font-src 'none';

connect-src wss:// _.tokbox.com[https://*.opentok.com](https://*.opentok.com) [https://*.tokbox.com](https://*.tokbox.com) wss://_.mozilla.com [https://*.mozilla.org](https://*.mozilla.org) wss://*.mozaws.net;

media-src blob:

</comment></comment></comment><comment><USER6> Looks pretty good .. but I had some hiccups that I haven't quite debugged yet. It appears that the <video> object needs to be instantiated somewhere earlier than the (in my case bowser'ified) icecomm script .. and it was kind of hit and miss between me on Chrome/OSX, my buddy on Chrome/OSX and my other buddy on Chrome/Linux whether we could get the Linux-guy into our session .. I'll chalk it up to a loose and fast hack at trying to make this work on our site, but .. generally .. its freaking awesome! Felt like the intro to the Brady Bunch when we got some connections, lol ..

EDIT: doesn't work with Safari on OSX, it seems .. dunno why, maybe autoplay=true is not valid? I'm not a web guy, though, so could also just be PEBCAK.

</comment><comment><USER7> I get a bunch of 520 errors for the js resources and a 500 for the d3.js (charting). In addition:

        Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.2.18/$injector/modulerr?p0=tawnyOwlApp&p1=Err…gleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.18%2Fangular.min.js%3A18%3A139)

<comment><USER8> Same for me. Getting 500 errors everywhere. I'll just check back at a later date when the resource is back up!

<comment><USER9> Thanks for your patience. It should be working fine now!

</comment></comment></comment><comment><USER10> Whoa, instant awkwardness going on in the jsfiddle page from people who changed the 'audio' parameter to true

</comment><comment><USER11> This is a silly question. How is this not a "thing" already? What am I missing? None the less, great work!

</comment><comment><USER12> I keep trying to sign up but the verification link doesn't seem to do anything? Just plops me back to the homepage, subsequent logins fail, and subsequent registration attempts with the same info succeed (to the point of sending me the confirmation email)... am I doing something dumb?

<comment><USER9> Hey, thanks for the heads up- we are taking a look at this right now, seems like it was a scaling issue.

<comment><USER13> How many connections can you have until one has to pay? what does signing up offer?

<comment><USER9> Since the app is so new there is currently no paid component to it. Signing up allows you to get an API key which you need to include in your Icecomm code.

</comment></comment></comment></comment><comment><USER14> I believe google hangouts has just started offering webrtc [https://gigaom.com/2014/07/06/so-long-plug-ins-google- hangou...](https://gigaom.com/2014/07/06/so-long-plug-ins-google-hangouts- works-with-webrtc/)

<comment><USER15> It's plugin-free if you use their own browser (chrome/chromium). So I have to assume there's something non-standard going on or else Firefox wouldn't need a plugin.

</comment></comment><comment><AUTHOR> UPDATE: Signup/Login problems have been fixed!

Please let us know if you are having more troubles.

Thank you

</comment><comment><USER16> What's the advantage of this over PeerJS? What is your guys' pricing going to look like? Can I deploy this to something with thousands of users already?

</comment><comment><USER17> Looks like you can create a chatroulette clone with just a few lines of JS, not bad as a demo of what you can do with it.

</comment><comment><USER18> What's wrong with just using WebRTC with an open source layer on top?

Tried this on an iPhone and getting a blank black box.

<comment><USER9> Hey, it's Nick, another one of the creators. Icecomm provides the STUN/TURN servers and backend signaling servers for convenience/ease of use for the frontend.

<comment><USER6> Can you elaborate on whats needed on the backend to make this happen? I'm new to WebRTC, and am very excited about the possibility of adding realtime video chat to my site - but I really don't want another third-party involved (no offense). I'd be quite happy to purchase a server license, as long as I could run that server wherever I wanted and not depend on hosting it elsewhere ..

<comment><USER9> We actually have a page dedicated to the behind-the-scenes stuff that should answer your question: [http://icecomm.io/how-it-works](http://icecomm.io/how- it-works)

<comment><USER6> Cool - thanks for that! I'll dig into it.

</comment></comment></comment></comment></comment><comment><USER19> JSFiddle confirmed my preconceptions of the demographics of Hacker News

<comment><USER20> Go on...

</comment></comment><comment><USER21> The jsfiddle demo doesn't seem to be working (OS X / Safari)

<comment><USER22> After a few tests it seems to work with Windows/Linux while running chrome only. I had issues with FF/Opera/Saf/IE.

</comment></comment><comment><USER13> Has anyone been able to login yet? what is the benefit of signing up?

<comment><AUTHOR> We're having some scaling problems that will be resolved very soon. The benefit of signing up is getting the API key so that you can start using Icecomm.

Thank you everyone!

</comment></comment><comment><USER23> is this a service to help easier establish a peer-to-peer connection? If so, how much will it cost? and what are the long term plans?

<comment><USER24> Hey Will here (one of the creators). Yep we wanted to make setting up WebRTC - allowing P2P connections client-to-client, without a server as simple as possible. The pricing plan is not fully worked out- we're thinking something similar to Kimono labs with free up to a certain number of connections and then potentially a paid tier to cover costs

<comment><USER24> But it's early days - thoughts on the kimono labs route?

</comment></comment></comment><comment><USER25> The HTTPS version shows just a withe page. I had to disable my SSL enforcer for the domain to see anything.

</comment><comment><USER26> Does this work with Android?

<comment><AUTHOR> Chrome for Android should work, but we've only tested on 1 Android device so far.

</comment></comment><comment><USER27> This is sick!

</comment><comment><USER28> jsfiddle is the new chatroulette!

</comment><comment><USER28> it's not 8 lines.. you need to manually add 8 lines but you also link another source file that is pretty large: [http://cdn.icecomm.io/icecomm.js](http://cdn.icecomm.io/icecomm.js)

<comment><USER29> You can say the same thing in any language.

"it's not 8 lines.. you need to manually add 8 lines but you also import java.util.ArrayList that is pretty large"

or to stick with dynamic flavors..

"it's not 8 lines.. you need to manually add 8 lines but you also include this module: <link to large module>"

<comment><USER28> so there is one line NoSQL server? `git clone email@example.com:mongodb/mongo.git` the point is that you have to choose your wording and make sure you say that it's not "only" 8 lines of code, it's only 8 lines of settings...</comment></comment></comment>


Why cloud exchanges won't work - <AUTHOR> http://news.cnet.com/8301-13556_3-10439681-61.html

<comment><AUTHOR> Having worked on a lot of 'portable' cloud VMs/clusters, I don't think I agree with the premise in this article that some of these infrastructure-on-demand services cannot be commoditized. Sure, there are a LOT of applications where it would be prohibitively costly to move data around too frequently, but that is perhaps not MOST applications.</comment>


Landlords use software to set rental rates - <AUTHOR> http://www.nytimes.com/2011/11/30/realestate/commercial/landlords-use-computers-to-arrive-at-the-right-rental-fee.html

<comment><USER2> So how long till we see the same sort of "software triggering responses in other software" patterns that've been found in the stock market from HFT trading, in the apartment rental market? Will we one day see entire city blocks empty of residents, because all the different pieces of rental optimization software are raising prices in response to each other on Craigslist, and all the actual humans ns go live somewhere else?

<comment><USER3> I doubt it would work out like that. The market (especially HFT) is usually one investment fund software trading against another investment fund software. Humans are rarely involved but do oversee the thing, sometimes.

Renters are usually constrained by income and location, if the price goes too high people will make other choices (buy, move further, or squat). Also, as opposed to investments, properties need to be lived in. An abandoned apartment, even in just a few months, will have water damage, weathering, pests and vermin, and theft. And for the moment, I believe, the US has a 1-2 year backlog of empty houses.

</comment></comment><comment><USER4> So this looks to be a tool for yield management. Simply put, you manage a fixed production capacity to maximize income: sport and concert tickets, museums, airlines, cinemas, all work like this. The unsold places are "wasted". I could take out the quotes, because in comparison with a storable product, you cannot warehouse cinema or museum hours, so they're really wasted. A really smart tool would know your costs and work to increase profit, not just income.

One could argue web apps could work like this as well. There is fixed capacity (how many users could your server farm handle) that is wasted if underused. This fixed capacity is fuzzy, of course, so defining it is the first difficulty, Then, it's much harder to apply price discrimination for software. People feel cheated if they find out someone paid less for the same thing. There are obvious differentiation mechanisms in real estate that prevent this. These are missing in software. One could try to increase price variation by using time-limited rebates, for example around a holiday, in addition to the classic multi-tier pricing.

Interested in hearing what patio11 has to say about this.

<comment><USER5> A major difference is that cinema owners, airlines, sports teams etc. aim to maximize their users, and each additional user doesn't diminish the experience of other users (well to some extent, but not enough to make a huge difference to the demand).

A lot of spare capacity in server farms seems to be due to the need to cater for demand spikes, so that the experience doesn't degrade. Each additional user will, after a certain point, harm the experience of the previous users. A stronger analogy would be a power utility.

It would be quite difficult, I think, to do what you propose without being able to predict demand spikes well in advance and with a high degree of accuracy. Even if we could do that there's another issue: a power utlility can sell power to certain types of consumers at off peak times to soak up spare capacity, but electricity has many uses. A web-app isn't likely to have many non-core uses that would appeal to specific users at off-peak times.

Cloud providers can use this sort of strategy, but I don't think it would be useful for individual web apps, unless you are selling something very generic. The best way to deal with this issue, from the perspective of an individual web app, if it bothers one, would probably be simply to use a cloud solution, and let them deal with the excess capacity issues.

</comment></comment><comment><USER6> The article mentions in passing that similar tech is used to price airline tickets, but the important difference is that airline tickets are now almost universally purchased through sites like Kayak or Travelocity, which allows customers to quickly and easily compare similar trips and make a choice (generally on price). This has resulted in airline ticket prices plummeting in real terms over the past 10 years or so. In apartments, on the other hand, this tech seems to give more power to landlords, unless some smart startup builds a Kayak-for-apartments.</comment>


Simple social networks integration. Just add social network asne module - <AUTHOR> https://github.com/gorbin/ASNE

<comment><AUTHOR> How to move it to "Show HN"?</comment>


The Stinkbells Lily and Male Exotic Dancers - <AUTHOR> https://www.youtube.com/watch?v=XX4itLJvyb4 <comment><USER2> Not sure why this is here, but a universe where this exists is more interesting than one where it doesn't.</comment>