Just-in-time packager for GitHub repositories - <AUTHOR> https://www.jitpack.io <comment><USER2> Using source repositories as packages sounds like an awful idea. Not only do you have to deal with runtime dependencies, but also compile, test, and other dependencies. What happens if the tags are not numbers? What if a tag you are using is deleted?

Go ask the Erlang community about the issues they have with using GitHub repos as "packages". Here is a discussion about packaging: [http://mostlyerlang.com/2015/01/27/054-packages/](http://mostlyerlang.com/2015/01/27/054-packages/)

<comment><USER3> I think you might be misunderstanding how this service works.

The Github repositories don't serve the packages.

Jitpack checkouts the repository code, builds it, and serves it like a normal maven repository. Here is a sample repository [https://github.com/jitpack/maven-simple](https://github.com/jitpack/maven- simple) and the maven repository it is served from: [https://jitpack.io/com/github/jitpack/maven- simple/0.1/maven...](https://jitpack.io/com/github/jitpack/maven- simple/0.1/maven-simple-0.1.pom)

<comment><USER2> I got that it is building a binary and basically placing it in a local repo. I also get that it is looking for a binary from a GitHub Release first, which is mildly better.

I still think solutions like this are putting your build process at great risk. You will have build issues that are no fault of your own and completely out of your control. Unless you clone the github repository and then use that as your source. And cloning will have issues and risks of its own.

EDIT: See pron's reply for describing the risks: [https://news.ycombinator.com/item?id=9029870](https://news.ycombinator.com/item?id=9029870)

</comment></comment></comment><comment><USER4> A very nice project that reduces the barrier-to-entry of Maven artifact publishing, and saves an open-source project author a couple of hours of annoying work, but I have two concerns:

1\. It might cause clashes for repositories that _are_ hosted on a public Maven repository. Maven artifacts have one name, and one name only. Now, they may have two (with versions that are not necessarily aligned, to boot). This can wreak havoc on transitive dependencies.

2\. Because git tags can be deleted and re-created, this repository breaks one of the strongest guarantees made by all (public) Maven repos, namely, that once a release artifact is published, it can never, ever change. This makes artifact versions unreliable.

In short, release artifacts must be unique and must be immutable; this project breaks both. That _will_ cause actual runtime bugs that are virtually impossible to catch (and are bound to cost much more than the one-time setup -- per organization! -- of Maven hosting).

The sort of capabilities and guarantees required for source code management (and are provided by SCMs like git) are not the same as those required of binaries.

<comment><AUTHOR> Thank you for the compliment, Ron. Glad you see an upside to JitPack:) Regarding your concerns:

1\. If you add JitPack as a respository then Maven will still check central first. If the artifact is in central it won't bother going to jitpack.io. Also JitPack enforces your group name to point to your GitHub repo to avoid name clashes.

2\. Yes, git tags can be deleted but you really shouldn't do that on a public repo anyway. And most of the time people releasing with tags don't change them.

JitPack is built for the common case and not for the edge cases. And we believe that just because there are rare ways to break the system doesn't mean we should keep a high barrier-to-entry. Sharing your work should be easy and it should be easy for others to try your work.

<comment><USER4> > Glad you see an upside to JitPack

Of course! It's very cool! But I don't think it can be used in production (or even in development of important projects).

1\. Say I am the consumer and I use a library author's GH repo with JitPack. Then, when the author releases her library to Central/jcenter/Clojars/whatever, she's free to choose any group name she wants (JitPack can't force her to do anything), and once she does that -- and another of my dependencies transitively depends on that artifact -- I am very likely to get a bug that's very hard to track down. Alternatively, once she publishes to central under a different group name, you might choose to simply break my build, which is also undesirable.

2\. Maybe people shouldn't, but they do it all the time. I've done it on occasion, and I'm pretty sure I'll do it again. When that happens -- there's another impossible-to-find bug.

> JitPack is built for the common case and not for the edge cases.

Which means it's a binary repository that is _undependable_. And remember, those edge cases are out of the library consumer's control.

> just because there are rare ways to break the system

Unfortunately, they are not rare. First, most (actually, virtually all) production-quality Java/JVM libraries are already hosted on some public Maven repo, and any library that becomes production quality is likely to publish the artifacts, so breakage 1 is almost certain. As to 2, you should really get the data from GitHub. I think you'll find that deleting and re-creating tags is a lot more common than you think.

But even if those cases were rare, they can be very, very costly. We're not talking about a breaking build, but actual runtime bugs that might take days to track down.

> doesn't mean we should keep a high barrier-to-entry

True, but the barrier-to-entry for the author is already quite low; jcenter makes it almost nonexistent.

What you've done is something else: you've let the library _consumer_ control the artifact, so you've lowered the barrier for them, which is great! However, by doing so you've ensured that the _author_ will almost certainly inadvertently introduce really, really tricky bugs into the consumer's project, bugs that they can neither control nor track down.

Still, JitPack is a great way to try someones work-in-progress code, to see if it might be worth it to help them make it production-quality. I am sure to give a try some time.

</comment></comment></comment><comment><USER5> It's an interesting concept. Instead of you uploading binaries the server builds and serves them. Any plans to support other build systems?

<comment><AUTHOR> There are! Probably Sbt first and then Leiningen.

<comment><USER6> This is brilliant! Another vote for SBT!

</comment></comment></comment><comment><USER7> Amazing, this was sorely needed!

</comment><comment><USER8> Nice! This should make it a lot easier for developers to publish their projects.

<comment><USER9> I thought the same. Publishing small JS libs is easy, just drop a Bower file and register it. For maven I need to build it, sign it, get access to a central repo (can take days) and then finally upload it.

Of course, this means that the quality is often much higher, but I think the barrier is a bit too high as it is right now.

<comment><USER4> > For maven I need to build it, sign it, get access to a central repo (can > take days) and then finally upload it.

Those are the steps required to host your artifacts on _Maven Central_. Hosting on other public Maven repositories requires less work, and if you host your own, you set the bar (you can even turn a GitHub repo into a Maven repo, and upload with a git push).

Having said that, if you've built something worth using, the extra steps required to publish to Maven Central are both negligible with respect to your overall effort, and are more than worth it (getting the initial access usually takes hours, or one day at most, and only has to be done once for the entire organization/author).

So far, the only projects I've seen that are _not_ already hosted on Maven Central or any other public Maven repository (jcenter, Clojars, java.net and others), are usually short programming exercises or works-in-progress.

</comment></comment></comment><comment><USER10> Love this project, almost surprising that nothing like this exists today for the maven world.

<comment><USER4> It does. There are gradle/Maven tasks to upload your artifacts to public Maven repos, and they're easy to set up so that Travis publishes them whenever you create a tag.

<comment><USER11> But this allows anybody to depend on something that somebody else wrote even if he forgot to publish (for whatever reason). It reuses the upstream github namespace instead of creating many artifact group ids when random people publish somebody's else package

<comment><USER4> Sure, which is why it is sometimes useful. But people who make Java libraries that are production quality, usually don't forget to publish, and if they do, they are quickly reminded to do so. I am not aware of any production quality Java library from the past five years that isn't on Central/jcenter etc.. Older ones aren't on GitHub, either. In fact, supporting sourceforge might be more useful than GitHub, for that reason.

</comment></comment></comment></comment><comment><USER12> Does jitpack currently support repositories in Github Enterprise?

<comment><AUTHOR> Currently not. Actually you are the first to ask and it sounds like a great feature:) most likely that would mean you host jitpack on premises. It's something we don't provide yet but it is on the road map.

<comment><USER13> Wonder how high the usage would be. If you have github enterprise setting up Nexus and having build process publish to it seems easier than this build server.</comment></comment></comment>


Practicing empathy can teach us the value of diversity and inclusion in tech - <AUTHOR> https://medium.com/indigoag-eng/practicing-empathy-can-teach-us-the-value-of-diversity-and-inclusion-in-tech-5db593ab8f58 <comment><USER3> No, it really can't and everyone needs to stop pushing this corporate narrative. This is another one of those feel-good gestures that doesn't really result in any real progress.

Can you imagine the next time the topic of gender or bamboo ceiling pay comes up, we can just hug it out... right? No. Real laws need to be enacted to enforce good social policies, with real consequences to bear for those who break it. Even more relevant today, there are reports of police 'throwing' down their riot shields to join protestors, only to shoot them with rubber bullets a half hour later. Don't be fooled by kumbaya moments, solidarity and collective bargaining is the answer. And that will lead us to enact laws that will benefit the people, as history has shown us again and again.

Let's form a tech union already.

<comment><USER4> Hi, I'm the author of the post. Thanks for reading and for the honest criticism.

Do you agree that convincing more people in the tech industry to genuinely understand the inequality that exists, and the value of inclusive practices, is a prerequisite to achieving the impactful policies you cited? How do we get laws enacted or create a successful tech union while the white and male majorities in tech continue to feel indifferent or only passively supportive of these policies?

The intent of my post is to persuade people like myself to care about social justice, with a specific emphasis on the tech industry, in order to get more people acting towards substantive change. Over and over again, I've seen presentations, seminars and studies fail to convince people that diversity and inclusion are issues employees everywhere needs to be personally invested in. Instead of these generic and emotionally distant approaches, I argue that we should look to real-life examples in our own workplaces.

<comment><USER5> I enjoyed your thoughtful post. Teams and companies are made up individuals. Individual actions matter, and I do think if more people tried: listening with a mindset of learning instead of arguing, trying to make sure that people can finish a sentence, and generally keeping a positive, fair, respectful atmosphere, that would do a lot more than the emotionally distant approaches.

</comment></comment></comment><comment><USER6> One way you can improve diversity in your workforce is to actively seek out underrepresented communities when you are hiring.

You can't control who is applying to your job postings, but you _can_ control who you reach out to to fill those positions.

If you can find people who don't fit the white male programmer mold and let them know about the jobs you have available, you're making the choice to prioritize diversity and inclusion in your teams.

<comment><USER7> Don't under represented people in tech use Stack Overflow and Linked In?

We got a number of women applying for a front end position that we posted recently. None of them met the criteria that we asked for (5 years experience).

<comment><USER8> what's your point, exactly? men are way more likely to apply for jobs when they don't meet the requirements than women are, generally.

if you're legitimately using years of experience as a /hard/ cutoff, you're selecting for a very interesting signal that i would argue does not really optimize for candidate quality.

of course, your tech stack may warrant that requirement - i don't care - <USER2> this idea that "there are no qualified women/underrepresented groups" conveniently feeds onto itself - underrepresented groups see themselves as less likely to get the job, so don't apply, so don't build up resumes, probably leading to them exiting tech, etc.

at the end of the day, any true improvements to the system are going to make white men uncomfortable. yes, looking for candidates in particular fora associated with women/minorities/etc is positively boosting their chances vis- a-vis white men who aren't on those lists. that's the way it is going to have to be.

<comment><USER7> We got lots of underqualified candidates and the few that did have anything more than a couple of years experience were all male. Where should we have been looking for more "under represented" candidates? And why should we be looking for under-represent candidates?

<comment><USER6> Look at meetups, social groups, conferences that serve underrepresented communities (both locally and nationally).

You should be looking because diversity of experience and opinion helps you build a more well-rounded product that your users can empathize with. Alternative and comprehensive perspectives will only help your group thrive and expand their reach as well as build a sense of community and culture on your teams.

<comment><USER9> >You should be looking because diversity of experience and opinion helps you build a more well-rounded product that your users can empathize with.

When I use HN I don't wonder if the person that added the "reply" button is black or not... I don't really understand this. (I am black)

<comment><USER10> IMHO, it's corporate milquetoast: people can't actually tell their bosses 'because we want to be decent people' so these mantras became a way to tie inclusionism to the bottom line, thereby making it fiscally acceptable.

AFAIK, there is precious little actual research pointing either way. No doubt it's an extremely nebulous subject to study. Groupthink is certainly a thing, but I haven't seen strong evidence linking diversity hiring to the particular outcomes it is claims to treat.</comment></comment></comment></comment></comment></comment></comment>


Theory of Everything Controversies with L Smolin, S Hossenfelder and E Weinstein - <AUTHOR> https://www.youtube.com/watch?v=CJx3gLkebIA <comment><AUTHOR> The whole show is great, but there's an interesting back and forth between Sabina and Eric starting at [https://youtu.be/CJx3gLkebIA?t=1h02m08s](https://youtu.be/CJx3gLkebIA?t=1h02m08s) with some new explanations of Geometric Unity.</comment>


Ask HN: How do you become the best at something? - <AUTHOR> I realized that while I'm fairly competent at some things, I'm not really top percentile in anything save my ability to communicate. It's really weighing on me, and I constantly feel like I have imposter syndrome.
Through it all, I've found a love for ml, and I'd like to spend the next 4-6 months diving deep, validating some hypotheses, and becoming a capable researcher/ml engineer. But my insecurities force me to constantly try and productize my learning, and I constantly get distracted thinking about how folks are building incredible companies and I'm losing time to make an impact. I'm all fluff, no depth.
How do I gain mastery? <comment><USER2> Why become the top percentile of anything?

I see your motivation is seeing your peers "get ahead" of you. We all do through that. I've gone through that. I chased after something because I wanted to keep up with my friends. It made me miserable. It's years long misery to achieve something that is unhealthy and not what I decided what I wanted for me.

I'd avoid being allowing others progress and achievements place pressure on you.

<comment><USER3> I agree. I've met people who are widely regarded as "one of the best" in their domain. ALL of them were extremely lacking in most of their other skills. Personally, that is not appealing.

</comment></comment><comment><USER4> I read The Will to Keep Winning by Daigo Umehara ([https://www.amazon.com/Will-Keep-Winning-DAIGO-UMEHARA- ebook...](https://www.amazon.com/Will-Keep-Winning-DAIGO-UMEHARA- ebook/dp/B01JOEKKWU)) last year. Daigo is arguably the best street fighter player in the world, for _generations_. (this guy competed in Street Fighter 2 back in the 90s, and still competes in SF5 now) A lot of the book is about his personal stories, ups and downs, but through the book you can really see what it takes to become the absolute best at something. (hint: practice, practice, practice all day. Keep your passion.) One fun part in the book was how he lost his passion for fighting games in the 00s for a few years, and he got into the professional mah-jong scene in Japan. He actually saw a path to becoming one of the best mah-jong players in Japan. At a certain point he decided to just get back to fighting games which he loved most. I think it goes to show when you got the right mentality, you can become the best at _anything_ when you put in enough effort.

</comment><comment><USER5> If you want to be the best at something, first, make sure you are passionate about whatever it is. If you don't care about it, you won't do what it takes. If you are passionate about it, then live and breathe it. Do lots and lots of it. Study it. Read about it. Have posters of it on your wall. Watch every single youtube video about it. Plan your vacations around it as trips where you check out something related to your passion. You basically have to become a one-dimensional crazy person about your thing - whatever it is. Elon Musk lived in his factory. He shot one of his cars to Mars. That's crazy. That's passion. That's how you become the best.

<comment><USER6> Agree. There's no point in mastering something for the sake of mastering something; you reach mastery as just one more step in a long, rewarding journey.

To address the OP's question, you stay focused on X for a while and one day you will wake up to discover you think of X as an old, faithful friend. Stay focused on X for long enough and it will become like another appendage. Stay focused even longer and X will become like your skin.

</comment></comment><comment><USER7> The best way to become the best at something is to choose that "something" wisely. For example, Scott Adams, creator of one of the most successful cartoons:

> Recapping my skill set: I have poor art skills, mediocre business skills, > good but not great writing talent, and an early knowledge of the Internet. > And I have a good but not great sense of humor. I'm like one big mediocre > soup. None of my skills are world-class, but when my mediocre skills are > combined, they become a powerful market force.

More info here (and in Scott Adams' book): [1]

It's like Google AdWords: very difficult to rank highly for one keyword, but possible for a set of three or more related keywords.

Adams alludes to the fact you don't have to be the best to succeed; there are alternate roads to success. Another take on this is "relative expertise." You don't have to be the foremost expert on a subject before you can help others; you just need to know more than the person you're helping.

[1]: [http://sourcesofinsight.com/scott-adams-success- formula/](http://sourcesofinsight.com/scott-adams-success-formula/)

</comment><comment><USER8> Start by picking a small and underserved "something" to master. Then let your expertise expand from there.

Or, you know, reflect on why being exceptional is so important to you. Maybe it doesn't need to be.

</comment><comment><USER9> >>I'm not really top percentile in anything save my ability to communicate.

Being top-percentile in communication is nothing to brush off. It's about finding where to use your top-percentile skills that can be the challenge.

I could be in the top 1% of people who grow green tomatoes, but if I'm not using that skill for something, does it matter? Maybe skill-for-the-sake-of- skill does matter on some level, but maybe I should find a way to use my mastery for something.

</comment><comment><USER10> >> But my insecurities force me to constantly try and productize my learning.

I wouldn't frame the impulse to "productize" something necessarily as buckling to an insecurity.

Deep learning (no pun) is so often the result of recontextualising what you've studied into some new form of your own making. If that's a "product" of sorts, then all the better for advancing your other goal of "building an incredible company."

</comment><comment><USER11> I have just asked a related question and I think you and I share lots of common traits.

Both of us lack of specialization and this is due to lots of factors I'm afraid.

Feel free to read my own issue: [https://news.ycombinator.com/item?id=18136580](https://news.ycombinator.com/item?id=18136580)

</comment><comment><USER12> I don't know, I've never been the absolute best at something.

I think to do that, you have to be born with an extra shot of natural talent. I'm very good at some things, but there is always somebody that's better.

As to getting very good at something-- I think study and hard work are the keys.

</comment><comment><USER13> Eliminate your competitors, obviously.

</comment><comment><USER14> Practice, practice, practice. There is no other way to improve at anything. If you want to be the best, you have to practice as much as you can. Probably will take years or even your whole life to by the best or one of the best. Nothing comes easy in life.

</comment><comment><USER15> The sad fact is, that by the time you get truly good at anything it won't be a marketable skill anymore.

Perhaps this would lead you to the conclusion that you should be a generalist, but nobody hires generalists, I speak from personal experience.

</comment><comment><USER16> 10,000 hours: [https://www.amazon.com/Outliers-Story-Success-Malcolm- Gladwe...](https://www.amazon.com/Outliers-Story-Success-Malcolm-Gladwell- ebook/dp/B001ANYDAO)

<comment><USER17> Not this, go to the source rather than Gladwell (Anders Ericsson) if you Google him a bit there's some podcasts where he talks about deliberate practice and he cowrote a pop book called Peak which introduces his major findings. Definitely worth a read as Ericsson is the foremost expertise researcher in the world.</comment></comment>


The Biggest Digital Heist in History Isn't Over Yet - <AUTHOR> https://www.bloomberg.com/news/features/2018-06-25/the-biggest-digital-heist-in-history-isn-t-over-yet <comment> ur-whale One interesting bit is the "laundering through a bitcoin warehouse he bought in China".

I suspect this is actually a Bitcoin mining farm:

In goes dirty money, to buy mining hardware in bulk.

Out comes fresh, never-transacted-with Bitcoin block rewards.

It is fairly hard for authorities to trace the wash: in Bitcoin land, block rewards are the least-tainted kind of coins.

<comment><USER2> But I thought Bitcoin mining hardware was all online-only sales?

<comment> ur-whale We're not talking about buying a couple of miner machines here, but financing a whole warehouse filled with them.

<comment><USER2> Which would make it harder to conceal the dubious origin of the money.

<comment> ur-whale Not really.

From the p.o.v of the seller of mining hardware, he's just selling hardware in exchange for money, and he has no KYC/AML requirement, he's not a bank, he's just a regular business.

And any other company involved in building the mining operation are the same way.

<comment><USER2> Right but the point of laundering is that you have cash you want to legitimize, so it must "re-enter" as cash. But hardware mining sales are all online, not cash, hence my original comment!

</comment></comment></comment></comment></comment></comment><comment><USER3> I've learned to be skeptical when I see law enforcement praising the l337 skillz of their targets.

        > "This guy is in another league, he's like Rafa Nadal
        > playing tennis," Yuste says. "There are few people in
        > the world capable of doing what he did."

It sounds really cool (and budget-justifying) to be chasing some mastermind, and a journalist is likely to pump up that aspect of the story too. Because they know we're reading it to be entertained, for there to be suspense, to enjoy the frisson of a "victimless" crime requiring ingenuity, like Ocean's 11.

Then you find out later it's just a python script probing for default passwords, or someone who learned some of nmap's command-line switches.

<comment><USER4> Yeah; I also have the general impression (admittedly without much data to support it) that IT security at banks and other gargantuan, long-lived institutions is pretty crappy? I would think it's easy to get in, and hard to not get caught.

Anecdotally, I have a friend who briefly worked at a company which exclusively makes software for financial institutions. Their product was a web app that _only_ worked in a version of Internet Explorer so old, it didn't support Ajax. Asynchronous requests were made by changing the src attribute of a 1px <iframe>.

This was in 2015.

<comment><USER5> It is and it is (sorta). I worked in the bank industry for many years and I could have stolen money a hundred different ways without getting caught.

The problem is that in the end the money has to go somewhere or be spent (why else steal it?). Also to live a legal life (house,car,boat) you have to have a source of income/spending that does not set off red flags. If you are a high paid bank employee why even bother? Many (most?) financial type crimes have no statue of limitations so to get away you literally have to get away with it for the rest of your life. The other side is even if you get away you will spend the rest of your life wondering if today is the day you get caught. To be honest I think that is why so many white collar crimes are so brazen looking. I think they would rather go to jail for a few years be done with it and live the rest of their lives with the money they have "lost".

Unless you live in a country like Russia where stealing money from the US is basically legal. Then go for it.

<comment><USER6> _Many (most?) financial type crimes have no statue of limitations so to get away you literally have to get away with it for the rest of your life_

At least in the US, this is inaccurate. Most financial/fraud crimes have a statute of limitations of 3-5 years, both at the state and federal level. Some federal crimes specifically against financial institutions have a SOL of 10 years. Generally the only crimes that have no statute of limitations are punishable by life/death (such as first degree murder). See [https://www.justice.gov/usam/criminal-resource- manual-650-le...](https://www.justice.gov/usam/criminal-resource- manual-650-length-limitations-period)

<comment><USER7> SOL is a timer from time of crime to time of indictment, and indictment doesn't necessarily require knowing the precise identity of the defendant or capturing the defendant.

In GA, fleeing stops the clock, and in WA, "John Doe" can be indicted, subject to some restrictions.

[https://tollefsenlaw.com/statute-limitations-tolled- against-...](https://tollefsenlaw.com/statute-limitations-tolled-against-john- doe/)

</comment></comment></comment></comment></comment><comment><USER8> >> Someone had sent emails to the bank's employees with Microsoft Word attachments, purporting to be from suppliers such as ATM manufacturers. It was a classic spear-phishing gambit.

Microsoft Windows + Outlook Email + Attached word document = the Drake equation for internet security. No matter how secure each of these things are individually, when added together infection becomes inevitable.

Why does outlook have to pass such documents to Word? Why does Word have to open and run macros so willingly? Why does Windows allow word to talk to the internet so easily? I just don't understand the use case these links are meant to address. Are there really so people out there installing software via links inside word documents? That this has to be a seamless user experience? There are so many opportunities to limit such such infections. Why do we still tolerate this?

<comment><USER9> >> Why do we still tolerate this?

This is the real question. The thieves are just a symptom of the real infection: terrible, insecure client software. I'm not sure what the solution is but I am pretty sure it involves Microsoft having skin in the game somehow.

<comment><USER10> I'm sure it doesn't have anything to do with Microsoft's willingness to roll over to the US government (PRISM, NSAKEY).

</comment></comment></comment><comment><USER11> The article doesn't really go into the thieves' backgrounds at all strangely enough. How did Katana end up in the bank heist business? How did he acquire the skills to turn making fake bank transactions into an "art"? I always wonder about the kind of person who ends up in these criminal dealings and where they come from.

<comment><USER12> He probably worked for a bank. Lots of smart people learn the "loopholes" of their trades.

My mom worked at a car dealership and realized that you could steal a car from them and it would be upwards of a year before they figured it out, since that's when they did inventory. Back then, the keys were all kept in an marginally secured cases.

<comment><USER7> Johnny Cash figured how to steal them from the factory

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

</comment></comment></comment><comment><USER13> Am I the only one that finds it suspicious that one of these guys would drop a debit card at a heist?

<comment><USER14> People are always shocked at the stupid mistakes that big criminal masterminds make.

Like the Silk Road guy, "how could he possibly ask on stack overflow using his real name".

And so on.

There are ten thousands different mistakes that you can make, you need to guard against all of them. And against whatever unknown tech exists.

In this story, that dropped bank card turns out to not be that significant. The real breakthrough was identifying another mule through the video surveillance videos, following him to the airport and putting surveillance on the lockers used to store the cash.

He was also emptying ATMs apparently with witnesses behind him. This is like a bad movie. One of those witnesses might as well be an off-duty cop who could just pull out his gun right there.

<comment><USER15> > _Like the Silk Road guy, "how could he possibly ask on stack overflow using > his real name"._

I always had the impression that Ross suffered from the fatal flaw that he didn't think what he was doing was wrong. He was an evangelical libertarian, and I think he didn't see "not getting caught" as the #1 priority the way a profit oriented criminal would.

<comment><USER7> If that was the flaw, then why did he try so hard to remain anonymous?

<comment><USER15> Does posting under your real name about drugs and bitcoins constitute "trying hard?" :)

</comment></comment></comment></comment></comment><comment><USER16> Nowadays everything runs on SAAS, why are banks and other institutions letting key people use MS windows and outlook in the first place. Don't you reduce your risk by like 90% by using Linux clients instead?

</comment><comment><USER17> Reminds me of the book "Stealing the network - how to own a continent", it was a fun read back then...

[https://books.google.fr/books/about/Stealing_the_Network.htm...](https://books.google.fr/books/about/Stealing_the_Network.html?id=TIVArzStPGAC&redir_esc=y)

</comment><comment><USER4> From the headline alone I assumed it was going to be about the tech industry's theft of the world's data

<comment><USER18> And I thought they were going to talk about cryptocurrencies... :)

<comment><USER19> They do say a lot of theft cash ended up converted to Bitcoin. So, at least a measurable chunk of the liquidity in the market is down to this...

<comment><USER20> The authorities often resell the bitcoins so they could reenter the market.

<comment><USER21> I've not heard any cases of bitcoins being "seized" by government authorities yet, although I see that happening in the future as probably inevitable.

Have any examples?

<comment><USER22> [https://www.wired.com/2013/12/fbi-wallet/](https://www.wired.com/2013/12/fbi- wallet/)

</comment></comment></comment></comment></comment></comment><comment><USER23> I thought it was an article about Bitcoin.</comment>


CrashPlan's horrible password reset security - <AUTHOR> http://blog.androgynoid.com/2012/10/crashplans-horrible-password-reset.html

<comment><USER2> This is pretty poor password security, but they also provide other levels of security.

If you use the 2 password method, your backup archive is then further protected by one that you cannot simply reset. If you forget this password, you might as well say goodby to you backups.

The last security method involves using your own keys. This is also not easily reset without destroying your backup archive.

There is at least some comfort knowing that even if the account is compromised, your data is still inaccessible...

<comment><AUTHOR> Yes, I used my own 448 bit key, so no one can see my data. But they still can destroy it, or just change it to where it no longer backs up what I want it to, and I'd have NO IDEA unless I constantly checked my settings.</comment></comment>


Survey data from 1981-2007 says happiness is rising worldwide - <AUTHOR> http://www.scienceblog.com/cms/happiness-rising-around-world-16789.html <comment><USER2> Well, except for those with children of course.</comment>


Ask HN: What are common questions new programmers ask you? - <AUTHOR> I'm curious to learn about what are some common questions new programmers ask.
e.g.,
How do I start a new project? How do I write clean code? How can I be more organized in my work? What should I focus on professionally?
I would love to hear about what questions you or someone new to programming asked. <comment><USER2> "What security should I know?"

Which initially horrifies me and I give an exasperated reply somewhere along the lines of "All of it. None of it. It's easiest to learn how something works once you realize it is the very thing causing your entire system to break." And then I smile.

They're going to make a lot of mistakes in their career and ultimately what's important is that they have the right attitude to learn from them.</comment>


3D Search Engine for Videos -- Beta testing. How could it be COOLER? - <AUTHOR> http://notbing.com

<comment><USER2> I gotta say that I find this almost impossible to use. As I go to click on a video (or words on the main page which when I finally got to one are unclickable) the object I'm trying to hit moves out of the way. Seems like more than a game than an effective way to search.

I gave some thought to 3d UIs a while back, and was thinking more along the lines of direction and depth. Not sure if that works for video I guess it depends on what you find people searching for.

</comment><comment><USER3> pretty sweet. Add a pasta maker to it, and you're on to something.

</comment><comment><AUTHOR> maybe a time machine embedded?</comment>


HTTP/2 is easy, just turn it on… - <AUTHOR> https://medium.com/bbc-design-engineering/http-2-is-easy-just-turn-it-on-34baad2d1fb1 <comment><USER2> 1) My server runs nginx on debian squeezy, even using the newer packages for nginx from upstream, they are built against OpenSSL 1.0.1t matching the system version which does not support APNL. So while I have HTTP/2 enabled, neither Mozilla Firefox or Google Chrome can negotiate to even know the protocol is available for use.

2) HTTP2 forces TLS encryption and compression and several other things making it a PITA to debug as one has to first extract the session keys, then decrypt and decompress the data before one gets something readable. What's more wireshark does not yet have the same level of support for piecing together HTTP/2 as it does HTTP 1.1. And even after all that the data is still a binary format.</comment>


"What happens when you type Google.com into your browser and press enter?" - <AUTHOR> https://github.com/alex/what-happens-when <comment><USER2> Love it! One of my favourite bad interview questions. I got asked this in an interview ~5 years ago. My response was to look shocked... Pause. Then ask: "What do you mean? What detail do you need? DNS? SYN / ACK? HTTP?"

At the point I started talking about syn/acks they just cut me off and moved on to the next question.

Same company (different person) started the phone screen with 'oh so your CV says you know linux, what's the difference between a hard link and a soft link' and was shocked when I knew the answer, declaring the rest of the phone interview pretty pointless - he'd obviously had a bad morning and started with his hardest question.

I've now learnt to see such interview questions as a sign of a workplace with little-to-no learning on the job. Most places that _actively_ encourage learning don't try such things.

<comment><USER3> That's part of the point of the question - which part you go into detail on is a pretty good indication where your strengths lie. Someone who spends a lot of time on DNS and SYN/ACK is probably a low-level networking guru, and the rest of the interview should be structured accordingly. Someone who immediately jumps into HTTP requests, HTML parsing, and stylesheet application is probably a web developer, and the rest of the interview should be structured accordingly. Someone who talks about the enter key firing off an interrupt that the keyboard device driver handles and puts into a message queue for the windowing system's event loop to handle is a low-level desktop OS person. Someone who talks about the browser retrieving the event from the window loop, dispatching it the urlbar's hwnd, and kicking off an HTTP request is a Windows application programmer.

The advantage of this over just looking at someone's resume is that you can tease out areas of strength beyond someone's particular work experience, so that if eg. you get someone who's been stuck doing Win32 programming his whole life but has managed to teach himself a bunch of web technologies on his own time, he can talk intelligently about the browser's style rendering. It can also identify areas of cross-training, eg. the bulk of my professional experience is in web development, but I know enough about how the other layers of the stack work to write this comment.

<comment><USER4> And someone who says "duh it shows the Google homepage" is destined for the executive team.

<comment><USER5> The executive answer begins "It connects you with the world, but moreso, connects us all as a society..."

(This answer continues for two hours.)

<comment><USER6> Or:-

"That's a great question! I think the best way to answer it is..."

(This answer continues for two hours without actually answering the question posed.)

</comment></comment></comment></comment></comment><comment><USER7> This question always reminded me of the (excellent) book "Zen and the Art of Motorcycle Maintenance". The author explores the philosophy of engineering as being the art of separating things in to their components. At the risk of spoiling some of the book, a major struggle the author goes through is the paradox that there seems to be an infinite number of ways to split some kinds of systems, with no productive work ever being done. This question feels like that... you can split it down to the tiniest discrete system and you'll find you haven't gained much.

That's not to say that you wouldn't gain SOMETHING, nor that it's a bad interview question. I actually like it. It's just not terribly productive, in an engineering sense.

<comment><USER8> > that there seems to be an infinite number of ways to split some kinds of > systems

Indeed、you can even go to the electron level to describe what's happening in the circuitry and how it interacts with the silicon to propagate signals... it's never ending.

</comment></comment><comment><USER9> There is also a very good introductory answer in this subject by Jean-Baptiste Quéru in 2013 [1] where he takes the revers approach of when the page is displayed, then talks about connection, OS, etc. "simplifying" the answer and going down several levels of abstraction and complexities to give the proper overwhelming sense that this question should impose.

It is a very fun text to read and I really recommend it.

[1] [https://plus.google.com/u/0/+JeanBaptisteQueru/posts/dfydM2C...](https://plus.google.com/u/0/+JeanBaptisteQueru/posts/dfydM2Cnepe)

<comment><USER10> When I first read the headline I thought of this post as well, my instinct was that someone had pasted it into a Gist but it seems like a collaborative project to make an even more detailed answer. Which is neat.

</comment></comment><comment><USER11> So far, nobody has filled in the section on how a key-press event works its way through the OS, up to the window system, to the application, and to the code handling the input text box.

Then there's what's happening at the Google end. Before search personalization, popular queries ("google", "Britney Spears") were handled by caches the first Google machine you talked to, and never even reached the search engine. Since search personalization, there's some cookie traffic, and then your personal dossier is retrieved from storage at Google for use in interpreting your query.

Then, in the middle, your query probably travels through five to ten routers (try a traceroute) just to get to Google. Packets move from local Ethernet or WiFi to DSL to fiber to bigger fiber to gigabit Ethernet within a Google data center.

And where is "google.com" for you? That's hard to find out. For me, today, it's at "nuq04s19-in-f14.1e100.net", wherever that is. My connection routed from Silicon Valley to Santa Rosa to San Jose before reaching a Google point of presence at Equinix in San Jose.

Somebody also needs to talk about what's happening in the CPUs, with 3 billion or so instructions per CPU core every second, all devoted to looking up a cat video for you.

When you play a cat video, more computation occurs than was done in the history of the world prior to 1940.

<comment><USER12> There's a whole lot of BGP and stuff like that on the interconnect, too.

<comment><USER13> BGP, and usually some internal routing protocol on each end of the ASN path (likely something like OSPF). But those only inform the forwarding tables, they aren't an active component of the request. You could always go into the forwarding logic of the routers and switches as it moves through the network and TCAMs/DRAM.. As others mentioned, it's practically endless.

</comment></comment></comment><comment><USER14> I would really like to know what happens when Im driving down a highway at say 60mph and browsing the web on my smartphone (or well let's say my wife is doing the driving and Im browsing the web :-) ). What kind of communication is happening between me and the cellphone towers? What data is my phone sending to the different cellphone towers as I drive by them? How does the cellphone tower send that data to the internet? Does someone have a good pointer to a resource that would answer these questions?

<comment><USER15> Almost everything is exactly the same as on your desktop computer. The only thing that's different is what goes on under your TCP/IP layers.

Your Phone has a modem built in, that modulates a digital signal over a carrier wave at a certain frequency (set of frequencies, depending on the channel access protocol) the modulated carrier wave is sent out to the cellphone tower.

When the modem is supposed to receive, when it's allowed to send, how it negotiates these things is all strictly defined by protocols the telecom industry has standardized on. I can't say I'm an expert on these protocols, there's a whole bunch of them. They are grouped in protocol stacks with familiar names like GPRS, EDGE, UMTS, LTE.

These protocols besides making optimal use of their available bandwidth taking into account all kinds of noise, disturbances, moving from tower to tower, other phones also specify how the communication should be encrypted.

The encoding/decoding of these protocols is usually done by an integrated circuit in your phone that's separate from the rest of the phone's functionality, to prevent you from tampering with it (and to ensure reliability I guess). So all your phone's general operating system has to do is interface with that circuit to get neat IP packets.

</comment></comment><comment><USER16> Can't remember how many jobs I did where the interview questions were the hardest part of the job. In the beginning you think wow I'm going to get a nice and existing job.

Just to be dissapointed again because the job consists of fixing bugs in crappy legacy code and writing CRUD code.

</comment><comment><USER17> The first part is already outdated. A lot depends on the browser. Chrome will look up stuff as you type it, and by the time you press <enter>, the DNS lookup will likely have happened already. And, likely, the actual request to the page.

It's probably even more complicated than that, I believe "google.com" is a very special case in Chrome.

<comment><USER18> You should submit a pull request to fix it then. :)

<comment><USER19> and ideally with links to the exact lines of code (chromium) that do each thing ;)

</comment></comment></comment><comment><USER20> It frustrates me that it just goes "Interrupt fires".

There's a whole lot that goes on between the USB bus receiving the packet and HID driver - I mean, even making the processor branch is non-trivial.

<comment><USER21> It's a WIP. Scroll down and you'll see a lot more similar headings. The ellipsis is to indicate that the section is incomplete. Perhaps you can contribute?

<comment><USER20> I don't know the details of that section myself - I'd love to find out, hence my disappointment that it wasn't there.

</comment></comment></comment><comment><USER22> I needed a break so I used this as an excuse to try to remember how Windows actually handled keyboard input. I submitted a pull request:

[https://github.com/alex/what-happens- when/pull/21](https://github.com/alex/what-happens-when/pull/21)

</comment><comment><USER23> I hope people don't study this. The answer to this question doesn't matter.

The whole point of this question is to (1) gauge the clarity of the candidate's communication when explaining complex systems and (2) have them get to a place where they simply doesn't know and must start making assumptions of how things work and weigh the various tradeoffs. That's where things get interesting.

</comment><comment><USER24> By far my favorite question to ask (and be asked) in an interview. As others point out, it's practically impossible to understand the entire system. At one point or another in my career I've been exposed to at least descriptions of most of the components, but if I wanted a processor engineer, I'd be looking for a different answer than a web developer, or a networking guy, etc. Essentially anyone involved in the modern world of IT has to be able to answer something they're good at - and more importantly, admit the parts they don't understand. You can't cheat your way through the question, hell, you could even know it's coming and you still can't "beat" it. You don't know if I'm looking for hyper-detail about something, business sense to skip over irrelevant (to the position) details of a certain level, etc.

<comment><USER25> An experienced developer is almost certainly going to start by asking you more questions, trying to find out what your expectations are.

</comment></comment><comment><USER26> Wouldn't it be more convenient for people to contribute if this were set up as a wiki?

</comment><comment><USER27> > The keyboard controller then encodes the keycode for transport to the > computer. This is now almost universally over a Universal Serial Bus (USB) > connection, but historically has been over PS/2 or ADB connections.

What about Bluetooth keyboards?

<comment><USER28> Ooh, now we can add a big section on EMR, wireless protocols, forward error checking, the possibilities are endless!

<comment><USER12> Nah, it always ends with Maxwell's equations.

</comment></comment></comment><comment><USER29> I didn't know this was so popular of a question. I've been asking it for many years. I love it because anyone with expertise in any part of the system should be able to answer it. Are you a networking guru? If so, you should be able to talk a long time about the network bits. Are you a kernel guru? Same. Etc. It also gives me a good idea how broad the interviewee is.

It is always amazing to me how many people fail the question so badly. I've really had only one person answer it reasonably in all these years.

<comment><USER30> So, everyone fails and you think it is a good question? That doesn't make a lot of sense to me.

I can't reasonably answer the question, because I haven't really needed to know it. When I need to know it, I'll learn it, and quickly. How is that question a good measure of me if you are not hiring me to architect a router or something where it pertains?

I could ask you questions in my domain that you'd be hopeless at answering. But I wouldn't, because it would be a horrible measure of you.

<comment><USER3> The other thing the question tests for is rigidity of thinking.

You _can_ answer the question - pick whatever part of the stack you're familiar with and explain what's going on there. If you're a web developer, talk about how the browser loads the HTML for the page, then pulls out the <link rel=stylesheet> tags and fetches CSS for them, then executes any <script> tags. It sees a <form> tag, then an <input type="text">, and uses that to render the query box. If you type and that and hit submit, it loads the page in the <form>'s action attribute.

If you're a desktop software guy, talk about how Windows dispatches a WM_KEYDOWN event, which the browser's event loop picks up. It then initiates an HTTP request and renders Windows controls for every HTML element on the page.

If you're a backend database guy, talk about how Google must run a query against a massively sharded database to look up the terms you just entered and fetch document URLs for each of them. It then merges the query results to AND your query terms together, and return them.

Note that all of these answers are completely wrong (and basically the only way I could know this is because I worked on Google Search and actually know how it works). Google.com inlines styles into a single <style> tag; there are no <link> stylesheets, because we found the latency of the HTTP request outweighs the cache savings. I know less about how Windows works, but I wouldn't be surprised if under Windows7 and .NET the Win32 API is an emulation layer, and I know that most of the elements in modern browsers have no OS analogue and are rendered in shadow DOM via the browsers own box-and-painting mechanism. And there are no databases involved in Google; the whole web is stored in RAM and queries are matched & scored against everything (this itself is an oversimplification, but I'm limited to public information in what I can disclose...)

It doesn't matter. The point of the question is to get you to reveal what you know. If you don't reveal anything, you fail. Most people, when faced with a problem that they don't know the answer to, shut up and don't do anything. For a lot of tech companies, you want to hire people who will move forward and do _something_ , even if it's wrong, because you'll have more information to course correct with a wrong solution than with no solution.

<comment><USER31> > _If you 're a backend database guy, talk about how Google must run a query > against a massively sharded database_

Apropos of nothing, I hadn't realized that "shard" in reference to databases had made its way beyond MMOs, and I think it's hilarious.

Ultima Online pioneered the MMO concept of using different copies of the game world, each with their own server and backing database, to partition a large player base into manageable chunks. These were called "shards" in reference to the shards of the evil wizard Mondain's Gem of Immortality, which was shattered at the end of the original 1980 Ultima and caused problems in later games. The word was informally used for later MMOs' servers, and apparently it's now _formally_ used for horizontal database partitions.

So, if anyone asks you what a "shard" is in a database context, I recommend you start by telling them about the terrible legacy of the wicked sorcerer Mondain.

</comment></comment></comment></comment><comment><USER32> Just thought I'd point out that this is an old repo from 2013.

Probably should update the title before people starting submitting PRs in a doomed attempt to "not skip on anything".

<comment><USER24> The author just merged in a PR from (I'm guessing) an HN reader a few minutes after adding it.

</comment></comment><comment><USER33> _the time-to-live value for a datagram reaches zero at which point the packet is dropped_

Someone should write a Victorian-style novel on the hard, short, but virutous life of a packet.

<comment><USER34> Or a multilevel story-within-a-story type where the browser tells the HTTP server a story about an OS who tells a story about keyboard interrupts and network packets and so on.

</comment></comment><comment><USER35> Lots of interesting things happen in between your computer and Google's servers - like ISPs exchanging routing information using BGP, so the routers can determine a route through each different AS (provider/transit network) it has to go through to actually Fong the machine with that IP, and the kinds of physical and data layers it goes through (cable or DSL, fibre, and Ethernet, SONET/SDH, maybe tunnelling over MPLS at some point) etc.

<comment><USER36> Is Fonging a thing, or typo? :)

<comment><USER34> This is a question everyone has to Fong out themselves.

</comment></comment></comment><comment><USER9> Computerphile made a good vide on the same subject ~a month ago called "What Happens When You Click a Link?" [1]

It is obviously not as deep in content as the article is aiming to be, specially because it focus only on the first things that happens like DNS resolving and the socket connection, however, it is still fun video.

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

</comment><comment><USER37> Maybe it's a test to see how well you can communicate? I would of given a very brief high level overview, such as...

A request is sent to Google's severs for their "new search" page. Google then responds with the necessary data in order for your Web browser to display the Web page . There's a lot more to the full story, but I can go into detail if you would like.

I would offer diving into the important parts related to the position.

</comment><comment><USER38> People look at you strangely and explain how browser URL bars search for you in all recent browsers, making the Google homepage irrelevant.

Maybe they explain how home pages and bookmarks and bookmarklets work and set one up for you.

Nobody explains anything technical; the sort of person who types Google.com into a URL bar in 2015 isn't very computer literate, and wouldn't care about the details - any details.

</comment><comment><USER39> Even something as simple as the images and rectangles composited in hardware/software with Skia would take a thesis to explain.

</comment><comment><USER40> This would make a great subject for a book, along the lines of NAND2Tetris, starting at the transistor level or below.

</comment><comment><USER41> I have asked this question (more or less,) and the point is to get the candidate to singer point where they don't know the answer, and then the real question comes: "so how would you design that next piece?" That's the interesting part!

</comment><comment><USER42> Lack of arp/layer 2 isp, routing.

There is also a mistake inside the DNS part. DNS queries are done from the client - and this is actually true for a majority of client/server requests - by opening a dynamic random port above 49152.

</comment><comment><USER43> Wow, judging from the comments in here, there are a lot of people that are in management positions that are horrible judges of technical ability and value. This question asks so many things that it doesn't really ask anything at all. No matter which field they decide dive into, if they can dive into any at all, it sheds no light whatsoever on their ability to solve problems, or their ability to learn new difficult concepts. Moreover, making assumptions about where their specialties lie because of the topic they chose to answer in is wrong--if they answered well, they could be skilled in many other topics as well, and if they didn't, that doesn't mean they're incompetent--it means they didn't know how to answer what is essentially a trick question.

<comment><USER44> >it sheds no light whatsoever on their ability to solve problems, or their ability to learn new difficult concepts.

This is of course correct; one way to check for these is to ask specific questions for prior job experience; however the top-dog companies like to hire promising graduates right out of college and so they don't wish to cut them off by asking these questions.

</comment></comment><comment><USER45> I prefer to ask open-ended questions more calculated to give me an idea of where the interviewee's head is at:

"What's your favorite programming language? Why?"

</comment><comment><USER46> I'd like to see a detailed description of sockets work.

</comment><comment><USER47> I'm going to watch this carefully. Once it's complete I plan to base a scheme of work on it for my secondary school CS students.

<comment><USER48> "Once it's complete" indeed... and to draw _that_ particular random line in the sand?

</comment></comment><comment><USER49> >17.78 mA of this current is returned on either the D+ or D- pin (the middle 2) of the keyboard's USB connector.

Oh, so we will look at it at THAT level of detail, nice.

Then hardware interrupts, seems ok...

Then HSTS and DNS, yeah, no, you are skipping like 3 more pages of things that happen in between. Good luck with your naive experiment.

<comment><USER50> Isn't that the point of having others help and fill in the gaps? What's the point of belittling it to a "naive experiment"?

</comment></comment><comment><USER51> "I don't normally watch github projects, but when i do, it's projects like these :D "

</comment><comment><USER52> His emphasis on lower level protocols is not what I would expect a python programmer.

I wonder what the following would say about me in an interview situation...

Device specific rendering. Localization and Language logic. Image download and display. Screen rendering. Caching, cookies & browser history. Analytics integration. Account lookup. The search being saved on the backend.</comment>


The Joy of Programming: an Autobiography (of sorts) - <AUTHOR> http://www.sydneydevcamp.com/posts/the-joy-of-programming-an-autobiography-of-sorts <comment><USER2> Thanks Peter for such an inspiring post!</comment>


The Manifesto of the Futurist Programmers - <AUTHOR> http://www.graficaobscura.com/future/futman.html

<comment><USER2> What exactly are they trying to say? What they don't like and want to change?

The Communist Manifesto was similarly arrogant and angry, but at least somewhat understandable. :)

<comment><USER3> Futurism was a pre WW1 art movement in italy. The leading menbers mostly became fascists in the 1920. I don't know what someone tries to say if he places himself in this tradition.

<comment><USER4> You can't evaluate history out of context. In the 20s and 30s _everyone_ was a Fascist or a Communist. It was like in the 60s everyone was a hippy, in the 70s everyone was into disco and swinging.

</comment></comment></comment><comment><USER5> How does he become a futurist by basing his manifesto on the old, decrepit, failed movement of futurism?

This movement's so old the Catholic church made it one of the seven deadly sins, called "pride of life."

<comment><USER6> Movements with temporal names can retain their meaning even after the passage of time. Futurism, Modernism, and Postmodernism all have specific meanings and refer to movements past their peak. You have a problem with that?

<comment><USER5> It's ironic because the author makes the same kind of dismissal I just made. That's my point.

</comment></comment></comment><comment><USER7> I like things like this because if I come across anyone who thinks it's cool I can make sure to avoid them.

<comment><USER8> This shows up periodically on Digg, reddit, and now here. It's a joke, like Futurism itself was, at least in part.

<comment><USER5> I prefer funny jokes.

<comment><USER8> If you study the history of the Futurists, there's a bit of black humor in there.</comment></comment></comment></comment>


Show HN: Pipe.Slack – Connect Any API Data to Slack - <AUTHOR> http://slack.datastack.co/

<comment><USER2> I'd much rather see how it works, or what it's capable of before being asked to sign in with Slack and approve your app.

<comment><AUTHOR> I see your point, I'll add a little something :)

</comment></comment><comment><USER3> I'm a developer and I have no idea what this is. Go figure..

Much more needs to be said about this service up front and dump the video camera demo for an actual screen recording of what this is. Will go a long way.

<comment><AUTHOR> I see, I've added a little explanation of what it does. I apologize for my mistake of not clarifying what this little project does.

</comment></comment><comment><USER4> It is broken, probably because HN.

</comment><comment><AUTHOR> It's back up.

<comment><USER5> I'm getting an application error.

<comment><AUTHOR> fixed, apologies :)

</comment></comment></comment><comment><USER6> yep, broken... too bad, looks interesting</comment>


Adobe Launching Free Version of Photoshop Online - <AUTHOR> http://www.washingtonpost.com/wp-dyn/content/article/2008/03/27/AR2008032700230.html

<comment><AUTHOR> Are there any other YC funded start-ups doing online photo editing? I only know of Snipshot.

I can't see myself switching right now - I'm used to Snipshot's interface and prefer it sometimes over CS3 (for the smaller jobs).</comment>


The Blurred Lines Copyright Verdict Is Bad News for Music - <AUTHOR> https://www.eff.org/deeplinks/2015/03/blurred-lines-copyright-verdict-bad-news-music

<comment><USER3> "Musicians will have to think twice before creating any new songs that evoke the feel of the music that inspired them in their youth."

That wasn't the issue of the case and the EFF is being shitty by pretending that it is - the "recording" is what evokes the feel / vibe, but the case was about the composition. There's a big, big difference. That's why, in the courtroom, the jury was NOT allowed to listen to the recordings back-to-back. They were only allowed to listen to the SHEET MUSIC played on a piano.

So, what they concluded is that the music was infringing - not that "Oh dear it sounds too funky!" or "Gee we better rule against the Gaye family to make sure nobody ever sounds like Jimi Hendrix again." If imitating a style was actual copyright infringement I could rattle off a list so long that your eyes would roll into the back of your head - but that ain't what the case was about, and the EFF's take on it is pure shill bullshit.

You want a decent discussion of the case? Go read over at Complete Music Update. Chris was surprised at the verdict, but at least tracked the case properly:

[http://www.completemusicupdate.com/article/gaye-family- win-b...](http://www.completemusicupdate.com/article/gaye-family-win-blurred- lines-dispute/)

</comment><comment><USER4> This is a good step. Things have to get bad enough to force any improvements. When monied interests feel the pain of overzealous copyright laws, only then will we see improvements.

<comment><USER5> You have too much faith in the "things have to get better before they get worse" myth. The major record labels, which hold the rights to most music from the last few decades, will simply agree not to sue each other. It's in their best interests. But surely they will sue the pants off independent artists who pose a threat.

</comment></comment><comment><USER6> In a way it is almost funny that such an agressive industry hasn't stepped upped their game. Why not introduce patents on instrumentation or sound design?

Just imagine how much money one could have made if you could patent "a kick drum triggering the side chain compressor on a saw-wave bassine"

</comment><comment><USER7> Oh please, the intro to "Blurred Lines" went way, way beyond simply referencing "Got to Give it Up." I would have been disappointed if the ruling HADN'T gone the way it did.

Sam Smith was enough of a gentleman to admit his mistake and come to friendly financial terms with Tom Petty. It's too bad Alan Thicke couldn't do the same...he deserves the ruling.

<comment><USER5> The only thing Sam Smith's song has in common with Tom Petty's is a chord progression and a vaguely similar melody. Compare that with 12 bar blues, where every song has the exact same progression, and limited melodic possibilities. In fact, there are thousands of songs guilty of the same crimes Smith's is accused of, and none of them were put on trial. Smith wasn't a gentleman, but a coward.

Blurred Lines has even less in common with it's inspiration. It does what music has been doing since the beginning - updating the best ideas of the past with a twist from the present. If writing a song like Blurred Lines is against the law, I don't see how music can thrive.

<comment><USER3> Sure, I'll compare the Smith/Petty thing with 12 bar blues because I can play 12 bar blues in my sleep and have covered about a dozen Petty songs to date.

12 bar blues is, essentially, a musical metronome. 12 bar blues inherently does not have a melody. It's an assembled grouping of public domain chords set in a public domain tempo. The point of the musical metronome of 12 bar blues is for the melody line to be added. That's what differentiates "Stormy Monday" from "Cold Shot" from "Steel Mill" from "Who Do You Love."

By comparison, using a melody on top of a chord progression is what is called a "musical composition." In the case of the Smith/Petty situation, there was a noteworthy musical composition overlap. Do I think it was very strong? Not especially, but was it there? Yeah, it was.

That's what makes the Blurred Lines case so easy for me to understand - <USER2> wasn't about the song taking a "feel" or "sound" \- which it most certainly did - it was about the song taking the structural components in the form of progression and melody and trying to lift them under the guise of doing something new. That's not legally protected, and I think the jury got it right.

I totally see how music can thrive - now, if I come up with a cool new pop song, some sticky fingered producer can't simply come along and song-jack me. I can be inspired by Jimi Hendrix, just like Stevie Ray Vaughan. I can be inspired by Dimebag Darrell, but there's no way that I'd go out and try to re- work "Floods" or "Cowboys From Hell" and pass it off as my own work. Music has been around longer than the internet, longer than even the written word.

I think it's foolish to say "Oh music is in danger!" when the reality of the situation is actually "Oh the music business of making profits is in danger!" The former is certainly not true with the advent of new music technologies. The latter is fundamentally threatened by the former, and I'm perfectly fine with that.

<comment><USER5> A composition's more than a melody and a progression. It's about the arrangement, the rhythm, even the words. If two songs share a lot of the same elements, they can sound similar. But sharing just two elements isn't the same as swiping a song. Stay With Me has the same chords as Won't Back Down, and it has a similar 6 note sequence in the Melody. But the rest of the melody is very different. And the tempo, voicing, arrangement, words, all contribute to make Stay With Me an original composition. Nobody confused the two songs until Petty's lawyers pointed it out.

I was using the blues as an easily available example of musical borrowing. You seem to think different rules should apply to blues songs than to "compositions." Blues songs are compositions. They have melodies. Their chord progression is just as common the one used in Stay With Me.

You're incorrect about Blurred Lines. The song did NOT take the progression and melody from the Marvin Gaye song. They have different progressions and melodies. What Blurred Lines took from Marvin Gaye was the drum beat. As a drummer, I can tell you thousands of songs use the exact same drum beat. Granted, this beat is pretty unique. But so is the Purdie shuffle, and to my knowledge, Bernard Purdie never sued John Bonham for Fool in the Rain.

Here's where you're right: It is foolish to say "Music is in danger." But what I said was that it will be harder for music to thrive. Look what patent trolls are doing to the tech industry. If we agree that having the same drumbeat is plagiarism, the same thing could happen to music.</comment></comment></comment></comment>


How Rust Achieves Thread Safety - <AUTHOR> http://manishearth.github.io/blog/2015/05/30/how-rust-achieves-thread-safety/ <comment><USER2> That's a good subject. This Rust blog entry[1] is perhaps a better explanation.

When you pass data to another thread, there are three options: 1) pass a copy, 2) hand off ownership to the other thread, and 3) transfer ownership to a mutex object, then borrow it from the mutex object as needed. All of these are memory and race condition safe due to compile time checking.

Those are the concepts. The Rust syntax needed to support it is somewhat complicated, but if you get it wrong, you get compile time error messages.

This may be the biggest advance in software concurrency management since Dijkstra's P and V. Almost everything in wide use is either P and V under a different name, or some subset of P and V functionality. Locks are not a basic part of most languages; the language doesn't know what a lock is locking. The Ada rendezvous and Java synchronized objects are exceptions. Those were good ideas, but too restrictive. Finally, we're past that.

Go could have worked this way. Go originally claimed to be concurrency safe, but it's not. You can pass a reference across a channel, and now you're sharing an unlocked data object. This is easy to do by accident, because slices are references. Because Go is garbage collected, it's almost memory safe (there's a race condition around slice descriptors that can be exploited), but it doesn't protect the program's data against shared access. In Rust, when you pass an non-copyable object across a channel, the sender gives up the right to use it, and the compiler enforces that.

[1] [http://blog.rust-lang.org/2015/04/10/Fearless- Concurrency.ht...](http://blog.rust-lang.org/2015/04/10/Fearless- Concurrency.html)

<comment><USER3> That's not true, Rust permits opt-in data races in safe code.

<comment><USER4> If what you say is true, it's a bug: there should only be a risk of data races if `unsafe` is used. Do you have a code example?

<comment><USER5> I'm guessing he refers to atomics with relaxed memory ordering. That doesn't give much in terms of guarantees beyond atomicity and no "out-of-thin-air" values. I'm not sure of whether this is a data race under Rust's definition though.

<comment><USER3> Rust doesn't get to redefine "data race".

<comment><USER6> It doesn't. We use the same definition of "data race" as tools like Thread Sanitizer and Eraser do.

<comment><USER3> From tsan documentation: "A data race occurs when two threads access the same variable concurrently and at least one of the accesses is write"

<comment><USER6> That's right, and Rust bans that. The definition of "concurrently" typically means "without synchronization in between". An atomic access is by definition a form of synchronization.

<comment><USER3> Relaxed access of atomics performs no synchronization.

<comment><USER7> It guarantees that the value read was _some_ value that was in the variable at some point. e.g. it prevents a value that toggles from 3 to 5 being read as 117. It also prevents writes from being eaten (e.g. an increment always actually occurs).

This necessitates some level of synchronization.

<comment><USER8> (It also guarantees happens-before for a given thread, so if a thread changes it from three to 5 and other threads are not changing it back, that thread will never read a 3 again. This also needs some level of synchronization)</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Alphabet CEO ordered Google Fiber to downsize, report claims - <AUTHOR> http://arstechnica.com/information-technology/2016/08/google-fiber-fails-to-hit-subscriber-goal-will-reportedly-cut-staff/ <comment><USER2> It sucks for Google Fiber ( and anyone wanting the service), but it's been a win for consumers in Google fiber markets. In places where Google has only announced they're going to go the existing providers have already started offering higher speeds. One of the dreaded ISPs close by announced gig speeds within months of Google's coming soon announcement.

</comment><comment><USER3> Well that sucks. I would get Google Fiber in a flat second if it was available where I live.

</comment><comment><USER4> Like space, fiber is hard.

</comment><comment><USER5> Google Fiber was built on classic Google arrogance. Reportedly Google tried to get city councils to legislate them a loophole so they could access and use AT&T-owned poles without agreeing to follow the same regulations other telecoms were required to follow. Google wanted to use AT&T equipment at telecom rates without actually having to be a telecom[0].

And when they weren't able to cheat to accomplish their goals, they started looking at wireless solutions now. It seems Google has quickly learned that apparently deploying fiber networks really is expensive, and you can't "just" give everyone gigabit fiber for $60 a month when you have to play by the rules.

[0][http://arstechnica.com/tech-policy/2013/12/why-att-says- it-c...](http://arstechnica.com/tech-policy/2013/12/why-att-says-it-can-deny- google-fiber-access-to-its-poles-in-austin/)

<comment><USER6> >you can't "just" give everyone gigabit fiber for $60 a month when you have to play by the rules.

The rules that encourage and enable broadband duopolies.

<comment><USER5> Actually, many of the rules involve things like being forced to provide public access television channels and hardware and service to government buildings, and sometimes actually providing a studio for the use of said government. Additionally, as telecoms are often relied on for emergency communications, there's a lot of compliance they have to reach there, and a lot of equipment they need to keep on hand for emergency situations.</comment></comment></comment>


Why the linux and open source communities are so defensive of Microsoft lately? - a-ve https://www.reddit.com/r/linux/comments/8yj8mp/why_are_so_many_in_the_linux_and_open_source/ <comment><AUTHOR> Are they really? Or have MS's astroturfing campaigns successfully resulted in the perception of this being the case? I don't know, but I do know that the original anti-MS stance wasn't so much about MS specifically, but was targetted against any monopolistic behaviour. So it would make sense that today it's FAAG who gets the flak.

</comment><comment><USER2> I think because young developers believe Microsoft has changed.

Their bullshit radar seems to be broken.

<comment><USER3> They lack a proper frame of reference, being born too late to experience a pre-Windows world.</comment></comment>


Show HN: Mysterious bug in the HTML spec - <AUTHOR> https://scrimba.com/c/cJg6nHW <comment> andrew-lucker Some html elements are containers, others aren't. <b> can only contain text, so there is a bunch of ignored <b>'s and </b>'s. Then comes the <em> which is followed by an unexpected closing </b>. Use div's or span's if you want to put something inside and have nesting work normally.

<comment><AUTHOR> All phrasing content is permitted inside <b>, including <em>. See [https://developer.mozilla.org/en- US/docs/Web/Guide/HTML/Cont...](https://developer.mozilla.org/en- US/docs/Web/Guide/HTML/Content_categories#Phrasing_content)

<comment> andrew-lucker Keyword there I think is "runs of phrasing content". That means that you can "nest" different tags but not those of the same tag. The nesting <b> inside <b> like op is causing the parser to ignore the depth of nesting of <b> elements and just closes the bold content on first </b>.

</comment></comment></comment><comment><USER2> is this really something you want to show on hackernews ? why not asking stackoverflow community for this ?</comment>


The Future of Firefox for Android - <AUTHOR> https://www.ghacks.net/2019/04/26/the-future-of-firefox-for-android/ <comment><USER2> Some more info about Fenix browser can be found in Android Police [0].

Fenix on github: [https://github.com/mozilla- mobile/fenix](https://github.com/mozilla-mobile/fenix)

[0]: [https://www.androidpolice.com/2019/03/13/mozillas- upcoming-b...](https://www.androidpolice.com/2019/03/13/mozillas-upcoming- browser-fenix-packs-a-new-ui-and-fundamental-changes-to-tab-management/)

</comment><comment><USER3> This is the first time I hear about fenix. I can't seem to find any in depth info on it. The name change seems to imply that it will be significantly different from Firefox, since if it were just a mobile-friendly ui slapped on the same core, well.. That's what we already have. Is there any nice writeup about the differences? First thing that comes to mind: will Firefox addons still work?

<comment><USER4> [https://github.com/mozilla- mobile/fenix/issues/574](https://github.com/mozilla-mobile/fenix/issues/574) seems to say it will eventually support the same web extensions as the current Android Firefox, but the first release won't.

<comment><USER3> Thanks for digging this up. Since I'm using an old fire tablet at home, ublock origin is a must. The web is literally unusable on such a slow device without it.

</comment></comment></comment><comment><USER5> Will multi-account containers be included? The most useful feature on Firefox Desktop is the ability to isolate different browsing sessions using containers (e.g. Facebook-only, HN-only).</comment>


Uber 'to focus on bikes over cars' - <AUTHOR> https://www.bbc.co.uk/news/business-45317025 <comment><USER2> It's interesting how BBC still calls Uber a ride-sharing company. Especially as it now will focus on bikes. Ride-sharing a bike.. I'd rather not.

<comment><USER3> It would be more efficient to have a city full of professional bike riders on 2-person bikes or pedal-rickshaws - or normal bikes with bike pegs[0]. One issue with the proliferation of Lime bikes is the increasing number of people with little experience riding bikes in cities, and poor understanding of the rules of bikes on roads and sidewalks.

[0][https://www.livestrong.com/article/398587-bike- pegs/](https://www.livestrong.com/article/398587-bike-pegs/)

<comment><USER4> More efficient in what way? Bikes are pretty small and cheap already.

<comment><USER3> More efficient for the cars being driven on the streets, or waiting at stop lights, often burning gasoline - blocked by a slower carbon-neutral transportation solution.

<comment><USER5> Greater cycling actually reduces traffic and wait times for drivers. Combined with the CO2, toxic exhaust, and other negative externalities, as well as the positive health effects of cycling, it makes sense to discourage driving and encourage cycling. At any rate, bikes are usually faster than cars in dense city environments, especially when you take parking into account.

Also, wouldn't large rickshaws be slower than normal bikes?

</comment></comment></comment></comment></comment><comment><USER6> China already tried this and this is the outcome: [https://www.theguardian.com/uk-news/2017/nov/25/chinas- bike-...](https://www.theguardian.com/uk-news/2017/nov/25/chinas-bike-share- graveyard-a-monument-to-industrys-arrogance) US cities are predominantly designed around cars. More so than China. Don't see how Uber can succeed with this initiative.

</comment><comment><USER7> This must be because investors forced them to back away from self driving, and without that cars will never be particularly profitable for them.

<comment><USER8> Their valuation is not going to stay this high...

<comment><USER9> Ya... The bicycle market is way smaller than vehicles at least in the US. I wouldn't be surprised if less than 10%. And you can't even charge as much. You expect a bike to be the nearly the cheapest option, right after walking.

</comment></comment></comment><comment><USER10> >Uber says it plans to focus more on its electric scooter and bike business, and less on cars, despite the fact it could hurt profits.

I would have written that as "could increase losses" ...

</comment><comment><USER3> > _It also teamed up with Lime, an electric scooter company, while forging > deals in other areas such as public transit and freight._

This seems like part of a larger move to take the notorious Uber brand out of the marketing equation, while continuing to pivot around the larger problem of logistics in cities.

</comment><comment><USER11> _He also acknowledged that Uber drivers could lose out from the plan, but said over the longer term drivers would benefit_

These were the same drivers Uber was planning to replace with self driving cars! The well-being of its driving employees is literally Uber's lowest priority

</comment><comment><USER12> Holy shit. I actually like Uber now. Crazy.

<comment><USER13> Good for you. For my part, I just stopped liking Toyota.</comment></comment>


GrahamBot - With Real Startup Action - <AUTHOR> http://carlos.bueno.org/images/grahambot.png

<comment><AUTHOR> By <http://news.ycombinator.com/user?id=aristus></comment>


The Nano Membrane Toilet - <AUTHOR> http://www.cranfield.ac.uk/research/research-activity/current-projects/research-projects/nanomembrane-toilet.html <comment><USER2> Is residential water usage really a large problem? I assume that municipalities have a decent ability to reclaim and reuse much of the water flushed down the drain and toilet.

I know at least for California residential water use makes up just 15%[0]. I know every little bit helps, but a toilet is an incredibly simple invention and it would be a shame to replace it with something so much more complicated.

[0] [http://www.environment.ucla.edu/media/images/water- fig1-lrg....](http://www.environment.ucla.edu/media/images/water-fig1-lrg.jpg)

<comment><USER3> I wish you would read the article and watch the video. The target market and business model is well explained. Can you imagine a region in the world that does not have running water and sewers and may actually enter in the "first world" before those services do? Well then, that's what this toilet is for.

<comment><USER4> Composting toilets don't need water either.

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

Alternatively, just try to divert urine so it never mixes in the first place:

[https://en.wikipedia.org/wiki/Urine- diverting_dry_toilets](https://en.wikipedia.org/wiki/Urine- diverting_dry_toilets)

Both of these seem on first glance to be easier to maintain.

<comment><USER3> Yeah, this toilet isn't for rural use. It is for places that should have sewers but don't and that probably never will get sewers. It is for dirty cities in the third world.

<comment><USER5> Will the cost of these toilets ever make sense for that?

When I see things like "Turn a 2L bottle into a light" for a really poor area - I think awesome, something they already have laying around can make their lives way better.

When I see things like "Nano-polmer super toilet for those without running water" I just kind of shrug. Seems to cost more than adding running water, while still not providing a clean place to drink.

What am I missing?

<comment><USER6> (I think!!!) it is a problem of scale.

In 3rd world locations, you can be walking 3km every 2nd day to fill a jerrycan of water.

If that's the case then you aren't going to use that to flush.

And even if you do (using grey water after cleaning etc.), then you won't have the toilet inside the house.

<comment><USER5> So how much does installing this super toilet cost, best case?

How much to run a line of fresh water to the house?

If <cost of toilet> is not less than <cost of fresh water line / 10>, it seems like not a win - as fresh water can solve both drinking and help with sanitation (though not get you all the way there).

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> And yet this problem has already been solved with composting toilets for many years.

Why do we need to build such a fancy and complicated device when all you need is to pee in a separate bucket from your poo, and let the poo aerate/dry naturally? Mix in some dry mulch and you're done!

Urine itself is sterile and can be easily treated/recycled.

<comment><USER8> >Urine itself is sterile

This is a misconception that particularly annoys me, probably because it was the (incorrect) excuse a nurse once gave me when he accidentally spilled a urinal filled with liquid all over me while I was bed-ridden in an ICU. [0] [1]

[0]: [http://www.smithsonianmag.com/smart-news/turns-out-urine- isn...](http://www.smithsonianmag.com/smart-news/turns-out-urine-isnt- actually-sterile-180954809/?no-ist)

[1]: [http://www.stritch.luc.edu/newswire/news/study-debunks- commo...](http://www.stritch.luc.edu/newswire/news/study-debunks-common- misconception-urine-sterile-0)

<comment><USER9>
        he accidentally spilled a urinal filled with liquid all over me while I was bed-ridden in an ICU. [0] [1]

Well that's a horrible experience. I too am quite surprised the sterile urine legend lives on.

</comment></comment></comment><comment><USER10> So,

My late father recently developed a waterless toilet which is significantly simpler and likely cheaper than this one.

[http://www.dry-flush.com/videos/](http://www.dry-flush.com/videos/)

<comment><USER11> Neat. Reminds me of the nappy bins.

However, the one in the video seems more geared at sustainability and reuse. They filter the water out of the pee. Dry out the poo for fertilisation.

</comment></comment><comment><USER12> That schematic view of human feces is....let's just say it's incredibly optimistic.

<comment><AUTHOR> Agreed. The whole concept is too complicated for the real world, in my opinion. But, if the team is willing to iterate based on feedback, and incorporate some of the advances of other composting and incinerating toilets, the end product might work really well.

<comment><USER13> That is exactly what i was thinking - making this produce compost instead of waste intended for a collection facility would be not only more useful in developing areas, but could even improve the urban gardening/homesteading movement. and lets face it - in developed nations, it is us crazy hippie folk who would buy this anyway.

<comment><USER14> In developing areas, people grow food as close to their drinking water as possible to make watering and/or irrigation easy. I don't know if anyone wants to recommend that they start adding human waste to the mix.

<comment><USER13> I'd love to know where you are talking about, because everyone I talk to does exactly the opposite. We know we are going to use animal waste, and other compost, to fertilize our garden beds. So we pull our drinking water from upstream of any food production. my family does not use humanure in our systems, but it certainly is done by other people and in other areas.

If there really are developing areas who fail in this design principle, they need education on how to design their food production. Holding back a useful tool just because some people might use it incorrectly doesn't make sense. But most people who are even somewhat self-sufficient know that the flow of water is a crucial design point.

If not composted and used productively, then human waste is just a pollutant. But if you can increase food production and have a productive recycling of materials at the same time, you are killing two birds with one stone.

</comment></comment></comment></comment></comment><comment><USER15> The problem is that the toilet's estimated cost is $0.05 per user. So for a 4 person family potentially living on only a couple dollars per day this would make up 10-20% of their living expenses. This isn't like our budgets where we can afford 10-20% because we are WAY past trying to eat and live. This is 10-20% of all the money you have for food, clothing, and medicine.

Also, I'm assuming the toilet will go up in price as more people try to make more off the system.

All that said, I welcome the Nano Membrane toilet to the much needed market. I'm all for composting toilet technology as our current system of simply creating raw sewage then trying to treat it with massive amounts of chemicals (which are very bad for the environment) isn't sustainable.

1) Natureshead, 2) Airhead, and 3) Separett toilet

These three all much better suited to low cost, rural uses. For more hi-tech versions we have Sun-Mar. However, all these still cost at least $1,000 USD.

<comment><USER16> For "low cost, rural use" \- nothing beats a hole in the ground. :-)

<comment> david-given Digging a safe latrine pit is more complex than you might think!

[http://www.who.int/water_sanitation_health/hygiene/emergenci...](http://www.who.int/water_sanitation_health/hygiene/emergencies/fs3_4.pdf)

Plus they have a limited lifetime; they fill up, and you need to dig a new one.

</comment></comment></comment><comment><USER17> It would also make sense in developed countries: shitting in water makes it much more complicated to treat afterwards, and greatly increases the ecological footprint of that processing. Moreover, it makes failures to properly treat much more dangerous (human feces are where you most easily find pathogens specialised in human invasion, besides human cadavers).

Feces compost just fine in a dry environment, if you mix it with enough carbon (dried plants or sawdust). No treatment, except letting it decompose over a couple of years, and very little smell if the nitrate/carbon/humidity balance is respected.

Of course, water companies wouldn't be thrilled by such a simplification, and people like the illusion that their poo-poo just magically disappears when they press a button.

</comment><comment><USER18> Even simpler mechanisms clog and I don't think this scraper can do such a good job, but this still could be better than a septic tank or others alternatives.

</comment><comment><USER19> This device has quite a bit of moving parts, needs periodic part replacement, and requires electricity to operate.

</comment><comment><USER20> What does it do with the toilet paper...

<comment><USER17> that's just more fiber. Besides, in many of the countries targeted by this, people wash with water, rather than sweeping with paper.

<comment><USER5> It is designed for no running water, so I would assume no bidet water also. Could go for the shared sponge ala Rome (was that really healthy?)

</comment></comment></comment><comment><USER21> Can someone create a social enterprise that uses this idea to generate profit and make a wider impact?

<comment><USER3> yes</comment></comment>


Zuckerberg and Musk are both wrong about AI - <AUTHOR> https://arstechnica.com/information-technology/2017/07/zuckerberg-and-musk-are-both-wrong-about-ai/ <comment><AUTHOR> > Until we settle on some definitions for actually-existing AI, instead of > sci-fi nightmares, this debate between Zuck and Musk is just another gust of > hot air.

Painting a picture of doomsday artificial superintelligence indeed looks like media attention grabbing, but then again you don't need very advanced AI to orchestrate drone-mediated genocide.</comment>


Ask HN: What's your favorite router these days? - <AUTHOR> Looking to upgrade my home network, currently have an Airport Extreme and 2 Airport Express access points. Now that Apple's getting out of the routing business, I'm sad. I really like knowing there's some NetBSD in the house. I know the Airport line is generally a little bit behind the bleeding edge, but it's proven extremely stable for me. <comment><USER2> I have a Time Capsule / Express config also. I'm gonna wait a bit more (3-6 months) to see if Apple really is exiting or they just pulled the product because a new one is coming out.

If they did exit and theres nothing to replace it, I'm interested in Plume right now. [http://www.theverge.com/circuitbreaker/2016/12/5/13837804/pl...](http://www.theverge.com/circuitbreaker/2016/12/5/13837804/plume- wifi-mesh-router-pod-now-available) I like the size of the pods, it got good reviews and the price isn't horrible. Put the router in the basement; a pod on the patio, family room and 2nd floor hallway and that'll blanket the house. We've always struggled to get a strong wifi signal on the patio while streaming via Airplay and in the summer, we try to spend a lot of time outside. I may do it anyways...

</comment><comment><USER3> I'm almost wondering if the product line is in doubt, or if Apple is actually getting out of that business.

[http://appleinsider.com/articles/16/12/21/apple-airport- firm...](http://appleinsider.com/articles/16/12/21/apple-airport-firmware- update-fixes-back-to-my-mac-bug-but-hardwares-destiny-still-in-doubt)

I'm almost thinking that they might shift things towards the Apple TV as a "Apple Home" kind of thing. Hard to tell.

If i was going to replace the Airport Extreme that I have, I would be going with a Ubitiqi edge router of some sort and one of their access points. The stuff seems well supported and has a decent community behind it, in addition to being reliable and making the pretty graphs that I want. :-)

</comment><comment><USER4> I just picked up an Amplifi HD router a few days ago. So far so good. Great speeds and really nice hardware.

The app and hardware touchscreen are really simple and usable. They're missing a few pro settings/configs though.</comment>


Epic List (100+) of the Best Free and Paid Web Tools for Freelancers, Contractors - <AUTHOR> https://medium.com/@saddington/an-epic-list-100-of-the-best-free-paid-web-tools-for-freelancers-contractors-2d05fee9ea18 <comment><AUTHOR> Let me know what I need to add!</comment>


Ask HN: Best keyboard for programmers? - <AUTHOR>

I'm a fan of the old-fashioned "buckle-spring" IBM keyboards, but they are no longer made/rare/expensive/etc.  I'm looking for a great keyboard with a focus on key feel but I want to avoid "gaming" keyboards with extra functions, gizmos, etc.  Any suggestions? <comment><USER2> <http://pckeyboards.stores.yahoo.net/> \- current manufacturer

Old Model-M keyboards are still sold at <http://www.clickykeyboards.com/> \- or ebay.

</comment><comment><USER3> I am a huge fan of the full size Apple keyboard. I use dvorak and don't look at the keys but the feel is great.

[http://store.apple.com/us/product/MB110LL/A?fnode=MTY1NDA1Mg...](http://store.apple.com/us/product/MB110LL/A?fnode=MTY1NDA1Mg&mco=NDE4NDIyOA)

</comment><comment><USER4> I like the tiny Apple wireless keyboard, because it leaves more space for written notes on my desk. People obsess about about monitor size to get space on their virtual desktops, but what about the space on your real desktop?

</comment><comment><USER5> I like matias keyboards from Ontario, they're a little clicky clacky

<http://matias.ca/products/index.php>

also see (some long threads)

<http://searchyc.com/keyboard>

</comment><comment><USER6> I could never get used to the split Microsoft keyboards - or the chicklet Apple keyboards.

My current favorite is the Logitech Wave... before that, I used a Das Keyboard -- which was fantastic, but the space bar became detached after about a year and a half.

</comment><comment><USER7> No longer made? Unicomp (<http://pckeyboards.stores.yahoo.net/>) bought the rights and the tooling. I love mine. (And no, it doesn't have the windows key!)

</comment><comment><USER8> i use apple pro keyboard (the one which has 2 usb slots) on ubuntu

i dropped it like maybe 100 times for the past 3 years or so, it breaks but none of the button breaks. it's easy to reattach loose button to keyboard (yes, even the space-bar)

it's always wise to invest on keyboard, you are practically married to it ... just don't buy new (mine's used, bought like Sing$10)

if you're opposed to buying used, think about it ... you test the used kb, find it's usable, nothing breaks ... what that tells you? ... the used kb has stood the test of time and abuse for years ... then marry her

</comment><comment><USER9> I use a basic Lenovo keyboard, I love IBM hardware :) Whats everyones opinion on the happy hacker keyboard - I hear they are expensive.

</comment><comment><USER10> Creamy/White Microsoft Ergonomic/Split keyboard.

does the trick, comfortable as well.

</comment><comment><USER11> art lebedev's optimus maximus

<http://www.artlebedev.com/everything/optimus/></comment>