Tim Ferris: Beginner's Guide to Lucid Dreaming - <AUTHOR> http://www.fourhourworkweek.com/blog/2009/09/21/how-to-lucid-dream/

<comment><USER2> Sure, if you're only working 4 hours a week you have plenty of time to Lucid Dream in your Polyphasic zombie sleeps induced by weeks of raw food diet, kegel exercises and cold calling the A-F entries of the phone book to practice the elevator pitch for your _personal-growth_ startup.

<comment><USER3> I think you are mixing him up with Steve Pavlina. While I find some of recent entries of Pavlina borderline crazy, his old entries on personal development are really good stuff.

With Steve, for the first time I learned that I can think of him as crazy and admire some of his (early) writing at the same time.

I have my doubts about Tim Ferris though. He seems to run of hype.

<comment><USER4> I'm not a TF fan but he does have the occasional piece of "unhype-y" brilliance, such as this video on how to build a high traffic blog: [http://www.fourhourworkweek.com/blog/2009/06/29/how-to- build...](http://www.fourhourworkweek.com/blog/2009/06/29/how-to-build-a-high- traffic-blog-without-killing-yourself/)

</comment></comment></comment><comment><USER5> I've heard about this before but I do have one question. Isn't it possible that there is some disadvantage to doing this frequently instead of having regular dreams, even if one isn't immediately apparent?

<comment><USER6> A friend of mine trained himself to be able of lucid dreaming, but stopped with it when he began to have "nested" dreams - he thought that he woke up, but found himself in another dream (and that multiple times). That made him frightening.

