Tax-Free Bitcoin-To-Ether Trading in US to End Under GOP Plan - <AUTHOR> https://www.bloomberg.com/news/articles/2017-12-21/tax-free-bitcoin-to-ether-trading-in-u-s-to-end-under-gop-plan <comment><USER2> Is the cost basis calculated by the US dollar value of each at the time of the exchange? Or based on the exchange rate of the two currencies?

Scenario:

1\. I buy 1 ETH for 1 USD when rates are 1 ETH/USD, 2 ETH/BTC.

2\. I trade 1 ETH for 1 BTC when rates are 2 ETH/USD, 1 ETH/BTC.

Option 1: I've incurred a loss, because the sale is reported as first a sale of ETH for USD, then a purchase of BTC at whatever the cost basis between BTC/USD.

Option 2: I've incurred a gain, because I traded directly from ETH to BTC, and the relative value between ETH and BTC has gone up.

<comment><USER3> It's driven off whats called your dollar cost average.

So in your scenario

Buy 1 ETH for say $500, your cost base is $500.

If then trade the 1 ETH for bitcoin, it only depends on what ETH is worth at that moment.

If 1 ETH is now worth $400, then you have a $100 loss, if ETH is worth $500 then no taxable gain or loss, if 1 ETH is wroth $600 then you owe tax on $100 of capital gains.

What bitcoin is worth is irrelevant until you sell the bitcoin.

 __EDIT __Just assume that every transaction between crypto currencies has an implicit, convert to USD first and then buy the other Crypto with USD.

Also, There is always a USD price, what the price is, is a bit of an art, but its what ever price you can convince the IRS of.

<comment><USER2> Thanks - given your comment it sounds like option 1 mentioned above where gains are calculated based off of USD value even if the currencies are traded directly. But as another commenter mentioned, I don't see how this can work because the trade doesn't involve USD at all, and the exchange rate for USD/ETH may vary widely between exchanges. And for more niche cryptocurrencies, a USD value may not even exist because there are no trades between USD and that currency.

<comment><USER4> > the trade doesn't involve USD at all

Neither does buying pounds in euros, but you'll still calculate your taxes in USD.

</comment></comment></comment></comment><comment><USER3> Probably good news for investors long term. Bitcoin again continues to grow up and be treated as an equal to bonds, stocks, etc.

If you are a holder, or HODL as the kids say, then you get the benefit of long term rates, if you are a short term trader then you pay the short term capital gains rates, just like any other currency/commodity. trade.

Concrete rules will bring in more conservative money.

This was the last loop hole that some people were concerned about wrt to taxes and virtual currency trading.

<comment><USER5> without wash trades to pump up its value, what good is bitcoin for??

\- bitcoin isn't usable as a transactional currency. it costs $30-40 per transaction. Plus other currencies are gaining steam, and offering other choices for people to transact

\- bitcoin isn't rare to be a store of value.....everyday there's a new viable cryptocurrency springing up

\- bitcoin isn't safer than dollar.....it can drop 90% in any day; no official entity is going to prop it up and make sure it doesn't crash. it can be banned by countries (and has been by a few)

\- bitcoin isn't easy than square cash or visa or wires.....it can take several weeks to send money. plus the transaction fees are high

<comment><USER3> > without wash trades to pump up its value, what good is bitcoin for??

Can you please explain in clear terms how a wash trade pushes up the value of bitcoin?

I can see it increasing the volume but not the value.

<comment><USER6> I do not think bitcoin has this problem because of the volume, but "painting the tape" is done to a lot of alt-coins by shark-pools.

</comment></comment></comment></comment><comment><USER7> Most tax advisers I spoke with recommended against treating this as an in-kind exchange anyways.

<comment><USER8> But if this bill means that the IRS will only reject like-kind starting January 1, 2018, then those advisors (and their clients) made an expensive error-on-the-side-of-caution, didn't they? Perhaps even to the extent that people who followed that advice might dare to amend their 2016-and-earlier returns?

This year, the case for 'in-kind' exchange might be best for Bitcoin and its baby Bitcoins (Bitcoin Cash and Bitcoin Gold) – the functional differences are initially miniscule, though likely to grow in time.

<comment><USER9> The in-kind rule is not going to apply to any kind of crypto. TFA states it's now formally restricted to domestic real-estate.

<comment><USER8> TFA is explicit that it is reporting on a legislative change (expected but not yet signed into law) that'd be effective January 1, 2018. It strongly implies a more-favorable treatment is being lost, and that more-favorable treatment was still available for ty2016, and is still available 'now', and through December 31, 2017.

<comment><USER10> No, TFA is saying that a potential method of characterizing bitcoin exchanges is being explicitly eliminated. It never says that this method was acceptable. Unlike other forms of law, tax law can be retroactive (see, e.g., the loss- harboring tax shelter scandal).

You could always play with fire and try this for your 2016 and 2017 transactions, but if you get audited, expect penalties.

<comment><USER8> The article lede strongly implies that method is a currently operative tax advantage:

> _Investors in bitcoin and other virtual currencies would lose a lucrative > tax break… "_

It also reports, without caveats (or attribution to "some say") that the characterization has been used successfully, so far, in the absence of an explicit prohibition:

> _Under current law, such trades have been protected under a provision that > allows investors to defer capital gains taxes on so-called "like-kind > exchanges"_

Several of the tax attorneys quoted advance the interpretation that this treatment will only stop on January 1, 2018 under the new bill.

Of course, there's a risk given the ambiguities also mentioned in the article. But the fact that it required legislation, with a future-effective-date, to clarify may give more cover to those using the treatment before that date – and focus discretionary enforcement on clearer cases in 2018.

<comment><USER11> I've spoken to several tax attorneys about this over the past couple years as well, and not one has said they'd be comfortable treating these as in-kind transactions. It was therefore surprising to me to read this article today.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Are exchanges going to provide us with necessary tax documents in order to pay these taxes? So far all I've found is a terrible csv export that shows the date and amount of purchases of various crypto currencies, but no information at all on the current price at the time of purchase or the amount sold for (this is on Coinbase). I'm starting to get a bit concerned.

<comment><USER13> I purchased $300 BTC the other day on CB and they wanted a $30 transaction fee to withdraw the BTC off their site. I wonder if this fee can also be considered part of the purchase?

<comment><USER14> Just FYI, coinbase is paired with GDAX, their exchange.

You can transfer your bitcoin to GDAX and withdraw it from there for free (they will eat the bitcoin fees)

</comment></comment></comment><comment><USER15> I don't mind being taxed at all.

What I find stressful is calculating - not just the 'what was the USD price at the time of the exchange' that has to be manually entered and looked up into the exported CSV spreadsheet... BUT tying that to the movement of coin from Coinbase to the exchange. It's a pain.

I regret using Bittrex, as there's almost no tooling for this available.

<comment><USER16> I on the other hand, mind being taxed.

<comment><USER17> Not saying I disagree with you, but I'd like to understand your reasoning...

<comment><USER16> I disagree with a solid 80% of government spending. Lots go against my core values and morals. Currently right now as a Canadian I even have to pay taxes for religious schools, a religion which was responsible for molesting my father as a child.

I pay against my will because the government holds a monopoly on violence. They will lock me up for not paying.

A society built on top of the threat of violence is not one I endorse.

<comment><USER15> All valid points - and the U.S. government is even worse, considering the defense budget.

But while naughty, the alternatives to these governments are private individuals / militias / warlords doing far worse against your values and morals.

</comment></comment></comment></comment></comment><comment><USER18> While it was deemed to be treated as property, IRS never gave guidance on ability to treat it as like kind transaction. Accountants have been asking for this clarification for years.

SEC treating ICO as a security. IRS needs to come out with more guidance, but doing taxes is going to be a pain with crypto to crypto. Not looking for trouble with IRS, especially when gains were plentiful for so many this year.

Pay your taxes, you don't want to be the example the IRS makes. PR not going to look good for people in crypto, "majority of crypto owners refusing to pay taxes".

<comment><USER19> What? The IRS gave guidance for this in 2014! It's right there under item Q-6 in Notice 2014-21. [https://www.irs.gov/pub/irs- drop/n-14-21.pdf](https://www.irs.gov/pub/irs-drop/n-14-21.pdf)

"Q-6: Does a taxpayer have gain or loss upon an exchange of virtual currency for other property?"

"A-6: Yes." (quote continues, but there you go).

I have no idea how folks came to the conclusion that 1031 swaps were ever acceptable, but it's always been clear that the IRS did not think they were.

TL;DR Don't get your tax advice from Reddit. (Or random commenters on hacker news, for that matter.)

<comment><USER8> That would have been so much clearer if they'd just written "…upon an exchange of virtual currency for other property, including other virtual currency."

But they didn't, and thus the 'other' can easily be read as "other kind of property" – leaving 'virtual currency' to 'virtual currency' unaddressed.

</comment></comment></comment><comment><USER20> HN has spent the better part of a decade repeatedly telling me these things are both worthless, so I'm sure this is fine.

</comment><comment><USER21> IIRC like-kind treatment was never made available, with the new tax plan or without.

<comment><USER22> > IIRC like-kind treatment was never made available, with the new tax plan or > without.

They never clarified and now they'll never have to.

Like-kind treatment is given to property, with specific exemptions made by the IRS. If the IRS never made an exemption, but it did designate cryptocurrencies as property, then like-kind treatment applies.

Given that cryptographic hashes are the only thing trading in any distributed ledger technology, it doesn't matter what the name plastered on the network is, it would fit existing regulations and case law around like-kind exchange.

Now with the new law change from Congress, the agency or the courts will never have to deal with it if they don't challenge 2017 tax filings.

</comment></comment><comment><USER23> Can somebody explain something to me... I haven't been participating in the Bitcoin/cryptocurrency movement for better or worse, just following it from afar:

