How to launder Bitcoins - <AUTHOR> http://blog.oleganza.com/post/67885463476/how-to-launder-bitcoins-perfectly <comment><USER2> That is not what structuring is at all. Structuring is conducting transactions in a way that will avoid triggering reporting requirements. If the legislation in your country requires financial services providers to report any cash transaction greater than or equal to say, $10,000, and you go and deposit $9500 five times with the sole purpose being to avoid these reporting requirements, then you are in breach of structuring laws. That's it. It has nothing to do with the legality or otherwise of the source of your money.

Also, money laundering is not about forbidding buying bad things. In fact, it's entirely the opposite. It's about buying legal things to hide the proceeds of crime.

<comment><USER3> Structuring laws are pretty shitty there have been plenty of examples of people being screwed over by the government w/o legal due process for just conducting legitimate businesses that happen to receive a lot of cash payments from customers. Just one recent one...

[http://overlawyered.com/2013/09/institute-justice-tackles- st...](http://overlawyered.com/2013/09/institute-justice-tackles-structuring- forfeiture-case/)

<comment><USER2> This seems to me to be more a problem of rampant abuse of forfeiture laws rather than a failure of structuring laws. The many stories I have read recently of "forfeiture corridors" in the USA would seem to reinforce that.

</comment></comment></comment><comment><USER4> Bitcoin wiki tells you exactly what you need to do.

Generate addresses offline or proxied through Tor or JonDonym. Use different addresses for every input. Use CoinControl program to send coins [https://bitcointalk.org/index.php?topic=144331.0](https://bitcointalk.org/index.php?topic=144331.0)

Never post your bitcoin address anywhere you can be identified, such as a msg forum signature, or directly to an exchange for withdrawal/deposit. Use addresses not linked to you (OPSEC).

Stay away from the exchanges that want piles of ID and use P2P trading on IRC or in person.

<comment><USER5> Managing addresses seems like the easy part, to me. The real challenge is getting money in & out of BTC, at least until you can spend it just about anywhere.

<comment><USER6> It'll get significantly easier soon enough, but at the moment it's no easier to load your PayPal with money.

</comment></comment></comment><comment><USER7> ::Yawn:: The insurance contract approach is lame as it makes you lose your funds if the other party suffers an honest failure (e.g. they get hit by a bus).

Better protocols are possible: [https://bitcointalk.org/index.php?topic=321228](https://bitcointalk.org/index.php?topic=321228) (CoinSwap)

Describing it as "laundering" is more than a little hopeful-eyed. These sorts of things are privacy mechanisms, which make Bitcoin's privacy a bit closer to traditional banking... but they don't provide an apparent legitimate origin of the funds, so they aren't themselves useful for money laundering.

</comment><comment><USER8> How do you implement anonymous peer discovery against someone who can tap the whole internet ?

<comment><AUTHOR> Tor works somehow and NSA admits that it's a pain in the ass even for them. When someone targets you specifically, you have little chances, but when the whole network routinely mixes coins it's much easier to hide in the woods.

<comment><USER8> Does tor conceal the fact that you're using TOR, i.e. peer discovery ? because i got the impression it didn't , that it only did conceal end to end links.

<comment><USER9> It doesn't explicitly say if you are the originator vs just some node on the way.

If you run a tor relay you can hide your own traffic in the noise.

<comment><USER10> _" If you run a tor relay you can hide your own traffic in the noise."_

Assuming you don't have way more traffic than noise.

</comment></comment></comment></comment></comment><comment><USER11> There are other approaches for laundering which do not rely on insurance contracts, such as [http://zerocoin.org/](http://zerocoin.org/)

<comment><AUTHOR> Zerocoin is interesting, but Bitcoin in its current form has two practical advantages:

1\. Cryptographic primitives used in Bitcoin are old and well-tested. There's no crypto code in Bitcoin that was invented by Satoshi and could have been badly broken in a subtle manner. Zerocoin's commitment scheme requires years of testing, attempts to crack it and fixing may be impossible. If the problem is discovered, the whole thing may lose all value overnight.

2\. Bitcoin is more friendly in the eyes of the law enforcement. Bitcoin looks like a traceable, compatible with "tracking all citizens" policy. It gives it a green light from the governments. Of course, in reality, you can launder bitcoins and hide yourself quite well, but that's extra work and complexity. Meanwhile, like a Trojan horse, Bitcoin comes to the legal scene as a nice instrument that allows to track "bad" guys. Not relevant in the long term, but important in the short term to get legality and massive adoption.

<comment><USER12> > _There 's no crypto code in Bitcoin that was invited by Satoshi and could > have been badly broken in a subtle manner._

Read up on the history of the client. Satoshi was innovative but could certainly not code securely to save themselves. Most of the script OP codes are still disabled because they introduced huge vulnerabilities. You could spend anybodies coins in Satoshi's client, or create integer overflows that created billions of coins in a transaction.

The client is a lot better now, but to say it's perfect because it was there from inception is a huge mistake.

<comment><AUTHOR> Which only proves my point. It's really hard to make it right in v0.1 and you _have_ to make it right, otherwise the whole thing is forever broken. Even then, there were two huge bugs: one with integer overflow that created billions of bitcoins in one transaction. Another was with OP_RETURN that allowed to spend bitcoins from any transactions without any effort.

Bitcoin wins over more complex schemes because it has less moving parts. Fortunately, the parts that were enabled work fine and give us awesome possibilities. Otherwise, they'd be disabled too.

</comment></comment></comment></comment><comment><USER13> I'm starting to get sick of these Bitcoin posts.

<comment><USER14> Get used to it. This now is a bigger part of the tech world than NodeJS and friends.

<comment><USER15> I'm on fat0wl's train out of here. Previously I gave you guys the respect of honest antagonism. The quackery of bitcoin is so obviously ludicrous I can no longer justify my time spent pointing it out.

People throwing money around does not make a thing important.

Don't you dare say no one warned you when the whole thing comes crashing down.

And yes, fine, whatever, you can say "toldya so" all you like when Bitcoin fulfills your fantastic greed and you lot join the 1% of your new capitalist utopia. Real moral high ground you'll have, then.

<comment><USER16> _" The quackery of bitcoin is so obviously ludicrous I can no longer justify my time spent pointing it out."_

Oh, what a terrible loss for thoughtful discussion, nothing frames a debate quite as nicely as dismissing the topic of discussion as quackery.

 _" People throwing money around does not make a thing important."_

What does that even mean? I'm not sure what makes something important, but from an entrepreneur's perspective "people throwing money around" (to the tune of a couple billion dollars) is at least... significant? something that merits continued examination? Important doesn't seem like a stretch, but I'm sure you have a quintessential example of something important...

 _" Don't you dare say no one warned you when the whole thing comes crashing down."_

I appreciate the smugness in your concern, but just about everyone who invests in bitcoin is aware of the price volatility, you're like the guy who scoffs at lost mountain climbers as if they didn't realize that risk was part of the journey.

 _" And yes, fine, whatever, you can say "toldya so" all you like when Bitcoin fulfills your fantastic greed and you lot join the 1% of your new capitalist utopia. Real moral high ground you'll have, then."_

Ok, right. So if I understand, if it all comes crashing down, you warned us all, but if the opposite happens then we're all assholes for reaping the rewards of our investment in something we were told was unimportant quackery destined to fail.

I'm starting to feel like this is one of those posts designed to trigger a defensive response in gullible readers who mistake your comment for an attempt at reasoned discourse. What do they call that again?

</comment></comment></comment></comment><comment><USER17> The issue with money laundering in the real world isn't the technical difficulty. It's easy as pie to launder cash if you ignore the laws surrounding it.

I'd imagine that if Bitcon becomes prevalent, governments would ask you to "voluntarily" declare your "salary" wallet. And then if they spotted any sort of suspicious laundering-like activity happening from that wallet, they would very quickly obtain warrants and show up at your door asking for an explanation.

<comment><AUTHOR> Government would still have to set up a center of "approving" unknown money coming from other sources into local economy. These centers, as you can expect, will be massively bribed by everyone who needs to launder their tainted coins.

Also, governments will be much more limited in power when they can't print their money at will and do any "deficit spending".

<comment><USER17> _unknown money coming from other sources into local economy_

These centers actually exist even today. I personally know places where you can buy dollars using the local currency for something like a 10% discount on the market rate. They are obviously very shady and aren't used by anyone close to being respectable. If you use them and are big enough to matter, expect to be screwed over by law enforcement pretty much the instant they feel like getting you.

 _governments will be much more limited in power when they can 't print their money at will_

I believe printing money is actually a good thing. But let's not get into an economics argument here.

And governments can easily take over the bitcoin network tomorrow if they wanted to, simply because the ability of Intel, IBM, AMD/GF, NVIDIA and the big semiconductor manufacturers to build really efficient mining ASICs vastly outstrips that of everyone else. And companies like Intel have nothing to lose and everything to gain by keeping the US government happy if they requests come in from the top.

Again the analogy with cash is relevant. There is really very little technically difficult about printing counterfeit cash. I mean there's not even cryptography involved - it's just security by obscurity! The reason people don't do it is because governments clamp down on this activity very hard through _law-enforcement_ mechanisms. Similarly, if the governments thought bitcoin was important enough to regulate, they'd be able to do it in an instant simply they have guns and we don't.

<comment><AUTHOR> > I believe printing money is actually a good thing. But let's not get into an > economics argument here.

You are confusing ethical argument with an economical one. I was talking economics, not ethics. Governments get a lot of power from ability to print money and censor transactions. Bitcoin removes these sources of power to a high degree regardless of whether it's good or bad. Like, when the internet got huge, moral question of whether people should be exposed to "evil books" or not becomes irrelevant. If one wants to read a book you think is not appropriate, he will do so anyway.

Governments printing ASICs to spam the network... That's the most expensive way to attack Bitcoin. If anyone ever gets to it, it simply means that BTC is already established in many places and widely used and very valuable. Governments would love to extract that BTC for their spendings instead of killing it. Like it happened with gold: in theory, gold is superior to printed fiat currency, but it isn't killed, it's confiscated and used as a hard currency among those who can afford keeping it secure: governments and banks, not you and me.

<comment><USER17> _Like, when the internet got huge, moral question of whether people should be exposed to "evil books" or not becomes irrelevant. If one wants to read a book you think is not appropriate, he will do so anyway._

That's certainly an interesting perspective but it makes certain assumptions about what bitcoin will be used for that I'm not sure I agree with.

 _Governments printing ASICs to spam the network... That 's the most expensive way to attack Bitcoin._

Not really, somebody estimated that getting ASICs to control 51% of the network would cost only a few hundred million dollars, which isn't much at all from a governmental point of view.

Also, as far semiconductor manufacturing goes - pretty much all of it is the non-recurring engineering cost of designing the IC. The actual cost of printing it on Si is a very small fraction for large volume chips.

 _Governments would love to extract that BTC for their spendings instead of killing it._

Governments than can print fiat currency don't really have a problem financing their spending. They do have a problem with currencies that undermine fiat currencies.

<comment><USER18> To be honest they don't even have to actually do it, if they so much as just announced that they were going to do it is probably enough to cause a panic sell utterly destroying any chance bitcoin has because so many people would be burned.

<comment><USER10> I wonder if that announcement would lead to more or less mining going on. If less, the announcement would mean the attack itself gets cheaper.

</comment></comment></comment></comment></comment></comment></comment><comment><USER19> Something I wonder about is whether an isp or peer nodes could detect the transactions are coming from you.

<comment><AUTHOR> There's Tor. In addition, your ISP never sees transactions coming _to you_. You can later spend your newly received coins from some other network.

<comment><USER20> I'm not sure about that. P2P bloom filters were introduced to reduce bandwidth consumption for SPV clients some time ago. I think this feature can potentially leaks information about what transactions you're interested in.

[https://en.bitcoin.it/wiki/BIP_0037](https://en.bitcoin.it/wiki/BIP_0037)

</comment></comment></comment><comment><USER12> Pretty much just CoinJoin, which is in development.

[https://bitcointalk.org/index.php?topic=279249.0](https://bitcointalk.org/index.php?topic=279249.0)

<comment><AUTHOR> I mentioned explicitly why it's not like CoinJoin. CoinJoin leaves a trace of "structuring money", while perfect mixing needs to leave no such trace. All transactions must look like regular payments, statistically indifferent from any other payment. Also, CoinJoin in present form requires a trusted operator who can mark all transactions as "laundering".

CoinJoin is better for making Bitcoin look good in the eyes of law enforcement. You can get your privacy with it from everyone, except law enforcement. Lawful citizens and cops must be both happy and not fear that Bitcoin will be used for "terrorism".

<comment><USER12> If you're doing it persistently you just end up flooding the blockchain with useless information. At least with CoinJoin you're reducing the number of payment TXs that need to be stored and validated. The blockchain is already getting annoyingly large (20GB+ with indexes) without adding fluff like that.

If you really want to hide your tracks without hiding your tracks, just use any service with a shared wallet.

<comment><AUTHOR> You pay for transactions. Don't tell people what to do with their money. Most of the transactions wouldn't be mixed at all. Just using new addresses with small balances is good enough for daily purchases. Mixing is needed only in certain cases like before and after big consolidating transactions.

CoinJoin is nice too, but it does not look well in the eyes of "anti- structuring" laws.

Shared wallet is an FBI honeypot unless proven otherwise (which is impossible to do). The best way is to have as big pool of random nodes as possible participating in the laundering. Like with Tor: the more users join it, the safer you are from some malicious entities.

<comment><USER12> A shared wallet, not the "shared wallet" service. Many services use them internally, they're in no way a trap.

> _CoinJoin is nice too, but it does not look well in the eyes of "anti- > structuring" laws._

Neither is a system that flings around your wallet contents all the time.

<comment><AUTHOR> Any service can share its operations with an adversary. That's a risk. If you don't understand that, then you should prefer Digicash to Bitcoin as it's more anonymous, confirms transactions instantly and does not need any stupid mining.

System that flings around my wallet contents does not leave a trace of that activity on the blockchain. Meaning of every transaction is known only to transacting parties, but not to anyone else. That's the big difference from any shared wallet, where operator sees the meaning of _all_ transactions going through it.

</comment></comment></comment></comment></comment></comment><comment><USER21> Complex and won't work. Assumes none of your "insurers" are bad neighbors. If one of your washers is a government shill you are caught.

</comment><comment><USER22> I might have missed something, but how can we be sure that malicious nodes do not just steal your money?

<comment><AUTHOR> Insurance deposits. Both nodes lock up much more money than being "promised". If one node does not deliver, another node will automatically destroy both deposits. Nodes thus are motivated to follow the protocol and not cheat. Since the process is automated, there's no one to play extortion games.

The insurance contract is a special type of transaction that I invented: [http://blog.oleganza.com/post/58240549599/contracts- without-...](http://blog.oleganza.com/post/58240549599/contracts-without- trust-or-third-parties)

<comment><USER23> I like your transaction idea and have an improvement. The trick is to reduce the costs of one-time punishment. This makes transactions less risky for contract keepers and more risky for contract breakers:

Terminology: I would call a contract where both parties lock up funds to be released on successful contract completion a "co-investment contract". Then I would add third parties we can call "co-investment insurers".

A co-investment insurer could be any party with a solid reputation of their own to keep, and who has a long term relationship with you (your bank for instance). For a small fee, (1%?) the co-investment insurer agrees to cover your investment loss if a contract fails.

Then the economics work like this:

1) People will not be afraid to lock up co-investments when their investment is insured because the worst that can happen if a contract is broken is they are out the small insurance fee.

2) Any party who gets insurance will still be incentivized to complete the contract successfully, so as not to harm their reputation with their long term co-investment insurer. (Who could increase their insurance fee or cancel their account if many transactions failed.)

3) Not everyone needs to buy co-investment insurance for this to have a big impact. The mere possibility of insurance makes punishment a stronger threat and therefore contracts more reliable.

4) As the systems's reputation for reliably punishing contract breakers increases, the insurance costs go down, making it even more affordable. This further increases the system's reliability for punishing contract breakers.

Given that all this can be automated, and reinforces incentives to keep contracts, I would think that insurance fees of only 1% or even less would become possible.</comment></comment></comment>


LA Hacker News Meetup this Saturday - <AUTHOR> http://www.meetup.com/Los-Angeles-Hacker-News/events/16670984/

<comment><USER2> Nice! thanks for the reminder</comment>


Learning from Hacker News' "Detox" Experiment - <AUTHOR> https://medium.com/a-change-is-coming/learning-from-hacker-news-political-detox-experiment-996db0187c35 <comment><USER2> I guess I was hiding under a rock. I did not see the original post nor the comment that ended the experiment. But I can go days without looking at HN. I try not let is be days but life gets in the way.

I like the mostly reflective ability of HN users to analyze the situations. Very metacognition like. My opinion is that HN is better than many forums anyway.</comment>


Ask HN: Example of resumes for first time Senior SWE position? - <AUTHOR> I'm a '14 graduate trying to get a pay bump by stepping into a Senior SWE position. Does anyone have any examples of how I can translate my experience in 'BigCorp' to something that would be compelling to the outside world? <comment><USER2> Look for force-multiplying effects you've contributed to. That is, focus on the things that you've done that have increased the effectiveness of both your immediate team and the larger product organization.

Demonstrate that you're already excelling at the responsibilities of a Sr. Engineer: You're taking ownership of new projects and crushing it. You're mentoring other engineers. You're making effective product decisions based on dynamic business constraints. Cite examples.

Point to some projects and explain your contributions in terms of customer value. I find that explaining the problems you're solving through a business lens is an effective way to signal that you can quickly grasp new business challenges and run with them. Employers are looking for people they can trust from Day 1.

Hope this helps :)

</comment><comment><USER3> You need experience no resume

<comment><AUTHOR> You saying 4 years is not enough for a senior position?

<comment><USER4> There's senior in title and "truly" senior. Senior titles are tossed around pretty loosely, but everyone knows who the truly senior people are, when you work with them. They know where the bug is without even reading the code, they drive on features and projects with only the necessay guidance, their code is simple and works. They lead when they need to, and follow when they don't.

<comment><USER5> To add to this, I've known senior developers that have just turned 21, and developers with a decade of experience that have yet to have a senior title. On the face of it, the latter is usually the stronger dev.

The reason why the former has had the senior title is down to industry knowledge. They're not the best developer in the room, but they have a mixture of:

* Getting shit done. The quality might not be great, and it might have been late, but they're still there, and they've been at the company while they've delivered something.

* Years in the business. They might not be an expert PHP developer, but they've worked with Drupal for 4 years, and the business is a Drupal shop. This tends to be the common one I see. A senior-level developer in one stack might crumble to pieces in another (source: I was a senior .NET dev, and I'm struggling with Ruby right now).

* Desire to talk. They attend every meetup, and are happy to talk and promote where possible. They've given dozens of talks at meetups and conferences, even though individually they're no better than their peers.</comment></comment></comment></comment>


Node.js Foundation to Add Express as an Incubator Project - <AUTHOR> https://medium.com/@nodejs/node-js-foundation-to-add-express-as-an-incubator-project-225fa3008f70#.w0lliqx2c <comment><AUTHOR> This is the resolution of the "is express dying?" discussion that was previously on hacker news: [https://news.ycombinator.com/item?id=10919502](https://news.ycombinator.com/item?id=10919502)

I think that this is probably the best solution for all involved, and a good move on IBM's part.

</comment><comment><USER2> This is good to hear. Before the announcement, I was starting think it might necessary to migrate some of my projects to hapi: [http://hapijs.com/](http://hapijs.com/)</comment>


What makes a mathematician tick? (Explaining BSD to computer scientists) [pdf] - <AUTHOR> http://wwwf.imperial.ac.uk/~buzzard/one_off_lectures/itp.pdf <comment><AUTHOR> The author's description: "I just tried to explain to a room full of computer scientists what the Birch and Swinnerton-Dyer conjecture looks like from a formalist's perspective!"</comment>


Is Free Will An Illusion? - <AUTHOR> http://www.wired.com/wiredscience/2008/04/is-free-will-an/

<comment><USER2> Is X An Illusion?

Is "the word Illusion" an Illusion? Does it convey a sense of mystery and secret knowledge where there is none?

When people actually claim something is an illusion, do they actually have a clear idea in their head about what they mean, or are they playing semantic games with flipping back and forth between mistaking the word map for the reality territory and not?

Yes to that second one.

All "X is an Illusion" means is "that definition for X you thought you had? It's not right." Which is a much less, well, _stupid_ way to put it. Of course, it doesn't have the same ability to confer Special Knowledge that the Plebes don't have.

Free will isn't an illusion; something is there, though what it is may not be clear and may not be at all what we thought it was, but no amount of word games will change what is actually there. Time is not an illusion; something is there, though what it is may not be clear and may not be at all what we thought it was, but no amount of word games will change what is actually there. Our sense of self is not an illusion; something is there, though what it is may not be clear and may not be at all what we thought it was, but no amount of word games will change what is actually there. And so on.

Stop it with this damn worthless "illusion" word. Maybe go study General Semantics instead, since all the word does is reify map/territory confusion and basically doom what could otherwise be an interesting debate from the very beginning, and General Semantics has some choice words on that topic.

<comment><USER3> I agree. I think the article has its vocabulary backwards. I like the philosophy that: "if we feel it, then it's real". It's just that "free will" nothing like we originally expected it to be (that is, it's non-magical). We can learn new things about the nature of free will by studying the brain, because that's where such things are created. To say that free will doesn't exist because of this finding isn't too different from saying that desks don't exist because they're really just collections of a bunch of molecules, arranged just so. There is no magical essence called "desk", it's made up of stuff, and we experience that arrangement of stuff accordingly.

See Dennett, (2003): "Freedom Evolves" for a more lucid account. He says the same as is said in the article, but instead re-defines "free will" to fit the reality of these conclusions - a more intellectually satisfying approach, even though it's just a smart readjustment of semantics.

<comment><USER4> "If we feel it, then it's real."

The word "real" loses all meaning once we start saying that what we feel -- any old fantasy, delusion, speculation -- is real. We also indulge one of the central fantasies of human reflexive identity -- that we are supernatural -- when we say that what we feel is therefore, ipso facto, real.

As for Dennett, he is a serial question-begger and equivocator on this topic. He doesn't merely change the definition of "free will" in that book. He arbitrarily changes the definition to a trivial one; argues that that new kind of free will is possible; and then reinserts his conclusions into a debate in which the definition has not changed. Hence he has offered absolutely nothing to the issue that we're all talking about -- free will that would allow for culpability, or what I call non-trivial free will. I recommend Peter Van Inwagen and Galen Strawson instead, who offer much more rigorous good-faith arguments about free will.

<comment><USER3> Thanks, I'll check them out next when I get the chance.

</comment></comment></comment></comment><comment><USER5> I've always been on the fence on this issue due to two concerns I always saw as conflicting until recently: * Causality * Perception of free will

In my mind, it always made sense that I couldn't have free will with causality as then my brain is really just an insanely complex chaotic system that only appears to be random. Allowing for freewill in something like that would appear to warrant the idea of magic.

But then my friend remarked that instead of the universe being driven based on causation why not imagine it all being correlation based? Any scientific experiment really only proves correlation to a mathematical model. Unlike pure math you can't _prove_ a hypothesis using anything nearly as rigorous as induction (since the infinite is out of our reach).

By not taking that extra step of saying science proves causation of certain phenomena and just leaving it at correlation I think ideas such as freewill and the odd uncertainty of quantum mechanics can mesh with our macro level view of the universe.

 __shrugs __I thought it was interesting at least. :)

