Homes for Hackers gets a visit from the FBI - <AUTHOR> http://www.banterant.com/2013/08/homes-for-hackers-gets-visit-from-fbi.html <comment><USER2> Why the hell are people still stupid enough to talk to police without a lawyer present in this country?

Anything during that conversation could have been used against them in the future no matter how innocent it actually is. Or if they lied without meaning to, boom, you just lied to a law enforcement officer which is instant crime.

Guess what, no matter how friendly you are to them up front, they are still going to come and rip out all your equipment later and return it after years pass when it's all thrown out of court because nothing actually wrong was done.

<comment><USER3> I've noticed a large number of US TV shows (many of which involve the police) constantly feature people instantly and without hesitation assisting the police in their enquiries. I don't want to say it's brainwashing, but it's not far off.

<comment><USER2> Yeah TV. Here's the really "entertaining" part about talking to the FBI in reality.

Let's say you decide to talk with them. Now that you are talking to them, if they decide during that conversation that you've "become agitated" and pull out their gun and shoot you in their "self defense", guess who investigates them? That's right, the FBI.

Guess how many times in the history of the FBI an officer was found to have shot someone inappropriately, even if they weren't armed? That's right, zero times.

<comment><USER4> Do you think you're more likely to encourage an FBI officer to decide you are "agitated" if you insist they come back with a warrant and slam the door on them, or politely and cautiously answer basic, non-incriminatory questions on the assumption you're probably not guilty of whatever they're investigating? You can always pull the "if I'm being implicated in a crime, perhaps we should go down the police station and have a recorded conversation with a lawyer present" tack later if the questions start going uncomfortable places.

<comment><USER5> Bzzzt! Wrong answer!

Say nothing, ever, for any reason. [0]

The only thing you should ever say to Police is, "Am I suspected of committing a crime?"

      if (crime_suspect) {
        lawyer(yourself);
      } else {
        print "Thank you, have a nice day.";
      }

[0] [http://www.youtube.com/watch?v=6wXkI4t7nuc](http://www.youtube.com/watch?v=6wXkI4t7nuc)

<comment><USER4> Coincidentally, I also received a totally unexpected call from police earlier this week. I wasn't suspected of committing a crime. Apparently helping them get in touch with my flatmate - who unbeknownst to me had _reported_ a crime - didn't incriminate me or my flatmate. Don't get me wrong, I'm sure a _lawyer_ would rather I had that two minute conversation in their paid presence, but I'm not really sure where they'd have helped me avoid accidentally intimating that I might be a criminal: I think I'd have done that more effectively by automatically assuming I was being investigated.

Assuming instantly pleading the Fifth helps misses the bit where police and especially more powerful organizations like the FBI jump to and act on a lot of conclusions that aren't admissible in court (and of course have plenty of capability to find _non-verbal_ , admissible evidence of wrongdoing if motivated to look for it, even if you're innocent). If they're casually following up a dubious lead, which they probably are if you're not expecting their visit and don't have pot plants or a server mirroring Wikileaks in your conservatory, you probably don't want to fit their mental model of a suspect, which probably means you being at least _slightly_ curious about why they want to speak to you, and at least willing to entertain the possibility that you're not the suspect. Statistically, you're more likely to plead the Fifth if you're guilty.