I thought the premise of these currencies was to avoid government and banking oversight/control... but with both the SEC and IRS putting controls around virtual currency (which I think we all expected to happen), how does that change the original inspiration? Do these virtual currencies become relegated to the same fate as all other currencies?

Was seeing this happen part of the experiment of crypto-currency as well? I keep trying to figure out the real motivation behind the basically unknown origins of the inventors (e.g. Satoshi Nakamoto).

<comment><USER24> I don't think it was this change that put that to rest. I doubt Satoshi ever foresaw that BTC transaction times and fees would grow so large that you essentially cannot use it for everyday purchases. It is still not feasible to regulate BTC itself. They only really only regulating the exchanges.

<comment><USER23> I also have been a bit confused by the usability of BTC for ordinary people, due to the units of measurement. The fractional nature of BTC and cryptocurrency seems like it would not fit the necessary ease of use for most non-digital, day-to-day transactions. I think ordinary people would find it hard to buy bread if it cost 0.000127 BTC ($1.99 USD), for example.

<comment><USER25> I think things would start being priced using different units. With your example of bread costing 0.000127 BTC, that could also be written as 127 "bits" or μBTC. It would take a lot of getting used to, but it really isn't any more complicated than $1.99.

</comment></comment></comment></comment><comment><USER26> Wash sale rules still apply (as has been noted elsewhere). But it's pretty likely this government will start to aim for that as well.

The only policy lens by which this current congress's bill makes sense is on that "rewards existing businesses moving into new markets" as opposed to "new businesses competing with existing via new markets." And while I'm not a fan of the bill or its primary authors, I'm simply not able to accept the idea that they don't have a policy direction.

<comment><USER27> This fits quite nicely with having less "net neutrality" doesn't it?

<comment><USER26> I believe so. The existing GOP agenda appears to be to reward large corporate donors by systematically opposing competition. They're actually much less of a capitalist party than the democrats.

This is why every libertarian should be doing everything they can do to piss on this tax bill. It's MUCH worse than the status quo.

</comment></comment></comment><comment><USER28> Man, like-kind doesn't even allow silver to gold. I can't imagine even the most liberal interpretation would allow trading between different blockchains.

This article seems to have an agenda.

</comment><comment><USER29> This was already the case... FUD