<comment><USER6> What you say here reminds me a bit of Hume. Hume attacked cause and effect by noting that all we ultimately have access to are our perceptions, and that we can never perceive "cause." We may see the hammer flying through the air, then the window shattering, but we don't see any "cause" here. Just event A followed by event B. For Hume, our mind naturally correlates these events, and we call it cause and effect.

Kant then followed by saying that this account was incomplete and that cause and effect are more like a type of lens through which we organize our perceptions, without which, we couldn't make sense of the world.

*Vastly oversimplifying huge swaths of 18th century philosophy here, so don't take this very seriously.

<comment><USER5> Sounds like some good places to start to learn more. Thanks!

</comment></comment></comment><comment><USER7> _Or is every choice -- even the choice to prepare for future choices -- an unthinking, mechanistic procedure over which an illusory self-awareness is laid?_

Is water really wet, or is water really made of non-wet atoms of hydrogen and oxygen over which an illusory wetness is laid?

It's self-defeating to define free will in a way that inherently violates physics, but it's easy to define it in a way that doesn't, but still preserves what we mean intuitively by "free will": If it's possible to perfectly predict (absent actual errors in either mechanism) what a system will do without simulating it, the system doesn't have free will. If it's not possible without simulating the system (and the actions of the system aren't actually random), then it could be said to have free will.

This still leaves the possibility that it will turn out that humans don't have free will, of course, or only have it in certain conditions.

<comment><USER4> Unpredictability (or randomness) does not preserve the possibility of free will. One must have control over the process. That's really the basis of why we care about free will in the first place -- control.

<comment><USER7> I'm not talking about randomness (in fact, I specifically excluded that). Anyway, it's not really meaningful to speak of a process having control over itself -- it _is_ itself.

Free will either is defined in such a way that mind must transcend physics to have it, or it's defined in a way that is meaningful inside the laws of physics. I have nothing to say about the first definition, but given that most here would agree that minds are constrained by physics, any remaining question about free will _must_ refer to whether we can predict the actions of an agent, and since it's obvious that we can if we have a sufficiently detailed simulation of the agent, the only definition in which "free will" is still a useful concept that meshes with our intuitive understanding of self- determination is the one I mention in my earlier comment.

</comment></comment></comment><comment><USER8> > Long before you're consciously aware of making a decision, your mind has > already made it.

> All of the data of cognitive neuroscience are pushing us to replace the idea > of mind-body duality…

This is ultimately an issue of definitions, but for me, those two quotes are the main takeaways. You have to decide whether there is such a thing as a self that exists apart from the couple pounds of organic material inside your skull. Science hasn't found hard evidence of such a thing.

If you give that credence (albeit while remembering that absence of evidence != evidence of absence), forget about whether you have free will — the bigger question becomes to what extent "you" exist in the first place. If you're comfortable reducing yourself to your brain (and science would probably suggest that you should be), then it's not a problem; you do have free will, as long as you're willing to define that as having a set of chemical reactions sitting inside your skull, doing their thing.

If you aren't comfortable reducing yourself to your brain, the search for free will and a self gets a lot more stressful.

</comment><comment><USER9> I think part of the problem is to use "free will" as a name for thing (like an organ, next to, say, the liver), rather than as a name for a process. If we ask "how do we DO free will", we might start to get somewhere, I think.

I think we "do" free will rarely, with most of our lives running automatically. When we hit trouble -- a turning point, a fork in the road so to speak, where it is no longer obvious what to do -- THAT is when we have to "do" some free will. But most of our lives aren't driven by free will or conscious choosing, but rather by skills we develop when we are enculturated into our society, skills that get trained into us so deeply we don't ever think about them (automatically getting saying thank you, etc). (When we have to consciously choose too much of daily life, we call that autism...)

At those turning points, I think we need language. First, language (words either in our head or in conversation) clarifies the options by giving them names. Second, language enable us to arbitrarily choose one of the options and stick to it. Finally, language enables us to imagine the negation of a situation once we have named it, and thus open us to creativity. Without language, we can only do what we feel like instaneously.

So, while that was an interesting article, the debate is framed subconsciously makes in a way that makes it impossible to get a good answer. Also, none of these ideas are mine -- I am regurgitating the original thoughts of Heidegger, Peirce, and Bourdieu.

</comment><comment><USER10> "I don't think "free will" is a very sensible concept, and you don't need neuroscience to reject it — any mechanistic view of the world is good enough, and indeed you could even argue on purely conceptual grounds that the opposite of determinism is randomness, not free will!"

\--

That's a rather large philosophical debate to be skimming over so glibly... and the world is not completely mechanistic (quantum mechanics).

<comment><USER11> _That's a rather large philosophical debate to be skimming over so glibly... and the world is not completely mechanistic (quantum mechanics)._

Quantum mechanics accounts for unpredictability. It doesn't account for free will. Just because you can't predict something accurately doesn't mean it has a choice; think, for instance, of the weather.

<comment><USER12> Or, if sub-atomic particles can behave truly randomly, then _perhaps_ they might have free will, deciding what to do for themselves, which we can only see as randomness (I do not think this is true, it's just an interesting thought). Sadly, that does not grant _us_ free will, only randomness.

Basically, we are completely mechanistic above the quantum level. At that level may exist some randomness, but if so, it's just acting like a random number generator, where the generated numbers are then fed into the deterministic process that is ourselves.

<comment><USER4> Good points. I would take it a bit further by noting that a defense of non- trivial free will cannot rely upon quantum mechanics (or any other engine of unpredictability). By non-trivial free will, I mean a kind of free will that allows for some control over what is being willed.

The thesis describing a wholly causal universe is known as "determinism." The thesis of a less-than-wholly causal universe, no matter the degree to which strong causality governs, is known as "indeterminism." Together, they describe the entire set of possible worlds. Because free will is impossible in either case, free will is thus absolutely impossible, no matter what.

</comment></comment></comment></comment><comment><USER13> Be careful that your philosophy does not get caught in the definition of words. I would think an illusion is something that occurs once you are aware, because your awareness is fooled. If the awareness is the illusion, then who's fooled? I wouldn't think you could fool an illusion, but the meaning of words is quite subjective.

If you want to make a point, say something like: "free will is your mind regurgitating sensory information and decisions you took moments before by relating them to current senses and memory creating a feeling of awareness", that takes away some of the thunder, but also part of the ambiguity.

</comment><comment><USER14> This is very in line with the discussion of Free Will in Waking Life: <http://www.youtube.com/watch?v=_VxQuPBX1_U>

They mention quantum mechanics and the randomness there may have some impact on free will.

Also, I think the double slit experiment is interesting. If we observe some things with our mind, then the outcome can change. We can ignore things as well. Introspection may enable free will.

</comment><comment><USER15> "Test subjects chose whether to push a button with their right or left hand; seven seconds before they experienced making the choice, their brain activity already predicted their final decisions."

Who takes seven seconds to decide which hand to press with? And was it seven seconds from the time they were given the instruction, or seven seconds before they pressed the button (independent of when they were given the instruction)?

</comment><comment><USER16> I read about this several times and I think this whole button experiment is somehow screwed. The measure some brainwaves and draw such a fundamental conclusion without really understanding what they measure. Maybe we are just making our decisions in our mind before they get transformed into language or actions. But that wouldn't imply that these are not our own decisions.

</comment><comment><USER17> All I'm seeing is that we tend to follow our instinctual reactions. Which isn't really surprising, considering how close we are to when our survival depended almost entirely on making a snap judgment and executing.

</comment><comment><USER18> If effect necessarily follows cause then yes.

If that is true, then "repeating" the universe would lead to exactly the same outcome. Hence we have no free will.

<comment><USER4> Importantly, even if effect doesn't necessarily follow cause (also known as "indeterminism"), free will isn't possible. Hence free will is absolutely impossible, alongside any conditions whatsoever.

</comment></comment><comment><USER19> Is free will an illusion?

Yes! \

               Let these two asses be set to grind corn!

No! /

</comment><comment><USER20> If there is no free will then our will is determined by our DNA. Since our DNA is subject to continuous change via random events, then do we have 'random will' and does that make it 'free will?'</comment>


Is This the End for South Asia Shipbreakers? - <AUTHOR> http://gcaptain.com/is-this-the-end-for-south-asia-shipbreakers/ <comment><USER2> Interesting read, two things stand out for me, one is that the ship breaking in India/Pakistan/Bangledesh is not cost competitive given what seems like no, or very little (note the comment about cementing an area) investment in the facilities.

And the second is the huge export boosts from China in iron and steel. (alleged in the article to be below cost but there wasn't really any support for that argument.)

Any insights on why companies doing ship breaking wouldn't invest at least some of the returns into their own facilities? I could understand if it was a sort of "one and done" thing where you never expected to break a second ship, but since they suggest there is 30 years of experience here, what is the process whereby people don't figure out ways to do it better/more efficiently/safer? I would expect that eventually this would be an ideal robotics sort of application (assuming you are ok with a mobile robot carrying around a plasma torch :-)

As for China, their behavior has been consistent over the last 50 years at least, which is that acquiring foreign currency reserves are more important than profits. They still import a lot of "stuff" so that is going to be critical to economic growth. There is a long tradition of exporting natural resources to fund those reserves, whether it is Russian's oil, or South Africa's mineral wealth. But if they are being forced to cut prices to keep those reserves flowing, that's an interesting data point on their economic health.

<comment><USER3> _" And the second is the huge export boosts from China in iron and steel. (alleged in the article to be below cost but there wasn't really any support for that argument.)"_

The quote from the article is "China is selling below the price of recycled steel".

I interpreted that to mean that at current prices _new_ steel from China sold at the market rate is cheaper than recycled steel. So no 'below cost' shenanigans, just comparable products moving in out-of-sync market cycles.

And yes, businesses the world over can be guilty of not reinvesting in facilities. There's a mantra for change that says "If we always do what we've always done, then we'll always get what we've always got". Unfortunately, many business owners in good times think that's true as well! And so they fail to make the necessary improvements when they can, and can't afford it when they have to.

<comment><USER4> Or it could be that Chinese companies were stockpiling steel (as the price was rising), and are now trying to sell it off now that the price is dropping.

So if you've got a great big lump of steel, it's not cost effective to break it apart to sell right now.

<comment><USER5> I work in the steel industry, virgin steel not recycled steel and we are having the same problems. China has so much excess domestic steel capacity that they are now flooding the international export market and the price of Coil has tanked.

[http://www.smh.com.au/business/mining-and- resources/chinese-...](http://www.smh.com.au/business/mining-and- resources/chinese-steel-is-now-cheaper-than-cabbage-20150708-gi81ea.html)

'When asked about the cabbage conundrum, one trader told Platts he would be "better off going home to plow the fields rather than try to make money selling steel".'

</comment></comment></comment></comment><comment><USER6> There is a lot not shown in this article. Ship breaking is extremely dangerous and thrives in these parts of the world because you don't need to provide safety equipment or procedures and when one of your employees gets killed/maimed in the process there is someone else eager to take his place and no lawsuit from the deceased's uneducated family.

If one country tightened controls on ship breaking then, by the laws of capitalism, the work would just go to the next country with the lowest labour costs who has less overheads so can pay more to buy the ship from its owners in the first place.

Global(ish) controls mean temporary disruption to the status quo but hopefully eventual improvement of working conditions for the people doing the grunt work at the bottom.

Obviously China can't keep producing dirt cheap steel forever so ship breaking will bounce back, hopefully with slightly less misery for its employees.

<comment><USER7> "Obviously China can't keep producing dirt cheap steel forever" \- alternatively, perhaps they continue to drop the price of steel even lower.

The possibility of that is why people aren't purchasing these large ships to wait for the price of steel to rise.

<comment><USER6> Agreed - I'm sure they can drop the price of steel in the short term. But when they're eventually forced to go back to paying Australians $100/hour to dig the ore out of the ground for them, the economic prospects of pulling ships apart for recyclable steel will improve.

</comment></comment></comment><comment><USER8> I'm mystified by a few things in this article. Specifically, why are scrapyards closing?

The first thing the article names as a cause is the currently low price of scrap steel. Ok, but then what happens when a ship gets too old to use if not scrapped?

Another cause named in the article is new EU rules for EU flagged vessels. Couldn't the owners just reflag to a non-EU country prior to scrapping?

<comment><USER9> > Ok, but then what happens when a ship gets too old to use if not scrapped?

The old fashioned way is to scuttle a ship.

I would guess that scuttling a ship so that it descends into a deep sea trench would have minimal environmental impact. Any toxins would be contained by the immense pressure.

<comment><USER10> Scuttling a ship doesn't get you the millions of dollars that you get from selling it to a scrapyard.

<comment><USER11> The scrapyards that have gone out of business aren't paying that. Their competitors, finding themselves in a more monopsonistic situation, might not be either.

<comment><USER10> I misread the article, where it says at the moment ship owners are getting $3.6M less than they used to. I thought it said that that was what they were getting.

</comment></comment></comment></comment></comment><comment><USER12> A company in the SF Bay Area tried to start a ship breaking on Mare Island, but couldn't make it work. Many ships are taken to Brownsville Texas for ship breaking, including the ghost ships (old navy ones) in Suisun bay.</comment>


Why Students Aren't Fighting Forever 21  - <AUTHOR> http://newyorker.com/online/blogs/currency/2014/06/why-students-wont-fight-forever-21.html <comment><USER2> Good that someone is exposing the atrocities on labors working in such factories, but why not then fight iPhones and all those phones manufactured in China, as well? Labors work in really really pathetic working conditions to make those shiny gadgets.

<comment><USER3> You do realize that while these conditions are awful, they're much better the alternatives? It's idiotic to "fight" Foxconn factories when they see no lack of those willing to work in these conditions. If you really want to help, you should improve the whole economical situation in these countries, and you'll find that although that's not their goal, it's exactly what Foxconn, Nike and others accused of "worker abuse" are doing.

<comment><USER4> How dare companies provide a low rung on the economic ladder and not force anyone to use it.

<comment><USER5> Using the metaphor of a ladder is asserting the existence of an argument that you're not bothering to make. What if you called it a piece of dirt in the economic grave?

<comment><USER4> The ladder is usually, and in this instance, the things that working give you such as on the job training and building up a personal reputation as a dependable employee. It gives you exposure to company processes and gets your mind working on how to improve them here or at the next gig. Sitting on your ass because minimum wage cuts you off from opportunities and your only option is going on the dole gives you none of that.

</comment></comment></comment></comment></comment><comment><USER6> This seems off topic.

<comment><USER7> Yeah, probably off-topic here. But I wish folks like Marc Andreesen (pretty much the poster child here) would not embrace this type of situation so heartily.</comment></comment>


Show HN: Semantic Versioning for Natural Language - <AUTHOR> https://github.com/ptsteadman/semver-for-natural-language <comment><USER2> This ties into a vague idea I have bouncing around my head about viewing natural language works "structurally", especially in terms of premises, arguments, conclusions, etc.

Analytic philosophers are pretty good at this already, as well as good science writers and thesis authors.

They can present the high level "type signature" of their work: something like, I assume the premises X, Y, and Z, (see books 1, 2, and 3 which argue for these premises) and then deploy arguments of kind A and B in order to strengthen the conclusion C.

Interpreted with a programmer's vocational damage, that text would be a function from (X, Y, Z) to C, using A and B as implementation patterns or algorithms, and recommending books 1, 2, 3 as concrete providers of the types X, Y, Z.

(Some kind of hand-wavey metaphorical Curry-Howard equivalence extended to rhetoric?)

<comment><AUTHOR> I like the phrase "programmer's vocational damage", I think there's often a tendency to attempt to over-extend programming concepts to other realms (for example, natural language). The irony is that a lot of the concepts used in programming are abstractions of patterns from other fields.

<comment><USER2> :) Here it makes sense to me partially because rhetoric and logic are closely connected already—but I still want to avoid the trap of, like, using "Gödel's incompleteness theorem" to prove that "you can't really know anything, man".</comment></comment></comment>


Man lives with female robot - <AUTHOR> http://www.thesun.co.uk/sol/homepage/news/article2023392.ece <comment><USER2> "She doesn't need holidays, food or rest and she will work almost 24-hours a day. She is the perfect woman." I'm a white male, born and raised in the midwest, (where you'll find more traditional roles), and I find this offensive.

<comment><USER3> When someone makes a swooping statement on what men/women/people/animals/whatever should be like, just add "for me" add at the end of it if you don't want to be offended.

Take the following statements that would offend people:

She doesn't need holidays, food or rest and she will work almost 24-hours a day. She is the perfect woman... _for me_.

Christianity is the only correct religion _for me_.

Homosexuality is wrong _for me_.

Having a job is stupid _for me_.

There is no God _for me_.

Etc, etc. It's an easy way to cut down on how often you're offended by at least 80%. Because let's face it, being offended means being less happy. The magical _for me_ greatly adds to your happiness levels.

<comment><USER4> Raping people is ok.. for me!

Beating children is ok.. for me!

No, it doesn't always work.

</comment></comment></comment><comment><USER5> I fear such developments hurt hackerdom at large by playing to the mainstream stereotypes.

<comment><USER6> It's really an unfortunate double standard in our culture. Women can have all manner of mechanised play things, and that's a-ok by everyone.

<comment><USER7> There's a clear difference between a vibrator and this robot: one is meant purely for sexual stimulation, the other is a replacement for human companionship.

<comment><USER8> well technically at the core of it, human companionship and sexual stimulation both trigger conducive chemicals in the brain...

so the base reasoning is the same in both cases. So what is the problem?

Whether this guy is sad and needs to see a shrink is a totally different matter.

</comment></comment></comment></comment><comment><USER9> First, I question the veracity of the article/site. Is it a hoax?

Second, assuming it's true, the article says this guy has two years and 14000GBP in this robot so far. For the money and the time investment, it's actually quite impressive.

Is it obscene to ask a robot if you can see its source code? As someone who has a high-level interest in component electronics/robotics/AI, if there was technical information on the robot I'd love to know more.

</comment><comment><USER10> <http://en.wikipedia.org/wiki/Lars_and_the_Real_Girl>

<comment><USER11> <http://en.wikipedia.org/wiki/Pygmalion_>(mythology) ;-)

<comment><USER10> [http://en.wikipedia.org/wiki/Friendly_Artificial_Intelligenc...](http://en.wikipedia.org/wiki/Friendly_Artificial_Intelligence)

Shame on me.

<comment><USER12> Friendly Artificial Intelligence...with benefits?

</comment></comment></comment></comment><comment><USER13> Makes you wonder: just how close to human does a robot have to get before it is a suitable replacement for one?

Not that this question is at all original of course.

<comment><USER14> Better question: How often do people treat the people around them like robots?

<comment><USER15> Advisors --> Grad students?

<comment><USER14> Wouldn't know...doesn't sound like a good way to spend money if that's the case.

<comment><USER15> Well, the grad students come cheap (at least a lot cheaper than a robot), and they often don't have many choices of who to work for.

Mostly they are expected to work 24/7 without complaining for very little pay... It's very fun :)

</comment></comment></comment></comment></comment><comment><USER2> Would you buy a robo-woman? How accurate to life would she have to be? 50% 80% 95%? At what point do men swear off women when they get a taste of robo-women?

<comment><USER16> There's a Futurama episode that addresses "Humans dating Robots"

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

</comment></comment><comment><USER8> but seriously you have to agree that is some cool technology... i havent kept up in image processing advances lately (say last 10 years), but this is still pretty cool ... also to be fair, he didnt create it to "live" with it or to satisfy any fantasies...</comment>


Windows 10 has "python" command that redirects to the Windows Store - <AUTHOR> https://twitter.com/CasualEffects/status/1256806906015907841 <comment><USER3> I'm a developer who's never had to ship serious production systems with Python, but I have had to modify the occasional library or open source package. i.e. I know just enough to get myself into trouble...

I develop on a Mac where in theory everything should be easier:

* Comes with Python out of the box

* Platform has ubiquitous and wonderful package manager (Homewbrew)

And yet, 90% of my interactions with Python via the CLI involve it crashing because the version that the current thing I'm trying to compile or execute wants isn't the one the OS happens to be vending for it.

Some OSS projects suggest using things like pyenv to help. I don't know, it just seems to make things even worse for me because now even 'which python' doesn't tell me anything because it directs to some shell script shims that I can't parse or understand.

Python the language is wonderful, as are the libraries that exist for it.

Python the runtime/execution environment is actively hostile to users, and it's honestly keeping me from actually building anything real with it from the ground up.

I'm not surprised that Microsoft went with this approach to TRY to help it's users.

I'm also not surprised that Python devs are pissed because I've also been in those shoes where FINALLY everything is working, and you think you have that one version of python 2 and one version of python 3 both running and coexisting and everything you need to run runs, and then something small changes and WHAM the whole house of cards collapses.

But I wouldn't be angry at Microsoft, I'd be angry at the Python community for letting things get so bad.

<comment><AUTHOR> > And yet, 90% of my interactions with Python via the CLI involve it crashing > because the version that the current thing I'm trying to compile or execute > wants isn't the one the OS happens to be vending for it.

Do python releases introduce backwards-incompatible changes (ignoring the 2.x/3.x divide)? Would it not be as simple has making sure you have the latest runtime?

<comment><USER4> This issue is largely OS X related rather than Python-related per se. OS X ships with vendored copies of many common Python libraries which you cannot update, and so if you need to use newer libraries you have to install them in some other location and fiddle with the path to make sure your versions are loaded before the OS X versions. Because the versions included in OS X (including the version of the Python runtime) are pretty old almost everyone ends up doing this.

In theory homebrew takes care of the whole thing for you but, in practice... as an only part-time OS X user I have run into a lot of problems with the path getting set in various ways that end up in various copies of the Python interpreter or library paths getting loaded, resulting in runtime errors due to library versions being inconsistent with the interpreter version or expected libraries not being loaded...

A further complication is that, the specific way that Apple vendored a set of python packages, it is possible but not particularly easy to add new packages to the OS-provided Python runtime, so most users, if they want some package that Apple didn't include, seem to end up installing a whole new environment just to get that package, even if the OS-provided environment were otherwise acceptable to them.

It's a very real problem and very frustrating, but I'm not quite willing to blame it on the Python ecosystem because it seems to be pretty much a result of Apple's decision to ship an interpreter and set of libraries that most users will end up being unhappy with. Anecdotally at least I run into these issues a lot less on Linux because even with fairly stable distributions (e.g. RHEL7.5/8) the included interpreter and library are more recent and the package repositories include most of the Python packages you would want, maintained to match the OS interpreter version. So while some people do end up using virtual environments it's less necessary than it is on OS X, where it frankly seems near impossible to do anything without installing a whole second Python environment and munging paths.

An extra complication is that, as a casual OS X user, it seems to me like OS X terminal emulators and tools are more likely to munge with the path than Linux terminal emulators and tools, so even if you get everything set up "just right" you end up having it not work properly in certain contexts like plugins because something has modified the path for some reason.

Edited to expand that, I guess what I mean to say but failed to articulate, is that the fundamental problem here (in my opinion) is that OS X ships with a Python distribution but _not_ with a package manager. That's the fundamental difference from Linux where these problems are much less common. Third-party package managers like Homebrew and Macports are used, and in order to have full control of the Python environment they have to install a whole second copy because they are not allowed to tamper with the OS X Python environment. This pretty inevitably leads to frustration. The best solution would seem to be for Apple to provide some kind of "first-party-ish" package management functionality, perhaps something like Chocalatey which is not a Microsoft product but is built on Windows-provided primitives, so that the package managers that users are actually using can play nicely with the OS X Python environment.

<comment><USER5> _An extra complication is that, as a casual OS X user, it seems to me like OS X terminal emulators and tools are more likely to munge with the path_

This might be a function of the casualness rather than the tools. Here's a thing to check out on OS X:

        man path_helper

I didn't know about this for ages and it makes your path life much saner - <USER2> least you'll have some idea where seemingly magical paths come from. Personally, I use it for everything and don't let other profile scripts eff with the global path at all.

<comment><USER6> You set up your personal shell paths by adding files to /etc/paths.d/?

<comment><USER5> With neither shame nor ruth. Is there some non-aesthetic reason not to?

<comment><USER6> No! Well other than not having your whole shell environment in your dotfiles. It just wouldn't have occurred to me.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> It takes a lot of IT knowledge to get a Python script to work properly on Windows. And yet somehow you figured out a way to blast Microsoft for trying in good faith to help out the Python community. And it was done in concert with the Python community, so it's definitely not "fake".

This makes me sad.

<comment><USER8> Agreed. On the beloved GNU/Linux distros, when you "$ python" and it's not installed, Package Kit will recommend you to install it through the native package manager (like apt or dnf). This is literally the same thing. Windows Store is the package manager for Windows.

<comment><USER9> The difference is implementation. GNU/Linux systems do not hijack the 'python' executable. If such an executable is on the path, they will use it. If Python is not installed a program can check the path and see that Python is not installed.

It is only when the user tries to run python on the terminal that the system (I presume the shell) detects that the program does not exist, and it then executes another program to inform the user.

If you put python as the #! interperator for a script, then bash will complain that interperator cannot be found.

If it is used as a command as part of a script, then bash does not call the normal command-not-found program (which advises you to install it), but just prints to stderr that the command was not found.

<comment><USER10> Windows doesn't "hijack" the python executable either. This stub _should_ be a low priority in your PATH and the official Python installers _should_ take higher priority when they install. It's basic PATH management, with much the same environment variable management issues on Linux as it is on Windows.

It's unfortunate that so many machines that this poster is working with are getting malformed PATH variables with the priorities out of order, but it should be a simple fix to the PATH to correct.

It should also probably be noted that the Microsoft/Windows Store installed version of Python _is_ the official Python.org release. (It's CIed, and CDed directly from Python.org just as with any other release binary.)

<comment><USER9> Even with correct PATH management, Windows still hijacks the command when python is not installed; that it the mechanism it uses to advise you to install it. Linux distributions use a different mechanism that maintain the expected behaviour of there not being any program/comnand called "python" when python is not installed.

Windows solution in this case is a lazy hack that makes the system more brittle.

As an aside, Linux distributions tend not to have this sort of PATH management issue because (for better or worse) they tend not to modify PATH when installing software.

</comment></comment></comment></comment></comment><comment><USER11> There's an actual term for this "fake" command: it's a stub command. Stub commands are by no means a new concept; for instance, on macOS many CLT commands are stubs (that prompt CLT installation), and IIRC the java family of commands in /usr/bin are stubs out of the box, too.

The real problem, or the claimed problem, is

> Windows 10 puts a fake python/3 executable in the path, _ahead of the actual > python_.

(Emphasis mine.)

Somehow I'm on the slow ring and I'm not affected by this; the stub is definitely not ahead of the actual python. Why? Because C:\Python38\Scripts and C:\Python38 are way ahead of %LocalAppData%\Microsoft\WindowsApps (where the python.exe stub lives) on my PATH. When you install things naturally they prepend themselves to the path, CPython (or any python) installers included. Begs the question: what kind of geniuses put third-party paths after system paths, then bitch about breakage?

Edit: Upon further inspection of some complaints, I think what Microsoft should do is fixing then teaching people proper PATH management on Windows (which is terrible), since apparently all the top google-surfaced tutorials ask you to _append_ to PATH, which opens you up to this kind of self-inflicted problems. (Clicking on "New" when editing PATH creates a new entry at the end; obviously doesn't help.)

<comment><USER12> CLT = Command-Line Tools, for those unfamiliar. (Unfortunately, I can't find an official link that's not behind a developer.apple.com sign-in.)

<comment><USER11> [https://developer.apple.com/library/archive/technotes/tn2339...](https://developer.apple.com/library/archive/technotes/tn2339/_index.html)

</comment></comment></comment><comment><USER13> This really irked me when I found out because I spent longer than I care to admit diagnosing why a script I wrote seemingly did nothing.

I'm not sure if it's different now but when I had just installed anaconda python, and ran a script the usual way (`python foo.py`) it just did nothing (not even open the store page).

My memory might be a little hazy but I think not even changing PATH order of precedence made a difference. I had to find a sub-sub page in the modern settings app to disable the magic store hook.

I agree with some others here: I'm fine if I'm suggested a solution to a missing command but when that hook overrides a valid installation I have a bit of a problem :|

</comment><comment><USER14> This actually points out what I think is a problem.

The Windows Store is no longer only sandboxed apps.

I wanted to install the Line App (I live in Japan and everyone uses Line and I hate typing on my phone). I have both a Mac and a PC. On Mac I go to the Mac App Store and install Line. I know (believe?) that the app is sandboxed and short of OS bugs can't spy on me.

I thought Windows Store was the same but then I saw Python on there and was like "wait a minute, that can't possibly be sandboxed on Windows". So I investigate and ... yea, many apps are not sandboxed. If you look at the Line App (or WhatsApp or Python or FB Messenger) or many others they list

> Access all your files, peripheral devices, apps, programs, and registry

Which if you dig further Microsoft says

> Access all your files, peripheral devices, apps, programs, and registry: The > app has the ability to read or write to all your files (including documents, > pictures, and music) and registry settings, which allows the app to make > changes to your computer and settings. It can use any peripheral devices > that are either attached or part of your device (such as cameras, > microphones, or printers) without notifying you. It also has access to your > location, and can use platform features, such as location history, app > diagnostics, and more, which are denied to most Store apps. You can't > control most of the permissions for this app in Settings > Privacy.

</comment><comment><USER15> This is a half-baked idea by Microsoft, one many of us in the Windows community tried to warn them about last year [1][2] with no apparent success. (One big problem is that build systems/various scripts tend to look for a callable python/python3 to determine if python is installed. Calling out to this stub eats input yet outputs nothing, leading to lots of confusion.)

You can turn all Python aliases off by navigating to Settings > Apps > Apps & Features > App execution aliases. Alternatively you can Start search for "aliases".

[1] [https://twitter.com/WithinRafael/status/1171339229583962112](https://twitter.com/WithinRafael/status/1171339229583962112)

[2] [https://twitter.com/BruceDawson0xB/status/117089849987067494...](https://twitter.com/BruceDawson0xB/status/1170898499870674944)

<comment><USER16> Done in collaboration with the Python community.

<comment><USER15> Is that true? Is there some sort of call for comments from the Python community on this? (Genuine question!)

<comment><USER16> Yes, it was even presented at PyCon.

[https://devblogs.microsoft.com/python/come-meet-microsoft- at...](https://devblogs.microsoft.com/python/come-meet-microsoft-at- pycon-2019/)

"Steve Dower - Python on Windows is Okay, Actually - PyCon 2019"

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

And is part of official Python documentation, as mentioned by others on this thread.

<comment><USER10> It should also probably be noted that the Microsoft/Windows Store installed version of Python _is_ the official Python.org release. (It's CIed, and CDed directly from Python.org just as with any other release binary.)

</comment></comment></comment></comment></comment><comment><USER17> the Windows Store is the official way to install Python on windows.

[https://docs.python.org/3.7/using/windows.html#windows- store](https://docs.python.org/3.7/using/windows.html#windows-store)

Original Blog post from last year

[https://devblogs.microsoft.com/python/python-in-the- windows-...](https://devblogs.microsoft.com/python/python-in-the- windows-10-may-2019-update/)

<comment><USER18> Really? That seems to be the "official" _Microsoft_ way of installing Python3. For those who'd rather go straight to the source (should be everyone), try this, instead:

[https://www.python.org/ftp/python/3.8.2/python-3.8.2.exe](https://www.python.org/ftp/python/3.8.2/python-3.8.2.exe)

<comment><USER17> No?

[https://docs.python.org/3.7/using/windows.html#windows- store](https://docs.python.org/3.7/using/windows.html#windows-store)

>The Microsoft Store package is a simple installation of Python that is suitable for running scripts and packages, and using IDLE or other development environments. It requires Windows 10, but can be safely installed without corrupting other programs. It also provides many convenient commands for launching Python and its tools.

<comment><USER19> It is just "one" method of installation, and not even mentioned at the top of the page. The page also says

> Note The Microsoft Store package is currently considered unstable while its > interactions with other tools and other copies of Python are evaluated. > While Python itself is stable, this installation method may change its > behavior and capabilities during Python 3.7 releases.

It is "an" official method, not the preferred official method, and most certainly not "the" official method.

<comment><USER20> That note was for Python 3.7, as of Python 3.8 the note is gone.

[https://docs.python.org/3.8/using/windows.html#windows- store](https://docs.python.org/3.8/using/windows.html#windows-store)

</comment></comment></comment></comment></comment><comment><USER21> So what? Some Linux distros will suggest installing a missing program if you run it via terminal and it's not installed.

<comment><USER22> > _and it 's not installed._

is the key difference here, as the submitted tweets clearly point out.

</comment></comment><comment><USER23> Hard to imagine that this is some nefarious plot when Microsoft also provides one of the most popular Python editors (Visual Studio Code) and an excellent Python extension for it, and makes appearances at Python conferences etc. It seems more like a garden variety screwup.

<comment><USER24> And Python is supported as a first class citizen in Visual Studio.

</comment></comment><comment><USER25> This is part of a strange pattern of Windows aliasing popular Linux commands to things that do something completely different.

There is also "bash", which launches the WSL and "curl", which aliases to a powershell command with completely different arguments.

</comment><comment><USER26> I ranted about this to my group of friends a while ago. I usually explicitely state `python3` when running scripts from the command line in linux and macOS. On my Windows machine I recently installed python for a mini-project and forgot to create a symlink so I could use python3 as a command. I then launched a script (which was working perfectly fine when run via VSCode) from CMD with `python3` and nothing happened. It took me quite a while to figure out, that python3 invoked the stub comman, which did nothing at all when called with a script as parameter. No error, no warning, the store page didn't open. Just empty output

</comment><comment><USER18> Yep, it's real. Nice one, MS. :eyeroll:

      Directory of C:\Users\user\AppData\Local\Microsoft\WindowsApps

      01/15/2020  04:23 PM                 0 python.exe
                     1 File(s)              0 bytes

      Directory of C:\Users\user\AppData\Local\Microsoft\WindowsApps\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe

      01/15/2020  04:23 PM                 0 python.exe
                     1 File(s)              0 bytes

</comment><comment><USER27> This made think of one of my favorite Pycon talks by David Beazley called "Discovering Python":

[https://www.youtube.com/watch?v=RZ4Sn-Y7AP8](https://www.youtube.com/watch?v=RZ4Sn-Y7AP8)

The premise is David got locked in a vault with terabytes of tangled source code on CD-ROMs, no network connection, no ability to bring software in or out, and just a bare Windows machine, and and the story goes from there...

</comment><comment><USER28> Short of including a full Python installation in the base OS, what Microsoft is doing is a great idea. However, it seems like in some cases your PATH might get in the wrong order which can cause scripts to fail. I haven't encountered this personally and I've used Python on several different Windows 10 machines, each with the full version of Python installed from the website. Bugs happen, and path issues are easily fixed.

</comment><comment><USER29> This would be a violation of the advice in PEP 394, except that PEP 394 only applies "to Unix-Like systems".

[https://www.python.org/dev/peps/pep-0394/](https://www.python.org/dev/peps/pep-0394/)

Basically, the Python core team suggests that the "python" executable/command be set to one of the following:

\- python2,

\- python3,

\- not provide python command,

\- allow python to be configurable by an end user or a system administrator

It would have been much better, IMO, for Windows to do nothing here. A Microsoft-blessed Python installer from the Windows Store could actually serve a positive purpose distinct from the official installer at python.org. That would be to support python2 and python3 side-by-side cleanly.

It might nicely install Python 2.7.18 at the python2 executable, and install Python 3.8.2, as well, and have python/python3 refer to 3.8.2 and beyond.

This would match an Ubuntu 20.04 system with python2 installed, and with python-is-python3 installed, which is, IMO, how a system should be configured if it needs to have python2 around for backwards compatibility, but wants the "system/default python" to be python3. And it'd make sense for Microsoft to do that since Windows, above all, is a system with a deep respect for backward compatibility with old tools. But, that isn't what they did.

Instead, this stub forwarding to the Windows store seems like the worst of all worlds. I am not really sure what problem they are trying to solve and for whom. If you are the kind of Windows user who opens cmd.exe and manually types in "python" into the black terminal window, are you the kind of Windows user who won't be able to figure out how to open a browser to the official installer on python.org? Doubt it. Meanwhile, the stub likely breaks existing code, even code that may just be running "python -V" to see what version is installed at that path.

And apparently the Microsoft-blessed Python installer is just a python3 install (perhaps old), with no thought to python2 and backwards compatibility for old python scripts for Windows? Hmph. This doesn't seem like an improvement over "do nothing".

</comment><comment><USER30> Didn't OS X do this with some CLIs, you'd type a command and got prompted to download Xcode..

<comment><USER31> Sounds familiar, but Xcode does actually provide a bunch of CLI tools...

<comment><USER32> I think it's when you have to download the Xcode CLI tools that many packages rely on. But you do it once and you never do it again.

Definitely not equivalent situations.

<comment><USER33> The only difference is that it's more finely grained? I don't see how it's completely different

</comment></comment></comment></comment><comment><USER34> I'm fairly sure that if you install Python using the official installer and select the "Add to PATH" option that the actual executable will be used. I'll check later in a clean VM to confirm and update this comment.

<comment><USER33> The problem is that MS's python can end up taking path precedence even if you install via the installer, I've hit this before. It's Just A Bug, one that I'm sure that Microsoft would be very happy to fix if folx complained to the right people. The stub python.exe could very easily search PATH to see if it's getting put first and delegate, or the official Python installer could recognize and fix this

</comment></comment><comment><USER35> Why not just include python with Windows? They could take the opportunity to update it with their biannual Windows updates. Otherwise not offer any support for it if they wouldn't like to.

<comment><USER36> Which version of Python would you bundle? The community can't even decide on a runtime.

This sort of mess caused Apple to ship Python 2.7 with OSX for 10 years and will stop bundling it at all in future [1]

[1] [https://developer.apple.com/documentation/macos_release_note...](https://developer.apple.com/documentation/macos_release_notes/macos_catalina_10_15_release_notes) (search for python on this page)

</comment></comment><comment><USER37> Once you install python, is this redirection removed? If so is it only removed if you install from the Microsoft store, or also from a standard install?

<comment><USER10> The redirection is done by a low-priority PATH. Both the Store install and the "standard" install (both of which are built/maintained/managed by Python.org, fwiw) should install at a higher priority PATH. PATH bugs are just hard to entirely avoid, but PATH management is relatively easy.

(One big for instance is that System PATH and User PATH are concatenated and that the combined PATH when it exceeds a certain character limit sometimes causes subtle bugs like this one. People unfamiliar with Windows-specific PATH issues might not realize that issue.)

<comment><USER38> This is not 100% accurate. The "standard" install will place the installation directory higher in the PATH priority.

The store version doesn't modify the path. Instead it creates app execution aliases for the executables it installs. As of version 3.8.2 it creates the following app execution aliases: idle.exe, idle3.8.exe, idle3.exe, pip.exe, pip3.8.exe, pip.exe, python.exe, python3.8.exe, python3.exe, pythonw.exe, pythonw3.8.exe, and pythonw3.exe. These can be found in the %LOCALAPPDATA%\Microsoft\WindowsApps directory. Prior to installation the python.exe and python3.exe app execution aliases in this directory will launch the Microsoft Store. After installation of the "store" python they will actually launch python.

</comment></comment></comment><comment><USER39> Python needed a major technology vendor with political will backing it.

</comment><comment><USER40> Well, Microsoft wants to train open source developers to use the Windows store.

The whole install gets more and more complex. I've never had a problem when Martin von Loewis was still in charge of the installer.

<comment><USER10> The Python team themselves were just as interested in being in the Microsoft Store. Python prides itself on trying to be an easy to install language accessible to a wide variety of users.

It should also probably be noted that the Microsoft/Windows Store installed version of Python _is_ the official Python.org release. (It's CIed, and CDed directly from Python.org just as with any other release binary.)

</comment></comment><comment><USER41> MS is doing a good job of making me move the *nix lately. I can't even _open_ Windows store anymore, let alone check out their python stunt.

</comment><comment><USER42> I genuinely don't understand some decisions Microsoft has made with Windows 10. The unavoidable telemetry / updates / ads, this Python thing, etc. are just _so different_ from what I want an OS to do.

I can only assume that I'm somehow outside of Microsoft's target market and just don't realize it. But is there really a sizable fraction of computer users that _want_ an OS to unavoidable behave like this?

<comment><USER43> Yes. My last Windows machine just died, and I'm migrating the last few Windows things to Linux. Have to use Wine once in a while. I don't plan to replace the Windows machine. It's so unnecessary today.

<comment><USER44> I've tried to do this multiple times, and yet I have always kept either a Windows machine or (more often) a Mac for a bunch of things. (e.g. Keynote; Outlook in a corporate environment; etc)

I loved it in the past, but now I simply don't have time or willingness to spend hours to configure drivers, etc, or do my own system maintenance.

My dream is a laptop with a solid linux distro, maintained by a company that doesn't die too easily, with a 3-5 year maintenance guarantee (kind of Ubuntu LTS, as a concept, but for laptop use, not server), where everything works, including a (possibly amazing) trackpad.

The other thing is: Mac's trackpads are absolutely the best in the market. That single item is responsible for a big chunk of my productivity boost. When I use a non-Apple trackpad on another laptop, I feel my productivity goes down significantly. I guess twenty years ago it was being able to use vim and bash properly :) - but not today, not anymore, for me at least.

Anyway, all of this to ask: what laptop are you using to run Linux?

Edit: forgot to add that I've been looking at System76 and Pop OS, but somehow they failed to convince me (together, or separately).

<comment><USER43> Laptop? I use a desktop machine. Better ergonomics and a much larger screen.

<comment><USER44> Got it.</comment></comment></comment></comment></comment>


Some advice on trading equity for help - <AUTHOR>

Hi, First a disclaimer, there's just 2 of us and we made a few apps in our spare time alongside our regular jobs. We are not focussing on setting up a company around these apps or anything right now.
The latest one we made has actually turned out to be a pretty good looking and fun app. It's a messaging app where you quickly make a gif (animated loop) and send to a friend. The interface is ridiculously easy and UI turned out pretty nicely.
I have this idea that I wouldn't mind floating. give away equity in whatever the app is worth eventually to the person (marketeer) who can get the app to a million downloads(or some number). The way I see it, our strong point is design and dev. And an app that's worth nothing is, well... nothing. And if someone gets us a little bit more than what we have... then hooray.
Is this a bad way to approach promoting a product? Any thoughts would be appreciated. <comment><USER2> Be very, very careful doing this. The biggest problem is that many investors see it as a red flag if a person who is not involved with the day-to-day running of the startup holds significant equity. Equity seems cheap when the company is worth nothing, but it will be near and dear when you are seeking investment, when you have dozens of employees who would go to Google if it weren't for their stock options, when you and your cofounder are deep in the trenches and want to quit, or when you're trying to hire an executive. And if he holds a significant fraction of voting shares, you may need to consult him when you do something significant like sell the company or issue new shares, and if he's no longer involved with the company that can introduce delays when you can least afford them.

Also, typically marketing a product in the early stages involves making really significant changes to the product itself. You can't just hand it over the wall as-is and expect someone to drum up a million downloads. If you lack marketing experience on the founding team, you may be better off just bringing on a full cofounder who shares your vision but is comfortable going out there and talking to customers.

<comment><AUTHOR> That makes a lot of sense! We put the app out there, and regardless of all the FB posts and my emails. It hasn't gotten any traction (in terms of downloads). The ones who do use it, seem to really enjoy it.

So I was thinking that I just needed to get a couple of thousand downloads, to get more feedback. Thanks for you time!

</comment></comment><comment><USER3> One word: Don't.

1\. Never accept equity from a start up, unless you're sure they'll succeed.

2\. Never give away equity as a start up, as you'll probably lose everything and they could walk off with all the IP.

(Yes, I don't like "investors" \- which makes me wonder why I'm hanging out on a ycombinator domain)

</comment><comment><USER4> Did you do a Show HN. seems like people are usually pretty helpful with advice around here.

<comment><AUTHOR> Nope. I have always been a lurker, but I see the link up top now. Will post my project there! Thanks!</comment></comment>


A case for using void in modern JavaScript - <AUTHOR> https://gist.github.com/slikts/dee3702357765dda3d484d8888d3029e <comment><AUTHOR> I also think that `void` should not be completely banned.</comment>


Ask HN: Open sourcing my project, how to enforce the "social" license I chose? - <AUTHOR> I've created a suite of products for restaurants. I started this project to try new models of development with a positive social impact.
I'd like to license everything (code, marketing and legal materials...) under an open source license which with a clause by which the restaurants that use them have to donate at least 5 dollars per month to non profits. The non profits should help finance similar projects, hopefully creating a virtuous cycle of socially responsible code and businesses.
There are more details to how this would work but that's the gist of it, to create a "social open source" project that would encourage the creation of others
What is holding me back is that I do not know how I could enforce such a license. I have created the project on my own with little means and I would have no way of knowing who is using the code to create their own products. I've thought about several alternatives:
1) Giving the ownership of the code to an organization that would have the means to enforce the license. I suppose there could be organizations interested on fostering this kind of project.
2) Keeping the backend code closed so I could know which restaurants are using it and make sure they do the donation to the NGO. There are downsides to this approach from my lack of previous reputation to server costs.
Are there other ways to make sure a license is complied with?
* The product is described in www.alfiv.com, it is used by restaurants in Spain and France and everything (UI, legal terms, marketing...) is translated to English, French and Spanish
 I've used a common software stack (react + redux + ramda) in order to facilitate collaboration
* I chose the restoration industry because of its size, if a "social open source" project could become an important player in this field with this kind of license it could allow the creation of many other similar projects <comment><USER2> If you make it a requirement to spend 5 dollars per month for using the product, then I'd say it doesn't fit open licenses. If you want to enforce the license in a structured way you might as well sell (a subscription to) the product. You can of course donate any profit you make.

<comment><AUTHOR> well, I was calling it open source in the sense that it could allow the same kind of collaborative development that open source allows.

Any company or individual could see it, modify it and sell it.

Perhaps it's not open source by some definitions of it but it seems to me that it shares some of its characteristics

</comment></comment><comment><USER3> I agree that if there is a monetary requirement it fails to be open source. That said, I appreciate the intention.

What about requiring a "powered by" type of mark that includes the organization that they support. Then you can let the organization audit that. They would know whether or not they received the $5.

<comment><AUTHOR> That seems like a good idea, and is along the lines of things I've been thinking about to verify the donation. However if a business did not want to comply with the license they would probably just not include this "powered by" mark and we would be where we started.

<comment><USER3> Sure, and all sorts of systems are hacked one way or another. I suggest giving up on the idea of policing it and release that idea of control.

If your intention truly is social impact then focus on what can be accomplished by the participants. Forget about the bastards, they aren't worried about you.</comment></comment></comment>