(This probably doesn't apply when they're picking on you because you're a genuine suspect or there are political reasons for them trying to find out about your friends or organization.)

</comment></comment></comment></comment></comment></comment><comment><USER6> "At one point, one of the guys asked to use the bathroom. I showed him where it was and went back outside the house. I remember thinking he had been in there longer than was normal."

Congratulations, you are now the proud owner of an FBI-bugged hacker house.

<comment><USER7> Do they have the right to do that? What would happen if they just found the bugs? Can they keep it? It's in their house...

<comment><USER8> Most likely the FBI would just demand that they return it.

[http://boingboing.net/2010/10/09/student-finds-gps- bu.html](http://boingboing.net/2010/10/09/student-finds-gps-bu.html)

</comment></comment></comment><comment><USER9> With these kinds of things, I'm always unsure what the proper way to handle them is. A lot of smart people say to under no circumstances talk to law enforcement, ever. I'm sure a lot of you have seen links to that effect on HN. The main argument seems to be that anything you say to an officer of the law might be misremembered later and there is nothing you can do against that.

On the other hand, in cases like this, it would seem rude and disproportionate to not even meet these fine fellows from the FBI.

A related question I always had is: How often is law enforcement confronted with people that don't talk to them on general principle? Does that really make you suspicious or is it quite common?

<comment><USER10> Talk to them if that's all they want to do.

Be polite, truthful (without over-sharing) and record the meeting.

Often times, I forget to turn off my digital voice recorder after lectures. I find recording and typing notes later to be easier than frantically jotting down notes; also even I can't read my own handwriting. If someone were to bump into me and have a chat, that's on the recording as well.

Some time ago, I got a visit from two gentlemen from the FBI. They were very polite and respectful, even though my mom was very scared, they reassured her that this was just an exploratory meeting. They also prefixed my name with "Mr." which was a bit of a delight for me because I was still a teenager back then and used to "hey you".

I think I probably still have their cards somewhere.

Nothing really happened. They got an anonymous phone call regarding something I may have said in school and wanted to see if there was something to it. Turns out it was a panicked busybody (and this was after 9/11) and they weren't even that clear on what was said. It wasn't anything even remotely requiring a lawyer's presence.

<comment><USER11> _It wasn 't anything even remotely requiring a lawyer's presence._

I want to agree with you, but how do you know that (I'm making the assumption here that you're not a lawyer, which may be incorrect)? This seems like the main issue - we (as in the common, non lawyery-types) don't necessarily know what things may or may not be incriminating. I'm not trying to instill a sense of fear, and I would always cooperate with law enforcement to the best of my abilities, but not at the risk of doing or saying something which could subsequently implicate me in something which is technically illegal and could get me arrested, convicted or deported.

<comment><USER10> That's true, I'm definitely not a lawyer. But this wasn't an interrogation by a long stretch. We also have to keep in mind, this is during the meeting itself which was rather sudden.

People have to learn the difference between knee-jerk self-censorship and turning informant at the first opportunity. There's a happy middle ground that's quite wide and don't involve paranoia induced silence or jingoism or fear inspired "collaboration" \-- if that's the operative term -- with The Man.

The alternatives are to say nothing or be evasive or "lawyer up" as the lingo says. None of which ensures their suspicion in you or something associated with you will die down or inspire confidence in your innocence.

That doesn't mean you shouldn't explore your legal options. By all means, if you do receive a visit, the very next call should be to your lawyer with every bit of detail you have about the encounter. Hence the recording. But to shut up and say nothing is IMO unwise.

If you are going to meet law enforcement, it may as well be on your own ground.

<comment><USER12> Bollocks.

I've been arrested by the police before and spent 4 hours in a jail cell simply because I was driving in an old red car with another passenger. We were even driving in the wrong direction and had food in the car that we'd just bought.

They were all sweetness and light until they turned up at my mate's house 30 minutes after 'chatting' to us and tossed it. Turned out nothing had even been stolen in the attempted burglary.

You just don't know when it's suddenly going to go from a friendly chat to something incredibly distressing and you losing your freedom.

They are not your friends and they will be fishing for anything they can use. Don't give them anything and you can't accidentally incriminate yourself.

<comment><USER4> Do you seriously think they _wouldn 't_ have arrested you and thrown you in jail for at least 4 hours if you'd refused to speak to them?

They are not your friends, but if you deny them the fishing trip they're even more likely to snag you with the trawl net.

<comment><USER12> No I don't, my point was more how a jovial and friendly chat can quite suddenly morph into them attempting to convict you of a crime and anything you said without a lawyer is fair game.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> By the time they let you know they're investigating you, they've been doing it awhile. This wasn't a friendly getting to know you, you are being investigated for federal crimes. See an attorney now, If/when they come back to arrest you it'll be a surprise.

<comment><USER14> That's not necessarily true. Yes, the FBI probably creates a file on everyone who purchases uranium in the US. FBI agents visit people regularly just to feel out their intentions and add to their file. If they see that you are a small start-up that is interested in energy generation, programming, and enjoys living life without any intentions of harming people, then they will note that in their file and leave you alone.

Yes, the FBI has a file on any activist, anyone who visits a country unfriendly to the US, anyone has a written a hateful email/letter to a public official, everyone who has committed a violent crime, anyone who owns a gun, and anyone who has the potential or motive to harm citizens. It's their JOB. It's what the organization was created to do.

Lookup how many major terrorist events are prevented by the FBI.

[http://en.wikipedia.org/wiki/Terrorism_in_the_United_States#...](http://en.wikipedia.org/wiki/Terrorism_in_the_United_States#Alleged_and_proven_plots)

Then they also prevent bank robberies, ID theft, public official corruption, and more.

[http://en.wikipedia.org/wiki/Federal_Bureau_of_Investigation](http://en.wikipedia.org/wiki/Federal_Bureau_of_Investigation)

<comment><USER15> What's the justification for the activists bit? Surely you didn't mean to say they were created for stuff like COINTELPRO?

Also, who above the age of two _doesn 't_ have the "potential" to harm citizens?

</comment></comment></comment><comment><USER11> Related question: I don't have a lawyer, because, you know, not everyone just _has_ one.

If the FBI came to my house to ask questions and I said, "Friends, I'd rather not speak with you without a lawyer present - you know how it is", how do I go about getting said lawyer without going bankrupt?

<comment><USER16> I am not a lawyer, but can't you just shut up? The FBI comes by asking questions, you can tell them "I will not answer any questions.", and, depending on the general mood, because not all FBI agents are nice people that will understand what you're doing, you can probably further say "If you have grounds to arrest me, I will want an attorney present for all interactions".

As far as I am aware, you do not have to answer them if they question you. This might frustrate the FBI however, and different agents will likely respond in different ways.

<comment><USER17> It's better to say you want to speak with your lawyer before you will answer questions. The fact you remained silent after being asked a question can be used against you in certain situations, especially with a non-custodial questioning. (the recent 2013 Supreme Court decision, Salinas v. Texas, has more on this)

<comment><USER5> > The fact you remained silent after being asked a question can be used > against you in certain situations, especially with a non-custodial > questioning.

How is this possible given the 4th and 5th amendments?

<comment><USER18> The whole argument behind this ruling is that at first the suspect talked and then stopped answering questions. Had the suspect not talked in the first place, then the 5th wouldn't have been voided, but since he did, it was.

<comment><USER5> So am I correct to assume that, according to this description and the other answer, that this falls under the 4th amendment and since the person in question initially answered questions they implicitly gave up this right and are thus accountable when they decide to stop talking?

<comment><USER19> The guy initially "cooperated" and answered questions and, at a certain point, finally just shut up and refused to speak anymore. It was ruled that the fact that he suddenly decided not to "cooperate" and became silent could be used against him.

I imagine the state arguing it to the jury similar to this: "Mr. Doe was helpful and cooperative at first and happily answered our questions. Then, when we asked him about <insert crime here> he stopped being cooperative and refused to answer any more of our questions. If he wasn't involved with <the crime>, why wouldn't he continue to cooperate?"

<comment><USER5> Seems like another reason to never start talking in the first place. Thanks!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> We should be worried if you have a place called Homes for Hackers with 1Gb fiber and purchased uranium and DIDN'T get a visit or at least an inquiry from the FBI, right?

There are a TON of organizations and crazy individuals who are out to harm innocents and cause destruction, it's the FBI's job to prevent that.

[http://en.wikipedia.org/wiki/Terrorism_in_the_United_States](http://en.wikipedia.org/wiki/Terrorism_in_the_United_States)

Edit: Wtf, so everyone here just prefers anarchy?

<comment><USER20> No.

What about 1Gb fiber connection makes one a terrorist?

What about buying Uranium off Amazon[1] makes one a terrorist?

What about starting an organization that promotes technology in the Midwest, a typically rural and industrial location, in need of new sectors makes one a terrorist?

The point is that we need to be more nuanced in our approach and show restraint. There are a lot of people with crazy ideas, however, doing things differently or having eclectic hobbies or dreams isn't what makes someone a terrorist.

What do we prefer?

We prefer freedom, liberty, and privacy to live our lives according to our own desires. Our desire for real safety is there, but security theater is ineffective. We can not prevent all terrorism, we can not prevent all harm. It is the cost of the freedom, liberty and privacy and one that we should be willing to pay. These are not absolutes, and trade offs can certainly be made. But today, we have traded too much freedom, liberty, and privacy for a false sense of security.

This is what we prefer: real safety balanced with real freedom, liberty and privacy.

[1] [http://www.amazon.com/Images-SI-Inc-Uranium- Ore/dp/B000796XX...](http://www.amazon.com/Images-SI-Inc-Uranium- Ore/dp/B000796XXM)

<comment><USER14> Nobody said they were terrorists, just that all of those factors combined ranked them higher to have the potential to commit a serious crime.

The point of FBI agents contacting people and reaching out is to get a human perspective on their situation, to be able to put in their file things that raw stats cannot show. Yes, purchasing uranium outside of an academic setting is a red flag.

How do you propose we achieve "real safety"?

> "There are a lot of people with crazy ideas, however, doing things > differently or having eclectic hobbies or dreams isn't what makes someone a > terrorist."

Then what does mark someone as a potential terrorist? Remember you must PREVENT crimes, not just punish people who commit crimes. Nobody was arrested or even felt like they were about to be arrested, it was a friendly and optional meeting to feel out their intentions.

There is a huge amount of variables that must be considered to identify someone with the potential to cause harm to society and commit terrorism. Usually that individual keeps quiet and is halfway good about preventing law enforcement from finding out. A face-to-face conversation allows an FBI agent to gauge the situation and hopefully figure out what that individual or organizations true motives are. If they are an energy startup, then fine, no problem, that's was the point of the meeting. Now there are 300+ million more people that the FBI has to make sure doesn't decide to start blowing up citizens, public officials, or organizations.

<comment><USER21> A quick google search shows the details of Homes for Hackers covered in the likes of Forbes, Wired, CNN and so on.

Traveling Nuker's site links to coverage on Yahoo Finance and SPN. A Google search points to numerous videos where the founders outline what they're working on.

It's not like these guys were trying to stay under the radar. Spending 10 minutes searching on Google would have made it obvious they aren't terrorist.

<comment><USER14> Something they did raised a red flag with the FBI. They got a friendly chat from an agent. I don't know hardly anything about their situation, what kind of things they've done on the internet, or what the red flag was. It seems like the situation was handled professional by all parties involved and I wanted to voice my opinion that not everyone has jumped on the anti-government bandwagon.

</comment></comment></comment></comment></comment><comment><USER22> > At one point, one of the guys asked to use the bathroom. I showed him where > it was and went back outside the house. I remember thinking he had been in > there longer than was normal.

If you leave cops roaming around your house alone, you may need to consider your hardware compromised. Also, in such a situation, cops would have the opportunity to plant bugs or even "evidence".

</comment><comment><USER23> Should have told him thanks but no thanks.

FBI agents should no longer be considered to be on the side of American citizens. Not with their constant snooping, their attitude that anyone with a computer is a potential hacker etc.

I would have made them stay outside of the place, listen to them talk for a min or two and said "thanks for coming and talk later." Then close the door.

</comment><comment><USER24> I take it the bathroom is bugged now (or some nearby room).

</comment><comment><USER25> Relevant pamphlet - activists and progressive and radical groups have been dealing with this for a while

[http://ccrjustice.org/ifanagentknocks](http://ccrjustice.org/ifanagentknocks)

</comment><comment><USER26> i live/work next door to the hacker house. the most worrisome part of this whole visit to me was when i asked them why they were here, their response was "to check in on your grassroots movement" and used the words "counter-culture" twice.

<comment><USER26> this being said, our overall conversation was not too out of the ordinary. they asked what my startup did, i gave them the pitch, and then we talked about advanced manufacturing and the future of the american economy for ~20min. none of them smiled though.

</comment></comment><comment><USER27> FBI showed up at Noisebridge this week asking about the Tor node again. They said the Chinese are now using it, but I am sure they have more important worries and reasons to come to NB.

<comment><USER28> I was under the impression that the FBI (or SS or DHS or whoever) showed up at Noisebridge on a regular enough basis that there's a section on their wiki for "if you're the door-answerer, and it's the Feds again, here's the standard procedure".

<comment><USER29> Looks like it: [https://www.noisebridge.net/wiki/Noisebridge_Tor/FBI](https://www.noisebridge.net/wiki/Noisebridge_Tor/FBI)

</comment></comment></comment><comment><USER30> Should rename the article to oblivious person picks Travelling Nuker as their business name and unsurprisingly raises suspicious from the government. Where's the news in this?

<comment><USER9> Suspicions of what? Last I checked naming your company wasn't a federal crime

<comment><USER31> "Tell it to the jusdge."

</comment></comment></comment><comment><USER21> > Anyway, I ended up telling them all about the Homes for Hackers program and > the KC Startup Village. I hope they understood that I give free rent to > entrepreneurs, not black-hat hackers, but one can never be too sure.

The fact that there are questions as to whether the FBI understands this distinction is terrifying.

</comment><comment><USER32> I would have said something like this:

"My apologies. I understand it would be unwise for me to have a conversation with you without, at the very least, consulting with an attorney. I have no problem talking to you within the correct framework. If there's something relevant to your visit my lawyer and I should consider I ask that you submit it to me in writing in order to avoid any misunderstanding. I appreciate your time. Please let me know if my lawyer and I should contact you and how to go about doing so."

A little verbose, I know. Perhaps those with legal training on HN can suggest and help evolve a clear and concise non-threatening statement one could commit to memory for such illustrious occasions? It sure sounds like the tech world is intersecting with law enforcement with greater frequency these days. It would behoove any entrepreneur and their staff to fully understand how to deal with these events in a manner that does not generate additional risk or liability for anyone.

</comment><comment><USER33> I'm pretty sure that this published story isn't to advertise the author's own stupidity. I believe it is the only way he can communicate what happened to certain parties without directly contacting said parties. It lets the author elaborate without saying anything.

</comment><comment><USER34> There actually are good/safe ways to have LEO contacts, which can be helpful later. The time to do that is before they contact you in the context of an investigation -- helping your local PD learn about technology issues in general (both on the criminal side and on the public safety side -- things like communications in an emergency or how to help people report property crimes online).

</comment><comment><USER19> > ... apparently the agents didn't know it even existed and asked me all about > it.

I saw this same sort of thing from FBI agents ~17 years ago... feigning ignorance and asking all sorts of questions.

I realized soon after that it was all a ploy. They almost certainly knew more about the subject than I did.</comment>


What We Talk About When We Talk About Distributed Systems - <AUTHOR> http://videlalvaro.github.io/2015/12/learning-about-distributed-systems.html <comment><USER2> Also, remember that even building a "simple" web app (comprised of a browser (client), web server, and database) counts as a distributed system. Concerns over event ordering, lack of global time, and data consistency models are all alive and well even within boring LOB systems.

To put it another way, distributed system does not necessarily imply a massive research cluster connected via MPI.

</comment><comment><USER3> A nice survey of the topic can be found in _Total Order Broadcast and Multicast Algorithms: Taxonomy and Survey_ , Xavier Défago, André Schiper, Péter Urbán, 2004[1]. Interestingly, the unexpected fame of the CAP theorem and especially its various misinterpretations has done some harm to this field of distributed systems when people started believing that eventual consistency is the only way to achieve the scalability requirements of their applications.

On the JVM, the best group communication infrastructure is the terrific JGroups library[2]. On .NET (and soon the JVM, too) there's Vsync (Isis 2)[3]. For C/C++ (with Java and Python binding), there's Spread[4]. All three are heavily inspired by the work of (or, in the case of Vsync/ISIS, directly created by) Ken Birman of Cornell, and implement group membership and leader election, atomic multicast, failure detection and more.

[1]: [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102....](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.3146)

[2]: [http://jgroups.org/](http://jgroups.org/)

[3]: [http://vsync.codeplex.com/](http://vsync.codeplex.com/)

[4]: [http://www.spread.org/](http://www.spread.org/)

<comment><USER4> I can't speak for JGroups (definitely going to check that out tonight), but spread and Vsync/ISIS both struck me as perfect examples of the meme of poor quality academic code.

Spread is an #ifdef soup containing scary stuff like "#ifndef _REENTRANT" in their hello world examples. Additionally it has a weird not quite BSD licence that doesn't look compatible with the GPL. It also makes you send them either an ssh key to checkout from subversion, or send them email/name/company info just to get the download link working.

Vsync/ISIS is a single 50KLOC C# file that spawns upwards of a dozen threads on init.

IMHO there's room for someone with more of a software engineering background to come in and clean them up (assuming that this person/group knows enough about distributed systems to clear things up without introducing more problems).

<comment><USER5> > spread and Vsync/ISIS both struck me as perfect examples of the meme of poor > quality academic code.

I was about to say that academic code is almost always poor quality, but that should never, ever apply to _distributed systems_ code. If there's one thing we should see from academic distributed systems research, it's principled, well-constructed, solidly tested libraries, rather than wannabe commercial databases written by graduate students.

</comment></comment></comment><comment><USER6> [http://nil.csail.mit.edu/6.824/2015/schedule.html](http://nil.csail.mit.edu/6.824/2015/schedule.html) MIT distributed systems course is pretty good IMO.

<comment><USER7> Do you know if they have lecture videos for this course?

<comment><USER8> Cloud Computing Concept on Cousera is really good. I've learned a lot from there.

<comment><USER7> Yes, it's really good too.

</comment></comment></comment></comment><comment><USER9> Much of the theory of Distributed systems is published at Principles of Distributed Systems (PODC). However, a lot of emphasis there is on the asynchronous model. Results that hold for the asynchronous model generally hold for other models. The main point a layman needs to know about the asynchronous model is that a slow node cannot be distinguished from a dead node. Implementers of distributed systems will generally ignore most results on the asynchronous model. A slow node might as well be a dead node, so we can use heartbeats and timeouts to exclude these nodes. Typically, robust distributed systems in industry will follow some form of partially synchronous model, adapted to the type of environment it works in: LAN on baremetal => reliable, almost synchronous when not overloaded; WAN (Internet) => as close to the asynchronous model as is practical.

</comment><comment><USER10> I appreciate the Carver reference [https://en.wikipedia.org/wiki/What_We_Talk_About_When_We_Tal...](https://en.wikipedia.org/wiki/What_We_Talk_About_When_We_Talk_About_Love)

<comment><USER11> At this point it might be more of a reference to _Birdman_.

<comment><USER12> I came to start making the references via Murakami, personally.

</comment></comment></comment><comment><USER13> I enjoy reading on distributed systems, but does anyone have suggestions for practical blogs/books/articles on the subject with directly applicable information?

<comment><USER14> Distributed Systems for Fun and Profit is pretty good: [http://book.mixu.net/distsys/single- page.html](http://book.mixu.net/distsys/single-page.html).

Focuses on theory results that are applicable to real systems and analyzes those systems.

</comment></comment><comment><USER15> Nice to see this, and completely agree with the sentiment. There is a lot of academic stuff, which is great but not always easy to evaluate or apply, and there is also a lot of harrumphing about how distributed systems are really hard without going into much in the way of details about how to actually evaluate and approach the problem.

<comment><USER16> Perhaps one of the consequences of getting information about programming topics mostly through twitter or other quick one take sources ;)

More seriously, when I started digging into distributed systems I just started picking up papers and reading and asking questions. It was definitely a meandering path until I synthesized, maybe after 1 year, what it was all about. Reading Paxos one week and DyanmoDB the next week made it tough to see the bigger picture. I think this survey post would have been really helpful to me in the past.

<comment><USER15> > It was definitely a meandering path

Which is fine, but not everyone has the time or inclination for that. Sometimes academic papers leave out lots of important practical details, or don't make a good connection with how a system might look in the real world.

I think there's some room for a few good books that fill that space, although perhaps they exist and I'm not aware of them.

</comment></comment></comment><comment><USER17> I have a question, hopefully it doesn't sound too stupid.

Basically my question is: do you have any recommendations for reading about "concurrency" but at a higher level than "concurrent programming" and less formal than "distributed systems" algorithms? Here's an attempt at explaining what I mean:

Suppose I worked for a company which mostly writes web apps in python. They don't write much multi-threaded code. They don't write native desktop graphical apps or do "systems programming". So books about "concurrent programming" with threads, or in go/scala/clojure/erlang etc seem, superficially, slightly irrelevant. Also, books about formal distributed systems algorithms seem, superficially, slightly irrelevant. But "concurrency" is still highly relevant! It's just at a higher level than is meant by "concurrency" in a programming language and it's not as formal or regular as is usually meant by "distributed systems".

What I mean is: the company handles concurrent HTTP requests resulting in concurrent database transactions; celery tasks might also be running at the same time; message-queue type problems come up frequently; they are increasingly tending towards a "service-oriented" architecture which is inherently concurrent; and, at the end of the day, all the higher-level "business logic" is some sort of emergent property of a complex, and concurrent, underlying system of apps communicating via HTTP, with asynchronous background tasks, etc. Wise senior programmers say: "Oh, you're going to need to apply some row-locking there.". Wide-eyed junior programmers say: "Oh yes, of course" and wonder, "What should I be reading to know this?".

What should they be reading?

Also, how the hell do people diagram this stuff in order to talk about it? Google searches tend to end up either in UML languages that seem to be unfashionable (but might in fact be just the right thing?) or in academic CS papers that seem to be uninfluential. But there must be something better than those pessimistic paragraphs from No Silver Bullet:

> Software is invisible and unvisualizable... The reality of software is not > inherently embedded in space... As soon as we attempt to diagram software > structure, we find it to constitute not one, but several, general directed > graphs superimposed one upon another. The several graphs may represent the > flow of control, the flow of data, patterns of dependency, time sequence, > name-space relationships... In spite of progress in restricting and > simplifying the structures of software, they remain inherently > unvisualizable, and thus do not permit the mind to use some of its most > powerful conceptual tools. This lack not only impedes the process of design > within one mind, it severely hinders communication among minds.

<comment><USER3> Sometimes, in order to understand the higher level concepts to a satisfying degree, there is no choice other than to learn and understand the low-level stuff. I think _Java Concurrency in Practice_ has everything you need (even if you're not using Java). It is aimed at the practitioner, but covers all the necessary background.</comment></comment>


Ask HN: Is it time for the Gmail web GUI to change? - <AUTHOR> <comment><AUTHOR> The reason I ask is that the sheer puny proportion of the web view devoted to (a) the actual text of the message, when viewing a message, and (b) the text of a message when one is composing a message, are both infuriatingly small. Terrible by "design" standards.

I can haz a better looking Gmail interface?

I know one can use other mail clients with Gmail, e.g. Apple's Mail.app, but wouldn't it be nice if Google itself improved the situation using Google's own web interface?

Curious what people think.</comment>


The Lost Art of Becoming Good at Things - <AUTHOR> http://expertenough.com/295/the-lost-art-of-becoming-good-at-things

<comment><USER2> One of the best things I've done recently is get rid of my TV and Netflix account (to avoid streaming on my laptop). I've also got rid of my internet connection (so I can't mindless browse the net).

When I do need the internet I usually just head down to a local coffee shop to check emails (usually twice a day), download API docs, etc. Plus I get a nice break and get to have a nice coffee. You'll be surprised how much you are not missing out by delaying emails and twitter checks. I've found my productivity has increased significantly since I'm less distracted with twitter updates, chat messages, incoming mails, etc. And of course, for emergency internet connectivity, I always have my iPhone + 3G. The iPhone is great, since it is perfect for emergency look ups of information but a hindrance enough to not aimlessly browse the web. I also like that HN doesn't have a nice mobile compatible style sheet ;-)

<comment><USER3> I got frustrated with the web this weekend. My ability to use it as an expert has waned. If we can make the assumption that the proportion of self-promotion increases over time, I believe there is a personal inflection point where the average new information being consumed is a falsehood. I say personal since every person has their own threshold for truthfulness.

When I claim to be an expert, I just mean that I used to be pretty good at finding stuff I wanted to find. Google is the tool I have overused, ignoring better, newer filters as they have come wayside.

So I feel like just turning the whole damned thing off and learning the "slow" way might be the new way to be the fast way.

2015, want to find it fast? Flip open the index of a hard cover and start scanning.

</comment></comment><comment><USER4> If everyone is failing to become experts in things, it means that the value of the expert goes up. This is derived from the fact that the value of an expert is relative to the number of non-experts.

In consulting this is a huge win for experts, since my industry is littered with people who could largely be considered incompetent. So I don't see this as being a lost art.

Plus, is expertise considered an art? IMO it's more a science or a craft.

<comment><USER5> Exactly wrong. Imagine there wasn't a good number of experts in JavaScript/HTML5 (my field of expertise); there wouldn't be HTML5 BoilerPlate, Modernizer, Respond, Require.js and the handful of books I read. I couldn't reach the level where I am today.

<comment><USER4> Sorry, I think you missed my point.

I'm not disagreeing that these type of experts exist. The JS/HTML5 field is also littered with incompetence as well. I get the feeling that the OP is trying to say that we culturally don't advocate these type of people anymore and thus it's a "lost art". I disagree. And for every hundred incompetent people, there is one writing a new boilerplate or book. My point is that this one person doesn't exist without the other hundred. It's unfeasible to suggest that all 100 should be experts and that there was a time when this was true.

...oh God, now we're getting philosophical...

</comment></comment></comment><comment><USER6> This is a view that has been voiced periodically during the advance of human communication. There are certainly downsides just as there are positives. A nice encapsulation of the topic and it's counterpoint are presented by Paul Flatters in his BBC Four Thought talk: <http://www.bbc.co.uk/podcasts/series/fourthought> MP3: [http://downloads.bbc.co.uk/podcasts/radio4/fourthought/fourt...](http://downloads.bbc.co.uk/podcasts/radio4/fourthought/fourthought_20120104-2059b.mp3)

</comment><comment><USER7> Fair point. I spend far too much time on my laptop in front of the television pretending that I'm being kinda-sorta constructive just because I happen to be answering work related emails.

Time is valuable, time to treat it as such.

</comment><comment><USER8> Becoming an expert at something is hard. Training requires a lot of mental and phisycal effort, and not a lot of people are willing to sweat it.

I believe that in order to stay motivated to become an expert, you need to have a clear goal. Why do you want to go the gym everyday? Why would you spend hours after office researching and learning about new technology? If you can't define the why, you will probably fail.

<comment><USER9> Agree with your first sentence. Being an expert takes loads of effort. For some that effort is work, for others it's fun, but no matter what it takes time and determination.

What I see more and more of these days is (in the Midwest of the U.S. anyways) parents are not teaching the value of effort to their children. Their children end up being lazy and entitled, never knowing what it truly takes to be good at anything.

</comment></comment><comment><USER10> The problem is that consuming is social and doing tends not to be. It's hard to come home to your family and tell them that TV is bad, instead we should all go our separate ways and work on personal hobbies/projects. Exercising is the one thing that is social, but usually not if you want to get to the expert level.

<comment><USER11> Doing can be lonely if it's not inherently satisfying for you...

</comment></comment><comment><USER12> It's definitely a lost art: the page is down.</comment>


Graphiti: Stylish Graph APIs - <AUTHOR> https://www.graphiti.dev/guides <comment><USER2> I'm just gonna say I wish this guy (Rich himself) records the talk he performed at our local Ruby meetup last week.

As important as a GraphQL alternative is at face value, he explained quite elegantly how he and his coworkers came to this solution. I do insist, like I did in person, that as a frustrated GraphQL noobie and fumbler with Prisma, I'm super glad to see alternative tools and mindsets and will being try it as soon as I have time for personal tinkering.

Even if hypothetically I didn't choose this with a clean slate over more popular GraphQL tools, he did a great job at placing deep technical architecture choices in the context of his philosophy and experience, Ruby and otherwise. Spraypaint also seems cool.

A pleasure to see you on HN, man.

<comment><AUTHOR> Thank you so much, great seeing you! Hopefully we'll get that talk to a larger audience soon.

</comment></comment><comment><USER3> I don't want to spend 5 minutes getting a feel for it (first link on the page) before I have some clue what it is or whether I care.

Putting one sentence of what Graphiti is on the actual homepage would help adoption enormously. "Graphiti makes RESTful Resources a first-class concept" doesn't count as an explanation of what Graphiti is. "This enables reading and writing a graph of data in a single request, a schema with backwards- compatible gaurantee, end-to-end integration test patterns, seamless microservices and much more" might be a great explanation for the developer who wrote Graphiti but doesn't ease me as a first time visitor to the site into a comfortable understanding of whether Graphiti will solve my problem.

<comment><USER4> > might be a great explanation for the developer who wrote Graphiti but > doesn't ease me as a first time visitor to the site into a comfortable > understanding of whether Graphiti will solve my problem

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

It's truly astounding how universal this problem has become in tech.

<comment><USER5> Thanks for that link.

</comment></comment></comment><comment><USER6> Great resource. Looked at it a long time ago and now it seems so much more developed. For those trying to understand how this works I'd recommend the quickstart, [https://www.graphiti.dev/quickstart](https://www.graphiti.dev/quickstart). It took me 5" to read it and understand where Graphiti stands. If you are a Rails developer this breaths a lot of fresh air and it seems to deliver on a lot of great features. I've been thinking about digging more into GraphQL but this seems to give me enough hope that REST might still de3liver once more.

</comment><comment><USER7> Not saying this has to exactly replace graphqL, but I'm struggling to understand the advantages and disadvantages over REST and GraphQL, or even how it tackles the problems graphQL is trying to solve.

My understanding looking at the query examples, [https://www.graphiti.dev/quickstart#querying](https://www.graphiti.dev/quickstart#querying)

It looks more like an ORM querying over rest than it is graphQL. It doesn't appear to solve some or the 2 major headaches graphQL is great at solving: * clients choosing how much data they need. On a desktop on broadband client, I want details of a list of entities, while on a mobile app with limited screen space and less bandwidth, I just need the skinny details like title and summary. * pooling requests to multiple domains into a single request. For example, if I writing a reservations endpoint, for purchasing flights. I need to call 3 separate microservices, 1 for availability and booking, 1 for ecommerce that's hooked up to an accounting system, and one for trip details from say a CMS system. I don't see how this saves the client the burden of making all these separate requests. In rest, you probably will have 1 endpoint that combines these requests, and separate endpoints for accessing this information individually. GraphQL saves the burden of maintaining separate combination endpoints.

<comment><USER8> > I'm struggling to understand the advantages and disadvantages over REST and > GraphQL

The "Why Graphiti" page[1] goes into some of this, getting into some comparisons of REST, RPC, and GraphQL, as well as discussing the conventions that make some of Graphiti's approach possible.

Disclosure: I'm the other author of Graphiti

[1]: [https://www.graphiti.dev/guides/why](https://www.graphiti.dev/guides/why)

<comment><USER7> I appreciate the effort. I think it is a bit of initial information overload having to read through tons of theory before getting to examples, which is why I skimmed through it and went to the examples. However the examples, did provide too much explanation and at the surface looks like a Query ORM via URL. This seems like a nice idea for things within a single domain, such as a master/detail view.

In my reservations example, if I wanted to get availability, pricing, and content from 3 separate domains in a microservice environment, using this paradigm, I think I still would have to create a 4th endpoint that that combines the 3 in a separate entity called VacationPackages if I wanted to keep separation of concerns.

Otherwise, it might be calling a CMS endpoint, which has an include of availability endpoint, which has a nested include of the pricing endpoint.

<comment><AUTHOR> Hi Dlai - you'd be able to fetch it all, across all your microservices, without creating a new entity. Will try to improve our messaging, but this one might be up your alley [https://www.graphiti.dev/guides/concepts/remote- resources](https://www.graphiti.dev/guides/concepts/remote-resources)

</comment></comment></comment></comment><comment><USER9> This looks interesting.

I like the more succinct schemas.

I like that it's simpler and easier to reason about than GraphQL.

I like the elegant solutions for lazy vs eager loading and supporting separate endpoints.

I like the sensible defaults for filtering and sorting based on type.

This is a very well thought out project, good job. Will it be the Next Big Thing? I'm not gonna make a call either way, but I'm glad that this exists and at the very least is worth investigating when building a new project.

</comment><comment><USER10> I've consulted with a project that used JSONAPI Compliable (Lee's original project) and has since switched to Graphiti. Lee's support of the team lead of that project via Slack is nothing short of incredible. He's gone so far out of his way to help, refusing any form of compensation. Wish more open source devs had the extreme care for support that he does. Kudos @richmolj!

</comment><comment><USER11> I am not familiar with graphqL and this tool looks interesting but after spending 10 minutes on the site trying to understand what it does (in layman terms) I am totally lost. Could be me or it could be the developer needs to explain it better ¯\\_(ツ)_/¯

</comment><comment><USER12> This seems be an implementation of (or heavily based on) JSON:API. Which is cool, but I think it would better if the documentation made that clear from the get go.

</comment><comment><USER13> I've used Graphiti in a project; as it looked promising on the surface. But as my needs grew, I often found myself fighting with the DSL. It makes the easy things easy, and the hard things very painful and hard. This is a problem with any DSL heavy framework.

If you have a toy project, than try Graphiti. If you're solving real-world problems; stick with GraphQL.

<comment><USER14> This comment is potentially interesting but without a specific of a "hard thing" and why it was painful in Graphiti it isn't very useful.

<comment><USER13> Maybe it's just me, but having used both tools; graphQL-ruby is much simpler. There isn't much to learn with graphQL-ruby, since the graphql spec is so elegant compared to jsonapi.

Fighting with the DSL, I mean cryptic errors, no instance variables to work with, and no straight forward way to extend the framework. I know it is possible to extend the framework, but it's not very intuitive.

</comment></comment></comment><comment><USER15> It looks like a Ruby-only variant of the OData standard. Does it have advantages over the OData standard?

<comment><USER16> Ultimately, the value prop of a tool like Graphiti or GraphQL is independent of the exact details of the wire format.

Graphiti uses JSON:API[1] under the hood as its protocol, which is a language- independent protocol with a wide variety of clients[2], and is now built-in to Drupal[3].

I designed JSON:API in ~ 2013 with a narrow purpose: to describe a protocol for incrementally communicating with server-side graphs over HTTP.

By incremental, I mean the possibility of fetching exactly the data you need at first, but then slowly filling in more data over time as a user interacts with an application.

URLs are a great "internet pointer", so when I was looking for a way to link fetched data with other not-yet-fetched data, URLs were the natural answer. On the other hand, a lot of REST APIs at the time didn't have a good way to eagerly send a whole bunch of graphy data down at once.

JSON:API's concept of linkage supports both models: a type/id pair for data the client already knows about and a URL for data it doesn't. You can even combine the two, to enable incremental refreshing of a piece of data that you fetched as part of the first request (simply by hitting the URL).

JSON:API was designed to work well with many kinds of client-side approaches, including ORMs. This meant using a composite key of type/id to identify records and not just a single ID. Over time, this has become a best practice for other tools in the space[4][5]

OData exists in a similar space as JSON:API, but JSON:API is much more tightly focused on the problem of incrementally fetching a graph of data from the server into the client. Focus is good :)

[1]: [https://jsonapi.org/](https://jsonapi.org/) [2]: [https://jsonapi.org/implementations/](https://jsonapi.org/implementations/) [3]: [https://www.drupal.org/project/jsonapi](https://www.drupal.org/project/jsonapi) [4]: [https://graphql.org/learn/queries/](https://graphql.org/learn/queries/) [5]: [https://levelup.gitconnected.com/basics-of-caching-data- in-g...](https://levelup.gitconnected.com/basics-of-caching-data-in- graphql-7ce9489dac15)

</comment></comment><comment><USER17> This is interesting. I have felt some of the issues described on the /guides/why page when trying out GraphQL. I don't have much experience with Netflix's Falcor, but I'd be curious to know how it compares with Graphiti.

</comment><comment><USER18> Quick note that there's a typo in "gaurantee" that detracts slightly from the seriousness of the site, in my opinion.

<comment><USER19> One way I remember how to spell it is to start from "warranty" which is almost the same word and much easier to spell, then replace the "w" with "gu" (in some languages they're mostly the same sound) then replacing the "y" with "ee" isn't so hard to remember

<comment><USER20> exactly, thanks to the magic of English we have two spellings and pronunciations of essentially the same word...

</comment></comment></comment><comment><USER21> This seems similar to crnk.io in a few ways.

</comment><comment><USER22> OData?

</comment><comment><USER23> I don't understand what makes this "RESTful". How can something that doesn't specify the content of the resources be asserted to be RESTful? As far as I can see, Graphiti doesn't dictate that the resources contain any state.</comment>


This Is What Really Happens When Amazon Comes to Your Town - <AUTHOR> http://www.politico.com/magazine/story/2017/10/19/amazon-headquarters-seattle-215725 <comment><AUTHOR> >The young, educated army of knowledge workers who have flocked to Seattle since the 1990s have also helped alter Seattle's political chemistry. [...] there is often "a significant gulf in attitude toward politics, if not ideology, between tech company workers and tech company management."

Ironic that Amazon wants a business-friendly town for HQ2, but if they are successful, the new employees may change the politics and make that town less business-friendly.</comment>


Oblix: an efficient oblivious search index - <AUTHOR> https://blog.acolyer.org/2018/07/06/oblix-an-efficient-oblivious-search-index/ <comment><AUTHOR> I posted this, but I really don't know anything about it, I'm just a reader. Anyway, it sounded very interesting, so I wanted to see if knowledgeable people here could discuss it further.

It's on the front page (yay!), but no comments so far. I wonder, are you reading it and pondering the implications or have you dismissed it after reading? (cynically, I guess there would be a lot of comments if that was the case.)

Is this exciting for you? Trivial?

<comment><USER2> _> I posted this, but I really don't know anything about it, I'm just a reader. Anyway, it sounded very interesting, so I wanted to see if knowledgeable people here could discuss it further._

In cryptography, "oblivious" protocols allow users to interact with data in a way that is independent from the underlying memory locations of the data. In other words, you cannot infer anything about the data based on its distribution or access patterns in memory addresses.

The foundation of this concept is oblivious RAM (ORAM), which is a memory model that (simply speaking) makes many redundant calls and operations to memory addresses so that the memory addresses associated with relevant data are obscured (compare with the idea of "padding" operations to make them constant time against side channels). The current state of the art ORAM schemes have O(log _n_ ) complexity per access, for data size _n_.

Now on top of the oblivious memory model we have oblivious data structures, like search indices. Therefore this article is describing an oblivious data structure, which requires its own protocol development and complexity study separate from the underlying ORAM.</comment></comment>


The Chinese nuclear tests, 1964–1996 - <AUTHOR> http://ptonline.aip.org/journals/doc/PHTOAD-ft/vol_61/iss_9/47_1.shtml

<comment><USER2> That story is an excerpt from the book mentioned at the end: "The Nuclear Express". It's a pretty interesting history of nuclear proliferation.

</comment><comment><USER3> half way through. this is quite fascinating</comment>


Ask HN: How do you keep your ideas? - <AUTHOR> I'm thinking of tackling these two problems: (1) Ideas happen anywhere, anytime (running, in the shower, driving, etc). How to capture these ideas before they vanish?<p>(2) I use notebooks, but once I write down an idea chances are that I will never see it again. I have a box full of notebooks collecting dust.<p>I want to know how do you capture/keep your ideas (notebook, an app, eidetic memory, napkins, mails to yourself), what do you like/dislike about your current way, and what have you tried and didn't work/stick. <comment><USER2> To solve (1), just any old scrap of paper, which is then (2) transferred to a personal wiki that lives in dropbox. I use this one (tiddlywiki.com), but anything with tagging and search would work. I appreciate the organization by time, tag, or list, and also the latex and markup support, but these are not essential. Semantic search would be even better. Ive used this to capture ideas, notes, code, writings and lists. It has been essential for my work/dissertation.

I see the personal wiki as an evolution of the commonplace book, that was kept in the past by the likes of Darwin ([https://en.wikipedia.org/wiki/Commonplace_book](https://en.wikipedia.org/wiki/Commonplace_book)). Here are some of my notes from the book _Where Good Ideas Come From_

"We know much of Darwin's thinking on the development of his ideas from his extensive notebooks, which he read, and re-read and recombined. This era was the time of the 'commonplace' notebook, in which long passages of quotes from other sources and thoughts were recorded. Reading and writing were apparently quite related. These books may have struck a balance between silo'd organization, and utter chaos, allowing the development of theories beginning with hunches which could then be further developed. The key to developing a hunch into a theory appears to be writing it down "

</comment><comment><USER3> Use the same size notebook.

Set aside front-matter pages for indexes and update them whenever you review the contents.

Write the subject, date and page number on every page.

Throw the notebooks away when they're more than ten years old. You're a different person today and if you didn't use the idea then, that idea probably isn't going to be relevant today.

Bad ideas will decay. Good ideas will echo. The hard part of the experience is knowing that 99% of your ideas will never be done.

</comment><comment><USER4> I designed a program to do it for me.

I wrote [https://mypost.io](https://mypost.io)

This allows me to create single web pages in seconds complete with the ability to use HTML and CSS. Since you choose your own URL and its unique to you.. no one else can use it, so I tend not to lose those URLs. They aren't just a random jumbled bunch of letters and numbers, rather, you can either make your own, or it will grab the headline that you set.

I also implemented a feature that allows you to save all of your URLs so you can easily find them again. I've shared it with the world and many people use it. So I pretty much designed it for myself... and figured others might find a use for it too. Feel free... it's free!

</comment><comment><USER5> A plain text file and a notebook.

Every day I transcribe the notebook into the text file.

Every time I start a terminal window it gives me the top line, and rotates it to the bottom. I then review that idea and either do something about it, or just delete it from the file.

</comment><comment><USER6> I carry a notebook with me most places, and usually have one close enough that if an idea comes to mind, I can get to a notebook and write it down before the idea vanishes. I also run a self-hosted Mediawiki instance for Fogbeam Labs and for any ideas that are Fogbeam related (and most of mine are) I will sometimes roll it up to a page there, add related links, flesh it out further, etc.

The main problem I have is the same was what the OP alludes to: I write things down, but I don't have a good system for periodically revisiting old notebooks and reviewing previously-written-down ideas.

</comment><comment><USER7> I just tell them to myself and think about them. Then as soon as I can I explain them to someone else and see if I can get them exited about it (and me too). That's it. IMHO if an idea is good enough that you and others would be passionate to build it and the world needs it, then it will stick with you, all the other stuff is garbage anyway, you can just let it go. This is the method I use for writing and storytelling as well as for my software projects and it is by far the best way I've found of keeping a currated high quality list of my ideas.

<comment><USER8> That's interesting.

When I'm working on a side project I tried to keep quiet about it until I get some progress going, in case the idea "exits", but maybe it's good idea to tell about it as soon as possible instead. Then if it stays it would surely be worthy.

</comment></comment><comment><USER9> Dropbox/ideas/ideas.txt

From any app on my Mac, I can type command-space to open a spotlight search dialog, type ideas.txt and it will open the file above.

On my phone I use [http://captio.co/](http://captio.co/) to send myself a quick note to my gmail account, then I copy it to ideas.txt when I'm on my laptop.

That's it.

<comment><AUTHOR> Thanks! How many ideas do you have in ideas.txt. How often do you read them?

</comment></comment><comment><USER10> I have a Trello board titled simply "Ideas", and a Card for each idea. Sometimes a description, sometimes not.

</comment><comment><USER11> OneNote. I used to use Evernote, but one too many glitches pushed me over the edge one day. OneNote has been wonderful.

</comment><comment><USER12> I put them in a google keep list, and whenever I feel bored or lazy I open that and pick something to work on.

</comment><comment><USER13> I use evernote mobile app and it certainly helps me note down and organize my ideas bad or good.

</comment><comment><USER14> I keep them in a program like google keep, but I also transcribe them into a Idea notebook.

</comment><comment><USER15> OneNote - the Windows Key + N will pop open a new quick-note - all synced by OneNote

</comment><comment><USER16> A "Quo Vadis" brand notebook with unruled pages and a fountain pen.

</comment><comment><USER17> Org-mode ~/ideas.org.

<comment><USER18> +1 org-mode.

When it is something right on the spot then I will either do a voice recording on the phone, or a quick note on scrap paper. I will get it into org-mode later.

I also have all phone recordings synced to laptop via syncthing, so even if I don't transcribe, at least it is kept somewhere safe for later.

</comment></comment><comment><USER19> I find One Note really handy.

</comment><comment><USER20> Google Keep</comment>


The Udemy Pyramid Scheme – Why I stopped Teaching at Udemy - <AUTHOR> http://osherove.com/blog/2014/5/7/why-i-stopped-selling-courses-on-udemy.html

<comment><USER2> I think its based on ecommerce limitations and AdWords logic/tracking. Obviously Udemy cannot rely on pure 'organic' growth (instructors bringing students), so, Udemy would spend $x to get a user into the platform. If that user ends up in your class, Udemy paid for that student, not you, so it wouldn't make sense to reward you at the same level.

Furthermore, I do understand the 'winner takes all' mentality of source tracking for retailers and affiliates. Only very, very sophisticated systems can track multi-source/multi touch and even less can do multi attribution on the fly. (e.g. you brought an Udemy student but he/she decided to use your code on someone else's class, then what? who gets what?....ad absurdum) Something in your head such as, 'why don't we all share revenue equally' is really hard to do in practice once you have to pay for growth. Someone pays for a student, or you bring your own, once at Udemy, many scenarios can happen.

I do agree that a more graceful way to do this would be to give that preference for a given period of time (e.g. your student, the one you brought in December gets you 90%, but after your class, that student is taking other classes, so someone else should/may get that higher credit.

Ultimately, you are right in that more 'competition' to bring new users seems to be the objective of the arrangement, but at least it rewards the right behavior. You want to reward the best teachers (for acquisition and retention purposes) so while it seems 'unfair' compared top the old system, the old system doesn't scale once Udemy starts paying for traffic.

I know, sucks, but this one decision seems less motivated by greed than by the struggle of marketing spend attribution and growth

</comment><comment><USER3> This instructor doesn't feel that 25-50% is a fair split for the effort of teaching the course. Given that he is now selling the course directly most likely backs this up. I am not familiar with the specifics, but I think it would be hard to argue that 50% of costs in running a online training course are administrative.

One could also quite fairly argue that taking another 25% to cover paid ads either indicates that either Udemy is unfairly putting majority of the costs of marketing on the instructor OR that Paid Ads are an ineffective marketing option (50% of sales price going towards marketing?!?).

Udemy needs to either offer more value to earn their cut, or optimize so they can afford to take less.

<comment><USER4> _but I think it would be hard to argue that 50% of costs in running a online training course are administrative... Udemy needs to either offer more value to earn their cut, or optimize so they can afford to take less._

Your comment _might_ be even remotely true if udemy was a not-for-profit company but that's not the case. The goal of a company isn't to have a net- zero sum at the end of the year (no profit). How much did udemy spend on advertising in the past years? Because the result of that advertising is what the OP is going to "cash in" on with his unbelievably high 50% revenue cut. How many conferences did udemy go to as a sponsor/have-a-booth? How many training sessions did they send their employees to so that their website + backend would be amazing fast and available?

Go to Microsoft Virtual Academy, or to Cisco, or to Oracle/etc, and ask them how much you will get paid if they do the same thing as udemy is doing. Go to O'Reilly and ask them, or Lynda.com, etc. How much will Packt pay you to write a book?

Complaining about a 50% revenue share is like complaining about a $49 airplane ticket from NY to Paris. First, you're talking about a small group who need to or have ever flown from NY to Paris, and second your price point is likely 100% lower than the lowest fare anyone else has ever paid. So that leaves one solution: start your own airline and DIY (which is, in effect, what it appears the OP did).</comment></comment>


Share your screen on Zoom with ultrasound - <AUTHOR> https://support.zoom.us/hc/en-us/articles/214629303-Direct-Share-with-Zoom-Rooms <comment><USER2> They've had this feature for sometime and it is pretty cool. :)

About a year ago there was an ask HN about conference room systems. I had just recently gone through the process of selecting and went with zoom. The "airplay" feature was one of the reasons why.

Here are my notes: [https://news.ycombinator.com/item?id=19455428](https://news.ycombinator.com/item?id=19455428)

Edit to add one note: They recently (last six months or so) added a feature to allow you to share multiple screens at once. We've setup most of our conference rooms with two screens so it's really cool when two people in a room can wirelessly share their screens and you're able to see both at once.

<comment><USER3> Wow, thank you for the tip with owllabs.com -- that device sounds amazing (while being damned expensive...). Why do you still use another microphones when you have a 800$ webcam (with integrated microphones) in the room?

<comment><USER2> We only have a couple of rooms where we have the Owl plus another microphone, and those are rooms that are a little bigger than what is suggested for the owl so having the wireless mics help.

The owl pro seems to have been an improvement there. We only have one pro right now, but the speaker is much louder and mic a bit better.

</comment></comment></comment><comment><USER4> Build your own with: [https://github.com/quiet/quiet](https://github.com/quiet/quiet)

<comment><USER5> Reminds me of [https://chirp.io/technology/](https://chirp.io/technology/)

</comment></comment><comment><USER6> Cisco have had this feature on their video conferencing stuff for about a decade.

<comment><USER7> Maybe they had it, but I'd say whenever I had to use a Cisco web/video conferencing product (or , to be fair, most other web conferencing products), I always felt I was battling someone trying to get everyone connected. With Zoom my experience really was a "it just works" kind of experience.

<comment><USER8> Exactly! Same with GoToMeeting -- it litters your downloads with files every time you want to have a call. Zoom eliminated that friction, and that's why people are talking about Zoom w/r to this and not Cisco.

</comment></comment></comment><comment><USER9> Although this is ultrasound it's still audible to me - I'd guesstimate it around 22-23 kHz. It's in that range where you almost feel it rather than hearing it, like the whine off some CRTs. I'm sure I'm a rare case, even most of the other people my age (early 20s) don't hear it unless they're right up against the speaker, but it sure is annoying for me.

<comment><USER10> while it's technically possible to hear above 20 kHz, outside of a laboratory it's far more likely that you're hearing intermodulation distortion, or simply background noise: at least on Linux, the audio output can be disabled completely when not in use. therefore, there is background noise only when the audio output is activated.

<comment><USER11> Being relatively young and having a childhood history of asthma could get them hearing a little higher than 20 khZ as well, so it's not out of the question that they are hearing the sound itself.

But the most likely thing is that they are hearing some sort of undertone or artifact created in the process of the signal generation.

<comment><USER12> Why asthma?

</comment></comment></comment></comment><comment><USER13> So does that mean that software will always have mic on?

<comment><USER14> Maybe, but there's no reason for it to send any audio anywhere while it's parsing ultrasound, so not a privacy problem.

<comment><USER13> Until software is compromised or simply has a bug that stream audio somewhere.

<comment><USER15> In which case it could have just turned on the microphone itself?

<comment><USER13> Software that already is listening has more vectors of attack to put it simply. I'm not a fan of features that compromise privacy and security for the sake of convenience.

<comment><USER15> That's really nonsensical. Nothing about using an audio input makes code more vulnerable. The interface is always there if the hardware is.

</comment></comment></comment></comment></comment></comment><comment><USER16> Zoom is integrated into our Outlook calendars (and pretty well, I might add), so I assumed the Share Screen function looked at my calendar, saw which room I was scheduled to be in, and shared my desktop to the corresponding screen.

I suppose doing it with ultrasound is a little simpler, and avoids problems if we have to duck into a different room due to a schedule conflict.

</comment><comment><USER17> Zoom is associated with malware in my mind. Is it the same app/service that was infamous on here for a while?

<comment><USER18> You're probably thinking of a security vulnerability in their Mac client due to a poor design choice that they were negligent in fixing expediently.

Still, I don't think this classifies the app as malware—the behavior was not added with malicious intent.

[https://medium.com/bugbountywriteup/zoom-zero- day-4-million-...](https://medium.com/bugbountywriteup/zoom-zero- day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website- ac75c83f4ef5)

<comment><USER17> That definitely counts as malware. Intent is irrelevant. Same with Google's Keystone and Dropbox storing admin passwords.

If you have higher access to my system than you led me to believe, you are malware.

<comment><USER19> So Google is associated w/ malware in your mind? And Dropbox? You seemed to be saying Zoom is primarily associated w/ malware for you. If so, you feel the same as the other two brands/companies?

<comment><USER20> If I uninstall Chrome, will it reinstall itself by keeping a daemon running?

<comment><USER17> Apparently Keystone did/does something like that.

</comment></comment></comment></comment></comment></comment><comment><USER21> I love zoom, but I don't get why this is special. I can share my screen already today after I am log into the zoom room. So they made it easier by skipping the login part?

<comment><USER22> You can share your screen and then everyone else in the physical room needs to start typing a bunch of characters in to connect to the right zoom room. Which you probably email or slack to them or try to figure out how to connect to the TV. This skips that whole mess and lets them connect automatically.

</comment></comment><comment><USER23> Highly recommend enabling this feature to give cross platform Airplay-like functionality to your Mac and Windows clients.

</comment><comment><USER24> Crazy, I thought I deleted Zoom months ago but somehow I already have this update. What great news!

<comment><USER17> This sounds alarming: [https://news.ycombinator.com/item?id=22351190](https://news.ycombinator.com/item?id=22351190)

(Zoom resisting uninstalls)

</comment></comment><comment><USER25> Is it already the 1st of April?

</comment><comment><USER26> > Share your screen on Zoom with ultrasound

So this is misleading?

It just uses ultrasonic to connect? So is just sending a very small amount of data?

It uses the fact ultrasound can't break through walls to define a space?

You could do exactly the same with Bluetooth or Wireless but you might pickup next door?

<comment><USER27> And dropbox just lets you sync files to a remote server.

<comment><USER28> I still don't know why DropBox is a thing. For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software.

<comment><USER29> I think you just answered your own question - that sounds quite painful for me to maintain and I'd rather pay Dropbox for the time they save me. + all the added benefits of features they can build with a dedicated organization improving this workflow.

<comment><USER30> Parent is making a joke.

See the top reply on the Dropbox launch thread: [https://news.ycombinator.com/item?id=9224](https://news.ycombinator.com/item?id=9224)

</comment></comment></comment></comment></comment><comment><USER20> Install Zoom on my computer?

I'll take a hard pass.

[https://www.zdnet.com/article/zoom-defends-use-of-local- web-...](https://www.zdnet.com/article/zoom-defends-use-of-local-web-server- on-macs-after-security-report/)

</comment><comment><USER31> Yet another thing to kill with Chlorine Trifluoride. Large quantities.</comment>


Weak bits floppy disc protection: an alternate origins story on 8-bit - <AUTHOR> https://scarybeastsecurity.blogspot.com/2020/06/weak-bits-floppy-disc-protection.html <comment><USER2> The Apple II's disk controller could easily write "flaky bits" in software. By telling the controller to write three or more consecutive zero bits, you'd produce a sector that read back unpredictably. So your copy protection scheme would be to turn off sector checksums and then read your test sector a few times in a row. If the sector came back identical each time, then you were likely a copy rather than an original.

After reverse-engineering the verification code in a few different games, I wondered how the publishers produced those weird sectors. I called them "weak bits," coincidentally, because my theory at the time was that they modded the disk head to write the bit weakly so that it couldn't distinguish a one from a zero during readback. A friend at school had a copy of Don Worth's _Beneath Apple DOS_ , which absolutely blew my teenage mind. Until reading that book, I didn't think that any single human could understand and clearly explain a complex system so thoroughly.

<comment><AUTHOR> Interesting, I didn't know the Apple II's controller could write the combined data and clock bits. That's unfair :) I was also pointed to this Twitter thread where it is explained that they wrote Mr. Do weak bits with a hacked up Commodore 64 drive controlled by an Apple II!

[https://twitter.com/JBrooksBSI/status/936476972611334147](https://twitter.com/JBrooksBSI/status/936476972611334147)

</comment></comment><comment><USER3> It's much simpler than weak bits, but I remember one of the Ultima games for DOS had a track with a small sector embedded in the middle of a long sector. So from the point of view of the controller after decoding, there were more sectors than could be written onto a track.

All the copy protection did was decrypt itself, read the starting address of the executable from a sector on that track, and jump to it. My fix was to just stuff that address back into the executable header. (I had actually purchased the game, I was just tired of having to insert the floppy every time I ran it off of the hard drive.)

</comment><comment><USER4> This reminds me of "weak sectors" as used in the infamous SafeDisc and related CD protections, which exploit a _digital_ aspect of the media (EFM encoding) to create an optical equivalent of a [https://en.wikipedia.org/wiki/Lace_card](https://en.wikipedia.org/wiki/Lace_card) :

[https://web.archive.org/web/20090603002402/http://sirdavidgu...](https://web.archive.org/web/20090603002402/http://sirdavidguy.coolfreepages.com/SafeDisc_2_Technical_Info.html)

</comment><comment><USER5> I remember Dungeon Master on the Atari ST having fuzzy bits. There was also another game, I can't remember which that instead of locking up or not loading on detecting that the fuzzy bits were not fuzzy (and hence it was a copy) changed the gameplay so that the end boss was unbeatable.

<comment><USER6> The Atari had a _lot_ of copy protection approaches[1]. No wonder, with the floppy controller being so flexible.

[1] [http://dmweb.free.fr/files/Atari-Copy- Protection-V1.4.pdf](http://dmweb.free.fr/files/Atari-Copy- Protection-V1.4.pdf)

</comment></comment><comment><USER7> Fabulous explanation of how they did copy protection in the old days. I remember the 8271 well. I'm not sure why they used such an old chip with the BBC B, as it was quite expensive. The WD1770 was better and cheaper.

<comment><USER8> 1770 upgrades were extremely common for the BBC Micro. (They are, astonishingly, still made.) The B+ and the BBC Master came with a 1770 by default.</comment></comment>


Should we switch from CoffeeScript? - <AUTHOR> http://blog.varunajayasiri.com/switch_coffeescript.html <comment><USER2> I really love CoffeeScript. But I share your concern that It's future is uncertain. I also really like LiveScript, another of Jeremy Ashkenas language projects (It's like 80% Coffeescript.)

</comment><comment><USER3> I think you've confused static & dynamic typing; JavaScript has types, and a `typeof` operator.

<comment><AUTHOR> Thanks You are right, I meant static typing

</comment></comment><comment><USER4> try Clojurescript. it's really nice!</comment>


Show HN: I made a web app to track the books I want to read - <AUTHOR> http://getbookends.com/

<comment><USER2> This is neat, works well, simple. Definitely not paying $12/year for it. See: [http://www.shelfari.com/](http://www.shelfari.com/)

<comment><AUTHOR> Would you use it if it were free?

</comment></comment><comment><USER3> You should consider putting up a screenshot.

<comment><AUTHOR> That's not a bad idea. I might go ahead and do that tomorrow.</comment></comment>


Apple is holding me at ransomware - <AUTHOR> https://medium.com/@kevinbatdorf/apple-care-holding-me-ransom-to-remove-ransomware-769571fba69a <comment><USER2> The $30 is a charge from the 3rd party company iCare. An actual Apple Store would not charge such a fee to remove firmware password.</comment>


Five Things Facebook Should Fix Immediately - <AUTHOR> http://techcrunch.com/2011/03/26/five-things-facebook-should-fix-immediately/ <comment><USER2> "Why is it that such a successful company as Facebook feels like it needs to change and reinvent its interface constantly?"

I've been thinking exactly this.

Facebook seems to be mutating at a high rate. Perhaps they'll mutate into profitability but perhaps they'll mutate out of being something that their users are willing to keep using...</comment>


Is Being an Indie all Fun and Games? - <AUTHOR> http://majicjungle.com/blog/496/ <comment><USER2> I work from home as an indie iOS developer, and I can agree with most of these points.

I can relate to the feeling that you "can't escape". But after reading the Four Hour Work Week, I'm starting to think about how I can automate more parts of my own businesses. I think it's possible to run a successful business without feeling the need to constantly tend to it. That's an important goal for me now.

Lack of social interaction is definitely a drag sometimes. So much so that I'm thinking about checking out some co-working spaces to mingle with other self- employed individuals.

So there's definitely downsides to being indie, but nothing that can't be remedied. And being your own boss far outweighs any of these negatives.

</comment><comment><USER3> Sorry guy, but you can't do that job really long enough. Every job has its disadvantages. I can already see some that you will find serious later on. Like when your weekend is Wednesday and Thursday, then you can't spend your weekends with your normal working wife and your school children. Also, when you drink beer on your desk and don't push yourself through unproductive times, you will never get anything done. And who pays the bills then? Also children always have a hard time understanding that the father, always being home, has times where he is working - not available - and times where you can go and talk to him. I NEVER got that as a child. For the child that also doesn't feel like dad is home more often, but that he spends less time with them then he could. I could tell you so much more annoying things, without even working as an Indie and just being 25 years old (so having not much life experience myself).

That is why I am quite disappointed that you write an analysis of your job without being able to weigh pros and cons. Please add an "against" part! Neither for yourself, nor for your readers it will be a valuable analysis otherwise.

</comment><comment><USER4> So here's a related question: How do you avoid having to do all the manual customer relations work yourself?

Is there a service you can pay to handle that? Some kind of helpdesk you can pay according to how many traffic (emails/phonecalls) they have to handle? Of course, for anything not already in the documentation, they'd still have to contact me for info, but that would dramatically cut down on the support time.

</comment><comment><USER5> So true. After a year, i started feeling isolated, so i started part time graduate school.

There seem to be common patterns here <http://theoatmeal.com/comics/working_home></comment>


How a Startup Became the Greatest Tech Conference in Europe - <AUTHOR> https://www.linkedin.com/pulse/how-startup-became-greatest-tech-conference-europe-gennaro-cuofano <comment><USER2> Great post. Thanks for this</comment>


Content Marketing Hacks from Dan Martell - <AUTHOR> http://blog.helloworld.im/post/7280396163/market-your-content-like-a-boss <comment><USER2> Three quick hacks which I tell consulting clients all the time:

1) That thing OKCupid does to blog posts? Do it. Really.

(It occurs to me that, in general, "Imitate OKCupid" is good advice, but the _specific_ thing is their sharing flydown menu. See <http://blog.okcupid.com/index.php/10-charts-about-sex/> and just keep scrolling, you'll see the effect when you hit the comments. Apologies for the topic, they are an edgy dating site.)

This is, in my recent experience, about ~3 hours of work, even if you're not a CSS/Javascript wizard. (And it will be easier when I get done with immigration stuff and have time to productize and OSS the implementation I did for a recent client.)

2) Blog posts typically have a spread phase (dominated by the new release window) and a residual traffic phase. Nothing says you can't optimize them differently for both phases. For example, put your citation-worthy headline and a prominent graphic into the post for launch. Change it to a SEO headline and add pre-graphic call to action after 48 hours.

3) The perceived value of blog posts is worse than evergreen resources. Strongly consider making those; they often have much higher ROI. The difference is largely just a matter of packaging.

a) Resources don't have a prominent date on them.

b) Resources don't scream I Am A Blog Template with, e.g., comment sections or headers which look like a blog.

c) Resources get more attention to unique, brandable visual design than blog posts do.

That might sound like a lot of work, but it is really not.

P.S. Oddly enough since I pay them money, I had never seen the KissMetrics blog prior to today. Egads. I am taking notes -- there is a heck of a lot there which is steal-worthy. (Note lack of date on posts. Note position of calls to actions prior to comments and on right navigation. Note email submission. Note per-post icon design. Note position of icon next to sharing buttons.)

<comment><AUTHOR> There's no OSS for that flydown menu? Seems like I've seen that in quite a few places. Thanks for sharing your hacks.

<comment><USER3> Here's the one the Kiss Metrics blog uses:

[http://wordpress.org/extend/plugins/active-share-by- orangeso...](http://wordpress.org/extend/plugins/active-share-by-orangesoda/)

Wouldn't be hard to adapt for non-WP use.

</comment></comment></comment><comment><USER4> For those initially confused by their link to the personal finance service named Mint, I believe their intention was to link to the web analytics service also named Mint at <http://haveamint.com>

<comment><USER5> I think, the link is indeed correct. It says that one should take a look at the call to action buttons etc. on the Mint blog (as linked), as they are probably quite successful.

</comment></comment><comment><USER6> Is the video available somewhere?

<comment><USER7> Unfortunately I gave this talk as an exclusive favor to the 500 Startup companies. I may decide to mod it a bit for public consumption - but there was a lot of "inside stuff" that I'm not comfortable sharing publicly. As we iterate, I'll be sure to share more and more.

P.S. I blog at <http://www.maplebutter.com></comment></comment>


A Modest Proposal: Recruit The Hackers - <AUTHOR> http://thestory.org/archive/the_story_072612_full_show.mp3/view

<comment><USER2> _Coleman says that her contact with hackers indicates that they would not want to work with a government that encroaches on online privacy._

Other data -- such as the readiness of the Maker and hackerspace communities to accept DARPA funding -- suggest the opposite.</comment>


Assassinate your way across the Galaxy - Elite on Kickstarter - <AUTHOR> http://www.kickstarter.com/projects/1461411552/elite-dangerous?

<comment><USER2> David Braben has toyed with my heart and broken it at least a dozen times since the beginning of this millennium. I've been teased and tortured with promises of Elite 4, scouring internet forums and chat rooms for any new information. My sickness manifested through vivid dreams of piloting my Cobra MKIII, loaded with contraband, and shooting my way through a swarm of nimble police ships. Awakened, I inevitably struggled with the sudden realization that Elite 4 is not reality, and it may never be.

And now - a new hope awakens! And despite the burning scars of previous disappointments, I pledge 20 quid like a sad, pathetic junkie whose rehab never quite took hold. This time, I tell myself, this time it will be different.</comment>