[https://www.irs.gov/pub/irs-drop/n-14-21.pdf](https://www.irs.gov/pub/irs- drop/n-14-21.pdf)

</comment><comment><USER30> There is another loophole that's just as good. Wash sale rules don't apply to crypto, yet.

<comment><USER31> I don't see how it's just as good, it's good but not nearly the same

</comment></comment><comment><USER32> I have a spanner to throw at this.

I'm American. I used to live in China. I bought some bitcoin in China. Later I changed some of that bitcoin for an altcoin. I now live in Japan and sometimes do more alt coin exchanges. How if at all am I taxed?

<comment><USER33> You should honestly consult a tax professional about this, as it's not a good idea to get tax advice from strangers on the internet.

But according to the IRS, you are only taxed at time of disposal when capital gains were realized. I am not at all familiar with Chinese or Japanese tax law, so I couldn't tell you what your liabilities might be there.

</comment></comment><comment><USER34> If I buy N btc every month for different price and then sell some fractional amount, what would be the cost base? It appears to be possible to name the lot being sold but I can't find the consensus, internet in general advises FIFO.

<comment><USER35> If it's like stocks, I reckon you can specify which lot is getting sold. That was one of the things up for debate under the GOP proposed tax reforms. FIFO requirement for sales didn't make it into the final bill.

This is the best resource I have found at a quick search. The answer is simply it depends on how you setup your cost basis.

[https://www.investopedia.com/terms/a/averagecostbasismethod....](https://www.investopedia.com/terms/a/averagecostbasismethod.asp)

<comment><USER34> but can I switch between different cost basis methods per transaction basically? exchanges don't provide any tax info anyway.

</comment></comment></comment><comment><USER36> How would they enforce this in any way at all?

<comment><USER37> Know Your Customer, requiring exchanges to provide the necessary data, etc.

<comment><USER38> What about decentralised exchanges?

<comment><USER37> Tax evasion rarely works out long term.

<comment><USER39> Yup. Remember, it wasn't the police who got Capone, it was the IRS.

<comment><USER40> So the IRS is going to put the same amount of resources into each of the new mini - Capones as they did Capone?

<comment><USER41> That is literally the IRS's job. IRS funding at the margin directly increases or decreases tax revenues, because they have more or less resources to spend pursuing tax evasion.

<comment><USER42> Luckily the IRS has been kneecapped by Congress because they started looking into the finances of some sketchy looking conservative nonprofits.

[http://www.cnn.com/2014/07/18/politics/irs-scandal-fast- fact...](http://www.cnn.com/2014/07/18/politics/irs-scandal-fast- facts/index.html)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER43> The funny thing is all this regulation will probably serve to make cryptos more legitimate.

</comment><comment><USER44> does this apply to all the alt coins or just eth-btc?

</comment><comment><USER45> Can someone please explain to me huw the government wants to track trading in Anonymous currencys? They don't know it's me whi traded btc for eth

<comment> vertex-four The Government also "tracks" large amounts of cash, which are about as anonymous, through audits - both random and based on red flags. Basically, they send round someone with the ability to lock you up if they can prove you've intentionally hidden assets from them, and they're very, very good at seeking out inconsistencies in your books.

Taxes existed before credit cards, you know.

</comment></comment><comment><USER46> Today Ripple (xrp) has passed 1$ price mark

</comment><comment><USER31> Already been thinking about moving abroad, this is a great reason to push me further in that direction

</comment><comment><USER47> So you do the trading offshore? It's a virtual currency after all.

</comment><comment><USER48> So... Bitcoin people complain that it's not taken seriously as a real currency. Then when it is, with all the associated regulatory and tax ramifications, they complain about that, too.

<comment><USER49> Still not being taken seriously as a "real currency" \- it is being taken seriously as "real property" though.

</comment></comment><comment><USER50> So, this and the SECs recent decisions are the point when the US gets left behind on the next major advancement of technology.

An almost fricitionless, ubiquitous, audit-able marketplace. well, except for monero and zcash.

<comment><USER51> Did you really think you'd be able to trade around money without being taxed?

<comment><USER52> IRS considers it an asset not money.

</comment></comment></comment><comment><USER53> If you are a U.S. citizen or if you don't do the double Irish like Google and Apple. Typical misplaced understanding of crypto.</comment>


Show HN: Ecoji, a new base1024 emoji encoding - <AUTHOR> https://github.com/keith-turner/ecoji <comment><USER2> I made an almost identical program back in 2015 (even the same name!), though only using base64:

[https://github.com/andrewhamon/encoji](https://github.com/andrewhamon/encoji)

Great idea, op ;)

Edit: this one definitely has had more thought out into it, specifically I like that the sort order of different input is preserved in the output.

<comment><USER3> _Almost_ the same name!

<comment><USER2> Ah, my bad!

</comment></comment></comment><comment><USER4> This seems half-jokey, but I think it'd actually be really great if places where we usually see hex or base64 hashes used emoji instead.

Much easier to compare at a glance, and have a chance of remembering (by sight -- "is this the same hash", not "let me write down the hash from nothing").

<comment><USER2> A more serious attempt to solve hat problem is base58: [https://en.m.wikipedia.org/wiki/Base58](https://en.m.wikipedia.org/wiki/Base58)

<comment><USER5> Plus you can actually type base58 using a phone or non-native keyboard.

<comment><USER6> Plus it's the right size for one cryptocat gene per character.

</comment></comment></comment></comment><comment><USER7> Base64 encodes groups of 6 bits into one of 64 8-bit characters. OP is doing the same, but with each character encoding 10bits.

The only problem is that these emojis probably require two bytes each (more?), so we're encoding 10 bits into 16 bits (60% overhead) instead of 6 bits to 8 bits (33% overhead)

It's a nice idea though. These are clearly easier to remember and compare. Just don't expect emojis to take less space than base64.

<comment><USER8> You would hypothetically use this for a file where your communication channel is limited to emojis and text so... Twitter?

<comment><USER9> Here's a serious attempt at encoding arbitrary data into Unicode characters:

[https://github.com/qntm/base65536](https://github.com/qntm/base65536)

</comment></comment></comment><comment><USER10> I'd expect the encoding to be much shorter. Like, 1 emoji per 4 bytes.

<comment><USER11> There are about 2600 emoji, so it could plausibly be 1 emoji per 3 bytes. I wonder why it was implemented so much less compactly.

<comment><USER12> For one emoji to represent 3 bytes in an encoding, you'd need 2 __24 ~ 16.7M unique emojis. With 2600 emojis, the best you could do is have each one represent 11 bits (which requires 2048 unique emojis).

Am I missing something here...?

<comment><USER11> Nope, I just didn't think that through very well.

</comment></comment></comment></comment><comment><USER13> One of the emojis in the examples, , doesn't work in Firefox 60 on Windows 10. It's the Emoji "Woozy Face" [0] which was introduced in Unicode 11.0 in 2018, so it probably has limited support for a while. There's probably better alternatives.

[0] [https://emojipedia.org/face-with-uneven-eyes-and-wavy- mouth/](https://emojipedia.org/face-with-uneven-eyes-and-wavy-mouth/)

</comment><comment><USER14> I also made something very similar, except it used hex-encoded hashes as input. [0]

[0] [https://dmitri.shuralyov.com/projects/hash- emoji/](https://dmitri.shuralyov.com/projects/hash-emoji/)

</comment><comment><USER15> How about a base-N project? You configure it with your safe alphabet, it adapts to consume as many bits as it can for your 'encoding', outputs efficiency along with encoded data.

</comment><comment><USER16> [https://github.com/keith- turner/ecoji/blob/31e543511004597bd...](https://github.com/keith- turner/ecoji/blob/31e543511004597bd5eff628c9baad28fe957345/encode.go#L79)

this is in the standard library as [https://golang.org/pkg/io/#ReadFull](https://golang.org/pkg/io/#ReadFull)

</comment><comment><USER17> How many bytes can we dump into a tweet with this?

</comment><comment><USER18> Our language is evolving back to hieroglyphics

<comment><USER19> For sure! I think it's pretty funny.

An advantage of emoji is that it makes it so easy to communicate a non-verbal expression. Looking at my frequently used list: there's the thinking, facepalm, sly look, and so on... they make text messaging so much more human.

</comment></comment><comment><USER20> You want to insert a xxd -r -p in before your program in

cat encode.go | openssl dgst -binary -sha1 | ecoji

</comment><comment><USER21> Base 64 = 256 Ascii represented in 64. Base64 < 256 Base 1024 = ?

Wouldn't "A" be "A", because it is a subset of 1024? Looks more like obfuscation code for me.

<comment><USER5> Base encodings don't always start at "A" (or even include it).

They just mean that the alphabet they use has N glyphs in it to represent the numbers 0-N. For example, base10 can be:

0123456789 or qwertyuiop or abcdefghij or ...

</comment></comment><comment><USER22> Somehow related: [https://github.com/emojisum/emojisum](https://github.com/emojisum/emojisum)

</comment><comment><USER23> I'm curious if there are strings whose emoji encoding still contain a readable form of the original string, but in emoji.

</comment><comment><USER24> I don't exactly know what the goal here is, but if the goal was to reduce the number of symbols a human needs to look at (e.g. for confirmation codes etc) then this is abysmal. 48 ascii characters reduces to 40 emoji, even though emoji occupy 2-4x the bits as ascii?

<comment><USER25> The goal is it's funny.

</comment></comment><comment><USER26> Waiting for NodeJS version.

<comment><USER2> Not published as an npm module, but I did make a JS version for the web to go along with the Golang version I made: [https://github.com/andrewhamon/encoji/blob/master/js/index.j...](https://github.com/andrewhamon/encoji/blob/master/js/index.js)

<comment><USER26> +1 from me. Thanks!</comment></comment></comment>


Ask HN: When you launch a startup how do you get beta testers? - <AUTHOR>

<comment><USER2> You can check <http://betabait.com/> <http://betali.st/> unless you are very focused on specific group. In that case I guess a specific topic community will be better channel.

</comment><comment><USER3> <http://news.ycombinator.com/item?id=109220></comment>


How the PC Police Propelled Donald Trump - <AUTHOR> http://www.thedailybeast.com/articles/2016/01/04/how-the-p-c-police-propelled-donald-trump.html?via=desktop&source=twitter <comment><USER2> The author missed that this is also happening in EU. Wilders, Farrage and Åkesson with their political parties skyrocketed.

I've often said that Sweden Democrats best campaigners is the average Swede[0] or everyone in SoFo/SodoSopa.

0: [https://archive.is/gDdJx](https://archive.is/gDdJx)</comment>


MongoDB server leaks 11M user records from e-marketing service - <AUTHOR> https://www.zdnet.com/article/mongodb-server-leaks-11-million-user-records-from-e-marketing-service/ <comment><USER2> > On Monday, a security researcher specialized in finding exposed databases > has identified an unsecured MongoDB server that was leaking the personal > details of nearly 11 million users.

More accurate title: "Unsecured MongoDB server contains 11M user records"

MongoDB has terrible security defaults but the software itself is not "leaking" anything, this instance has just not been properly configured.

Now I'm not saying MongoDB is blame free, they can certainly make it better, but the blame is at both the user and software.

<comment><USER3> I think it was a terrible decision to have no authentication as default from the MongoDB people, but it was literally one of the first things the documentation made clear. And even without documentation, just setting up the connection should be hint enough that you need to set a password.

The blame lies only on those who set up an unsecured MongoDB in an production environment.</comment></comment>


China's Government Is Letting a Wave of Bond Defaults Just Happen - <AUTHOR> https://www.bloomberg.com/news/articles/2019-12-26/china-s-government-is-letting-a-wave-of-bond-defaults-just-happen <comment><USER2> How often do these defaults happen usually and what happens to a company when it defaults?</comment>


Ask HN: can anyone here create a laptop for $50? - <AUTHOR>

Hey everyone! I am looking to make really cheap laptops for my students they should run on Linux and won't require the best hardware specifications it will mainly function in the cloud. Email me at firstname.lastname@example.com if u are up to the task. <comment><USER2> Edit: Here's one called a "Zipit" for about $50, hackable to run Linux: [http://revision3.com/hak5/chromeos/unlocking-linux-on-the- zi...](http://revision3.com/hak5/chromeos/unlocking-linux-on-the- zipit-z2-a-50-hacktop)

Here's an 8-bit, hackable hand-held computer for $70 (cheaper if you buy in bulk) <https://www.adafruit.com/products/330>

</comment><comment><USER3> I'd check out ebay, especially the "Listed as lots" option.

</comment><comment><USER4> Seeing as how big of a deal the $100 OLPC XO was, I doubt it's possible.</comment>


Ask HN: What task did you stop automating? - <AUTHOR> <comment><USER2> In a SaaS immediately deleting an account after a paying user clicks 'delete my account'.

Instead there's a confirmation that somebody from the support team will take care. Users (from what I've read on blogs) often suspect that's because we try to upsell or keep the account open longer. Not the case. We want to review the account because in the past users had multiple and they closed the wrong one, we had manual payment arrangements setup which months later triggered a payment, see if a refund is due (e.g. user cancelled one day after an invoice was paid or they haven't logged it a whole month), and lastly we want to thank larger customers personally.

</comment><comment><USER3> At our scale manual deploys seem to have fewer outages than automatic ones, so I've moved back from automating the deploys to simply providing easy commands to do 99% of the deploy work, but still requiring them to be triggered manually. I suspect this balance will shift towards favoring more CI/CD automation once we reach a bigger scale.

</comment><comment><USER4> I generally try to prevent large amounts of data from being automatically downloaded or uploaded, so I disable things like automatic git fetch (when working with a large repository), automatic cloud backups, automatic updates, etc. This configuration tends to occur organically over time as I encounter unexpected moments of device slowness and "fix" the problem by disabling the offending automation.

<comment><USER5> Wait how do you work on a git repo without having an up to date local copy?</comment></comment>


Ask HN: My project IsItRails.com — what should I do? - <AUTHOR>

Started two years ago IsItRails.com is a very small app that is able to identify if a site runs Ruby on Rails or not (at least to some 90%). It's the outcome of a lazy three days hack has an horrible ugly design (I know…) and currently over 4000 known Rails sites.
But it does the job and saves some "curl --head" and "view source" actions for curious persons like myself (when using the bookmarklet).
As not only the design sucks I'm considering a relaunch from scratch but I'm not sure about if and how much time and money (e.g. for design) I should invest et all? Can this be run as "a business"? Is there any commercial potential in this app or its data? I'm not currently sharing the database which might or might not be interesting for hosters/PaaS, add-on/monitoring providers and consultancies?
I'll continue running the service as it currently is, even if there's no revenue possibility… so please be honest in your opinion: What do you think? Thank you. <comment><USER2> hey Roland,

That's a very tricky thing. I think that a 'service to the community' has its own kind of pay-offs but they won't be the kind that you can measure in direct dollar value. It would come back in goodwill, which is notoriously hard to put a sticker price on.

This particular one also doesn't seem to cost much to own & operate. If you want you can host it on on one of my machines in case you're worried about the costs (free of charge), I think that it's useful but I would expand it a bit to make it more useful, where you analyze not just if it is rails but also what it is if it isn't. That would also increase the usefulness of the site.

That way you can give something back to a visitor regardless of whether or not a site runs rails.

If you feel like taking me up on my offer let me know.

greetings, & good luck, whatever you decide to do with it.

Jacques

<comment><AUTHOR> As you've mentioned hosting isn't a problem so that's not an issue.

My experience after running (resurrecting) the local ruby user group (<http://ruby-muenchen.de/> all done/run by me) and <http://IsItRails.com/> for two years are disillusioning: At least here in Germany nobody gives a sh*t if you do something to the community.

So having some flattrs/tweets per month is already a positive feedback that I appreciate much :)

<comment><USER2> Well, here is my compliment to you then, in spite of other parties here asking what the 'use' is, the URL was easy enough to remember that when I was wondering if a bunch of websites might have been written using rails (they weren't) that I used your service and it worked well enough.

So thank you for running isitrails.com :)

</comment></comment></comment><comment><USER3> I use your site, I'm a fulltime Rails developer, and I would think all your traffic would be from Rails developers or at least the Rails-curious.

You might be able to get some money (I have no way of estimating how much) by just adding the same sponsors that railscasts.com has. That could be a short time investment up front for a passive income.

In that model, you don't need to redesign. The design is fine.

<comment><AUTHOR> I've never done that "fund raising" thingy. I once had an offer to embed a pay per lead banner but considered the low traffic it seemed not be a good idea.

It's a very specific app and probably the database is more valueable than the visitor number…

<comment><USER4> Roland,

This may be a completely useless suggestions as I'm not sure if it's even possible, but perhaps you could port IsItRails to other open-source projects (e.g., IsItDjango). The site could then be a useful way for recognizing open- source projects/devs.

As the database grows, I may start using it show non-technical people that these projects are not just fringe, non-scalable technologies.

Great work!

One last note, as far as fundraising, what's the worst thing that could happen if you sent an email to all the sponsors of RailsCasts asking if they'd be interested in promoting on your site?

<comment><USER5> Or, rather, you just enter a URL and it tells you what frameworks the app is using.

</comment></comment></comment></comment><comment><USER6> I've doing pretty much the same thing with <http://wappalyzer.com> the last couple of years. It's a Firefox add-on that analyzes source code and headers to find out what software is being used on sites. The add-on is mildly popular and I'm collecting a ton of data but it isn't making me a lot of money. It's a fun side-project though, perhaps we can do something together?

Example stats page: [http://wappalyzer.com/stats/app/WordPress|Drupal|Joomla/webs...](http://wappalyzer.com/stats/app/WordPress|Drupal|Joomla/websites)

</comment><comment><USER7> I think you probably need to ask yourself: "would I pay for this?" then ask your friends and people in a wider community: "would you or your business pay for this?"

I think you'll probably find that answer is, well, no. What's my ROI on knowing if a site runs Rails? I'm really trying hard and coming up with a blank.

What does your site do that I can't accomplish in a simple email to the site's owner? You're basically arguing a value proposition over my laziness to send an email and wait a day or so for the result, which isn't a lot.

</comment><comment><USER8> I would do the minimum work required and put some Amazon affiliate links up there as a starting point.

I imagine most of your traffic is going to come from Rails developers or those interested in getting to know Rails. If you can find out more about why your visitors use your site, then you can develop a more effective commercialisation strategy based on their interests.

<comment><AUTHOR> Isn't there a possibility that keeps me from distracting the users? Don't you think the database might have a value on its own?

<comment><USER9> It's possible that your users are using the site itself as a distraction. You could A/B test to see whether ads keep visitors from coming back.

Or are you thinking that ads or affiliate links would make the database less valuable?

<comment><AUTHOR> I personally hate sites cluttered with affiliate banners or google adsense.

<comment><USER9> Hard to argue with you there. But advertising is how most of the web makes money off of "free" services, and I believe it can be done tastefully.

</comment></comment></comment></comment></comment><comment><AUTHOR> clickable: <http://IsItRails.com/>

</comment><comment><USER10> You should talk to jarnold since he says that you should sell the database and he can provide you leads, and everything you've said in the comments seems more like, "Does anyone want to buy my database?" than "How can I monetize this". Down to posting your sales pitch. :p

</comment><comment><USER11> Sell the data to the sales staff of rails hosting companies. Seriously, the sales folks at these companies use this data all day long. Let me know if you want introductions.

</comment><comment><USER12> Maybe you could create some additional research/marketing value by combining your current efforts with something similar to the information available in Netcraft's "What's that site running?" utility? (<http://uptime.netcraft.com/up/graph>)

</comment><comment><USER13> how does it compare to, say:

<http://www.appliedstacks.com/>

<http://blindelephant.sourceforge.net/>

<comment><AUTHOR> blindelephant is interesting. Was not available when I started 2 years ago.

Appliedstacks seems to be a wiki so it's entirely user generated.

<comment><AUTHOR> update: blindelephant seems not to cover rails apps yet

</comment></comment></comment><comment> mike-cardwell This is a genuine question, I'm not trying to be rude... What is the point of the website? It doesn't seem to do anything particularly useful... Perhaps your time would be better spent working on a website which would perform a useful task and maybe generate some money?

<comment><AUTHOR> If the information that a site is Ruby on Rails based is not useful to you, you're completely right.

<comment> mike-cardwell I would like a website where you enter the url of another website and it gives you a list of technologies which it uses. One which just tells you if it uses rails seems to be of very limited usefulness.

<comment><AUTHOR> let me try a pitch:

"If you provide Ruby/Rails hosting like Heroku, Engine Yard, RightScale etc. do, the database could contain up to 4300 potential new customers"

<comment><USER14> Add to your database which hosting provider the site is using (for those you can figure out). I think that really increases the value of your pitch and saves the sales people from having to cross reference to make sure they aren't pitching existing customers.

</comment></comment></comment></comment></comment><comment><USER15> Congratson a great site. It's useful and interesting. No, don't invest much more into it and no, it can't be a business. It's a super niche site intended for a supernniche audience. You've proven that you can go from idea to production, and that's very rare in life (most people are talkers, you're a doer). Now, do the smart thing, and heed the advice here. Move on to your next big idea, this one only has hobby potential.</comment>


Is WebAssembly faster than JavaScript? - <AUTHOR> https://lemire.me/blog/2018/10/23/is-webassembly-faster-than-javascript/ <comment><USER2> I don't believe this, but it's an understandable error.

First, let me be clear that handwritten optimized WASM is faster and smaller than heavily optimized Javascript on primitive types, by significant margins. It doesn't surprise me that compilers burn this (to put it mildly, compilers aren't great at code generation), but it's worth noting that the raw throughput difference is there and definitely measurable. This difference should be expected to grow in the near future, since browsers' WASM compilers are suboptimal right now.

Now, more importantly, the major criticism I have with this is that it is presumably focused on small imperative tasks, which ignores the main places performance is lost in a language like Javascript:

1\. Javascript can't handle memory efficiently without doing everything through typed arrays. Efficient use of memory (compact representations, mutation and sharing, sequential access, etc.) is an unreasonable task in a high level language, whereas transpiling to WASM works.

2\. Javascript's abstractions are heavy and inefficient. Building your own abstractions is liable to have similar issues. A language like C, C++, or Rust lets you build efficient abstractions both in the small ("zero-cost abstractions") and in the large (architecturally).

Little unpublished demos won't show that.

<comment><USER3> WASM is basically the formalisation of asm.js. Therefore writing javascript code that rivals WASM is possible by definition but writing fast Rust/C++ code is much easier than trying to do the same with javascript (it won't look like javascript).

<comment><USER2> asm.js is not "just" efficient Javascript though. It is typically compiled a different way to standard JS.

</comment></comment></comment><comment><USER4> I'm getting the opposite results from my work with WebAssembly ([https://floooh.github.com/tiny8bit](https://floooh.github.com/tiny8bit), [https://floooh.github.io/sokol-html5/](https://floooh.github.io/sokol- html5/), [https://floooh.github.io/oryol/](https://floooh.github.io/oryol/)).

As for the size vs JS: this depends a lot on the language used to compile to WASM, rule-of-thumb: the higher level the language, the more complicated it is to keep the size down. But if you use an 'embedded style' of C, it is quite trivial to keep the size below even compressed Javascript code that does the same, as long as the Javascript code isn't just glueing together a few HTML5 APIs and the DOM.

Some of my findings:

\- [https://floooh.github.io/2018/05/01/cpp-to-c-size- reduction....](https://floooh.github.io/2018/05/01/cpp-to-c-size- reduction.html)

\- [https://floooh.github.io/2016/08/27/asmjs- diet.html](https://floooh.github.io/2016/08/27/asmjs-diet.html)

As for performance: you need to show the code and benchmark results since JS being faster than WASM is against what most people who actually worked with both are seeing. It's definitely possible that badly written C code compiled to WASM is slower than well written JS code, but that takes a lot of effort ;)

WASM allows control over the memory layout that's just not possible with "idiomatic" JS, unless throwing most of Javascript's convenience away and directly poke into ArrayBuffers.

One reason why JS could be faster than WASM is (or rather was) when the WASM code needs to do a lot of calls into JS, but this has recently been addressed in Firefox (and other browsers hopefully follow soon).

Some more info on why WASM is faster then "idiomatic JS":

[https://floooh.github.io/2017/06/09/webassembly- demystified....](https://floooh.github.io/2017/06/09/webassembly- demystified.html)

<comment><USER5> Wow, nice demos! You got yourself a new Github follower.

Out of curiosity, because you seem to focus on 3D graphics or really old- school emulation: have you given any thought in how WASM might be beneficial for rendering 2D graphics? What would you expect to be the best approach to squeeze more performance out of that use-case?

<comment><USER4> I think 2D graphics is also mainly a WebGL problem. Fill a vertex buffer with 2D vertices each frame, and try to render it with as few draw calls as possible (e.g. fill vertices sorted by texture, and only issue a new draw call when the texture changes, pack small textures into a bigger texture atlas etc...). Most what makes this fast is how WebGL is used and can be done quite efficiently from JS too. WASM may help in the tight loop where the vertex buffer is filled with data though.

</comment></comment></comment><comment><USER6> This is short-sighted enough to border on shit-posting.

So the only thing people want to do with WASM is deploy C/C++ to the browser and for raw speed?

There's many other reasons you would want to use WASM...you might want to use languages with better tooling or better suited to the purpose of your code (I'd rather do UIs in Lua than JS 10 times out of 10). Maybe you want a tiny memory footprint so you can run on small devices. The list goes on.

<comment><USER7> I'd be extremely careful calling a computer science professor's opinion shit- posting. He's basing his argument on end-user experience. You, on the other hand, are giving dev-experience more weightage. Depending on what you want, WASM may or may not be useful.

<comment><USER8> For a scientist, he does a piss-poor job of producing open, reproducible research. He doesn't even show numbers. Whatever his credentials may be, this post is all talk without even a nugget of actual data or information. So yes, it borders on shit-posting. We have to expect better from a CS professor

<comment><USER9> Yeah - in a way it's worse that the article is so lacking in detail because you expect the evidence to be present as a base-line level of competency for a person with such a position. We certainly shouldn't be appealing to authority, at any rate.

</comment></comment></comment></comment><comment><USER10> Prove it. I don't believe you, and you haven't posted any data. Try compiling some computationally intensive code with wasm-pack (and rust) and run it against an idiomatic javascript version. The Rust/wasm version will be faster, smaller, more efficient.

If you're compiling the C code with emscripten into a asmjs or something, then of course it's going to be bigger and slower.

But again, without a shred of proof, we have no way to know.

<comment><USER4> After compression, asmjs and wasm come out at about the same size (give or take 5% or so), wasm is also about the same speed as asmjs (unless you need a lot of 64-bit integer operations, or you're running the asmjs on iOS Safari which doesn't seem to have any special handling for asmjs).

Also, C via emscripten vs Rust via the LLVM wasm backend shouldn't make much of a difference as long as you don't need to use emscripten's browser shims (you can compile 'naked' WASM without any C or JS runtime in emscripten too).

</comment></comment><comment><USER11> Here's a list of reasons wasm can be slower or faster:

Faster:

1\. Compiled to a strongly typed IR, wasm code means just one thing. For instance i32.add means addition of 2 i32s. In JavaScript a '+' operator has some 70 different possible input parameters. Hence, the engine cannot assume the types (until a later optimization stage) during execution

2\. 'JS -> AST -> machine code' is a typical sequence for js execution. In contrast, for wasm it is 'wasm->machine code'

3\. For medium to large code bases, wasm's binary format is more compact than a js text format. Wasm can also be gzipped for further compression. It should lead to smaller downloads over the wire in such cases.

Slower:

1\. Passing data to and from wasm needs to happen on it's heap. Oftentimes, this is a non zero-copy operation of a JavaScript object onto the heap, and back. This can lead to preformance bottlenecks

2\. The actual calling interface between wasm and js incurs a cost. If the rate of calling across this interface exceeds time spent within the wasm, performance degrades. Think CPU<\-->GPU where the invocation and dates passing between the interface exceeds compute time on GPU

3\. Wasm doesn't have access to Dom, network, storage, .... If your app uses these from within wasm, it's essentially calling back and forth to js while stalling wasm execution and incurring high costs to navigate the wasm<\-->js interface.

There are plenty of samples available online demonstrating the above points. A simple demo is that of a fibonacci series for a large number. As the number gets larger, wasm starts to easily outperform js

</comment><comment><USER12> Where is the performance data?

<comment><USER13> This right here.

I'm taking his results with a pound of salt. There's no detail, so the experiment cannot be reproduced by a third party. Where's the scripts and WASM programs used for testing so that others can verify not just the results, but that the WASM and JavaScript programs were actually comparable.

</comment></comment><comment><USER14> Looks like the author here wants to directly contradict this ->

[https://hacks.mozilla.org/2018/10/calls-between- javascript-a...](https://hacks.mozilla.org/2018/10/calls-between-javascript- and-webassembly-are-finally-fast-%F0%9F%8E%89/)

</comment><comment><USER15> It's still early days for wasm. Rust has great support for wasm, and I predict it's going to be a leader in the space, but wasm isn't there yet. Javascript has been optimized for decades now, and it's been a critical technology for a lot of companies with deep pockets. As wasm gets better and adoption grows, we'll see it improve drastically.

</comment><comment><USER14> An engineer from Mozilla had published a blog post in which he said WebAssembly has been optimized so much that it's faster than JavaScript.

That post was a top ranking HN post, not many days ago.

<comment><USER16> Do you mean this one?

[https://hacks.mozilla.org/2018/10/webassemblys-post-mvp- futu...](https://hacks.mozilla.org/2018/10/webassemblys-post-mvp-future/)

<comment><USER14> No, this one - [https://hacks.mozilla.org/2018/10/calls-between- javascript-a...](https://hacks.mozilla.org/2018/10/calls-between-javascript- and-webassembly-are-finally-fast-%F0%9F%8E%89/)

</comment></comment></comment><comment><USER17> If it's not now, it'll eventually be.

</comment><comment><USER18> With Microsoft making moves like blazor, you may see a huge shift into .net devs bukidng with web assembly.</comment>


Show HN: Hacker Feud - <AUTHOR> https://github.com/lettier/hacker-feud <comment><USER2> Worth noting that the demo questions and answers are jokes based on common online arguments, not facts. This is not Jepordy. Think online flame war kinda answers.

The answers to the demo are here: [https://github.com/lettier/hacker- feud/blob/master/src/main....](https://github.com/lettier/hacker- feud/blob/master/src/main.js)

I think the project is neat and the code is clean. It's funny how something so good can frustrate its own audience with a tiny over site.

</comment><comment><USER3> Can't seem to name a dead programming language after naming some very dead ones. Broken? Just hearing the "bzz" incorrect answer sound over and over.

<comment><USER4> Perl, PHP, Haskell, Lisp, Ruby, Elm. A pretty terrible list, but maybe not that far off what you'd get from a Family Feud-style survey of people in tech.

<comment><USER5> This list, but no Cobol, Fortran, APL, smalltalk??? Not remotely accurate.

</comment></comment></comment><comment><USER6> This is great, I think you should add a single-player mode though much like GoogleFeud.

</comment><comment><USER7> It would be nice to have a button to see answers instead of just hammering at guesses.

</comment><comment><USER8> So, what's the "most hated thing about programming?" I guessed and guessed and couldn't get it.

Deadlines? Users? Management? No documentation? Having to write documentation? Having to write unit tests? Debugging? Licensing? Having to reinvent the wheel since the good stuff is closed-source? Being forced to do Agile/Scrum/Kanban? ... aargh!

<comment><USER9> "Whiteboarding, naming things, stand-ups, OBOE (?), cache invalidation, and Jira" according to [1].

I don't think these questions are very fun.

[1] [https://github.com/lettier/hacker- feud/blob/e51c870f1b391ec0...](https://github.com/lettier/hacker- feud/blob/e51c870f1b391ec043b832c85a5c2e92a777df25/src/main.js#L42-L70)

<comment><USER10> "There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors."

Source: [https://martinfowler.com/bliki/TwoHardThings.html](https://martinfowler.com/bliki/TwoHardThings.html)

</comment></comment></comment><comment><USER11> What's up with the answers? Most dead programming languages does not include Fortran, Cobol and Algol, but for some reason Elm?!

</comment><comment><USER12> this is awesome, needs a timer though. But I guess I know what our team is doing during our daily 15 min non work meetup

</comment><comment><USER13> An interesting twist would be to allow for an opt-in that collects guesses and uses that to source ranking.</comment>


How to Make Mistakes in Python (Free EBook) - <AUTHOR> http://www.oreilly.com/programming/free/how-to-make-mistakes-in-python.csp <comment><USER2> Even here, in a O'Reilly(!) textbook from 2015(!), we get python2.7 advice.

No, since python 3 you (sensibly) can't "True, False = False, True" since True and False are now keywords and can not occur as a name in any case (not even an object property).

<comment> ben-schaaf As much as I like python 3 I don't think it really matters in this case. Other than the common python pitfalls everyone already knows about, the rest of the book can be applied to most OOP Language. So its really less python 2.7 advice and more general programming advice.</comment></comment>


(Video) Antarctica photo journal by Bill Gates - <AUTHOR> http://www.thegatesnotes.com/Important-Trips/article.aspx?ID=122

<comment><AUTHOR> via his Twitter feed - <http://twitter.com/BillGates/statuses/10697116162></comment>


A radical idea to improve family life in America: babysit your neighbor's kids - <AUTHOR> https://www.vox.com/the-big-idea/2018/2/5/16972258/us-america-fertility-rates-babysit-child-care-baumol <comment><USER2> If you want parents to have more kids and not be so freaked out about the cost of child care, how about loosening the regulations instead of having people donate time to each other? My family is in the child care business. The reason prices are high is that the cost structure is entirely driven by the government and nearly fixed: minimum wage, teacher education requirements and the designated teacher-child ratio. Zero room for innovation.

Politicians find child care centers to be easy prey for seeming tough. They celebrate more regulation and reducing the ratios as 'protecting children' and then everyone seems shocked when prices rise. They add more and more detailed regulations but little funding for poorly-paid unaccountable local inspectors, who flip from threatening to yank your license on one visit to not even asking about the same thing on the next. Teachers are required to have a bachelors degree and separate education certificates to look after 1 year-olds.

Trust me, we do not want to charge so much, but our hands are literally tied. Salary is 50-60% of revenue and most teachers are already payed minimum wage in many cases. We offer fully free tuition to employee's kids which helps offset the low salary for someone with several children, but most centers aren't that generous and we give up revenue to do it because of the ratios.

<comment><USER3> What state are you in? A bachelor's degree for childcare seems like a pretty high requirement, Washington only requires high school or equivalent + experience or certification.

<comment><USER2> Florida

</comment></comment></comment><comment><USER4> We found out that a neighbor we were friendly with for years had sexually abused their kids.

I would not advise anyone to trust someone because of where they chose to live / they wave when you're mowing your lawn.

<comment><USER5> That's one interpretation.

What if you or other neighbors had been even friendlier, sooner. You may have found out about it sooner and been able to help stop it.

<comment><USER6> Go on, I'd like to hear how you think this would have played out. Buddy up to 'em long enough, and they'll let the cat out of the bag? Because, as disturbing as it was, I gave this an honest effort as a thought experiment, and I haven't come up with anything I'd rely on. Of the situations for which I've had more than a casual familiarity, it consistently comes out only after the fact.

<comment><USER5> There are probably too many variables for us to speculate "what would have happened" in this situation.

My comment is this: Generally and overwhelmingly, when a group of people is more interconnected and those connections are stronger, "bad" behavior gets found out and stopped faster. I think that's true of any group of people.

Of course, "bad" = unacceptable to the group itself.

Someone telling you "I did this bad thing" is not the only way for you to find out. I think if a child knows there is a way out, that there other people who care enough to take effective action, they might be more likely to tell someone. But often there is no one who cares that much. Teachers, neighbors, other parents, they're all "nice" but they aren't invested.

What I'm talking about is a deep relationship, and that isn't a function of time spent together, or any other concrete fact. It's organic and emotional.

We can grow those relationships if we choose to. I feel this is the only way to actually solve a lot of social problems that have been going on for decades now. Shooters, internet trolling, bullying, abuse, molestation, those people who pop up every year or so who have been hiding 15 children in a basement..etc

<comment><USER4> Trying to make kids comforatable enough to come forward is an after the fact action.

There are people who are REALLY good at acting. As adults we get to choose what risks to take. Kids have that choice made for them. Also, kids who are too young might not even fully understand what's going on, so they might not be actively searching for a way out.

I like your mentality of growing relationships with people, but when it comes to protecting kids i feel you owe it to them to be sceptical of others. The risk just isnt worth the free babysitter.

</comment></comment></comment></comment></comment><comment><USER7> Here's another radical progressive idea, offer consumer grants to pay for childcare. Then maybe child care will "professionalize" and appropriately "commercialize". This it to not denigrating current child care arrangements or facilities but to provide long term stability to the market. We already know that early intervention and childhood education is a benefit (note education does not mean formal schooling but rather play based learning).

</comment><comment><USER8> This is a huge pendulum swing from our present state of massive regulations. The writer forgets a number of things that should be taken into account.

People are much more transient and as such do not know their neighbors the way they did in years past.

With the media's hyper focus on all things bad, people are much less likely to let their children stay with people other than super close friends or family.

Those who have chosen to not have children or who are waiting to have children until their careers are more est abolished often work very long hours. As such, they are far too tired to care for the children of others.

There are just a few reasons and there are many, many more.</comment>


Moving from PHP to C saved my web startup. - <AUTHOR>

A few months ago I took the journey into startup land.  I quit my job and decided to finish the project I had been thinking about finishing for a long time. A penny auction app where users are linked to facebook identities.
One major worry right from the start with this project was that it required a real time accurately synchronized countdown across multiple browsers.   I was using ajax to call back to the server for an update every 1 second to accomplish this.  I knew it was going to get interesting if a lot of users joined up because they would all be calling the server once every second.
Initially I thought we would run into trouble with bandwidth, but I was wrong.  After 4 days we had about 150 users up and bidding when the server decided to crash (right in the middle of an ipad auction just because my luck is that good).  Being on slicehost they had us upgraded within 20 minutes, but still we were working the server hard.  The timer was skipping, we were getting all kinds of strange errors in the logs and things were looking pretty bad.  It wasn't bandwidth, but memory and processor usage that were the problem.
I knew from reading articles on HN regularly that PHP is terrible, but I build the app in PHP anyways along with the 1 second callback.  It was the fastest way to get things up and running for me.
That night I had an idea, if I built the 1 second call back portion of the app in C the server wouldn't have to load apache with all its extensions every 1 second.  So I built a very simple fork server to send updates back for the real time update.
Result:  Processor 99% idle even during heavy use and memory usage basically stays exactly the same whether or not more people are watching the auctions.
We now have a few thousand users and things have not changed at all, still running great.  Of course this system will have its limits but so far we have not even dented it.
If you want to see it in action you can go to http://apps.facebook.com/bucktobid
Edit:  For those who want a little more detail I have a lighttpd server listening on port 80 that redirects to apache for php calls.  If the call comes in for .btb (a made up extension) lighttpd redirects to the C app which listens on another port locally and serves the needed info to the browser.  The updater is 100% C/C++ not an apache module. <comment><USER2> So it really wasn't PHP but Apache right? In an hour you could have switched out your front end server to Nginx and had it serve responses from Memcached and then keep the Apache/PHP backend and change it to update Memcached on bid changes.

Here are some links:

[http://www.igvita.com/2008/02/11/nginx-and- memcached-a-400-b...](http://www.igvita.com/2008/02/11/nginx-and- memcached-a-400-boost/)

[http://lserinol.blogspot.com/2009/03/speeding-up-your- nginx-...](http://lserinol.blogspot.com/2009/03/speeding-up-your-nginx-server- with.html)

<comment><USER3> So instead of understanding the problem and implementing the simplest possible solution, you're recommending throwing more middleware caching crap at it? Brilliant engineering. I think I understand "web scale" now.

<comment><USER4> How is placing the blame on the wrong tool understanding the problem?

<comment><USER3> You're right, I should have read the OP more carefully.

</comment></comment></comment></comment><comment><USER5> The more generalized takeaway from this is that you shouldn't use a heavyweight listener to handle polling (or websockets in the near future) if you can avoid it.

PHP was the culprit here, but I can't help but think you'd have had the same problem if you were trying to do the same thing with RoR, any Java app server, or any of the Python frameworks.

Likewise, node.js or Twisted probably would have been an equally effective replacement.

<comment><USER6> I'd probably go with node.js for this task - more manageable. Twisted has a huge learning curve.

<comment><USER7> If you want to stick with Python, tornado is a really good async server without all the learning curve of Twisted.

<comment><USER6> I wrote my own async servers and having done that (and used Tornado), I'm back on threads :) Async is kind of cool in some cases (long polling for one), but for most cases it's pain.

Right now mostly working on CherryPy's WSGI server.

</comment></comment></comment></comment><comment><USER8> Good for you! I read all of the other guys asking, "but why didn't you do this? ..." I myself am a throwback from the C/C++ days and I frequently re- write stuff in C. That's how it's supposed to be done. Write as much as you can as fast as you can up-front, then optimize your bottlenecks using more efficient methods. I'm happy that C improved your situation that drastically. I agree that the overhead of lighttpd, then apache, then php might have been the real killer in your situation, and using memcache might have helped also, but making a simple C server using fork() to handle processes and not opening it up to the world is a very good solution in my book. People think that if enough people start writing things in C, that they'll have to start doing it too - I think that's the reason for all of the backlash. Remember, there are a _bunch_ of C and C++ programmers out there doing things that perform well and scale, but your audience on HN is mostly php/python/java programmers and web startup people who go the route of optimizing using more trendy technologies instead of down-shifting into a language like C. More power to you, fellow C programmer! :)

</comment><comment><USER6> Why do you use AJAX to update countdown?

Using AJAX for this would give you MUCH less accuracy than plain-old JavaScript with time delta of user time to server time:

If you just need to time sync - you could receive server time once (remembering user time, when you sent request for server time), then just compensate user time with that value.

In PSEUDO-JavaScript (client-side):

      // do this once:
      var user_time = (new Date()).getTime();
      ajax.call('/server-time-in-sec-since-epoch',
        callback:
          delta_time = recvd_server_time - user_time;
      )

      // then at any given second real server time is:
      var current_server_time = (new Date()).getTime() + delta_time;
      // no need for ajax calls

For more accuracy you should divide delta_time by 2 (since it's round-trip).

<comment><AUTHOR> The reason it has to continually sync is that any user could place a bid at any moment. This makes the timer increase and top bidder change, so every user must be notified of the change. Its asking the server for how much time is left in each auction not what time it is in the real world. Sorry for the confusion.

<comment><USER9> Why don't you use long polling rather than sending a request a second?

You could even incorporate the timer into a single request.

        do {
            sleep(1);
            $seconds_remaining = fetch_auction_time_from_memcache();
            echo "";
            flush();
        } while ($seconds_remaining > 0);

<comment><AUTHOR> This is interesting. Would this work if I was on the site for say an hour? Or is there some limit to the amount of time you can send data like this? I have never tried anything like this. What is the overhead like?

<comment><USER9> I've only used it on smaller projects. Facebook use it on their frontpage for progressive loading (check the source for `<script>big_pipe.onPageletArrive(..);</script>`).

Longer running connections are a little more problematic, but some client side code should be able to handle the connection being closed. You just need to make sure your web server can handle the number of connections your are expecting. Apache is particularly bad for this. Something like nginx should perform better.

</comment></comment></comment></comment></comment><comment><USER10> So... what you built was a Facebook version of <https://www.wavee.com/> (or any one of the other dozens of sites), which is basically a way of taking foolish people's money.

Replacing PHP/Apache fork/threads with a C daemon is a good migration, though most any language with an async sockets library worth a damn should be able to handle thousands of simple requests every second.

<comment><AUTHOR> Yes there are many penny auction sites out there. The whole reason to link it to facebook is so that you know its a real person you are bidding against. How do you know wavee has all real people bidding? You don't some of their users could just as easily be bots bidding items up automatically.

<comment><USER10> The thing is, Wavee is not an auction site. An auction site is one in which bids are free, and the winner pays what their bid says they pay. What Wavee had, and what you have built are, effectively, a method of taking money from people for the opportunity to pay money for something.

Don't get me wrong, it's an amazing racket; Wavee makes 75 cents for every bid coming in to increment the value by 1 cent. Saw a $150 iPad. That iPad has already earned Wavee's owners $11,250 without even being sold! And the use of Facebook to gain the trust of people is a good marketing tactic, but it doesn't skirt the fact that creating fake Facebook users with a bunch of friends is easy (get some pictures, feed some content in from any one of the millions of open twitter accounts, etc.), or that you have a real incentive to perpetrate fraud.

Really though, being the most honest crook among crooks still leaves you being a crook. That's why some countries have outlawed this particular kind of scam.

<comment><AUTHOR> So now you have just jumped straight into calling me a crook. I'm sorry that Wavee or whatever site you went to took your money.

I honestly didn't know (and still don't) if you can make any money doing an honest penny auction site. We are just breaking even with this one so far.

The fact is that every time an auction goes up we have more risk than anyone else involved. If I put up a $500 iPad it could go for extremely cheap. The lowest one has ever gone for is 64 cents. That means we made less than $64 and still had to buy and ship that $500 iPad. And we have never sold anything for more than $26 which still isn't the $2600 you think it is because some packages give you more bids per dollar.

The legitimate complaint is when sites cheat. Which I would guess alot of them do. Using Facebook is not some trick to get people to trust us. Its a way for people to verify for themselves that they are in fact bidding against other real people.

How can you say that its a scam? Do you think we are just out there creating all these fake accounts with fake profile and personal photos and relationships etc. I can see maybe if we had 5 or 6 or even 20 users. But we have 100's of winners. That's a stretch even for the most paranoid and cynical of people.

Not everybody wins every time. But the data we have so far says that the majority of users that buy more than just a few bids are actually the ones getting all the deals. Its the people who come in and spend $24 expecting to win a $1500 item then leave when they don't. Those are the people who are losing. The users who are logical enough to see how the system works are the ones who get far more than they put in.

And some countries outlaw all kinds of crazy things, some countries are considering passing legislation to ban homosexuality so I guess we should all agree that its bad now too according to your theory?

<comment><USER10> I'm not so foolish to have spent money at any of those sites. But I do stand by my statement of calling you a crook. I don't believe that I will be able to convince you, but I do hope that I'll be able to convince others.

Let's give you the benefit of the doubt for a moment that you are actually honest. We'll say that you aren't running bots, fake identities, etc. That's fine. My basis in calling you (and those that run businesses like yours) a crook is not founded on that (though I have no doubt that other companies are doing as much, if only to boost the value and bidding on an item, but I digress).

Try to remember that the fundamental operating principle of your business being profitable is your selling the vast majority of your customers absolutely nothing. They aren't getting a good or service for any bid that doesn't win (which still costs them money). They get nothing.

The money to purchase those items must come from somewhere. If you are breaking even (as you say you are), it's not coming from the people who are "winning", it's coming from the people who are losing. If/when you are making a profit, it's not because the "winners" are necessarily paying that much more for an item (they won't have bid enough plus paying for the total value to pay for the item itself), it's because you've got more losers who are putting money into something without getting anything in return.

Your business is breaking even, and may eventually be profitable because of all of those who come in buying $24 worth of bids, failing, and leaving. Any business that requires it's customers be ignorant in order to make money is fundamentally a scam.

Also, your conflating countries making homosexuality illegal with countries making illegal a business that bases it's operations on exploiting the ignorant, is a fundamentally flawed argument. One is based on basic human rights to be who they are and behave in ways that causes no harm to others. The other is one that profits from people who don't know any better. One is a human rights travesty, the other is the outlawing of an enterprise with margins that organized crime wishes they could have (in the case of a "successful" site like Wavee and others). Trying to claim their equivalence, or that based on "my reasoning" they are equivalent, is dishonest, and really, troll-like behavior. That may fly in some forums, but it doesn't fly here. Try again.

</comment></comment></comment></comment></comment><comment><USER11> Polling in real time always needs to be done in some compiled language. The good folks at 37 Signals ran into this when they launched their CampFire app.

For instance, consider what David Heinemeier Hansson says about Campfire, the chat software he helped developed. First written in Ruby On Rails, it soon became clear that the code that polls to see who is in the chat room needed to be as fast as possible:

"We rewrote the 100 lines of Ruby that handled the poll action in 300 lines of C. Jamis Buck did that in a couple of hours. Now each poll just does two super cheap db calls and polling is no longer a bottleneck. Campfire and a shared todo list is different because they're not working on a shared resource. There's no concept of locking. Or two people dragging the same item. So a 3 second delay between posting and showing up doesn't matter. It does when you're working on a shared resource."

<http://www.ruby-forum.com/topic/62907>

Later they tore out the C code and re-wrote it in Erlang.

<comment><USER3> ...which [Erlang] is not compiled.

<comment><USER12> False. Erlang is compiled natively via HIPE (the "High Performance Erlang" compiler, nice acronym!) on many platforms, and compiled to BEAM bytecode on the rest.

Running Erlang has some overhead, sure, but that's because it's designed for distributed systems where you can _pull a plug out of the wall_ without interrupting service. I wouldn't use Erlang for number crunching, but using it as a glue language for a networked system hits all its strong points.

<comment><USER3> I didn't know that, I thought everything ran on beam. I guess the point is the canonical Ruby implementation is really slow when it doesn't need to be. It's not like it's a hard problem, or even that it hasn't already been solved (look at GemStone's Maglev: <http://ruby.gemstone.com/>)

<comment><USER12> I've stopped commenting about MRI entirely, it just makes people mad, and it's not even fun anymore. _It's too easy._ Still, I have to give Matz credit for making a language a lot of people sincerely love.

I know it's splitting hairs whether bytecode + a VM counts as compiled or interpreted (it's both, really), but compiling to bytecode rather than a pure interpreter usually makes enough of a difference performance-wise that it's worth giving some credit.

<comment><USER13> If people would just stop talking about Ruby 1.8, it wold allow for more meaningful discussion. 1.9 is a lot faster and has better support for concurrency.

<comment><USER12> Indeed, it's too bad that the transition has been taking so long.

</comment></comment></comment></comment></comment></comment></comment><comment><USER14> keep-alive

it doesn't make sense to make a new connection every 1 second, esp. to apache. that is where your prob was, not php

</comment><comment><USER15> Not to be the unpopular one but couldn't you also have used Flash to open a socket to a server written in [name your favorite language] and had the server intermittently (every 1 second, every 500ms) send out the current tick?

</comment><comment><USER16> Every time I read a story like this it reminds me of a very important lesson:

The world is built from bailing wire and duct-tape. There are probably a million better, smarter, less technology illiterate ways to solve this problem, but that really doesn't matter. What matters is getting out there and doing it. Being able to do this sort of app 'correctly' would be an edge, but only to the person who can do it 'correctly', and is out there doing it.

I wish you the best of luck with your duct-tape!

</comment><comment><USER17> > _I knew from reading articles on HN regularly that PHP is terrible, but I > build the app in PHP anyways along with the 1 second callback_

You always have to use the right tool for the job. It requires a deep understanding of what is actually going on inside the server when you write a line of code. PHP doesn't magically absolve you of that.

It really has nothing to do with PHP, C, Ruby or [insert your most reviled/loved technology here]. Calling a complex runtime for hundreds of near-contentless requests per second on a single machine is a really bad idea, no matter what environment you use.

Also, I'm sorry if I snipe from the cheap seat here, but 1 request per second per user doesn't seem like a great solution to your problem either. It might be more appropriate to just leave the HTTP connection open and push new data out through that when it becomes available, e.g. when something about the bidding process changes.

</comment><comment><USER18> Instead of loading apache for each php call, why not have a few PHP FastCGI instances running? They're lighter weight than apache+mod_php and you don't have to wait for them to load for each call?

<comment><AUTHOR> Mostly just because I've never used FastCGI before, and I have played around with making C/C++ servers for fun before. Seemed like the fastest solution and so far its worked out better than expected.

<comment><USER12> This is a bit of an oversimplification, but where CGI spawns a new process for each connection, FastCGI* starts the process _once_ , then runs a loop to handle each connection, so the process startup, database connection, etc. costs amortize to essentially nothing -- many of the constant factors for working in a higher level language are eliminated.

FastCGI is worth looking into - a lot of popular webservers support it, and it's less of a complete model change than switching to an event-based system (e.g. node.js) or an MVC framework.

* Or SCGI, which is a newer, simpler design with similar goals.

</comment></comment></comment><comment><USER19> Node.js worked great for me for similar application. Built the web application in PHP and timers with Node.js

<comment><AUTHOR> Was it an auction site as well? If so which one if you don't mind me asking?

<comment><USER19> Yes, it was a penny auction site. I can't give the URL as it is not my website. I assisted them with development.

</comment></comment></comment><comment><USER20> Why not use a js ntp library?

<http://jehiah.cz/a/ntp-for-javascript>

Then have a dedicated ntpd daemon running. That will be way more extensible, maintainable, and scalability than a custom C program.

<comment><AUTHOR> The timers are all set differently, we can have 9 seperate auctions going at once and all have different times they end at. Also when someone bids the timers increase. So they are not only all different but all changing constantly. Its not just a single countdown that we could sync.

</comment></comment><comment><USER21> can't you use a comet connection with something like orbited instead of polling? i wouldn't trust polling via HTTP GET with "real-time accurately synchronized countdown" -- a couple of small delays can skew your entire countdown, and delays are easy to come by across the internet. especially with creating multiple connections.

as much as i dislike like it, i doubt the problem has much of anything to do with php. a simple fastcgi server hooked into lighttpd would have probably had the same outcome of better performance, or even apache with mod_php.

</comment><comment><USER22> So you saved this app by using fork(), not (just) by using C. You can use fork() from a lot of languages, including shell scripts and PHP.

</comment><comment><USER23> php isn't terrible in general, but it can be the wrong tool for certain use cases, this being one of them. In the same way, apache is also not the right tool for some use cases, this being one of them. your solution works well for you, so stick with it. if you're thinking of scaling up further, also consider an event-driven server architecture (nginx, node.js, etc).

<comment><USER24> Agreed that PHP isn't terrible. Typically, it's the programmer's fault before it's the language's. Also, I agree that PHP isn't the right solution for every problem, but if you're set on using PHP for the wrong problems and need to bitch about it, see the previous sentence.

A nice discussion on why PHP __DOESN'T __suck:[http://stackoverflow.com/questions/309300/defend-php- convinc...](http://stackoverflow.com/questions/309300/defend-php-convince-me- it-isnt-horrible/)

<comment><USER25> It's not that PHP is terrible. You can definitely write code in it that gets shit done.

It's that it exists in the same universe with Python, Ruby, Java, Clojure, Erlang, etc.

If you have the freedom to choose your implementation language, and those are your alternatives (to name just a few), that's when PHP is harder to justify. Not that it's terrible in isolation. In relative terms.

</comment></comment></comment><comment><USER26> Lots of really good comments here (except mine ;-)). I'm glad I read this. Is there a "Best of Hacker News" out there?

<comment><USER27> <http://news.ycombinator.com/lists>

<comment><USER28> Any idea on how to subscribe to Best of HN?

</comment></comment></comment><comment><USER29> could you give more info about how you did it? I need to implement something like this for a frequent Ajax refresh.

<comment><AUTHOR> You could google how to do a simple fork server in c/c++ and after you have that working you just need to do something like this:

stringstream response; response << "HTTP/1.1 200 OK\r\n" << "Server: BTB Auction Updater 1.0\r\n" << "X-Powered-By:BTB Update Engine\r\n" << "Content- Length: " << msg.length() << "\r\n" << "Content-Type: text/html\r\n\r\n" << msg;

      int n = write(s, response.str().c_str(), response.str().length());
      if(n < 0) error("Error writing to socket");

to write back a valid header that a browser will understand

<comment><USER30> You could store the static (non-changing) text in a couple of C strings and then call writev() to communicate everything. That would save you the step of continuously reconstructing the header.

<comment><AUTHOR> Thanks for the suggestion!

</comment></comment></comment></comment><comment><USER31> you can embed your own C code without the hassle to handle HTTP/S (or forkbombs) using KLone web server; it can easily handle thousands of requests per second.

p.s. I'm part of the company whom made it.

</comment><comment><USER32> Did you create an apache module? If not, what libs did you use?

<comment><AUTHOR> I completely bypassed apache all together. Apache is not used for the 1 second ajax call at all. The only libs i used were jansson for easy json manipulation and mysql++ for database access

</comment></comment><comment><USER33> Couldn't it just be that you suck at writing PHP?

</comment><comment><USER34> have you considered using rabbitmq/0mq? It sounds like they are perfect candidates for what you are trying to achieve.

<comment><AUTHOR> I had never heard of those before. Are they capable of working inside any web broswer? Looking it up right now.

<comment><USER34> Yes, you can reach a queue via a web browser using the proper api access you provide.

If you have 100 users, each one waiting for a message in their queue, then you can "broadcast" a single message to all of the queues (or a group) with one command. All the users waiting for a message in their queue will get a copy.

Another approach which is hack-ish imo, is to use something like jabberd to broadcast messages.</comment></comment></comment>


More context on the SWAT team and the 2-year old - <AUTHOR> http://www.cnn.com/2014/05/30/us/georgia-toddler-injured-stun-grenade-drug-raid/

<comment><USER2> > A confidential informant hours earlier had purchased methamphetamine at the > house, the sheriff says. The informant told police that there were men > standing guard outside the home, and it was unclear whether they were armed, > according to CNN affiliate WGCL.

That makes it even worse: 'confidential informants' (snitches) are notorious for lying and making shit up in order to appear as helpful as possible, and cops of all people should know that. They didn't even bother to check any of the claims? I certainly do hope they're 'devastated' and are learning the right lesson here..

<comment><USER3> Police organizations don't seem to be particularly good at learning lessons from these sorts of mishaps.

I heard a story a number of years ago in Silver Spring, MD, about how the police were confused by a large marijuana delivery they intercepted to an unwitting person's address, who was arrested, and would have been charged and likely convicted under the circumstances. It turns out the driver was the intended recipient, which they discovered the very next week when another delivery was intercepted at the warehouse, with the driver in common.

This isn't an uncommon tale.

And yet, barely a few years later, [http://en.wikipedia.org/wiki/Berwyn_Heights,_Maryland_mayor'...](http://en.wikipedia.org/wiki/Berwyn_Heights,_Maryland_mayor's_residence_drug_raid), with the key result of the sheriff declaring, despite the killing of the mayor's two dogs after breaching the door, "We'd do it again. Tonight."

Cautionary tales like this should spread like wildfire, but it appears that perhaps they do not, or LEA are rather immovable with respect to their suspicions.

(and apparently I know very little about the relationship between cities and law enforcement in Maryland; it's more complicated than I thought)</comment></comment>


Palantir: The War on Terror's Secret Weapon - <AUTHOR> http://www.businessweek.com/magazine/palantir-the-vanguard-of-cyberterror-security-11222011.html

<comment><USER3> This would be a great advertisement if it were marked "special advertising section".

I've always wondered what it would take, money-wise, to get Businessweek to write a non-researched fluff piece like this. Palantir has a _hell_ of a sales/marketing department.

There's not _any_ mention at all of any of the recent, and quite public, controversies surrounding this firm, HBGary, Industrial espionage against a competitor, Glenn Greenwald and others.

I'd almost flag this if it were just a blog, but this is really pathetic reporting and worth seeing for the crap article it is.

<comment><USER4> I have to admit, this article is really awful. I initially upvoted this too quickly, after only reading the first page and seeing that there were five more to go. After reading most of the article, you're right-- it's pure fluff.

I suppose it's tough to actually discuss how this technology works since there are so many security issues involved, but I feel like I learned almost nothing about Palantir's system. All I learned was that they have a bunch of fun anecdotes about their founders and CEO, and that it apparently has been used to somehow solve cases.

Pretty weak. I wish I could take back my upvote.

<comment> brown9-2 Their main products are oriented towards integrating structured and unstructured data from lots of different data sources: [http://en.wikipedia.org/wiki/Palantir_Technologies#Palantir_...](http://en.wikipedia.org/wiki/Palantir_Technologies#Palantir_Government)

Other articles on the company make it more clear that the reason why they need so many "forward-deployed engineers" are because they heavily customize the installed software for each customer, i.e. you have to do a lot of custom work pulling data out of Proprietary Customer Database X to feed it into the system (and back out). See "Why Palantir Makes My Head Hurt" [http://kellblog.com/2011/06/27/why-palantir-makes-my-head- hu...](http://kellblog.com/2011/06/27/why-palantir-makes-my-head-hurt/)

</comment></comment></comment><comment> brown9-2 _As he does every day, he walked to work. "I never learned to drive because I was busy reading, doing things, and talking to people," he says. "And I'm coordinated enough to bike, but the problem is that I will start dreaming about the business and run into a tree."_

I love CEO anecdotes like this: too busy to learn to drive, but not too busy to learn to ride a bike?

 _Palantir also has a permission system to make sure that workers in agencies using its software can access only the data that their clearance levels allow. "In the pre-Palantir days, analysts could go into file cabinets and read whatever they want," says former NCTC director Leiter. "Nobody had any idea what they had seen."_

It's amazing how the former NCTC director, who is now a lobbyist for this company, seems to be unaware of the simple method of placing locks on file cabinets and/or secretaries that log who has checked out which files - <USER2> I am sure intelligence agencies in the US have had since their founding.

</comment><comment><USER5> What sort of influence does the government have on the actual algorithms/data mining done by Palantir? Basically, it feels like a way for the government to spend a bunch of taxpayer money to provide a false sense of security, while making folks at Palantir rich. Feels a lot like a digital version of those airport scanners we love so much.

<comment><USER6> Disclaimer: I used to work at Palantir. However, I never used the Government product, and never as much as saw a demo of the Government product. I'll talk mostly about the Government product, but much of this goes for the Finance product too.

Seems like there's a bit of a misunderstanding of what Palantir does. Palantir Government does not do data mining natively. The best explanation of this is from Palantir themselves: <http://blog.palantir.com/2007/12/04/what-do-we- do/>. There's impressive algorithms under the hood of Palantir Government, but the insight and analysis is provided by government analysts.

Palantir provides software, services, and support. The services are mostly data integration, training, and some custom software built on top of the Palantir Government product. Palantir isn't providing analysis for money, they're providing a product that enables analysts to analyze.

</comment></comment><comment><USER7> Palantir: One Step Closer to 1984

 _Those Who Sacrifice Liberty For Security Deserve Neither.

\- Benjamin Franklin _

</comment><comment><USER8> > None of Fikri's individual actions would raise suspicions. [snip] Taken > together, though, they suggested that Fikri was up to something.

What an objectionable statement. Taken together, they don't suggest that Fikri was up to anything more than the sum of their parts (which pretty much seems to rely on the one piece 'hanging around alone in the plazas of disneyland'). If this is the best example they can come up with, I hate to think what the marginal ones might be...</comment>


New Linux vulnerability allows to get root access - <AUTHOR> http://lwn.net/Articles/419141/

<comment><USER2> Discussion from yesterday: <http://news.ycombinator.com/item?id=1980909></comment>


Scientists discover clues to what makes human muscle age - <AUTHOR> http://www.eurekalert.org/pub_releases/2009-09/uoc--sdc092809.php

<comment><USER2> _"By manipulating these pathways, the researchers were able to turn back the clock on old human muscle, restoring its ability to repair and rebuild itself."_

Now washed-up pro athletes will never retire</comment>


Show HN: I made a list of 50 bootcamps and the stack they teach - Pete-Codes https://www.bootcampindex.com <comment><AUTHOR> I'm a Code Clan alumni so nice to see they're featured. Sorry if this is a stupid question but where is the actual index part of it, i.e. are you trying to rank them to find the "best" one, or is that just too subjective to do?

</comment><comment> Pete-Codes Founder here - I thought the current options for finding bootcamps weren't very good!

I added a few options to filter a list of bootcamps like what stack they teach, whether you can defer payment and if there are scholarships.

</comment><comment><USER2> I'm a current Lambda School (LS) student, one small note:

\- LS is listed as being in New York, it's actually an online school

</comment><comment><USER3> This is a really handy list. Great to see the stacks they are teaching too.

<comment> Pete-Codes Thanks a lot! Yeah, don't know why other sites don't show what you are going to learn!

</comment></comment><comment><USER4> I'm a dev at springboard.com, we use Django + Angular!

</comment><comment><USER5> can you add wyncode from miami?</comment>


CU Open Source Group... move over Berkeley, MIT, Stanford, Harvard... - <AUTHOR>

URL: http://cuopensource.org/about
The CU Open Source Group is an on-campus student group affiliated with the University of Colorado and the Computer Science Department. The group's aim is to contribute to existing open source software projects as well as to create and administer its own projects. Frankly, we're tired of seeing too many great solutions coming from students at Berkeley, Stanford, Harvard, MIT, and the like.
The CU OSG has plans to work on the following: Symfony PHP framework, linux wirless drivers, software for the PS3 Cell Processor, Memcached, IPB, etc...
Our founders already have made contributions towards Symfony &/ Yahoo!, Ubuntu, and the Boulder based startup Me.dium
We highly encourage others to get involved at their universities -- even start a group!!! <comment><USER2> I'd love to know how many uniques news.yc is getting from Colorado and what that trend is like. I realize it's not sv, arrington suggested !sv = you're not serious about your startup, it's beneficial to be in sv statistically, Boulder is on par with sheboygan for funding (j/k matt) but I'm seeing an increasing amount of signal from Boulder / Denver.

</comment><comment><AUTHOR> It's a really clean, laidback, thriving, liberal environment</comment>