<comment><USER7> The only freightning thing I experienced is sleep paralysis (<http://en.wikipedia.org/wiki/Hypnagogia#Sleep_paralysis>). But this too presents no dangers, it is just a weird and uncommon feeling =)

<comment><USER8> It's a weird feeling when you recognize what it is, and horribly frightening when you don't know about it and think you've been visited by aliens, ghosts, or demons. This is made even worse by thinking you're going nuts and being afraid to tell anyone about it; people spend a lifetime with their secret trauma, when they could have just told someone and found out that it was nothing more than a fairly common effect of waking up at the wrong part of the sleep cycle.

<comment><USER9> But it helps if you're visited by aliens, ghosts, or demons, because you can mistake that for sleep paralysis, making it not very frightening.

<comment><USER8> The trick is to ask them to read something twice; if it comes out the same each time, they're really there. Otherwise you're experiencing sleep paralysis. Or they're just messing with you.

</comment></comment></comment></comment></comment></comment><comment><USER10> What can't Tim Ferris do, and subsequently blog, film, and self-promote about?

The one lucid dream I've had was awesome. I've thought about writing dream- notes upon waking up, but now I think I'll actually try it.

<comment><USER11> I've had two. One was really really short and the other was a bit longer. Both were awesome. I've considered dream-notes, but its effort. Maybe one day.

</comment></comment><comment><USER12> On the topic, see this thread about an individual with total control over his dreams, including time dilation. His longest dream lasted for what felt like four years, which he spent "creating planets and landscapes, and then I just sat back and watched the life/universe I'd created play out in super-fast motion." It's IAmA so he could be a troll, but it seems believable to me.

[http://www.reddit.com/r/IAmA/comments/9ebol/i_am_in_full_con...](http://www.reddit.com/r/IAmA/comments/9ebol/i_am_in_full_control_of_my_actions_when_i_dream/)

As far as techniques, I would recommend giving wake-induced lucid dreaming (WILD) a try, as practiced by Richard Feynman. You basically just stay conscious as you fall asleep, watching your body fall asleep and staying aware. A very small amount of caffeine or chocolate an hour before bed can help with this.

</comment><comment><USER13> I've had many lucid dreams, though I've never been able to hang on for very long. I'll try the spinning technique next time for sure.

If this interests you, you might also be interested in "binaural beats".

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

The most famous use of "bb" is probably the audio series produced by The Monroe Institute.

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

If you can get past the "new age" stigma of TMI, they seem to be surprisingly scientific in their endeavors. They have audio series for LD and other consciousness exercises. The idea is that binaural beats can be used to alter your brainwave frequency and help you enter altered states of consciousness (hack your brain).

The first objective is "mind awake, body asleep", which is exactly what it sounds like. It involves relaxation techniques, "resonant tuning" (which is basically chanting like a monk), an affirmation of your goal (to expand your consciousness etc...) and then deeper relaxation.

I have achieved this state a few times, but never had the discipline to keep up with the exercises. The few times it happened, the initial feeling was that my body parts had all melded together and I couldn't feel where one part stopped and the other started. Then, I felt a peculiar detachment and a very intense feeling of "energizing" which I can only describe as something similar to holding a 9volt to your tongue, but all over your body. At that point I would always become too excited and "wake up".

The main reason I didn't persist with the exercises is because chanting and wearing headphones when you go to bed isn't very pleasant for the person laying next to you. The other roadblock is discipline. If you want to have LDs on purpose, you really do have to stick with the dream journal and make a conscious effort to make it happen and keep up with it.

My LDs were natural and not the result of practice, but were definitely very cool. I know what it's like to fly like Superman. :)

<comment><USER14> I second recommending the Monroe Institute audio guides. I nabbed them off BitTorrent years ago, and I play a few of them on an iPod shuffle while falling asleep. It's worth seeing past the New Age (rhymes with "sewage") stigma--the point isn't some non-sense about metaphysical "energy", rather the point is to get you used to putting your body into a quasi-hypnotic suggestive state where visualization can be much more active in your perception.

</comment></comment><comment><USER15> Is there anything useful you can do while lucid dreaming?

I've done it once in a fever, and it was admittedly a fantastic experience (I was a multiverse god and made lots of multiverses full of happy people in awesome landscapes having really great sex), but it would be nice to be able to get something out of it that could be shared with other people.

I'm wondering if one could use the immense processing power of the human brain in a consciously directed way; for problem-solving, or simulating a complex system, for instance. That would prove that you're not just watching pretty lights while the "this thing that's going on right now is really cool" part of your brain is stimulated.

<comment><USER16> I don't think system simulation is possible. The dreaming tests essentially work by prooving that you can't keep much "state".

Learning by repetition is something i heared repeatedly. I have no personal experience, but it seems to be a Matrix-style "I know Kung Fu". So you seem to have access to your memories and can reinforce them. Maybe some self- psychoanalysis is possible, since you may access your subconsciousness.

</comment></comment><comment><USER17> Technical question: He states that you should look at a pattern, look away, and then check to see if it changes. Supposedly it will change because your memory can only hold 7 +- 2 bits. Now if your memory is too small to keep this supposed pattern consistent, how the hell are you supposed to memorize this pattern for a consistency check? I.e. you need your memory to assert that your memory failed. Is there a separate memory he is talking about here? Even if that technique worked, couldn't the pattern stay the same just based off the chance that you get horizontal/vertical stripes twice in a row?

Sorry if I'm nitpicking, maybe my cs theory courses just ruin these things.

<comment><USER8> You notice the inconsistency, even if you can't quite recall what the pattern was before. I've only had a few lucid dreams and I don't have great dream recall, but when I wake up at the right moment I can remember my dreams vividly, and think through the dream events with my fully conscious mind. I don't notice patterns changing that much, but I do know that text changes. For example, I've had dreams where I fell asleep while reading, then continued to read in my dream making up the story as I went. But then it gets confusing so I back up to reread a page, and the story changes.

Another common event is that people and things in my dreams can be indistinct until I pay close attention to them. Just recently I was with a woman in my dream who appeared as just a silhouette in a shadow until I really wanted to know who she was and focused on her, at which point she became perfectly clear and vibrant. That can happen to the entire setting of my dream too, and people and settings can also change as I pay attention to different parts of them.

</comment></comment><comment><USER18> Great, as Tim usually is. I pretty much know all there is to Lucid dreaming, but I didn't know much about huperzine prior to that post.

Also, if you're really interested in lucid dreaming, there's a wonderful community filled with dream-veterans @ <http://www.dreamviews.com/>

Hands down, the best suggestion of what to do during a dream was, "your finger is an orgasm gun."

</comment><comment><USER19> Personal experience: I have tried lucid dreaming, and had some moderate success at it (got two lucid dreams that I can remember). It's a lot of fun, and not all that hard. I warmly recommend it to anyone who can be bothered to keep a dream journal by their bedside.

</comment><comment><USER20> This is a great way to keep working even when your body forces you to sleep.

</comment><comment><USER14> A decade ago I picked up a copy of the La Berge book that Ferris mentions. I highly recommend it as it seems to be the canonical book on the topic since La Berge was credited with being first to medically prove in a lab that lucid dreaming even exists. It takes like 3 months of daily dedicated practice to get the knack, but once you've trained your mind to do it, it gets easier to induce with repetition. Regular lucid dreaming is an incredible experience, and I can't even begin to explain the impact it has had on my own creativity and self of self. If you haven't done it--GO DO IT!!

And I agree with what others said about using LD'ing to aid in learning. For me it is hugely useful to get unconstrained "practice" time to quickly go through steps I need to remember when awake. I call it dream kata. I mean both mental steps, like learning math proofs in my case, and steps for physical things, like learning to rock climb(falling off cliffs and flying away is seriously fun). What's weird is after routinely LD'ing such practice scenarios, when I go back to regular dreaming, I will have non-lucid dreams of doing the same kinds of practices. We dream about what we regularly do each day, so it's a way of tricking the mind to watch and mimic itself. Somehow it engages a part of the subconscious to constantly practice and learn.

While LD'ing sounds trivial, the time can add up and I think it has huge potential to give those who employ it an edge. Let's say you lucid dream for 2 hours every night for just 3 years--then you've got 2k+ hours of practice time in whatever you do. Take Gladwell's book Outliers and his account that "geniuses" in any field excel simply because they have had so much more raw practice than others. While we don't know how common lucid dreaming is amongst these "geniuses", it might be another explantion of this "practice == genius" phenomenon. The way I see it, if you can get 20% of the way to 10,000 hours just in your sleep, there's no reason to not be doing it.

<comment><USER21> I always feel obligated to post a contrarian point, since I think only people who A: succeed at training and B: have a great experience actually post, whereas all those who don't succeed or have a "meh" experience don't actually post, and these people may be the majority.

I naturally LD with some frequency, especially if the room is a bit too cold. In that case, I'll LD for days in a row at a time, and, well, here's a hint: my reaction is to go turn up the heat.

I think what people are reporting is like riding a roller coaster. It's great fun the first time, and still fun occasionally, but reading about LD being a "life changing experience" is like reading about riding a roller coaster being a life changing experience. Maybe it feels like it the first time, but... no, it really isn't. Well, I will concede that there probably is a small set of people for whom it might be important for some psychological reasons, but in general I doubt it. (Same is true for roller coasters, someone who is afraid of them may see it as a big deal that they got over their fear, but in general, it's not a lifechanger.)

On the other hand, I have to admit that I am also fairly creative and do have a strong sense of self, so perhaps I'm just jaded.

I really doubt it's useful for training though. The brain naturally "practices" (some think that's what dreaming _is_ ), and I think all the LD experience is doing is observing stuff that happens anyhow; I doubt the observation actually adds that much.

(Oh, and if you do have problems with recurring nightmares, LD is definitely worth pursuing. In my experience, the best approach once you know you are dreaming is to just let the scary thing happen; if you're scared of heights, fall, if you're chased by the monster, let it eat you, etc. Nothing bad can happen, and eventually your brain will work it out. My dreams are routinely filled with imagery that could be scary in the "wrong context" now, but it's never a problem anymore.)

<comment><USER22> I can see your point, but training is very important at the mind level. Many athletes use it when they can't physically train.

Anyway, I don't have the data but I guess 80% of results are still from physical training, although adding that 20% for free wouldn't be bad. I'm going to try it.</comment></comment></comment>


Ask HN: Depressed. Find my dream job, or do a startup? - <AUTHOR>

Hi HN, I am a recent college grad who's been working as a web developer for about 2 years.
For the past two years, I've been working at a deadend job as a frontend developer. The work itself is extremely tedious because all we do is inherit badly written websites and we are forced to add changes to it - That's all I do. There is also no prospect for a promotion or anything like that.
Why did I stick with this job for 2 years? Because of its excellent benefits. I can work from home nearly any time I want, and I also get 4 weeks of paid vacation (not including holidays).
Although the work itself makes me feel depressed and neurotic, I feel like it gives me the time to pursue my real passion - creating my own SaaS company. I was depressed in college and my dream is what got me through.
But working with horrendous codebases for so long gave me this hunger for writing clean code. Now I fantasize about working with other smart and PASSIONATE people. I want to be around other programmers that are into programming as much as me.
I read engineering blogs from other companies, and can't help but feel envious of what they have. But I feel like in order for me to pursue my original goals, I need to have all the free time that I can get.
I'm starting to get really depressed and anxious at my job. I wake up dreading to fix yet another stupid bug.
I do get job offers here and there because I contribute to open source and regularly attend meetups. But my coworkers tell me that "a job is a job" and that I will hate it no matter where I go.
Is this true? Are all software jobs bad? Should I just stick with my current job with the flexible hours? <comment><USER2> If you're lonely, you should join a startup with lots of other smart & motivated people. It sounds like your colleagues don't care -- which is reasonable, because what's in it for them?

Startups are horribly lonely experiences. If you're lucky, you're the only dev for ~1.5years, and then you get to grow the team.

Happy to chat about this more, email in my profile.

<comment><AUTHOR> Thank you for the offer. I will follow up soon.</comment></comment>


Hacker Guccifer, who exposed Clinton's use of private e-mail, gets 52 months - <AUTHOR> http://arstechnica.com/tech-policy/2016/09/hacker-guccifer-who-exposed-clintons-use-of-private-e-mail-gets-52-months/ <comment><USER2> Biggest bullshit I've ever read since the NK hacking Sony garbage last year.</comment>


Reports Indicate We May Have Detected a Black Hole and Neutron Star Collision - <AUTHOR> https://www.sciencealert.com/we-might-have-just-caught-a-black-hole-in-the-act-of-eating-a-neutron-star <comment><USER2> What would happen if the neutron star were to "graze" the event horizon? Are the forces holding the neutron star together strong enough that it definitely would change its momentum and the whole thing gets eaten by the black hole? Or could it break, with the rest moving away as if the black hole took a bite out of the neutron star?

<comment><AUTHOR> I think this why so many people are keen to find out</comment></comment>


EU wants to require platforms to filter uploaded content, including code - <AUTHOR> https://blog.github.com/2018-03-14-eu-proposal-upload-filters-code/ <comment><USER2> Automated filters on content sharing platforms kill creativity. Entire sports disappear from Youtube because they are traditionally accompanied by music.

Think of ice skating. It's been years since I stopped uploading videos of ice skaters to Youtube, because they are automatically deleted based on music matching their filtering database. Others in my ice skating circle share videos on Amazon Prime Photos or similar platforms, never on Youtube.

<comment><USER3> I don't see the problem. I occasionally upload dance performance videos with copyrighted music on Youtube. Then Youtube sends me a copyright notice and gives part of their ad revenue to the music owner. That seems fair.

<comment><USER4> It's not part. It's all. It's well known people can claim a video then get ALL the revenue, or disable it altogether. Also, don't get 3 strikes or you're fucked.

<comment><USER5> Then use free music on your video if you want to make money?

If I want to use someones music in my ad or product showcase or movie or anything that will make money I need to pay those artists for using their work. You should also IF you want to make money from it.

<comment><USER6> If I can hear or view it I should be able to share it.

<comment><USER3> Why?

</comment></comment></comment></comment></comment></comment><comment><USER7> People need to understand the different parts that make the EU administration. The EU commission is not "the EU". It's the parliament that decides if proposals of the commission become law. The parliament has a history of rejecting stupid proposals (e.g. software patents).

But the Github folks are right! Please, tell your MEPs that/why this is a stupid idea - it's important!

(I sometimes wonder why the commission proposes stupid things. Uninformed? Corruption, uhm I mean lobbying?)

<comment><USER8> The Commission is made up of member states and they often push through unpopular proposals that they'd never get through their home legislatures, a process known as "policy laundering". When an unpopular measure comes from the EU they can say "oh look, bad Brussels / bad EU made us do it", even when it was their own suggestion in the first place. The UK government has a particular history here, which is why it's ironic that we're attempting to leave the EU.

<comment><USER9> Not really ironic. It is exactly one of the reasons that I want to leave. It's very easy for our government to subvert democracy by having the EU make unpopular legislation.

If our government brings in legislation then I want them to be accountable to that, and not have the ability to pass the buck.

<comment><USER8> Yes and no. We're still going to have to manufacture everything according to EU and global standards if we want to sell stuff outside our own borders. It's just now we're about to lose any influence and votes over how those standards are made.

You may (and quite rightly) say that EU elections are not decided on these issues and particular EU Parliament representatives have been useless and actively undermining the EU, but that's not really the EU's fault.

<comment><USER10> Why do you lose a say over global standards? Surely you now represent yourselves directly on global standards bodies, instead of indirectly via the EU's common position?

<comment><USER11> But there's no representation on the EU standards bodies at all, and realistically there are two kinds of standard manufacturers tend to care about: US (mostly UL) and CE.

<comment><USER10> The EU's standards often just transcribe the standards agreed at a global level, though [1]

[1] [https://ec.europa.eu/growth/sectors/automotive/legislation/u...](https://ec.europa.eu/growth/sectors/automotive/legislation/unece_en)

<comment><USER12> Often != Always, though.

Losing the ability to affect these European standards is a price to pay, Brexit being one big trade-off after all. But I'm still unclear on what the advantages are that make it worth it.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> Hearing about stuff like this, it's easy to imagine a future in which the 'bootstrapped' internet startup is simply no longer possible due to the costs of complying with various governments' regulations.

<comment><USER14> If I'm being blunt, its our own fault.

We encourage people to upload and share content they don't own under the guise of "information wants to be free".

We encourage the transformation of employees into contractors and operate in locations where the business is explicitly against the law, because "disrupt all the things".

We work behind the scenes with our competitors to suppress worker wages, fix prices, and avoid taxes, because profit is more important than anything else.

We do ICOs with imaginary money or IPOs with only private shares to get around the SEC and little nuisances like public disclosure.

WTF did we expect to have happen? The government is a slow elephant to SV's sleek mouse, but when we don't run fast enough we're going to be completely flattened. This isn't new behavior on the part of the government - it's not like we can claim ignorance.

<comment><USER15> You shouldn't blame deluge of new laws on the users. It's kinda like victim blaming as though they made the laws themselves. Instead of asking "what caused governments to make new regulations" instead ask "what caused governments to use regulations instead of alternatives (including doing nothing)". You point out problems, but that's not fair to say that they caused the specific solutions more than the solution presenters themselves.

<comment><USER14> I'm not blaming the users, I'm blaming the entrepreneurs. Sorry if that wasn't clear.

> what caused governments to use regulations instead of alternatives > (including doing nothing)

It's the same as it always has been - why are any rules made up? Because someone cheats. Why do rulebooks get bigger and bigger and not smaller and smaller? Because someone sees the rule "do not steal", and threatens the victim into "giving" him the stuff, cause "it's not stealing if he gives it to me, right?" Now you need rules about coercion.

More directly, people flouting the spirit of the law is the cause of this legislation. People ignoring the verbal and written warnings put out there by governments to play nice.

Ultimately, the government has two forces of authority. The law (regulation) and force (police, army, etc). The first is empowered by the second. If the warning signs leading up to regulation are ignored, what else can we expect the government to do?

<comment><USER15> On the internet, I consider entrepreneurs users as well. Just because the rulebooks do grow doesn't mean they should. That the law is ignored should be a reason for enforcement, not law creation. As law counts grow and percentage of enforcement seemingly declines you should expect users to ignore them. I expect governments to give warnings about enforcement, not just creating laws as though all other solutions have been tried. It should be the absolute last resort, but so many of these are perceived problems not really harming anyone.

</comment></comment></comment></comment></comment><comment><USER16> The other issue not discussed here is that Google and the rest will be required to remove offending content within an hour.

Notwithstanding the rest of the discussions, this will only create more jobs. I realize Google may not like the hit to the profit line, bit it's a bit disingenuous to ask only the developers to sharpen the axes and fight the Google's war while not informing them of the rest of the legislation: "Illegal content means any information which is not in compliance with Union law or the law of a Member State, such as content inciting people to terrorism, racist or xenophobic, illegal hate speech, child sexual exploitation, illegal commercial practices, breaches of intellectual property rights and product safety. What is illegal offline is also illegal online."

I guess I object the delivery. Tell us everything, and then ask us for support. This way they are just spinning it to fit their agenda in a way that keeps us _less_ informed: "they are after your GitHub". Classical FUD

Edit: Here is a much better overview [http://ec.europa.eu/newsroom/dae/document.cfm?doc_id=50096](http://ec.europa.eu/newsroom/dae/document.cfm?doc_id=50096)

<comment><USER17> > this will only create more jobs.

[https://en.m.wikipedia.org/wiki/Parable_of_the_broken_window](https://en.m.wikipedia.org/wiki/Parable_of_the_broken_window)

<comment><USER18> too bad Google quickly offshores all profits and pays zero taxes

<comment><USER19> Google commonly pays around 15% to 17% for its overall corporate income tax rate.

By comparison, the _statutory_ rate for Norway is 23%, Sweden is 22%, Denmark is 22%, Portugal is 21%, Slovakia is 21%, Finland is 20%, Estonia is 20%, Iceland is 20%, Russia is 20%, Czech is 19%, the UK is 19%, Poland is 19%, Switzerland is 18%, Ukraine is 18%, Romania is 16%, Serbia is 15%, Lithuania is 15%, Ireland is 12.5%, Moldova is 12%, Macedonia is 10%, Hungary is 9%.

I'll emphasize again, those are just the statutory rates.

Google is obviously aggressive in their tax avoidance, however they're not in fact paying low rates compared to what can be managed in more than a dozen European nations.

<comment><USER20> But who do they pay those taxes _to_? From the perspective of an Australian (for instance), Google pays 0% Australian tax (even though they profit from my country) because they have sufficiently clever accountants. It is less important to me that they pay 15% globally (though that is still a ridiculously small number -- most people have to pay at least 30% tax in Australia) than it is that they pay 0% tax to many countries they do business in. I still have to pay GST when I pay for Google's services -- why do I have to pay my Australian taxes when I transact with them but they don't have to pay their Australian taxes for that transaction?

> however they're not in fact paying low rates compared to what can be managed > in more than a dozen European nations.

But they run businesses in significantly more countries outside of the ones you've listed. The fact that you could only find a handful of countries (several of which have very questionable governments) where 15% tax for a multi-billion dollar company sounds normal is pretty telling.

<comment><USER17> > Google pays 0% Australian tax (even though they profit from my country)

They don't "profit from your country" - they have users who live in your country. Maybe it makes sense for those users to pay up to the government, but it's crazy to say that you should have to pay taxes to a foreign government just because someone under that government uses your website.

In the long run, if this rhetoric you're advocating is successful (that if you touch anything somehow related to a government over the internet then you owe them a cut and have to follow their local rules), you can say goodbye to the open, global internet. Companies will IP-restrict (or if that doesn't convince the lawyers, government ID restrict) every single website.

<comment><USER20> > They don't "profit from your country" - they have users who live in your > country.

 _Which they make money from_ \-- in fact quite a few companies make more money from a given Australian than other markets[1] meaning that they are profiting _more_ off Australians (even for online services -- like Adobe that charged AU$1400 more for their software in Australia).

If a company wishes to sell books in Australia, they have to pay Australian taxes. But if you sell online services, all of a sudden everyone starts talking about the destruction of a free and open internet. If a company selling a service is willing and has the ability to "destroy the free and open internet" through IP blocks if they are asked to pay taxes for the money they make off foreign markets, then ask yourself -- how free is the internet in the first place if that is all it takes to destroy it?

You don't pay taxes if you don't make money. I don't understand what you're trying to argue against here.

> but it's crazy to say that you should have to pay taxes to a foreign > government just because someone under that government uses your website.

It's not about usage, it's about profit. If you're making a profit by providing services to people in a foreign market, you have now made money in a way where society requires that you pay taxes on your profit. Most countries have bilateral tax agreements to avoid double taxation, so if a company pays tax in $countryA they only have to pay the excess in $countryB. Those agreements exist _explicitly_ to facilitate the ability to do business overseas.

Not to mention that many of these companies are _incorporated_ in foreign countries as well, which means that they aren't even foreign entities at that point. They're just ordinary Australian companies that don't pay tax.

> In the long run, if this rhetoric you're advocating is successful (that if > you touch anything somehow related to a government over the internet then > you owe them a cut and have to follow their local rules), you can say > goodbye to the open, global internet.

I hate to break it to you, but you already have to follow the law of countries that you do business with. If you host certain kinds of hate speech, you are not permitted to provide access to said hate speech in Germany (even if legal in your country). If you host certain kinds of pornography, you are not permitted to provide access to said pornography in other countries (even if legal in your country). And so on. Will you be extradited for breaking those laws? Maybe not, but that doesn't make it any less illegal.

I understand the whole "anti-regulation" view that some US folks have (and I agree that many laws regarding the internet are very troubling), but pretending as though companies should be allowed to make money in a foreign market without paying tax just because their company happens to involve the internet is pretty odd to me.

[1]: [https://en.wikipedia.org/wiki/Australia_Tax](https://en.wikipedia.org/wiki/Australia_Tax)

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> If you are in the EU, do follow the advise and contact your MEP. The EU parliament is surprisingly accessible and open to criticism, especially if it is respectful and well-argued.

(It's probably a result of constantly having their legitimacy questioned and and vile insults having hurled at them)

<comment><USER22> And they will do what, exactly?

The EU Parliament has no real power. It can only say yes to things or delay them. As a consequence the only people who run for seats in it are either fanatically pro-EU or anti-EU, but none of them are going to have any real interest in copyright. They can say no and send it back and the Commission - if it wants this - will just send it back for re-approval again, or bypass them entirely.

<comment><USER21> The EU Parliament gets to edit all legislation. There are often thousands of amendments offered, debated, voted on, and approved or rejected.

Here is an example with 500 proposed amendments to draft legislation on cybersecurity: [http://www.europarl.europa.eu/committees/en/amendments.html?...](http://www.europarl.europa.eu/committees/en/amendments.html?ufolderComCode=IMCO&ufolderLegId=8&ufolderId=11043&linkedDocument=true&urefProcYear=&urefProcNum=&urefProcCode=#documents)

Click on the pdf icons to read the actual texts.

Please don't spread falsehoods.

<comment><USER23> I think your post is also misleading. Under co-decision, the EP only gets to /propose/ amendments, not to approve them. The council are able to reject parliament amendments and get the law passed anyway. And of course, there are other procedures than co-decision for creating primary legislation which give the EP even less power.

While the grandparent wasn't 100% technically correct I think the broad view (that "The EU Parliament has no real power") is effectively correct. The lion's share of the power of the EU still rests in the Commission and the Council. By all means, write to your MEPs, but don't get too hopeful

<comment><USER24> > The council are able to reject parliament amendments and get the law passed > anyway.

This is false. In most policy areas, if the council disagrees with the parliament's amendments, the proposal goes through a conciliation process. If the council and parliament don't reach agreement there, then the proposal is rejected. Thus, parliament has the power to reject almost all legislation. I wouldn't call that powerless.

[https://en.wikipedia.org/wiki/European_Union_legislative_pro...](https://en.wikipedia.org/wiki/European_Union_legislative_procedure#Ordinary_legislative_procedure)

<comment><USER23> Yes, there is further process I didn't mention. No, it doesn't fundamentally change the situation.

</comment></comment></comment></comment></comment></comment><comment><USER25> "Your private repository has been removed because you received 3 take down notices from copyright holders who own'foo = bar'."

<comment><USER26> "Your private repository has been removed because you received 475 take down notices from copyright holders who own '// fucking timezones, right?"

<comment><USER14> Your repository has been made public, with code inserted to serve ads to users. Please note that the revenue for the ads will be sent to the copyright holders, and your access to the repo has been revoked. Also note that this is our final communication on this matter.

<comment><USER27> Your private repositories have been locked unless you pay money. You cannot set the private repo to public, you must pay.

Except GitHub actually tried to do that to me for real, and failed. Luckily, they unlocked the repos while trying to charge me (no billing details on my account, so... nice try?) and I was able to snag my code back without being extorted for money. At no time was I given the option to opt-out of private repos. My only other option had they not screwed up was to pay.

<comment><USER28> Out of curiosity, how did this happen? Were you on a trial / student plan that expired?

</comment></comment></comment></comment></comment><comment><USER29> I would gladly contribute to software which filter laws submitted to the parliament.

<comment><USER30> If only common sense could be made into a filter.

</comment></comment><comment><USER31> This certainly seems like a legislative overreach and worth watching if it progresses. But not really clear to me why code should be a specific exception?

I'm a little disappointed in Github for trying to carve out a specific exemption just for their area of business rather than fighting the proposal as a whole.

</comment><comment><USER32> There is a simple solution. Just block the access from the EU. Let them suffer for the consequence of stupid law.

<comment><USER33> Why would you block access from the EU if your site is hosted elsewhere?

If you think complying with foreign regulations is not worth it, or if you're not even aware of it, it's not up to you to block anything. Why would it be? If they care they would make providers block your site.

<comment><USER15> Because if you break a law that applies there you might not be able to travel there or you will be jailed when you do. This applies to other regions/countries too. We can argue practicalities of course, but why risk it based on subjectivity of enforcement?

Also, blocking sends a message to the users in more ways than one.

</comment></comment></comment><comment><USER34> GitHub has had no problems implementing censorship on their platform if it's using their own values (see: WebM for Retards), so why should we care if they are now forced to censor using an external parties values?

I was concerned when GitHub started censoring repositories that didn't meet their code of conduct, but was told it was for the greater good. Now the issue is coming back to bite them it seems.

<comment><USER35> Your comment is misguided. When private actors behave badly, you can opt out and go for competiting services. When the state mandates something your options run out. It is a pure attack on Freedom.

<comment><USER36> > When private actors behave badly, you can opt out and go for competiting > services.

Except when they're a quasi-monopoly, then people find it more difficult to opt out. Hence anti-trust laws, and more recently, GDPR.

> It is a pure attack on Freedom.

By definition, all laws are exactly that. The question is never "does this law restrict my freedom?" but always "on balance, am I happy with the way this law restricts my/others freedom, and what might be the (un)intended consequences?".

So while it's a dumb proposal, it's hardly more stifling to creativity than 70+ years of draconian copyright protection.

<comment><USER33> You're still free to open a competing service, and can leverage the fact that you are better than the other guys as free advertisement basically.

</comment></comment></comment></comment><comment><USER37> Frankly this title is worthy of the Daily Mail. I expected more of GitHub. It merely describes one individual proposal currently going through the process of consultation before being debated in the parliament, nothing else.

<comment><USER17> The EU has passed similar(ly destructive) policies in the past, like the GDPR. This would be perfectly consistent with their standard behavior.

<comment><USER38> Is the GDPR a bad thing? Previous commentary on HN seemed broadly positive.

<comment><USER17> It's extraordinarily destructive, but HN has a soft spot for government privacy directives, no matter how ineffectual or costly.

<comment><USER39> I initially felt the same way, but after actually reading through the GDPR materials, and a bit of Q&A on HN, I've come to the conclusion that it's a good thing.

It doesn't really place any burden on business - it simply means that you must be transparent with users about how you use their data, allow them to know what data you hold about them, and allow them to delete it if they wish.

As a consumer, as well as a founder, that seems very reasonable.

<comment><USER40> _It doesn 't really place any burden on business_

Sadly, that is not true.

But the biggest real problem is that since the GDPR, read literally, is borderline draconian and the defence is that the regulators will enforce it selectively and pragmatically, literally no-one really knows how great that burden will be... which itself then becomes a significant burden.

<comment><USER39> I'm afraid I completely disagree, especially with "borderline draconian".

When I first heard about it, I was somewhat fearful of the unknown, imagining I was going to have to 'waste' time on 'checkbox compliance' \- but after spending some time reading about it, I believe the intent is _good_ , and also that the burden _isn 't_ going to be that big.

As a consumer, I absolutely _want_ the GDPR - I believe I do have a right to know how my information will be used, to know exactly what is held, and to have it deleted if desired.

As a founder, I want to be _responsible_ with personal data. And because I am, I'm already compliant with just about everything needed by the GDPR. I hardly expect a deluge of requests from users, so I don't even need to spend any time on automation.

<comment><USER40> It's not the _intent_ that I have a problem with.

Moreover, as a founder, I couldn't agree more with being responsible about working with personal data. We have always been careful about the data we collect and how we store and process it. But from what we have learned ourselves so far, we seem to have significant additional obligations under the GDPR (for example, being able to produce substantial amounts of formal documentation to the ICO on demand) that we would not currently be able to meet, and we _might_ have other obligations that could be awkward (often related to the various subject requests now possible) but the implications aren't fully clear.

We also don't expect a huge deluge of requests from users. In fact, we've never had any under existing data protection rules. However, given that there several people have posted to HN recently saying that they'll be happy to send in large numbers of such requests when the GDPR comes into effect just to make a point, and unlike the current data protection rules in the UK there appears to be no provision for a token fee to deter such vexatious requests, we have to consider the possibility and at least have some intelligent way to respond, even if that just means knowing what our actual obligations would be if anyone did make such a request without doing any other work in advance.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER41> Well I'm instinctively against this, but on the other hand wouldn't it encourage serious adoption of a decentralized system? Which might not be a bad thing. Or?

<comment><USER42> As with most things it's not a simple black and white, good versus evil issue. It could lead to developers actually bothering to put a license on their open work, stricter enforcement of open source agreements, and, like you suggest, people looking at alternative ways of hosting code.

On the other hand, it would also mean that we'd be 'randomly' told that we can't commit something because it looks too similar to some other code someone wrote. In the case of Google vs Oracle that would be a relatively trivial, obvious-to-an-experienced-developer 10 line method. That wouldn't be great...

<comment><USER43> for me this is very weird. While being employed by a company the code you write is theirs, so what happens if I move to another company and reuse code from my brain? Also do they understand how amazingly complex it would be to do code checks for similarity of code?

<comment><USER44> >so what happens if I move to another company

Don't worry, at our current rate that won't be allowed. As a programmer you are now company property. I guess that also means "You're fired" means "Literally fired in an incinerator"

</comment></comment></comment></comment><comment><USER45> As someone who runs a large filesharing platform I don't really care since we are already more-or-less compliant.

We already check newly uploaded files automatically against known bad content and stuff copyright holders have reported in the past. It's basically just file checksums though, nothing fancy.

I don't know what what would be "appropriate and proportionate" according to the directive though, and having to check code for copyright infringements sounds absolutely painful and vain.

</comment><comment><USER46> I've emailed my MEPs. One is sick but it'll be interesting to see what the others say

<comment><USER46> That was impressive, I have received a response already.

It appears my MEP had a few concerns with some other aspects of it already, so has had their eye on it for a year. She said she has contacted "the Rapporteur for the file, Axel Voss MEP to ask for his clarification on the issues you raised related to code-sharing platforms and why the scope of the proposal suggests to include them."

I'm kind of surprised at getting such a genuine response so quickly! I will update once I get more information

</comment></comment><comment><USER47> I think this is an excellent proposal. It will help American coders have an edge over their Europeon counterparts.

</comment><comment><USER48> I wonder if they read the article. It most certainly won't apply to GitHub, and it only mentions content filtering as an example. Until proven otherwise this is simply FUD spreading. Dissapointing.

</comment><comment><USER49> If you actually read the EU proposal then it does not require filtering upon upload, it seems fine to perform filtering upon download. Secondly the proposal states that the measures should be proportional, which might mean that code is not affected in any significant way.

<comment><USER50> > it seems fine to perform filtering upon download.

What that suppose to mean? My web service should be fine as long as I agree for the Government to MITM me?

</comment></comment><comment><USER51> If the copyrighted code, against which your pushes would be compared, are by definition closed source, how could these filters work ? Or will software companies reach an agreement with repo providers like github so the filter robot can parse their closed source code ? Kind of a politics BS just destined to keep the discussion boiling for a few months.

<comment><USER52> What if copyrighted source code contains a method copy-pasted from stackoverflow?

<comment><USER53> It's MIT licensed by default. The StackOverflow code, that is.

<comment> yjftsjthsd-h Are we taking bets on whether proprietary code includes all the relevant attribution?

</comment></comment></comment></comment><comment><USER54> I think it's time for distributed git a-la bittorrent.

We should have everything sensitive in encrypted P2P networks and then demand that snail-mail privacy laws are applied.

I'm not expecting this position to be popular on HN tho, you can't build an unicorn on freedom.

<comment><USER55> We have gittorrent already.

Much better alternatives than bittorrent, from privacy and censorship- resistence aspect is, git-ssb which is git on secue scuttlebot aka SSB.

Bittorrent can be censored, the DHT can/is monitored and can be eclipsed to prevent lookups.

Scuttlebot can work offline, over WiFi or sneakernet. Transport layer is encrypted, unlike bittorrent.

Another alternative is Dat Project, which is similar to SSB, but focuses on larger data files.

</comment></comment><comment><USER56> man..I thought brexit was bad, but maybe they're on to something? this isn't the first time EU cracks down on new tech, hindering progress in the process. (this is however the worst such case yet, if it goes through)

<comment><USER57> Brexit is giving the UK politicians the chance to enact some pretty draconian laws _without_ the European courts being able to stop them because it's illegal or goes against human rights.

The fact that the EU is _following_ us into some of this madness is not a good thing and certainly doesn't imply that the UK is onto something good.

<comment><USER58> Which laws are those?

<comment><USER59> Even though at the time they only ban neo-nazis, the UK can now criminally charge you for having opinions they dislike. That's not a step forward. Also surveilance and anti-privacy laws in the UK are horrible.

</comment></comment></comment></comment><comment><USER60> This will be an interesting experiment. The EU keeps coming up with ways to essentially destroy the internet as we know it. But I theorize that the internet is the only reason the economy continued to grow after the 90s. I think they may rewind themselves back to insignificance. Even China, with it's draconian Great Firewall, wouldn't be where it is today if academics and businesspeople weren't regularly VPNing out to access the collected knowledge of the world.

</comment><comment><USER61> So has someone solved the halting problem then? How can you filter code without knowing what it does?

</comment><comment><USER62> _> automated filtering of code would make software less reliable and more expensive_

I can see how it's bad for business, but as a developer wouldn't it mean more jobs and more of custom libraries to make?

<comment><USER63> Things like this or the GPDR favor the rich and the bigger companies who can, while not convenient, devote resources to compliance. It's not just GitHub that would have to comply. I suspect that the code snippet sharing in Slack would have to monitor code snippets pasted in various programming chat areas to be in compliance.

</comment></comment><comment><USER64> I don't think freedom speech and general purpose computing are separable issues. Code is speech; arguably the most important form as we merge with our creations.

</comment><comment><USER65> How do they want to accomplish this? Checking every user upload against a database that stores every copyrighted piece of data under the sun seems kinda heavy?

</comment><comment><USER66> [https://www.eff.org/cyberspace-independence](https://www.eff.org/cyberspace- independence)

</comment><comment><USER67> It sounds like such a shitty law it must have originated from the UK ?

</comment><comment><USER68> We should turn the internet off to the EU for a while and let them simmer. They're completely out of line and misaligned with technological understanding.

</comment><comment><USER69> Yes at-least Big Platforms needs to be made responsible for content they host (a law that is better than DMCA).

Here is a Proof of how platforms are hurting everyone (i.e Everyone who lives by law):

[https://imgur.com/a/qYWGj](https://imgur.com/a/qYWGj)

Notice 4 of top 6 Entertainment apps (In US) launched in last 30 days on Google Play are pirating Movies? This not only hurts Movie Studio, it hurts every developer on the platform because they are taking those downloads away from Developers who abide by rules.

<comment><USER70> Two of them (maybe, I haven't tried them).

One of those you're referring to is just a blatant case of false advertising (Netsub IT Services one), because it's just showing the trailers and info about the movies, and the Scooby Doo one is just playing sounds from Scooby Doo, not letting you watch Scooby Doo.

And just because such apps exist, doesn't mean that every developer needs to validate every input to make sure that it doesn't infringe on someone's copyright. It just means that Google needs to do a better job at detecting such apps.

</comment></comment><comment><USER71> Could we build in client side encryption of source code inside git, pre-push, and then provide decryption keys to CI services and other software that needs to review code (e.g. in browser decryption)?

We could use pre-shared keys for OSS software available from a separate registry, with a legal disclaimer on there that code hosts cannot use the keys to decrypt the code.

That way github could not physically access your code to run these checks.

<comment><USER72> Check out [https://keybase.io/blog/encrypted-git-for- everyone](https://keybase.io/blog/encrypted-git-for-everyone)

</comment></comment><comment><USER73> That response at the top of the article was a really good way of hitting the point home quickly

</comment><comment><USER74> I think EU on its way to make the world more equal. Some folks owning platform have literally amassed mega fortunes of money in absence of costs (regulation etc...) without creating many jobs which people in other jobs can't even dream of acquiring.

<comment><USER75> Is there something bad that folks that build platforms are able to amass mega fortunes?

Why should I care that Zuckerberg is a zillionaire as long as he didn't took his money from me forcefully? I dislike him profoundly, but his money are his money.

I don't resent him because of his mega fortune and I don't expect an authority to take that mega fortune from him and distribute it to ones like me.

As long as we're focused on how to convince others to rob the rich and distribute their wealth to us instead of focusing on how to create nice things that people want, we'll keep being a break to the mankind.

<comment><USER76> That's not the issue, the issue is huge disproportion of influence that these platforms create for their owners. You are practically saying that monopolies are fine as long as you're not getting robbed. The fact is, you probably are getting robbed, by paying too much money for the dominant service.

<comment><USER75> OP seems to be resentful especially toward the mega fortunes amassed by some folks.

Regarding digital monopolies like facebook and google, those markets didn't even existed 20 years ago. It's them who created them, almost from zero. They created the need in the market. I still can't see any reason why a third party (aka government, in the name of the people) would use force to break them apart. Mostly because they're not monopolies for services related to basic human needs.

<comment><USER74> The economy is about the distribution of resources. If one group of people amass huge fortunes, there is definitely something wrong.

That said, I own companies and I am on the makers' side of things. So, I am not resentful of myself.

</comment></comment></comment></comment></comment><comment><USER77> I am glad the U.S. doesn't push for this kind of regulation.

</comment><comment><USER78> Suggestions like this makes me feel very comfortable in voting on a EU- negative political party. In am in general EU-positive, but they have too much say in random things like this.

The EU should not be able to dictate things like this.

<comment><USER79> What about the EU preventing countries from doing such things? There's a lot of countries with governments which really like filters. I'm against _any_ government or organization which proposes such filters, but I do not have much hope killing the EU would help to stop such proposals. I rather hope the EU parliament will help to prevent such filters like they did with software patents.

And per-country rules don't really make much sense anyway for the internet. Global rules would make it easier for developers - unless they are completely stupid like this proposal obviously.

<comment><USER78> It's easier to avoid one country or move either yourself or your business from a country (or even threaten to move) than from a large union.

For example, let's say the EU would vote to make the internet illegal inside EU. I could move to Norway but otherwise my nearest alternative would be either the US or Russia. Neither of which is an easy move or even thinkable.

I agree that it would be awesome if they only passed sensible legislation, but unfortunately the risk of them passing stuff like this is too great for them to have this power to begin with.

The EU have done so much good stuff, but also so much stupid stuff and if this gets passed I'm probably going to vote against staying in the EU if given the choice.

The scariest part about EU is how no one understand how the process of creating legislation is. It is very hard to keep track on stuff as a normal citizen and you are completely reliant on information from third parties like in this case Github. Also when stuff like this happens, I have no idea who to write to unless someone tells me who to write to and I don't have a directly huge belief that they would care about what I have to write about it anyway. The power to make grass root changes within the EU is super small compared to making it within your own country.

If Github wouldn't have posted this I would never have known and that scares me a lot.

<comment><USER79> I won't deny that if this one really passes (not yet believing it), then it will be a pretty hard blow to my somewhat pro-EU stance. And yeah, I guess law-makers in the EU are even further disconnected from most people than national politicians. Thought the web makes that gap smaller again.

</comment></comment></comment></comment><comment><USER80> There's a huge difference between a proposal and a law.

However, the EU succeeded in passing the idiotic requirement for cookie notices, so I guess it's not a bad idea to watch out for more.

</comment><comment><USER81> The EU wants a lot of things... At some point, they are going to make the cost of doing business there too high for it to be worthwhile.

</comment><comment><USER82> Why would GitHub as an American company follow EU law? Or are they just really trying to prevent bad laws?

<comment><USER83> Because they have users and business in EU. If you want to sell stuff in EU, that product must comply with EU law.

<comment><USER82> Yes I understand that they want to offer their services in Europe, but the servers are in the US and billing is also not handled by a European branch company afaik. I'm really just wanted to know if and how the EU could force GitHub to comply with this law. Ban their service?

Or could it have to do with the successor agreement of safe harbor?

<comment><USER84> The EU can impose penalties. For example the new EU data protection laws have this as the maximum penalty: _a fine up to €20 million or up to 4% of the annual worldwide turnover of the preceding financial year in case of an enterprise, whichever is greater_

I guess Github could decline to pay. But then they could do no business in the EU, and then there is the likely impact on Github employees - similar to how BetonSports' CEO was arrested when he changed planes in the US: [http://www.independent.co.uk/news/business/analysis-and- feat...](http://www.independent.co.uk/news/business/analysis-and- features/arrests-in-us-put-world-of-online-betting-on-red-alert-5544310.html)

</comment></comment></comment></comment><comment><USER85> Frexit seems to be coming ever closer. Le Pen got 35% in 2017, pro-frexit parties are flourishing in France. EU has got to be careful. It's doing good things (free roaming, which as citizen who has family in both France and Germany, I highly appreciate) and the GDPR, which seems to force companies to think more about privacy.

But if Github's phrasing accurately represents what EU wants to do with online sharing, then I feel like this change is a step in the wrong direction, restricting privacy to make big-corps even richer than they already are.

<comment><USER21> It must be increasingly frustrating for anyone in Brussels if every opponent of any legislation always starts with threatening the whole idea of European cooperation. "Do anything I disagree with and I'll vote for the fascists in the next election" really isn't constructive. The accusation of being on the side of big business is also insincere, as exemplified by your two examples of recent legislation that quite clearly side with consumers over large businesses.

Even this legislation, while misguided, is actually aimed at large businesses (mostly YouTube) while the beneficiaries (publishers and artists) are rather small, comparatively.

<comment><USER86> Putting the "fascist!" comment aside, what alternatives are there than the threat of breaking from the EU if every legislation seems to* head toward a US style federation?

Think of it like the SOPA/PIPA/whatever fight: You manage to barely resist some bill from being enacted into law but then just a few months/years later another version of the same law is proposed.

*: from the perspective of someone

<comment><USER59> There are a few political parties that call for a reform of the EU without breaking up. I'll try to vote for one of them.

It's clear that the EU needs serious fixing, and German politicians/Brussels technocrats aren't up to the task because they don't care.

Unfortunately, at the time being, these reform parties (mostly social democrats, but not exclusively, and not of the "old kind" of social democrats) aren't big, because the emotional way to deal with the crisis is _" To hell with them, let's roll-back to nation-states so we can take over control"_. Unfortunately, we'll bitterly find out that breaking up won't solve the problem. We'll lose all the benefits of being able to lobby together for a better solutions, and still suffer from all the problems of the EU, even without being in it, because the big institutions won't be stopped by border checks..

</comment></comment></comment></comment><comment><USER87> They should consider partitioning the internet into 2 parts:

1) Public access internet, where everything is regulated by the hosting company

2) Restricted access internet where everything uploaded in linked to a real life ID and the uploader has liability for whatever is uploaded. Access would be granted after a basic licensing test, but hosting companies would not be required to police the content

This way, media companies can easily regulate the mass market internet to keep pirated content off of it, and the restricted access network would have a link to the uploader with personal liability, so people are not likely to upload pirated stuff anyways. In exchange, they arent harassed in the name of anti piracy

<comment><USER59> > Restricted access internet

This is already done in closed-doors forums and whatnot. If you mean the ID should be government-issued, you have Facebook where fake accounts area nearly impossible at this point and it's pretty close to a "Governet". In the Governet you'd still be censored because their goal isn't to sue everyone (that's expensive and doesn't always work), it's just to control them.

<comment><USER88> The several fake Facebook accounts I use for testing purposes would like to have a word with you. In my experience Facebook doesn't try to filter out fake accounts very heavily unless you use them to create spam. And I prefer to keep Facebook as far as possible away from "real" IDs like my passport, driver's license, etc.</comment></comment></comment>


Tiny 'ThumbSats' Aim to Bring Space to All - <AUTHOR> http://news.discovery.com/space/private-spaceflight/tiny-thumbsats-aim-to-bring-space-to-all-151026.htm <comment><USER2> they quoted $20k (ballpark) per mission - that strikes me as a little high for 25g to LEO. What is that paying for?

Using the old benchmark of $10k per lb to LEO 25g could cost $550.

Cubesats weigh up to 1.3kg and cost about $100k to launch ([https://en.wikipedia.org/wiki/CubeSat#Costs](https://en.wikipedia.org/wiki/CubeSat#Costs)) - so that works out to $2,000 for 25g.

Is that extra $18k going to bespoke mission planning work or amortized development costs or really great t-shirts?

This is very exciting, of course. I'm tickled by a non-game web-form having this label: "Select how many satellites you wish to launch"

</comment><comment><USER3> I keep reading about things like the Kessler Effect ([https://en.wikipedia.org/wiki/Kessler_syndrome](https://en.wikipedia.org/wiki/Kessler_syndrome)) -- in fact, even here on HN.

Wouldn't launching numerous micro-satellites into orbit significantly speed up the accumulation of space debris that will eventually be hazardous?

<comment><USER2> These are meant for very low orbit where they re-enter within weeks.

The biggest orbital debris problem is explosions leaving many thousands of struts spreading out over their own special orbits. I wonder which is better from a debris standpoint : the current mega-satellites or a swarm of micro- satellites (with much lower explosive potential, each). There could be a counter-intuitive result where smaller, simpler, less-energetic satellites could mitigate the orbital debris problem.

<comment><USER4> Individually, micro-sats will have much less momentum at the same speed. In the event of a collision, not all the mass of the micro-sats will necessarily impact the other object, either.

By way of analogy, you would probably rather be shot with buckshot than a cannonball if you wanted an open casket.

</comment></comment></comment><comment> david-given See also Pocket Spacecraft:

[http://pocketspacecraft.com/](http://pocketspacecraft.com/)

These are mylar disks about the size of a CD with circuitry and solar panels printed directly onto them, with a metal stiffening wire around the edge that doubles as the antenna. They're planning on launching hundreds via a three- unit cubesat mothership. Last year they ran a Kickstarter to try and get a swarm of these into lunar orbit; they didn't make their goal, but they're going ahead anyway.

They mass substantially less than a gram each!

They're so light they reckon that they'll survive reentry into Earth's atmosphere; if you buy one, you get your name and address printed on it so that if someone finds it they can post it back to you...

</comment><comment><USER5> Cubesats can have sensors, radios, propulsion. I'm wondering why this all doesn't scale down to thumbsats. Particularly propultion. Only very tiny impulse is needed to move very tiny mass. Why not a thumbsat Mars mission?

</comment><comment><USER6> Interested in hearing what sort of experiment would be worth doing with one of these (I'm genuinely clueless).

<comment><USER4> Off the top of my slightly drunk and exhausted head:

Hands-on education opportunities for students.

A Dyson swarm could theoretically watch and record space in all directions all the time. We could (with great expense) build something like that in orbit around the Earth. These could be used as a proof-of-concept or to locate problem areas that are difficult to brainstorm on Earth.

I'm sure there are some astroimaging applications, though without knowing the specs of the sats I'm not sure what they might be. My first thought was gathering data outside the atmosphere to correct images taken on Earth.</comment></comment>


Manipulating an Indian politicians's tweets is worryingly easy to do - <AUTHOR> https://techcrunch.com/2019/02/13/india-politician-tweets/ <comment><USER2> I mean this actually makes a lot of sense to me in that in the US (my location) the majority of talking points, memos and even verbatim legislation is furnished by think tanks and 'public interest' groups with the money to fund and push their own agendas. Our politicians are already taught to repeat or support whatever copy they are given, without understanding the issue or implications. Critical thinking skills often seem at odds with the current political climate.

</comment><comment><USER3> TL;DR: a campaign made its campaign documents (draft tweets)writeable to a large group of people, someone social engineered into the group and edited the documents

<comment><USER4> Well while that is troubling enough, the fact that the people behind these accounts representing _ministers running a country_ do not read them before posting it for millions, is also pretty worrisome.

</comment></comment><comment><USER5> This is just insane.</comment>


Fastcore: A library that extends Python with new features - <AUTHOR> https://fastpages.fast.ai/fastcore/ <comment><USER2> This library reminds me a lot of the code I've seen from junior developers trying to make things "cool" by removing a few characters of typing in exchange for library abstractions that create headaches down the line. I think features like this take years to naturally evolve in a codebase, on an as needed basis. And once that code base has evolved to reach something resembling non idiomatic Python, it can be quite hard to integrate new devs into the team. Such transitions into custom dsls or nifty tools are inevitable for large code bases, but I try to minimize it as much as possible, even when it hurts productivity. Long term maintainability is more important to me.

<comment><USER3> I know what you are talking about in general, but most of the stuff in this library seems to either add clarity or help prevent errors. The problem of kwargs where you end up with a bunch of confusion on documentation is definitely a real thing.

Multiple dispatch is also a great thing as well. You don't realize you need it until you try implementing something unification algorithm.

Compose is nice for reducing the mental overhead of reading nested expressions. However, I do wish they took a line from lodash and implemented flow instead (like compose but reversed so the first argument is invoked first, then the output of that is fed into the second, and so on).

Syntactic sugar is not bad if it increases signal to noise when reading code or if it prevents erroneous usage.

<comment><USER4> Ok but what's with the pre post meta init thing? Let's see a junior run a debugger through that! Dropping one line of code costs several stack frames in your debug session.

<comment><USER5> It's a feature from the standard library. However it's only normally available in dataclass. fastcore simply brings the same functionality to other classes too.

<comment><USER6> dataclass has __post_init__ as a mechanism for doing what you'd normally do in __init__ besides what dataclasses do in the generated __init__, because the generated __init__ means you can't do it in __init__, and otherwise you'd have to override (and replicate the function of) the generated __init__.

It is not equivalent to PrePostMetaInit.

</comment></comment></comment></comment></comment><comment><USER7> I dislike some of these. Some are cool, like 'Self', but giant "swiss army knife" libraries feel odd.

> Avoid boilerplate when setting instance attributes

dataclasses[1]

> Type Dispatch

functools.singledispatch works with type annotations[2]

> A more useful __repr__

dataclasses[1]

> A better pathlib.Path

path_object.read_text()[3]. The pickle stuff is interesting, but I don't see the value over just pickle.load(path_object). Monkeypatching Path to add this fees odd and unpythonic.

1\. [https://docs.python.org/3/library/dataclasses.html](https://docs.python.org/3/library/dataclasses.html)

2\. [https://docs.python.org/3/library/functools.html#functools.s...](https://docs.python.org/3/library/functools.html#functools.singledispatch)

3\. [https://docs.python.org/3/library/pathlib.html#pathlib.Path....](https://docs.python.org/3/library/pathlib.html#pathlib.Path.read_text)

<comment><USER8> Using pickle for "Path.save/load" feels like a shortcut to me that is inappropriate for many circumstances, since loading a pickle in Python literally means running code from that pickle. It's basically eval(Path.read()). It's not the kind of trust relationship that I would typically expect from a load/save pair.

> Wait! What's going on here? We just imported pathlib.Path - why are we > getting this new functionality?

If you are writing a library and this is part of your expose, think long and hard.

> Path.ls

Highly gimmicky, doesn't support globs. Arguments are "n_max, file_type and file_exts", in that order. n_max seems largely pointless for real programs and like a workaround for a poor REPL for interactive use. The difference between the last two arguments is that the first one also accepts mimetypes (does this call "file" on every file it sees?).

Arguably the signature of a "Path.ls" should rather look like "Path.ls(glob='<star>', <star>, files=True, dirs=True)" and it should probably not return a bunch of strings.

<comment><USER5> Look closer. It doesn't return strings.

<comment><USER8> Distinction without difference, since Path is just sugar around a string. Directory listing functions should generally return something that mimics dirent/WIN32_FIND_DATA to avoid double work. For example, filtering for file type can typically be done without an extra stat call per file.

</comment></comment></comment></comment><comment><USER9> > Wait! What's going on here? We just imported pathlib.Path - why are we > getting this new functionality? Thats because we imported the > fastcore.foundation module, which patches this module via the @patch > decorator discussed earlier.

This is a recipe for disaster. Too much magic that makes it harder to debug. Especially for junior developers or people less experienced in python.

I've seen fast.ai code and in terms of good practices it violates a bunch for the sake of convention. A good example is the `from module import *`.

<comment><USER5> That's not a good example at all.

Every fast.ai module defines __all__, and is carefully designed to allow "import *" to be used safely. I'm not aware of any other library that goes to this trouble.

<comment><USER10> Not having _all_ is just part of the problem. With "import *" you also unknowingly load and potentially overwrite symbols. If you specify each symbol you use, it's very simple for even the most basic linter to figure you are doing something wrong.

<comment><USER11> Even beyond that, if you've imported `from foo import bar` and then `from something import *`, it might work just fine. Then you upgrade the `something` module, and it happens to now include an item named `bar`, and you're suddenly breaking your existing usage without ever having changed your code.

Star imports are convenient, but dangerous in so many subtle ways. There's a very good reason that every major Python linter will call this out as bad behavior.

</comment></comment></comment></comment><comment><USER12> Monkeypatching anywhere except unittests is a nono for me. It adds some black magic you need to know before reading the code.

Am I reading the standard pathlib.Path or the monkeypatched one ? If I have a bug with it, it comes from the standard library or the patch introduced silently ?

Remember the zen of Python:

> Explicit is better than implicit

And I would personally prefer a unification library ( [https://github.com/mrocklin/unification/](https://github.com/mrocklin/unification/) ) over the type dispatch proposed here. It's just more powerful and closer to pattern matching if that's really what you want.

<comment><USER13> > Monkeypatching anywhere except unittests is a nono for me.

What do you think about adding pprint to builtins so that you don't need to import it each time when debugging? (Or, alternatively, so that you don't need to add it to the top of every single file?) It seems kind of wrong, but the alternatives are bad also. I'm not sure why Python didn't do this themselves when they added breakpoint in 3.7.

<comment><USER14> Monkeypatching in one application is maybe okay. You really want pprint in builtins, fine, who is it really hurting?

Monkeypatching in a library like fastcore that many other people use is really bad. All sorts of bugs and incompatibilities will happen down the road, as software becomes dependent on your monkeypatch without anyone realizing it.

</comment></comment></comment><comment><USER15> Too clever, too much magic. I remember I used to create such things in my projects in my earlier days as a dev and was quite proud of how compact things were and how much I understand my way around the language that I was able to come up with it. But at the end of the day, these things have a much higher price than it seems at first. Sparing a few lines here and there is not worth confusing your code's readers or yourself in a year. Standard established "pythonic" solutions are preferable.

Some are nice functions, I guess all of us have our collection of utils that we carry around projects and it's certainly nice to have some of them collected in an installable library. But I'd prefer to have them separately in small, separately installable modules, similar to "more_itertools".

delegates: Maybe it's useful for auto-completion in notebooks.

store_attr(): Too confusing.

Avoiding subclassing boilerplate: don't, it's too confusing. Type dispatch: perhaps, but I think isinstance is okay too.

A better version of functools.partial: Ok, docstring is kept. Could be even changed in the standard library.

Composition of functions: Okay, could be an addition to functools in the standard library.

A more useful __repr__: Good.

Monkey Patching With A Decorator: Please don't.

A better pathlib.Path: I don't think loading pickle should be a method of Path objects. I already dislike pathlib putting read_text as a method of Path. Why not Path.read_jpeg_image()? Path.save_mp4_video() etc. Also don't monkey patch Path please.

Self: too confusing, little upside to it. It makes things look like the function is being called, while actually only a lambda is produced. Too much magic.

in_notebook(), in_colab(), in_ipython: Useful.

The L list: the numpy style indexing is nice, but you may as well create a numpy array.

</comment><comment><USER16> Fastai/Fastcore are fascinating in their emphasis on interactive computing in notebooks. I think that starting from the assumption that users will be

(a) primarily using the abstractions in this library interactively

(b) to do analysis, or experiment with many different implementations of similar functions

(c) in long-lived sessions where re-running to the same point may be expensive in time or compute, or impossible due dependence on cell execution order etc.

makes their design choices make more sense to me.

Lots of the functionality identified here sort of nice if you're in a traditional environment, but imperative if you're in (or writing for users in) a notebook environment. For example, the emphasis on preserving propagating signature information in function objects themselves makes sense if you're relying on `inspect` to provide IDE-like autocompletion. The emphasis on easy monkey-patching and psuedo-generics makes sense if you're interactively working with classes in modules you don't control, or can't cleanly reimport.

Not only that, fastai/fastcore themselves are written in Jupyter notebooks via their literate programming environment nbdev [1]!

I don't know that there's a point here beyond a bit of begrudging admiration for how far they've pushed the notebook platform. It makes for a library (and a Python) that looks and feels just a few degrees off-axis from much of the rest of the ecosystem...

[1]: [https://nbdev.fast.ai](https://nbdev.fast.ai)

</comment><comment><USER14> This library reminds me of fast.ai itself. It's cool how you can do so many things with a few lines of code, and I was impressed the first couple times I used it. Over time, I started to run into problems when I wanted to do something beyond the initial demo. Many parameters are undocumented, functions do something automatically that's often nice but there's no clear way to undo it, and side effects are scattered about. I would prefer code that was slightly longer, but simpler and more pythonic.

</comment><comment><USER17> Not sure if this is an elaborate prank or a real attempts at making Python more Java like.

I stopped reading when the author suggests using

class NewParent(ParentClass, metaclass=PrePostInitMeta): def __pre_init__(self, _args,_ *kwargs): super().__init__()

</comment><comment><USER18> Longtime pythonista and co-organizer of PyATL here. I appreciate the goals of the library and understand the points being made in the code. There are certain things that python has acquired over time that are not as nice as they could be. Or maybe we can say that momentum to improve them reduces over time.

One of these things is the __init__ method. It is not named in a clear manner and can be verbose. The alternative proposed with store_attr is close, but still falls to be descriptive. Ideally, I'd just adopt the keyword "constructor" or "initialize" and have it be synthathic sugar for __init__. I do like the fact that it provides a shorter way to initialize things. That could be adopted with no drawbacks as long as we keep named parameters.

I congratulate and welcome such ideas. Ill invite the library author(s) to join the python core team and discuss the ideas with them. It can take time to get new things into a project like python, but we cant grow a language by doing the same thing over and over. Languages need to evolve (to a certain extent) over time.

<comment><USER5> Thanks for the message!

The challenge here is that fastcore is a deliberate attempt to study the design axis of "what would happen if we focused on Python's dynamic features, and gave up on static analysis entirely".

Using it effectively really requires a live coding environment, such as Jupyter Notebooks (which we do all our coding in, using nbdev). The majority of Python programmers are not currently using such an environment.

In addition, some of the design choices are literally working around Python design choices which we disagree with, such as the recent change in Python where StopIteration is converted to a RuntimeException, which broke all of our composition of generators.

There are some things, however, which might fit into Python, such as:

\- Our ProcessPoolExecutor takes `0` as max_workers, to mean "run in serial", which we find very helpful for debugging

\- Something like our `bind` (but less hacky) would be nice

\- Multiple dispatch would be great (although our version is customized for data processing - a generic python one would be a little different I think)

\- Would be nice if `partial`'s repr showed the original docstring

\- Our `delegates` decorator might be worth stealing

<comment><USER18> Appreciate the response. Would it be OK if I reach out through email? Id like to extend a friendly professional relationship between fast.ai and PyATL.

My email is in my profile :)

</comment></comment></comment><comment><USER19> Some of this looks excellent. E.g. I occasionally add features like the kwargs delegate in my own code, and there are plenty of places in scipy where that would be an improvement.

Other bits of it aren't drastically better than the standard library. Their typeddispatch is undeniably useful, but functools.singledispatch covers most use cases, and it'd be a shame to pull in all of fastcore for a single feature that's probably covered by another library (e.g. the multipledispatch library).

Some of this is horrifying. There's nothing wrong with the PrePostInitMeta per se....but I guarantee that's going to be a footgun down the line, and IMO if somebody isn't able to comfortably write that metaclass themselves they probably shouldn't be using it.

<comment><USER5> PrePostInitMeta is just adding what's already in the stdlib dataclasses, but making it available to other classes too.

<comment><USER20> Dataclasses have __post_init__, but they don't have a __pre_init__, do they? From what I can tell, PrePostInitMeta adds a completely new __dunder__ method with pre_init.

</comment></comment></comment><comment><USER21> I didn't find a single thing that I liked here.

Rather, I thought these syntactic layers made things worse rather than better, in terms of clarity, understandability and ease of writing simple, straightforward code.

</comment><comment><USER22> Quick warning Jeremy Howard, the primary author of fastcore, doesn't give two s __ts about PEP8 or other Pythonic conventions. He 's entirely pragmatic and focused on rapid prototyping and experimentation pipelines. If you like that then fast* libraries will probably appeal. If however you see `from foo import *` and cringe then you're going to have a lot of mental speedbumps to get past with this library.

</comment><comment><USER23> > Whenever I see a function that has the argument __kwargs, I cringe a little

I cringe a little when someone says a straight forward thing should be replaced by magic middleware.

</comment><comment><USER24> I actually think the "delegates" syntax for kwargs or something like it is worth adding to the standard library. The rest feels like it's either covered by dataclasses or not something I personally want in python. Except pre_init and post_init instead of calling super().__init__. But that's up there with if __name__ == "__main__" for being an annoying idiosyncrasy that's too hard to change.

<comment> ayush--s There is functools.wraps in standard library for similar "delegation" in decorators

</comment></comment><comment><USER25> I hope that fast.ai courses do not and will not use this library - it would increase required effort to understand the code in lessons.

<comment><USER26> This is the fastai library used: [https://docs.fast.ai/](https://docs.fast.ai/)

You don't directly use fastcore for most things, but fastai underneath uses fastcore. If you want to extend fastai for custom and advanced tasks, fastcore is actually very helpful to use.

</comment></comment><comment><USER27> Nice work! It's often hard to communicate complexity and justify the abstractions, but nevertheless it's a cool demonstration of what's possible in Python. It's worth thinking about simplifying code and DSLs, as long as you don't go too crazy.

My personal concern would be the lack of typing annotations (IMO very important to have in a 'standard library'), and even if they were present I doubt something like `store_attr()` would be typeable without a mypy plugin.

Personally, I sometimes trade boilerplate and tolerate code duplication for the sake of the code being transparent to static analysis.

</comment><comment><USER28> I'm only really a fan of @typeddispatch and the @patch decorator. They don't do anything weird and follow the standard Python decorator pattern.

</comment><comment><USER29> Love the fast.ai ecosystem.

Most don't appreciate how critical it is for an ML researcher to be able to play. The best research in fields like that require a tight feedback loop, since we lack an intuition or logical framework from which to reason about these systems. Instead we have to throw shit at the wall, inspect what sticks, and repeat 1000x. The vast majority of evolutionary leaps that I've seen in ML and fields like it have been from "stupid" stuff no classic researcher in their right mind would try. Instead it arises out of a sense of curiosity and playing around. "I wonder what would happen if we used only attention layers? Wouldn't that be silly?" ...

Tooling is a huge part of that. The cost of iterating needs to be low. If you have to rebuild your entire training loop to try a stupid idea, you're not going to try that idea. That's what makes ecosystems like fast.ai so valuable. The whole thing is designed for fast, cheap, highly malleable iteration.

The design decisions required to achieve that have resulted in a library with its fair share of sharp corners. It's a bit of a holographic codebase, where functionality is splintered all across the surface of it. The focus on Notebooks and code jamming leave engineering traditionalists wanting. Etc.

Don't get me wrong. When I write write most other code, I put my engineering glasses on. I want code to be clear and transparent, maintainable, idiomatic, etc. It's just that in ML play is more critical.

So it's important to look at fastai's codebase through that lens. I disagree with commenters here criticizing the codebase as being akin to what an inexperienced engineer would write. Instead it's clear to me that the fastai developers have made numerous very conscious decisions to break convention in support of their goals. They've done that well. And I think it's all in support of their "fast" ideal.

Honestly if I were to lob real criticism at fastai, it would be to say that it needs more documentation. I know, that's a weird criticism given their use of literate programming and the courses available. But ... for example, I have such a hard time with the DataBlock API. I didn't come out of the courses with a good understand of it and the docs are IMO too lacking to sufficiently teach an intuition about it. I had a model where the "y" variable is generated by the model itself. Was never able to figure out the idiomatic way to express that in fastai. Had to fight the DataBlock API and the training loop system tooth and nail to fit it in. I'm sure there's a way to do it. It just wasn't apparent to me.

Of course, that's a _criticism_, not a complaint. The work of Jeremy and co is just an incredible gift to the world. I don't think it speaks ill to say the docs are lacking. That's true of the vast majority of open source software. Documentation is plain _hard_. And the courses, while they touch on the library a good amount, are primarily focused on teaching ML concepts ... as they should be.

Hell, I bet they are aware of that and their switch to literate programming is probably driven by it. It's probably just early in that cycle and things will continue to get better.

I hope it's clear this comment is more about love of the library than a complaint about what is otherwise an amazing thing.

<comment><USER30> [Author of the blog here]: Thanks for that. Indeed, there is an opportunity to document the library better. That's why I decided to roll up my sleeves and spend an extended period of time documenting fastcore. It was an amazing educational experience for me. I didn't know that python was this extendable, and I previously wasnt aware of concepts like multiple dispatch. I think there are other contributors currently working on other portions of the library as well. The literate programming environment, which made its serious debut in version 2 (that was just released), definitely encourages this and makes this process really easy.

</comment></comment><comment><USER31> All libraries extend their language with new features.

A lot of the proposed value-add seems like the authors aren't aware the built- in `type()` can dynamically modify class definitions.

Getting rid of `hex(id(self))` in `__repr__` is regressive UX.

@typedispatch seems like both a slow way of using 'isinstance()' and a FOMO C++ virtual function bloat.

<comment><USER32> What does typed dispatch have to do with virtual functions in C++? This type of dispatch happens at compile-time in C++ and has nothing to do with "bloat" or even virtual functions.

<comment><USER31> What's it offering that's more idiomatic than the `isinstance()` it breaks down to other than resembling virtual functions in C++?

What's costlier, the new stack frames plus conditional for a decorator or the `elif isinstance()`s in one function definition?

How does a programmer reference the correct function definition by name if they're using @typedispatch instead of `isinstance()`?

<comment><USER32> I get the feeling that you don't know what virtual functions in C++ are.

I'd suggest you stop comparing typed dispatch to virtual functions in C++, because they have nothing in common. If you want to draw parallels, make sure to use a suitable analog.

<comment><USER31> I'm thinking of templates, if that helps.</comment></comment></comment></comment></comment>