Whoops and hashbangs - <AUTHOR> http://tripleodeon.com/2011/06/whoops-and-hashbangs/

<comment><AUTHOR> hashbang discussion rearing its head again..... this post is long but it has some insights / questions into why the debate erupts about this and what it means when we say they 'break the web'. Hashbangs are caught in the middle of this transition of our old thinking of web docs into an application platform.</comment>


When Music Is Violence - <AUTHOR> http://www.newyorker.com/magazine/2016/07/04/when-music-is-violence <comment><USER2> On a tangential note, my neighbor plays the same music daily outside for 1.5 hours and it actually infuriates me (musical torture). I end up needing to turn on my AC and some ambient noise videos to block it out.

Have tried the civil route, but it's not working and it's not illegal to be a rude neighbor. Anyone have any insights on how best to handle this, other than moving out?

<comment><USER3> This is my experience in startup offices as well - a small clique of people (or one person) controlling "office music", which everyone is forced to listen to. It's so hard for me to get work done. I really don't get why companies do this, it's basically throwing away productivity ($$$) for an image of "team- ness".

<comment><USER4> I would recommend noise-cancelling headphones - a nice pair that are comfortable and won't hurt your ears for extended use.

My office uses internet radio at minimal noise levels just so the environment doesn't feel eerily quiet or like a crypt. But half the folks wear headphones (I am one of them - I can barely hear the radio). Books on "tape", music, podcasts, silence or white noise - whatever floats your boat. They are easy enough to remove if you need to chat with someone.

<comment><USER3> Noise cancelling only really works on ambient noise, so unless your coworkers are queuing up "Music for Airports", it won't really help. It also can't create _silence_ , and will still damage your hearing over time. The best solution is for the people that want noise to just use headphones!

<comment><USER5> Headphones with good passive attenuation will block any kind of noise. They are essentially industrial ear defenders that also happen to be excellent headphones. Headphones with Bose-style active noise cancellation are an ineffective gimmick.

Headphones of this type typically provide around 30dB of attenuation, enough to reduce loud music to a gentle murmur. I highly recommend them to anyone who works in an open-plan office.

[http://europe.beyerdynamic.com/shop/dt-770-m.html](http://europe.beyerdynamic.com/shop/dt-770-m.html)

[http://en-uk.sennheiser.com/hd-280-pro](http://en- uk.sennheiser.com/hd-280-pro)

[http://www.extremeheadphones.com/passive-noise-isolation- hea...](http://www.extremeheadphones.com/passive-noise-isolation-hearing- protection-headphones/studio-products/ex-29-headphones/)

<comment><USER6> > _Headphones with Bose-style active noise cancellation are an ineffective > gimmick._

They are actually very effective, both for airplane style noise, but also for street noise, people talking in an office, and music playing.

Haven't tried Bose themselves, but active noise cancellation on Parrot Zik's works well, and all reviews say Bose's is even better.

Plus, if you also play your own music on top, you can't really hear anything -- to the point of it being dangerous if you're walking in the street, crossing roads, etc.

</comment></comment></comment></comment></comment></comment><comment><USER7> Well, if you're in for a DIY solution, This seems to work well: [http://hackaday.com/2012/07/03/noise-pollution-tit-for- tat-u...](http://hackaday.com/2012/07/03/noise-pollution-tit-for-tat-uses-the- baha-boys-as-a-weapon/)

Who let the Dogs out? The noisy neighbour tripping the acoustical switch did!

<comment><USER8> I'm constantly amused by family-friendly pop culture references to that song, considering how incredibly offensive it is :)

<comment><USER9> How so? It's a song about douchey guys in the club, being shitty to women.

</comment></comment></comment><comment><USER10> _The songs conveyed threatening, sometimes mocking messages: Alice Cooper's "No More Mr. Nice Guy," AC /DC's "You Shook Me All Night Long."_

The second song listed is an ode to a woman and her sexual prowess. How is this threatening or mocking?

</comment><comment><USER11> See also [https://mitpress.mit.edu/books/sonic- warfare](https://mitpress.mit.edu/books/sonic-warfare).

</comment><comment><USER12> I recently got hired (2 months ago) and a co-worker is listening to metal/death-metal/folk-metal/the-elfic-choir-of-the-army-of-darkness all day long. Except when it's gossip time. There are four of us in 25m² room.

It's slowly starting to bother me.

</comment><comment><USER13> Scots bagpipers claim prior art.</comment>


Performance Improvements Using Judy Arrays - <AUTHOR> https://github.com/blog/1489-hey-judy-don-t-make-it-bad <comment><USER2> The article's credibility is significantly reduced by referring to Judy Trie lookups as O(log n) operations. They're actually O(log w) operations: the number of operations is bounded by the array's _word size_ , not the size of the Judy array. A million elements in a Judy32 array will cause at most 7 node hops, not the 20 you'd expect from a binary tree.

<comment><USER3> This is the genius of tries. We had to code up the data structures for Twitter for our coursework, for some reason as if it was all in memory. I found a suffix tree (not as clever, it branches on character, so normalised there were 36, and is designed for full text searching) was a really clever way to store that data because search time for a phrase doesn't increase as your data set does. Unrealistic for something like Twitter, but a really useful trick that this article definitely misses.

<comment><USER4> Twitter's data _is_ all in memory. That memory may not be random-access memory, though.

A pet peeve of mine is how people can do all the CS necessary to get nice data structures for their in-RAM data, but seem to forget everything they know and use very bad structures when they spill to flash or disk storage.

<comment><USER5> Can you recommend or link to introductory material on data structures optimized for flash and disk?

<comment><USER6> You could start by looking at databases.

One useful data structure is the B+ tree <http://en.wikipedia.org/wiki/B%2B_tree>

<comment><USER7> Also log-structured merge trees:

<http://en.wikipedia.org/wiki/Log-structured_merge-tree>

There're a bunch of fascinating performance tradeoffs between B+ trees and LSM trees, which come out when you're choosing between something like MySQL InnoDB or PostGres (B+ tree) vs. LevelDB or Apache Cassandra (LSM trees). LSM trees tend to be faster for inserts and for write-heavy applications, and they offer very fast reads and writes for frequently-accessed data. They also depend upon the _bandwidth_ of the disk rather than the seek time, and bandwidth has of late been increasing significantly faster than seek times. OTOH, they offer very variable latency, as an insert might trigger a major compaction, while B+ trees have a bounded latency limit. A lot of the distributed systems work at Google (a big user of LSM trees via BigTable) comes from the need to work around the poor 99th percentile latencies of LSM trees.

</comment></comment></comment></comment></comment></comment><comment><USER8> While this is very interesting, the real problem here is not Linguist stuff, but the fact that it's crammed into the web app.

A web app involved in a site as complex as Github's should really contain only the parts required to service web pages. A service like language classification is clearly better designed as a standalone service.

Aside from working around GC overhead, compositing big app from many smaller apps have many advantages. You force yourself to encapsulate complexity with strictly focused, network-friendly APIs (we use REST ourselves), which changes the way you have to think about programs. Hiding the implementation behind an API also allows you to swap out the implementation without the client ever knowing. Since the client and server are separated, you have fine-grained control over how much resources you are willing to spend on which components. And so on.

Having done monolithic Rails apps for many years, it's a model I am not going to back. Today, our web apps contain only UI logic. No database, no models, no data logic, just UI all the way. Everything else is handled by specialized components.

<comment><USER8> [Sorry about the horrendous spelling/grammar errors. I was in a hurry.]

</comment></comment><comment><USER9> There is some interesting things in this post but the main problem is not using Judy or something else, or talking about memory or complexity. The main problem I see here is using the wrong tool.

Replace the token matcher with a simple classifier (a maxent will work very well here) with n-gram of characters features through a hash-kernel and you get a very accurate, fast and low memory system.

I've build one two-years ago who accurately classified a bit over 100 different languages with only 64k features in the end. (So requiring only 8*64ko of memory) And this was without using file extensions as they weren't available in our case.

Before any hard optimizations, first check the methods used, and next the algorithm, anything else should go after.

</comment><comment><USER10> Some previous discussion on Judy Arrays [0]. Apparently they are patented!

[0]: <https://news.ycombinator.com/item?id=5043667>

</comment><comment><USER11> Wow this is an incredibly interesting and accessible article on performance tuning. I have two questions:

1) Is there an easy tutorial somewhere on calling out to native code from Ruby?

2) Could the team at Github possible give a little more detail on what you did to get all of those pretty benchmarking graphs? How did you get all of the info on memory usage and CPU activity (I assume it wasn't just time {command} > file.txt)

<comment><USER12> > 1) Is there an easy tutorial somewhere on calling out to native code from > Ruby?

The canonical documentation is here: <https://github.com/ruby/ruby/blob/trunk/README.EXT>

</comment></comment><comment><USER13> I would have liked to seen the Judy array implementation in pure Ruby, so we could compare apples to apples. I'm not trying to troll... but basically they solved their problem by:

* Avoiding Ruby language features

* Rewriting it in a different language

This is why I lean towards static languages like Go, Scala, and Java.

<comment><USER14> So if you want to run a big site on Ruby, slowly migrate all the Ruby bits you use heavily to C/++? Seems to be the storyline of their blog.

<comment><USER15> Well, maybe to put it more generously:

1\. Build a site in ruby (insert langauge/framework the creators are most comfortable/familiar with and can iterate quickly). 2\. Build a community of a certain size that causes it scaling problems. 3\. Identify the hotspots and re-implement them in more performant way.

This seems entirely reasonable to me. In fact, I'm guessing this is the path that all applications that get to Github scale take. Of course, it's easy to be snarky and identify Ruby as the problem. (Building the community is the hard part!)

<comment><USER16> Back in my smalltalk days (mid-90s), we used to call this "going below the C level" - take sections of code that need to be optimized, and rewrite them in C as a DLL/shared binary, to be called by the smalltalk native layer.

The % of C code was less than 3%, from what I remember, and C is significantly more verbose than smalltalk, too.

I hear that happened a lot with java as well, using JNI sections for performance purposes (this was before hotspot compiler got decent).

</comment></comment></comment></comment><comment><USER17> This is great. Someone should change the title so it's descriptive of what's going on, although I have no idea what that title should be, heh.

This post is about Github moving some code from ruby to C for performance, MRI's GC, and judy trie-like data structure and how it compares wrt to both performance and memory consuption with hash implementations.

<comment><USER18> _"... I have no idea what that title should be, heh."_

It's a reference to the Beatles' song, "Hey Jude" (which opens with "Hey, Jude, don't make it bad | Take a sad song and make it better ...").[1]

[1] <http://en.wikipedia.org/wiki/Hey_Jude>

_Edited for clarity._

<comment><USER19> The issue is that the title, while clever, doesn't give a even a remote idea of what the post is about.

<comment><USER20> I guess I still prefer a catchy title to preachy ones that extensively use RFC 2119 keywords. e.g. "Why you SHOULD profile Ruby code to catch expensive regex bottlenecks" :)

Personal preference though.

</comment></comment></comment></comment><comment><USER21> I wonder if something like Crystal could have helped.

<https://github.com/manastech/crystal>

<comment><USER22> That looks amazing! Hadn't seen this before, but it's what I've been after for a long time.

</comment></comment><comment><USER23> For starters, the blog post was informative and should get some creative juices flowing for applications in others' stacks -- piqued my interests in hacking core utilities. However...

The graphs never show a 30K token mark, which is what the heap-allocation counter showed for their [programming language] classifier.

It's not clear to me that much RSS was saved. Maybe 20Mb? So, the next question is how many classifiers are running, where such a "hit" actually matters. Again, there is no 30K mark on the runtime graphs, but let's assume the generation to the graphs' left are linear. It looks like we're saving a half-second and removing most of the jitter, but it's not made clear how the removal of GC chunking has any effect on processing outside of the classifier. I just can't imagine how a couple of these classifiers can't keep up with the push rate of files to Github -- the classification improvements are neither low-hanging or part of the BigO in Github's stack. The process seems very able to run asynchronous at push time and un-deferred, if unrun, on page view. Unless they're seeing more than 1 million pageviews/sec (per classifier; just run more? one 20Mb service per httpd server?), because I can't really imagine hitting more than 10x their tokens (300K tokens), which is still only ~50Mb; the RSS graph, again, has a weird scale to suggest they might grow their tokens by 67x.

<comment><USER24> They said in the article that they want to expand the classification data so my guess is they will be going well beyond 30k tokens.

</comment></comment><comment><USER25> Judy arrays are also faster in node.js: [http://legitimatesounding.com/blog/Faster_sometimes_Associat...](http://legitimatesounding.com/blog/Faster_sometimes_Associative_Arrays_with_Node_js.html)

the issue is with the patents - has anyone been contacted yet about the usage?

</comment><comment><USER26> Sometimes Mods change the title to be the original article title. And sometimes they change it from the original article title to something else!

<comment><USER27> Yes... they change it to the original unless it's really clear the original change was super necessary. In cases when the original title tells you _nothing_ of the content, they change it to something useful. Seems like a pretty transparent and reasonable heuristic to me.

<comment><USER26> I agree that it's reasonable. I don't feel it's applied uniformly though.

<comment><USER28> No policy ever is.

</comment></comment></comment></comment><comment><USER29> 1\. this could be done offline, or cached

2\. unconvinced that they can't do better w/ the right hash table (which will be thousands of lines fewer of code). but since they're using a library, i'll give them a pass. not even a benchmark vs. a quick hash table version makes all the claims about "judy arrays are better for our purpose" suspect.

</comment><comment><USER30> Isn't Judy Array patented? What's the legal status using it?

<comment><USER31> If patent does apply (and there's been no statement or claims about which ones do definitely apply), then people assume it's US6735595: Data structure and storage and retrieval method supporting ordinality based searching and data retrieval.

The software from HP is under the LGPLv2.1 which says "Finally, software patents pose a constant threat to the existence of any free program. We wish to make sure that a company cannot effectively restrict the users of a free program by obtaining a restrictive license from a patent holder. Therefore, we insist that any patent license obtained for a version of the library must be consistent with the full freedom of use specified in this license."

That can imply that there are no additional patent protections should you use the LGPL'ed version of Judy or its derivatives. YMMV. Consult your nearest patent attorney for details.

The patent expires in 7.5 years.

</comment></comment><comment><USER32> So each language is stored with a prefix in the Judy array. This means that to identify the language of a token, you have to loop for all languages, prefixing the token and looking it up, keeping a count of matches for each language. Does that sound correct?

I wouldn't have used the prefix approach, instead storing a token once in the judy array, and using the data stored to indicate which languages match the token.

</comment><comment><USER33> This is awesome!!! I remember looking for an object allocation profiling tool for Ruby 1.9+ some time ago, and not finding one ([http://stackoverflow.com/questions/12204012/allocation- trace...](http://stackoverflow.com/questions/12204012/allocation-tracer-which- works-with-ruby-1-9)). When will Github's --debug-objects option make it into MRI???

</comment><comment><USER34> Somebody finally found a use for them!

</comment><comment><USER35> Something here doesn't sit right with me. Please don't launch into a lecture on algorithmic complexity and cache lines if you are running on Ruby on Rails.

<comment><USER36> Slow platforms are exactly where you need to talk algorithmic complexity. Switching to a faster environment would only reduce a routine's execution time by a constant multiplier—switching algorithms has the potential to do much more.

<comment><USER35> That's not what I mean. I think that any half-decent implementation in C would have been better than their current Ruby solution. And instead of spending all that time to research Judy arrays and other magic bullets, they could have already identified another problem zone and fixed it.

This just feels like "we have this huge and slow Ruby behemoth here, but using magic Judy arrays we made this little gear turn insanely fast!".

<comment><USER36> Execution time isn't the only cost in building software however. Building a web application in C may be "cheap" in regards to scaling performance, but it would sure as hell increase development costs a ton.

I think what Github has done is exactly what you're supposed to do: build your product on a platform that allows for quick growth and easy iteration, identify the slow parts, then swap those out for faster "gears" as you said.

Edit: I find it rather humorous that you find algorithmic research to be a magic bullet, but believe switching platforms to be a viable solution when faced with a bottleneck. I believe you have that backwards :)

<comment><USER37> I don't think parent is suggesting the whole website be written in C. I think parent sees the CS focus as a sideshow, and that a C version of the "escaper," even if not designed ideally, would still smoke the Ruby version that was acting as a bottleneck.

<comment><USER36> "...parent sees the CS focus as a sideshow..."

My point is that the CS is never a sideshow. Improvements gained from changes in algorithmic complexity vastly outpace improvements gained from switching languages/platforms.

Worry about your algorithm first and your platform second.</comment></comment></comment></comment></comment></comment>


Crowdfunding Reaches Its Terrible, Glorious Climax With 'Smart Vibrator' Vibease - <AUTHOR> http://techcrunch.com/2013/07/29/sex-pun-goes-here/

<comment><AUTHOR> I wonder if there's been a solid breakdown yet of the sorts of products that get funded via crowdfunding markets vs angel investment vs venture capital. It would be very interesting to see what sorts of differences in hardware projects, for example, you see across these different funding methods.

In any event, I suspect we'll continue to see interesting semi-taboo products such as this come to fruition and reach greater market penetration.</comment>


Social media giants warn of AI moderation errors as coronavirus empties offices - <AUTHOR> https://www.reuters.com/article/us-health-coronavirus-google-idUSKBN2133BM <comment><USER2> Just got my first moderation warning in twelve years on facebook for posting this [1]. It was, in a strange way, a relief to find the parent article only a few minutes later.

[1] Linked to and commented on this fun, obviously fictional story: [https://medium.com/@donhopkins/cobol- forever-1a49f7d28a39](https://medium.com/@donhopkins/cobol- forever-1a49f7d28a39)</comment>


Facebook Is Making Us Miserable - <AUTHOR> http://blogs.hbr.org/cs/2011/12/facebook_is_making_us_miserabl.html <comment><USER2> HackerNews makes me sad sometimes, too. Seeing everyone's successes, silly stories with the gang, witty blog post, mind-blowing hockey-stick-shaped- charts of "how we got to our 900 millionth user!" ... I'm working 12 hour days doing like 11 jobs, making just enough money to convince myself "in just a few months" I'll find that thing that ticks and then it'll be us making hockey- stick-shaped-growth-charts and finally buying that island ive had my eye on... but even then, the island isn't totally private, so i should probably work harder then i can get a bigger and more private island, one that is fire- resistant and erosion-proof. But shit, look, is that guy competing with me? Do I need to burn his island down? Are there enough customers? Where's the money gone? Wait, why aren't there any customers? Where's all this retail revenue going? I don't see them in the stores, the postal service can barely make ends meet (must not be ecommerce), and then the search volume is low, too, but the customers are coming in, we're selling stuff, we promise... not in America, you're not.

........

I've noticed that by cutting out HN, I am happier and feel more positive about my business.

<comment><USER3> Agreed. Almost all of the advice on HN is well-intended, but some stories are just big negative walls of text about how my business plan is shit, how I'm an idiot, and how my idea is stupid. By cutting out HN sometimes, I can get things done without overstressing myself thinking about my startup in a negative light.

</comment></comment><comment><USER4> I'm beginning to wonder if Facebook – along with online games and other free diversions like YouTube – could even be contributing to economic malaise and unemployment.

It's cheaper and easier than ever to acquire a minimal sustaining reward-drip of novelty and even 'social' strokes via the free net. If savings, family, or public support are enough to keep someone fed, sheltered, and online… then perhaps their willingness to seek and accept a paid job has gone down.

Even if this is not the case for most unemployed, at the margin, there are likely to be _some_ people who, without Facebook/Farmville/YouTube/WorldOfWarcraft/etc., would feel so bored and isolated they'd take on drudge work. Because these diversions are available, they don't.

What if 'gamification' and long-term unemployment/underemployment are connected?

<comment><USER5> McDonald's held a "National Hiring Day" this year, and accepted 62,000 applications _out of a million_. Even near-minimum-wage drudge work is scarce compared to the number who will take it.

[http://thecashflowisking.com/2011/04/30/1000000-applicants-f...](http://thecashflowisking.com/2011/04/30/1000000-applicants- for-mcdonalds-gives-a-representation-of-the-national-employment-situation/)

<comment><USER6> That's a statistical fallacy along the same lines as "we only hire the top 1%".

<http://www.joelonsoftware.com/items/2005/01/27.html>

<comment><USER7> I'm trying to connect the dot here... What's the scarcity of job has anything to do with hiring the top 1% fallacy?

<comment><USER6> Following Joel Spolsky's logic, there could easily be 938000 people who are unqualified for any job. On the other hand, every single one of the 62,000 qualified people who applied was hired. Thus, all employers will have low hiring rates, and yet finding a job is easy for qualified applicants.

If you want to talk about scarcity of jobs, look at JOLTS data or even traditional BLS timeseries.

Talking about how one particular employer rejected a lot of applicants tells you virtually nothing.

<comment><USER8> > any job

This is McDonalds. I'm having trouble thinking of employment for which more people are qualified if at least (1) able-bodied and (2) have at least a middle-school education. There is virtually nothing beyond those requirements that needs to be taken into consideration. If 938000 applicants were rejected, I can only assume that the majority of the rejections were for reasons other than lack of qualification.

<comment><USER6> You are missing one important qualification to work at McD's: (3) conscientiousness.

When the boss says "someone pooped in the urinal", a McDonald's employee needs to say "yes sir" and go put on gloves. They also need to show up to work on time, take the 6AM shift when asked to, etc. Not all people are willing to do this.

According to many sociologists, a large number of lower class Americans lack conscientiousness. Go read this dead-tree book, for example (sorry, online sources are hard to find):

[http://www.amazon.com/Promises-Can-Keep-Motherhood- Marriage/...](http://www.amazon.com/Promises-Can-Keep-Motherhood- Marriage/dp/0520248198/ref=sr_1_1?ie=UTF8&qid=1323532894&sr=8-1)

The focus of the book is on why poor single women choose to become single mothers, but it gives a great look into the work habits of the lower classes as well.

<comment><USER8> Interesting, but doesn't the act of applying for a job itself guarantee to at least some extent that an applicant is conscientious?

<comment><USER9> Not even remotely. I worked at an EB Games (hardly a prestigious retail outlet, but pretty decent). I had stoned-looking, unshaven, greasy-haired teenagers in ripped clothes and baggy jeans stagger into my store as if they were stoned out of their minds, throw down a folded-in-quarters resume on the counter, and say 'I'd like a job'. When I said 'Thanks, we'll let you know' they wandered off to play on the demo Xbox for ten minutes and then left.

Another guy came in, an overweight, sweaty, hillbilly-looking man in ratty jeans and a flannel shirt so worn out that there were obvious holes in the armpits, and I got the sense that hygiene was as important to him as fashion.

Then there's the women who come in with their son's resume (and occasionally even their sons) and try to get them a job.

I'd like to say 'For every talented, worthwhile individual we saw ten of these', but in three years of working there, I don't recall having spoken to a single person that made me think 'Hey, we should hire this guy', but I saw one person after another like this, people so unqualified for the job that I couldn't help but wonder if they really wanted to be employed at all, or if their parents or girlfriends were just tired of them lazing around the house and smoking pot and were forcing them to pretend to make an attempt.

My manager at EB used to manage a McDonald's, and he became one of those people who refuses to leave the drive-thru until he's gone through everything he ordered to make sure it's what he asked for. The reason? He's had to do hiring. The kids that are too blasted out of their minds to accomplish anything? The ones that stand there like idiots until you give them specific, detailed, step-by-step instructions which they immediately forget? The ones that don't actually understand what's happening, never really know how to do their jobs, and never take action on their own? Those, he said, were _the best applicants he got_. He hired these people because everyone else who applied was incapable of doing simple tasks even when instructed. These people were the _cream of the crop_.

So when McDonald's says they hired 6.2% of the people who applied to them, I also have a hard time believing them. I can't help but think, 'Really? That many? They must be desperate.'

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> It's absolutely true that Facebook encourages a sort of 'happiness' arms race, where most people seek to convey the brightest possible interpretation of their own lives to match the same projections they see in others. That isn't Facebook's fault (insomuch as they actively encourage this), it's just a natural human reaction ported to a new context and environment.

The reason this hits the HBR crowd particularly hard is because it adds another, ubiquitous front to the battle of positive image. It used to be, you only had to be an assertive, bright, shining star when you were _around_ people or talking on the phone. Then you could go home, pour yourself a belt of Glenlivet, and be miserable for a while to blow off steam. Now you have to keep it up ALL of the time, on a medium that's everywhere and never stops. It hits hard, particularly when you're a hard charger whose career depends on being perceived as relentlessly successful and upbeat.

</comment><comment><USER11> This piece was spot on, except for one thing-- the suggestion that "quitting facebook" is unrealistic.

Why?

Maybe the author was trying to avoid being labeled "too extreme". And granted, there are probably a few people out there who are dependent on it for their livelihood somehow. For everyone else, "quitting facebook" is a very realistic alternative. I've done it, so have many of my friends, and life goes on, with improved well being.

Once you realize you're being used and abused, it's time to move on.

<comment><USER12> Agreed. It's like someone writing a whole article about all the harms of smoking, and then ending the article with "Now of course I'm not saying quit smoking, just cut down to a pack a day."

</comment></comment><comment><USER13> Always entertaining these "Facebook quitting is not possible" discussion that are following such postings. It is very impressive how much value people put on remote peer group approval. Sometimes it all seems like a bunch of highschool kids telling their parents that if they don't get these "cool" apparel items, they are not going to be popular anymore.

</comment><comment><USER14> The misery can be avoided. I have my girl print off only the most relevant "wall postings" along with my morning emails. I review these over my after- breakfast coffee or sometimes (God willing) over a mid-morning BM. Either way, I only allocate 15-17 minutes per day to "the web" and the rest to managing my department.

<comment><USER15> That's certainly an improvement to "email to a program that wgets the data and emails back."

<comment><USER16> Printing is an improvement over email?

<comment><USER14> Bazinga.

</comment></comment></comment></comment><comment><USER17> For several months now I've set myself the rule that I only access FB from home; I've broken this rule only rarely and it's been remarkably successful at toning down the constant-checking behaviour--- _even when I'm at home_. Because I've broken the "24-hour-IV-feed" nature of it, I've found that even when I have access to it I tend to spend a little while, check my updates, read a few things off the top of the feed, and then log out. And then I do other things.

Very helpful, and a nice compromise that stops short of "quitting facebook".

<comment><USER3> My rule is to use Facebook three times a day for twenty minutes each. I'm not addicted to FB, but this helps me stay away from long chats I may get into with friends. I get shit done with this method and I rarely break this rule.

<comment><USER18> What can you possibly accomplish on Facebook for 7 hours a week? I can understand the needed distraction here and there or the defined communication with friends but really?*

I'll stop my inflammatory rant because I'm going to assume you're a reasonably smart cookie because you're here. But really?

*for a 6 month personal experiment I deactivated my FB account and defriended, 2% of current friends per reactivation (17 times each under an hour) and could argue that I still have a top 5% social life.

<comment><USER3> A lot of my time is dedicated to messaging (which is handy because a lot of my friends use FB more than texting), and I also occasionally read through and comment on wall posts.

</comment></comment></comment></comment><comment><USER19> Exactly this. Since quitting Facebook a month ago after noticing it was driving me nuts I've been happier, more productive and a lot closer to my closest friends. YMMV, but for me it has been very positive on all aspects of my life.

Perhaps this is a sign that Path are onto something - for people like me at least. (I had been very skeptical before)

<comment><USER20> I quit for 3 years and went back for a month or two once or twice during that time. While this was happening, I was no longer invited to events my friends (sorry, "friends") went to and no longer knew what they were up to in their lives plus between work and Facebook events, they stopped doing anything spontaneous (such as meeting me for a coffee when I called). These were people I knew for between 5 to 10 years in real life.

I have since recently gone back to Facebook and moved cities (countries) so I'm trying to use it just for events/to my advantage, if such a thing is possible.

<comment><USER21> I've been on a few Facebook vacations, and I've always been disappointed to see how many people use it as their sole means of keeping in touch with friends (meaning, I don't exist if I'm not on FB with them). You won't get emails from some of these people, even if you write to them. It's as if they either aren't checking, or can't be bothered to write more than a few lines anymore.

</comment></comment></comment><comment><USER22> > and is fast becoming the dominant communication platform of the future.

Facebrick is only a necessity for attention whores, stalkers, pedophiles, and the insecure. Social networking is a fad, people. Just like pet rocks. Get over yourselves.

Downvote all you like. Don't care. Those with two brain cells to rub together will look back in five to ten years and try to remember why they thought Fartbook -- and the whole damned "social networking" phenominon -- was such a big deal.

For those that aren't old enough to remember how many times we've been through this cycle, do the research on MySpace, AOL... hell, the list is endless. Google "predecessors to Facebook", learn something about what's gone before, and for Christ's sake, _get a life_.

<comment><USER21> In five years, we may look back at Facebook as a has-been. But I am confident that it will enjoy a long life, at least relative to the Web.

I don't care much for Facebook for my own personal enjoyment, but there's money to be made in Facebook. There are no doubt plenty of HN readers who can testify to this: huge amounts of money are being spent by companies around the world every day just to have tabs or full-blown Facebook apps developed for them. This amounts to a simple window (an iframe, really) within Facebook itself, but it is a gold mine for some of these companies, and they'll gladly pay to participate.

Again, this may all dry up within the next few years. But AOL and Myspace never got close to this kind of user base, so the fall may not be so swift.

</comment></comment><comment><USER23> Pardon the snark, but it sounds like a lot of people are either easily addicted or have poor time management skills.

Facebook is a social networking site. Others exist (though it is the biggest). That person who almost got hit because they weren't paying attention to their surroundings? Is that Facebook's fault, or is the person just easily distracted?

<comment><USER24> >Pardon the snark, but it sounds like a lot of people are either easily addicted or have poor time management skills.

behold the power of [easy] dopamine.

</comment></comment><comment><USER24> simple recipe for being miserable:

1\. make yourself belief that "the social network [Facebook] has taken over most aspects of our personal and professional lives, and is fast becoming the dominant communication platform of the future." and "that \"quitting\" Facebook altogether is unrealistic"

2\. be miserable

Disclaimer: i've never had a Facebook or any other soc. network account (beyond Linkedin), so use the recipe at your own risk and YMMV.

</comment><comment><USER25> "As Facebook adds new features such as _video chat_ , it is fast becoming a viable substitute for meetings, relationship building, and even family get- togethers. But each time a Facebook interaction replaces a richer form of communication — such as... _a long phone call_...."

Despite many good points, this is the part that reveals the article as Luddism. How, exactly, is video chat less intimate and rich than a phone call?

</comment><comment><USER26> This makes me tempted to start a 'My life is Awesome' movement on Facebook where everyone just keeps posting ever more ridiculous great achievements and over the top status updates.

<comment><USER27> Make it a "My Life is Awesome since I Quit Facebook" movement. Now we're over the top.

</comment></comment><comment><USER28> Beginning of 2011, my new year resolution was "less facebook". I am glad that I have kept it. The way I did was, stopped posting stuff over there. As I figured I am more keen on what people are liking/commenting on what I post.

I know it is not fair entirely on my friends. As I am not entirely off it - and I consume but don't produce any thing over there. But I had to do something drastic as my work is more important, and I could not have waited for good social usage patterns to evolve. Mostly, I respond as a private message, if I see something which I feel compelled to comment on. Even if some friend posts on my wall, or on some occasions inquire about my silence, I try to do the same thing.

I am wondering if in Jan 2012, I should go back there or not...

PS: I do _waste_ time on HN too. But I honestly feel, I gain something out of it as well. The quality of discussion is very high. And the kind of stuff posted is to my taste. I also use Google+ to discuss something with friends. The less number of people there actually helps, in a different way.

</comment><comment><USER29> I got a friend on FB that works in Brussels but literally every weekend he's off to some exotic destination. So everyday I either see a checkin from god knows where, or if he's not there yet, there's always a status "Next weekend, I will be in <exotic destination>"

I wonder if he'd be still doing this if there was no Facebook.

The only reason I keep Facebook is because it's easy to contact people when I need to get a hold of someone that I met five years ago while traveling or something.

But even so, I'm beginning to question the logic behind having a million acquaintances "just in case"

My close friends are on Skype anyway, so FB seems to have less meaning with each passing day.

<comment><USER30> FB, just like Twitter or blogs, is a tool for social broadcasting. It can be abused like anything else.

</comment></comment><comment><USER31> I don't buy the first point. Maybe my friends don't share everything sad, but some do share hardships and from experience, Facebook friends can sometimes become and additional support group. For example, when our baby was having cardiac surgery, my wife and I decided to share some of our experience and the positive is that you can keep your friends informed and get a lot of moral support when you most need it. It was awesome. Some of that support translated in real life too. It doesn't replace family or close friends that are present in your real life during these times, but it can be a valuable addition.

Same thing for the third point. Wether with Twitter or Facebook, we've had many real life impromptu meet ups we would never had before these tools because of status updates.

Social networks are tools. What matters is how you and your friends are using these. Of course, some friends only use these for self promotion or self gratification but you tend to notice and behaviors and filter out those updates that never lead to mean something.

On the other hand, if your life is miserable in the first place, I can see cases where Facebook could make your life more miserable. Again, it all depends on how your use it, your attitude and what you make of it.

</comment><comment><USER32> The same can also be same of this forum, and Techcrunch when we hear news about other startups getting acquired "easily".

It's easy to get depressed when you hear a startup like Hunch(seriously, eBay was a knight on a white horse, they got off easy) getting acquired for $80 million when you've worked your ass off on an idea or 2 for the last 5 years with little to show for it.

Sometimes it's better to just ignore positive news. It's hard to not get jealous.

</comment><comment><USER33> It seems to me that what may be happening with sites such as Facebook is behavioral sink. That is, the frequency/intensity of interactions, especially facilitated by involuntary sharing, is beyond what the biological system can handle and the result may be maladaptive behaviors.

From Wikipedia:

"When forced interactions exceed some threshold, social norms break down. Thus social density is considered more critical than geometric spatial density."

</comment><comment><USER34> Is comparing ourselves to others so bad?

For me, it called attention to the fact that others were leading more interesting and dynamic lives than me. Yes, it made me more stressed. But it also brought me out of my comfort zone, and it led me to honestly ask why I wasn't getting more of what I wanted in life -- and to do something about it.

Facebook has my gratitude.

<comment><USER11> That's great that Facebook "opened your eyes" in a seemingly healthy way. Seriously.

The world was full of ways to compare ourselves with others before social media came around. It isn't going away. Facebook is just the latest iteration, and also happens to be the most surface-level, un-holistic, and competitive channel yet conceived for this kind of behavior.

Once people get competitive about "happiness" and "self esteem", there's a way that they lose sight of the original "goal" in the attempt to outdo each other.

We should all explore the different available paths in life and strive to gain from others' perspective and experience, but the Facebook news feed is not a particularly good way to do it.

<comment><USER34> +1, but I strongly disagree with you. I learn that: my friends have dragged themselves out of bed to enjoy some new and fascinating experience; after a long and severe effort, they have succeeded at their dissertation/weight loss/exercise program; that after a lot of duds on OKCupid, they have met somebody amazing; etc. There's plenty of surface-level stuff on FB too, but whenever FB has made me "miserable" it has always been over something important and meaningful.

A lot of things strike me as vastly more surface-level and un-holistic: what kind of car you drive, how big your house is, how rich your neighbors are, how immaculate your lawn is, etc.

<comment><USER32> so whenever your friends succeed in something meaningful, you always feel miserable? You never ever feel good for them? (don't be afraid to say yes, because I'm like that.. wondering if I'm alone..)

<comment><USER34> No, far from always, and not miserable exactly. By "miserable", I mean that I ask myself, "Bob drove to Yosemite National Park and hiked Half Dome this weekend, while I hung around my apartment and surfed the net and watched TV. Why didn't I do something like Bob?"

<comment><USER16> Because you are content in your surroundings and more energy efficient.

</comment></comment></comment></comment></comment></comment><comment><USER35> "First, it's creating a den of comparison. Since our Facebook profiles are self-curated, users have a strong bias toward sharing positive milestones and avoid mentioning the more humdrum, negative parts of their lives."

It sounds a bit like cocktail parties, neighborhood open houses, and so on.

</comment><comment><USER36> I bet sometime soon Facebook's News Feed will be run through an "emotional state/mood" filter to customize the visible feed items that show up to be appropriate to what it infers is appropriate for your current mood/mental state. Unfortunately, for some people the algorithmic pendulum will swing too far to the 'depressed' state and cause unforeseen misery. The FCC will then collaborate with the Dept. of Health And Human Services to create new compliance guidelines. Yay, future!

</comment><comment><USER37> Isn't this is just a basic feature of human nature? I'm pretty sure we once had cavemen sitting around the fire grunting/bragging about their awesome hunting skills while other cavemen felt jealous, anxious, or depressed about their own skills. Fire is clearly making us miserable.

<comment><USER32> Cavemen had to work together for common goal (survival) hence people usually root for each other. In modern world, people compete and try to one-up each other. No common goals. Big difference.

<comment><USER38> Disagree.

> _Cavemen had to work together for common goal (survival) hence people > usually root for each other._

How is that any different today? People manifest survival in a totally different way today, and the human being either choses to use other people to survive (bartering) or survive on our own (live off the land).

<comment><USER32> Survival is already an non-issue for most people in modern society and non-3rd world countries. Most friendships and relationships today are built on things that are so fragile, vulnerable, and superficial.. it's not even close.

If survival was an issue (fighting aliens for instance), we'd all be united in a way that would be unrecognizable today.

</comment></comment></comment></comment><comment><USER39> Unsubscribing nearly 90% of my "friends" from appearing in my news feed has helped me manage my fb time better.

If I could figure out how to unfriend mass numbers easily, I'd do that instead.

<comment><USER40> One-step bulk unfriend: [http://www.facebook.com/help/contact.php?show_form=delete_ac...](http://www.facebook.com/help/contact.php?show_form=delete_account)

</comment></comment><comment><USER41> On the right of the page :"STAY CONNECTED TO HBR" with Facebook.</comment>


What happens if Bitcoin mining companies vertically integrate? - <AUTHOR> http://gendal.wordpress.com/2014/08/19/what-happens-if-bitcoin-mining-companies-vertically-integrate/

<comment><USER2> Good things, I would suspect.</comment>


Ask HN: Should we give up and work on something else? - <AUTHOR> With 4 other friends we were working for past 3 months on an app, which you can describe as "tinder for clothes". We were planning to launch MVP today but it will be delayed by couple weeks. We were targeting UK market.
Today we found out that in last weeks identical app was launched in Singapore (shopprapp.com). The team there is already funded and is clearly couple months ahead of us.
We started to raise money from Friends & Family and planned to work on our project. But know we realised we are couple months behind them and we are really unsure if we can face such a competition. Even if we want to face them, we cannot do that without raising more money then we initially thought. Shall we give up and start working on something else? <comment><USER2> It's pretty rare that some startup that just launched is your real competition. Most startups will implode by themselves. Just ignore this Shoppr app.

<comment><USER3> No. Don't do that. You'll be hearing more of us very soon :)

</comment></comment><comment><USER4> > Shall we give up and start working on something else?

You'll no doubt be told by a lot of folks that you should ignore the competition and execute against your original plans. In principle, this is the correct advice.

But this "We found competition! What should we do?" question seems to be coming up frequently enough that I'm going to give the opposite advice, however harsh it may seem: yes, you may want to consider giving up.

Here's why.

If you never contemplated the possibility that you'd have competition, and that the competition might be better funded and further along than you, which is almost a given in today's market, you did not start your venture with realistic assumptions.

If the existence of competition worries you enough to consider abandoning your venture _before_ you have even launched and _after_ you have asked others to invest money in it, you must honestly ask yourself whether you will have the stomach to keep going when you encounter _real_ challenges, like technical hurdles that threaten your existence or disagreements with your friends/co- founders.

Bottom line: it's virtually impossible to start a successful business with a weak hand. If the opportunity you're pursuing is not compelling enough to keep you from becoming easily discouraged by the slightest challenge before you are even in the market, wait until you find an opportunity that is.

Good luck!

<comment><AUTHOR> Thanks a lot for this response.

> If you never contemplated the possibility that you'd have competition, and > that the competition might be better funded and further along than you, > which is almost a given in today's market, you did not start your venture > with realistic assumptions.

We always saw a lot of competition in the market (at the end, there are millions of ways people buy clothes) but didn't expect someone to be so spot on with our vision. This was real shocker. As you said, we didn't have realistic assumptions - it started as fun project and we thought we will abandon it like previous one. Only with time we realised this can really be something.

> If the existence of competition worries you enough to consider abandoning > your venture before you have even launched and after you have asked others > to invest money in it, you must honestly ask yourself whether you will have > the stomach to keep going when you encounter real challenges, like technical > hurdles that threaten your existence or disagreements with your friends/co- > founders.

That's excellent questions. Luckily, after initial shock, I think this motivated us to work even harder. We don't want to give up on idea we really believe in just because someone else was couple months faster. We were postponing launching our app for a long time, and now we decided to just finish most important missing items and put it in Play store.

It also finally motivated me to reach out my network and try to at least have initial meeting with _real_ investors in London. So far we only pitched to friends who probably might have been a bit too supportive.

<comment><USER3> Hey mate, are you based in London?

Damn, and here I thought being based in SEA provides for a veil of secrecy. Never thought we'd be out in the woodworks so early.

That's a good idea to reach out to others, I use 'The Mom Test' when validating customer problems - [http://www.amazon.co.uk/The-Mom-Test- customers-business/dp/1...](http://www.amazon.co.uk/The-Mom-Test-customers- business/dp/1492180742)

</comment></comment></comment><comment><USER5> There is a tendency among new entrepreneurs that a startup should be based on a unique ´idea´ to be successful.

There are tons of real world examples out there that this is not the case.

Just look at Slack. Before them, there were tens of startups worked on chat/collaboration apps for years, most of them failing. They entered the market when there were already established competitors (Hipchat, Flowdock, Campfire), and yet they took the market by storm, and raised $120m, with a valuation of $1.12b.

As always, your success depends on lots of different things, and having competitors is rarely one of them.

On the contrary, it helps you to prove there is market for the idea.

And, as entering a market with existing competitors is pretty common scenario, you can find lots of great advice about what you can do to gain upper hand.

Some things to consider: targeting different markets/difference in execution/providing greater value/having stronger partnerships...

</comment><comment><USER6> You will always have competition. If not now, then later. Likewise, if you have a good product then you will always have customers. You can not focus just on what other people are doing. If you care and believe in the project, then focus on what you are going to do to make people want to use the product.

</comment><comment><USER7> You can think of having competition as a validation of the idea. It will come down on how well you execute that idea!

</comment><comment><USER8> As a shopper, I care more about the features, usability, convenience, privacy and security of a shopping app, and not at all about how much funding went into its development. I'd say focus on those aspects of your app, and market it too likewise.

<comment><USER9> Hey lovelearning, I'm on Shopper's team, I think we have what you need, check it out, [http://shopprapp.com](http://shopprapp.com) :)

</comment></comment><comment><USER3> Hi lndn_dilemna,

I can see why you're having a hard time deciding whether to pursue this or not, it's shocking working for a few months and suddenly a competitor pops up and is going in the same direction as you.

It comes down to determination, if you are determined enough and believe your product is better, then, as hakanderyal said, look at Slack, they took the market by storm.

By the way, nice to meet you -- my name is Ken, I founded Shoppr.

BRING IT ON!

</comment><comment><USER10> Fully concur with levlaz and yitchelle. Do not not give up! Perseverance.</comment>


Lisp for the Web - <AUTHOR> http://www.adampetersen.se/articles/lispweb.htm <comment><USER2> Thanks for the link - that's really cool. I particularly like sites that give you the actual code in downloadable file.

Now I have no idea what language to try next, either learn Python and Django or try Lisp.

Hmm.

<comment><USER3> I'm angling for Lisp, as I'll be working through SICP over the next N months anyway. Even if it turns out that I never develop anything real in it, I think it would be more beneficial to really understand Lisp than it would to be proficient in Python.

<comment><USER4> I'm a big fan of lisp but I have to say that a solid understanding of Python has been a lot more beneficial to me than Lisp. While I like the mind expanding concepts of Lisp I find that I use Python for almost everything on a daiky basis. Lisp has been fun to learn but I've rarely used it since so if I had to pick I would learn Python before Lisp.

</comment></comment></comment><comment><USER5> Excellent! This will go a long way to relinquishing my n00b status concerning Lisp.

"Look out Blub, there's something leaner!"

\-- LISP (in all-uppers) edited above as not to offend. :)

<comment><USER6> It does look like a good tutorial. In the meantime, you can take a small (ok, trivial) step by not spelling it "LISP" (a pet peeve of many Lisp hackers).

</comment></comment><comment> meat-eater Very nice tutorial. It's good how he points out the useful libraries for web development with lisp.

</comment><comment><USER7> Remind me--- is there a Mod-Lisp for CL? Or any (Scheme etc.) other?

\--hsm

<comment><USER8> It doesn't matter, because this method is somewhat archaic anyways.

You might want to consider how horizontal share-nothing apps tend to work. You can combine share-nothing with continuation-based web servers if you have a smart and fast dispatcher sitting above your cluster of responders. I'm working on fixing that in Fuzed ( <http://github.com/KirinDave/fuzed/tree/master> )

You might want to quickly whip up a fuzed binding for CL and give it a try, it makes wiring any language to a webapp as simple as responding to a binary protocol. This might seem like a sidestep to the actual problem, but it actually has a lot of nice side effects in terms of your organization of discrete responders.

<comment><USER7> Interesting! I'd investigate further, but my needs have not yet required a framework. Were that so, I'd certainly ride a rail or two...

\--hsm</comment></comment></comment>


Seattle traffic disappears as Amazon, Microsoft, others enforce remote work - <AUTHOR> https://www.geekwire.com/2020/seattle-morning-traffic-disappears-amazon-microsoft-others-enforce-remote-work-policies/ <comment><USER2> The article doesn't mention the school district has closed down for two weeks. Prior to closing the school, the absentee rate for students was 20%. So it's a mix of institutions closing and people self-quarantining.</comment>


Scalia, the Role of the Judiciary and the Sorry State of Our Public Dialogue - <AUTHOR> https://medium.com/@levinotik/scalia-the-role-of-the-judiciary-and-the-sorry-state-of-our-public-dialogue-3f9f8a8d1030 <comment><USER2> I don't know anything about Scalia's "internally consistent" view of constitutional law or his brilliant legal scholarship, and I'm not really interested. I'll leave that discussion to others.

However, I will never forget how Scalia demeaned and disrespected the other Supreme Court justices after the gay marriage decision. In my view, his behavior was appalling and unforgivable. It exposed him as a legal bigot.</comment>


Cypherpunks Tapping Bitcoin via Ham Radio - <AUTHOR> https://www.wired.com/story/cypherpunks-bitcoin-ham-radio/ <comment><USER2> Much of the article is about Brian Goss's setup. Goss is not using ham radio. He is receiving satellite broadcasts and re-transmitting them with a goTenna device into the goTenna mesh network.

goTenna is a Part 15 (unlicensed) device, like a Wi-Fi router or Bluetooth device. It does not transmit on Amateur Radio frequencies. Unless I missed something, there is no connection with ham radio here.

The article also mentions how Elaine Ou sent a Lightning payment over the 40 meter amateur radio band. This may have been a violation of the Part 97 Amateur Radio regulations, as noted by other commenters.

<comment><USER3> It may be a violation if it involved a business transaction that was not related to ham radio equipment. Buying, selling and trading equipment related to ham radio is the only exception to the rule against business transactions that I am aware of.

<comment><USER2> The exception you're referring to is this one in Part 97.113 (3), which is part of a list of prohibited communications:

 _(3) Communications in which the station licensee or control operator has a pecuniary interest, including communications on behalf of an employer. Amateur operators may, however, notify other amateur operators of the availability for sale or trade of apparatus normally used in an amateur station, provided that such activity is not conducted on a regular basis._

[https://www.govinfo.gov/content/pkg/CFR-2002-title47-vol5/pd...](https://www.govinfo.gov/content/pkg/CFR-2002-title47-vol5/pdf/CFR-2002-title47-vol5-sec97-113.pdf)

It appears that the exception is limitied to _notifying_ other amateurs of equipment for sale or trade, not making the actual payment over the air. For example, if I got a one-time virtual credit card number and read it over the air to another amateur to pay for equipment, I don't believe that would fall under this exception, so it would be prohibited.

<comment><USER4> Especially if it was a low value transaction or a transaction between two accounts held by the same person, they could argue it falls under experimentation, I guess?

</comment></comment></comment></comment><comment><USER5> I don't think this is allowed under USA Amateur radio rules.

> §97.113 Prohibited transmissions.

> (b) An amateur station shall not engage in any form of broadcasting, _nor > may an amateur station transmit one-way communications except as > specifically provided in these rules_ ; nor shall an amateur station engage > in any activity related to program production or news gathering for > broadcasting purposes, except that communications directly related to the > immediate safety of human life or the protection of property may be provided > by amateur stations to broadcasters for dissemination to the public where no > other means of communication is reasonably available before or at the time > of the event.

[https://www.ecfr.gov/cgi-bin/text- idx?SID=3fe986fb082211e728...](https://www.ecfr.gov/cgi-bin/text- idx?SID=3fe986fb082211e7284fe51ba0367f0a&node=47:22.214.171.124.6&rgn=div5)

<comment><USER6> Why are hams the closest thing to the equivalent of tech tattle-tales?

Any time I see someone doing something neat and legally grey on radio, some ham operator has to come in, quote their understanding of the law, and chastise everyone. What's the point? Do they get to feel some sense of authority and privilege that the rest of the nerd world don't for a few minutes?

Just let people do cool stuff and don't snitch.

<comment><USER7> Hams are continuously fighting to keep their spectrum (and slowly losing it to commercial interests). It is a commonly held belief that unlicensed hackers or hams breaking the law hurts the community's arguments for keeping their spectrum.

So it's not viewed in the ham community as tattling, but rather self policing. Because if they don't do it themselves then papa FCC is just going to take away everyone's toys. Responsible and lawful use of radios is the name of the game.

Source: I'm a general class licensed ham.

<comment><USER8> I'm an extra class and I've heard this argument my entire life. I think it's bunk. If Congress wants to take away anything they don't need a reason.

You know what will make ham radio lose its spectrum? Have zero constituency, which will happen once we have run off anyone who wants to experiment on the edge of what is possible with ham radio.

<comment><USER9> No users means no one left to object when the band is taken away and given to someone else.

I have zero interest in unencrypted over-the-air communications. The Internet can already trivially reach stations all the way out to the antipode of the planet, at any time of day or night, with my choice of public or private messaging. I can't wait until the spectrum-protectionist people die off and yield the bandwidth to the SDR robot builders that can use it for a digital transport layer.

Once the technical capabilities surpass the administrative permissions, the fun of hacking anything dies, for exactly the reason mentioned. Rather than the hardware saying "you can't do that", it's some old-guard buttinsky, and when the hacker says "wanna bet?", rather than slowly yielding to relentless experimentation, they make a call or two and then the hacker gets fined or their equipment is seized.

When every interesting application I can think of for ham radio has a regulation explicitly saying "no, that's not allowed", people just find another hobby to get into.

</comment></comment></comment></comment></comment><comment><USER10> Private messages, relaying for 3rd parties and encryption are prohibited in Ham Radio, so thinking about (international) transactions over ham radio is just plain bullshit. This is the first thing every licensed Ham learns.

What you're looking at here are licensed commercial radio services.

<comment><USER11> Bitcoin transaction is basically a broadcast, which you can analyze freely. No decryption, just encoding and signing.

<comment><USER12> Broadcasts are prohibited in ham radio.

For the US, see [https://www.ecfr.gov/cgi-bin/text- idx?SID=1a361a6eb3d1594e6a...](https://www.ecfr.gov/cgi-bin/text- idx?SID=1a361a6eb3d1594e6a347ce0e363b533&mc=true&node=pt47.5.97&rgn=div5#se47.5.97_1113)

> (b) An amateur station shall not engage in any form of broadcasting, nor may > an amateur station transmit one-way communications except as specifically > provided in these rules;

<comment><USER11> >>>Private messages (...) are prohibited in Ham Radio

> Broadcasts are also prohibited in ham radio.

Wait what? Isn't any message either broadcast or private?

<comment><USER12> No, it's either one-way or two-way. One-way is usually prohibited except in a few case, two-way is usually fine unless it violates one of the prohibitions like encryption. Your two-way communications using ham radio are public, not private.

<comment><USER13> "Broadcast" is defined as "transmissions for the consumption by the general public", at least in the US. Not one-way vs two-way.

</comment></comment></comment></comment></comment></comment><comment><USER14> I was the one who made the first transmission mentioned on the article. AMA

[https://twitter.com/nvk/status/1101518677910810624](https://twitter.com/nvk/status/1101518677910810624) (and this one precedes that one [https://twitter.com/nvk/status/1095354354289135617](https://twitter.com/nvk/status/1095354354289135617))

<comment><USER15> Ok, I'll bite: mind addressing the legality issues many of the other commenter have brought up? Because this looks like a great way to get a FCC fine.

<comment><USER14> 1\. I'm not in the USA and i'm licensed. You could say the ITU may take issue.

2\. The spirit of the law is in regards to actual financial interest, this were meaningless amounts and also testnet.

3\. Transactions were not actually done over Ham, the transaction data was relayed over ham and broadcasted via internet. (long history of HAM 3rd party message relay).

4\. No encrypted messages were transmitted. (and encryption is allowed as long as the cypher is public)

5\. The spirit of ham is technical experimentation.

6\. These tests were intended for use in countries where the laws don't matter and or in emergencies. In case of emergency it would be allowed to make financial transactions and/or send encrypted messages.

I feel like most rhetoric around that is usual internet-lawyering. If Wired care to contact for comment there would have been some context added.

<comment><USER13> > "in countries where the laws don't matter"

Race-to-the-bottom thinking, poor ethical reasoning, and just an excuse to engage in behavior frowned upon by the community.

> "In case of emergency it would be allowed to make financial transactions > and/or send encrypted messages."

HAHAH no. "Emergency" is clearly defined and doesn't mean "can't reach my ATM". Executing your bitcoin transaction does not save life or limb.

<comment><USER16> He's saying that executing a bitcoin transaction _could_ save life or limb, which justifies bending/breaking the rules to develop the technology to do it.

</comment></comment></comment></comment></comment><comment><USER17> There are some claims here that encryption is illegal over amateur radio. That is not true in general. For example, this is what the FCC prohibits in their rules:

>messages encoded for the purpose of obscuring their meaning

... which can be read here:

* [http://www.arrl.org/files/file/Regulatory/March%208,%202018....](http://www.arrl.org/files/file/Regulatory/March%208,%202018.pdf)

So ultimate intent is what matters. A test bitcoin transaction is probably legal even if it were somehow incidentally encrypted.

</comment><comment><USER18> Interesting article, but I think Wired has to be one of my least favorite places to read something on the web. The performance is bad, there is popping/jarring of the viewport as content shifts around, intrusive pop ups, and just a generally high amount of bloat. I'm starting to feel like the old man shaking his fist at the clouds, but can we just go back to more simple pages without all this cruft?

<comment><USER19> I don't have any of the issues you are experiencing. I'm using Firefox, AdBlock Origin, Privacy Badger and containers and I don't see any ads, the page is plenty fast, no popping/jarring content.

<comment><USER18> On desktop or mobile?

<comment><USER19> Desktop. Where are you having problems?

<comment><USER18> Mobile (iOS). It's a nightmare experience. If they had built their page correctly it would be consistent across both.

</comment></comment></comment></comment></comment><comment><USER20> I find it funny that so often so many commenters on "Hacker" News are terrified of breaking the rules... Also, there's plenty of world outside of USA.

<comment><USER21> While I agree with your first comment, most ham radio rules are international.

<comment><USER18> I know next to nothing about ham radio, but I'm curious... who would enforce the rules at an international level?

<comment><USER22> The International Telecommunication Union ([https://en.wikipedia.org/wiki/International_Telecommunicatio...](https://en.wikipedia.org/wiki/International_Telecommunication_Union\)is) the body that governs these things at the international level.

Individual countries implement decisions taken at the ITU through laws and policy. Individual countries take care of enforcement. For instance, in the USA, that would be the FCC.

</comment></comment></comment></comment><comment><USER23> Funny thing, out of the blue I decided to take practice tests for a ham license last night. Took the practice test about 12 times and got passing score 7 times. Opened HN today and this is one of the top articles... Interesting coincidence.

<comment><USER24> don't do it. my roommate has an HF rig and looks boring af. couple grand worth of gear so they can key down, say "K2185B6 broadcasting from $LOCATION_1", 5 seconds later someone else says "hi K2185B6, lound and clear. This is K8407W4 from $LOCATION_2". rinse, repeat

<comment><USER25> Basically this. I was all like "yeah man I want to get a license" then I studied some, decided I couldn't afford the gear. Couple years later, oh hey man I'm gonna do this this time, money is better now and stuff, started studying agian and bought a cheap baofeng just to listen.

Spent about 15 minutes listening to a repeater.

"Jesus, these people are abrasive as best, all they are doing is saying their call over and over and complaining"

Stopped studying, couple weeks later was at a friend's house and near a different repeater, same stuff different people. Now I just keep the battery maintained and it tuned to a weather broadcast in the event I lose power during a storm.

I mean, in the event of a natural disaster it's pretty cool and you can help replay information and be of use to your community but ehhhh it's an awfully expensive hobby for that unless you want to just buy a cheap handheld and have no range whatsoever since you have an antenna the size of a drinking straw a few inches away from your body.</comment></comment></comment>


How Covid-19 Is Impacting Amazon Prices - <AUTHOR> https://seekingalpha.com/instablog/47874053-john-defeo/5426680-how-covidminus-19-is-impacting-amazon-prices <comment><USER2> Pulse oximeters seem to be in short supply, with the few that are in stock being significantly more expensive than normal. There has been discussion about covid-19 causing low blood oxygen in those who aren't otherwise showing symptoms so they have no idea that their bodies are operating at a reduced capacity until they start feeling light headed. This is probably what is causing the pulse oximeter sellout.</comment>


Shut Up- You're Helping the Customer - <AUTHOR> http://www.chrisbrogan.com/shut-up-youre-helping-the-customer/

<comment><USER2> Suggest Bob leave the company and build a competing product.</comment>


Show HN: ArangoDB – A distributed open-source multi-model NoSQL DB - <AUTHOR> https://www.arangodb.com/key-features#multi-model <comment><USER2> You can install easily via:

        brew install arrangodb

Here's a nice overview of the features [1] and also comparison with others [2] (although it's pretty outdated). Some benchmarking here [3] as well.

[1] [https://www.arangodb.com/key-features](https://www.arangodb.com/key- features)

[2] [https://www.arangodb.com/2012/11/13/comparing-arangodb- with-...](https://www.arangodb.com/2012/11/13/comparing-arangodb-with-mongodb- and-couchdb)

[3] [https://www.arangodb.com/performance](https://www.arangodb.com/performance)

</comment><comment><USER3> Nice feature set. But why do I have to learn a new query language again?

<comment><USER4> Because it's a graph database so it doesn't really fit naturally with SQL.

Competitors like OrientDB use something that's nearly SQL but not quite, and it's the discrepancies between the two that catch you out. Arango's query language is pretty nice when you get used to it.

The one criticism I have of Arango is that they're doing a lot of wheel reinvention with foxx, when I think they'd be a lot better off leveraging more of the node ecosystem.

<comment><USER5> phpnode is talking about a long discussion we had about that topic – if you are interested in the reasoning, read here: [https://groups.google.com/forum/?hl=de#!searchin/arangodb/No...](https://groups.google.com/forum/?hl=de#!searchin/arangodb/Node.js$20is$20a$20single- threaded$20environment/arangodb/h5a-71H4LUM/O2WE-63H5vIJ)

</comment></comment></comment><comment><USER6> I gave it a try earlier this year.

Fantastic stuff, I hope it really takes off.</comment>


Airbnb Refuses Scores of Refunds - <AUTHOR> https://www.bloomberg.com/news/articles/2020-03-11/airbnb-refuses-guests-refunds-amid-virus-cancellation-frenzy <comment><USER2> Airbnb host here: Why should I be your travel insurance?

It's not fair to forego travel insurance and then expect the host to pay up and accept a cancellation in situations like the article.

It also doesn't seem like the individual in the article or his family faced a serious risk.

</comment><comment><USER3> If the host cancels on you do you get the same luxury?</comment>


VidGear: Video processing library for Python lovers - <AUTHOR> https://github.com/abhiTronix/vidgear <comment><USER2> Haha, that example code made my day

      # check if frame is None
      if frame_stab is None:
        #if True break the infinite loop
        break

A single comment saying "continue if stream ends" would be much clearer

<comment><USER3> I really dislike how OpenCV handles reading frames from a video file, leaving up to the developer the responsibility of checking if it's None or not (or the status) -- the whole thing feels wrong in Python.

It's actually super simple to write a wrapper around it that lets you do:

        for frame in video:
            # your processing comes here and you forget
            # having to check for None, while True s and things
            # that should've stayed in the stone age

And I'm a little disappointed the posted library doesn't do it.

<comment><USER4> `iter` can be used to convert from a repeated function call with a sentinel to an iterator:

      for frame_stab, frame_org in zip(iter(stream_stab.read, None), iter(stream_org.read, None)):
          ...

This line replaces the first 12 lines of the loop in the example.

<comment><USER5> Also a good example where 3.8 would be handy:

        while (frame_stab := stream_stab.read()) and (stream_org := stream_org.read()):

iter() works with all stable versions of Python though, but it's a bit exotic. When I use it, I tend to make aliases to make it clearer because most Python devs don't know about it, let alone this alternative form.

        stab_frames = iter(stream_stab.read, None)
        org_frames = iter(stream_org.read, None)
        for frame_stab, frame_org in zip(stab_frames, org_frames):

<comment><AUTHOR>
        stab_frames = iter(stream_stab.read, None)
        org_frames = iter(stream_org.read, None)
        for frame_stab, frame_org in zip(stab_frames, org_frames):

wow, I did'nt knew about this. Thanks for posting. I'm definetly adding this in the next release.

</comment></comment></comment></comment></comment><comment><USER6> Pretty much every buzzword used halves my expectation that this code will actually work... But I hope it does because this actually looks useful.

</comment><comment><USER7> This is awesome and I really hope it works. I still wonder how well it actually performs though (assuming it actually works).

<comment><AUTHOR> Yup, It is all working, well-tested and under continuous development. If still, something doesn't work for you then report an issue[1]. Goodluck.

[1]: [https://github.com/abhiTronix/vidgear/issues/new/choose](https://github.com/abhiTronix/vidgear/issues/new/choose)</comment></comment>


Ask HN:A Google presentation slides JS library? - <AUTHOR>

A couple of weeks back someone posted the google presentation slide js library. I tried googling it back it I can only find a basic which does not have the features that was shown in the demo link that was posted here. Features like code focus. Does anyone have the link for it? I would have saved the topic if I could, but Upvoting a story does not save a story for me sadly. I basically have to comment on every post that I like just so I can view my comment to check the story for a later time. <comment><USER2> <http://www.youtube.com/watch?v=seX7jYI96GE> I viewed this video last week from HN. I guess this is what you are looking for.</comment>


A Stroll Through the Minefields – The Alchemy of Surviving the Startup Ramp Up - <AUTHOR> https://hackernoon.com/a-stroll-through-the-minefields-surviving-the-startup-ramp-up-95320ab78759 <comment><USER2> "Developing features of your product without a commensurate push to grow your user base can set your startup on an inertialess path. This is what I learned when I was my previous company's ramp up phase. We developed new features thinking each feature would cause the inflection point we were looking for. 'Ticketing will be a game changer,' or 'this new mobile app will allow us to sell at a higher price point.' Each time we barely pushed the needle when it came to growth. We dreamt silver bullets, but we were only pushing out what amounted to paper bullets.

It turns out paper bullets are expensive. Features cost money in the form of engineering hours. We invested all of our seed funding in developing a great product. In doing so, our feature list expanded, but our actual revenue growth never changed in a meaningful way to support that development.

Eventually we stopped making new features all together. We had no choice; we couldn't meet payroll to continue all of this development. We were in what I call a startup tarpit. The startup tarpit is the land of inertia. We had a good enough product but not enough marketing resources to get out of our stagnation. We raised money to build a great product and when we ran out of money we had nothing to show for it; making it nearly impossible to raise additional money."

<comment><USER2> I found this in my own startup. We burned through most of our runway investing in feature development.</comment></comment>


The Definitive Guide to Designing Product Metrics - <AUTHOR> https://quip.com/edU3AgdiNOo1 <comment><AUTHOR> Hi! I'm Zach, the author -- I put together this doc since I couldn't find many resources I could recommend on metric design and evaluation, which pops up in data scientist/product analyst interviews and is a common task for data science teams.

Looking to hearing your feedback and if you've seen other good resources on this topic!</comment>


Senator McCain calls for end-to-end encryption ban in the USA - <AUTHOR> http://www.tomshardware.com/news/mccain-end-to-end-encryption-ban,31161.html <comment><USER2> And end-to-end encryption ban is a ban on data and computing security.

It also conflicts with a large number of existing laws and regulations which either explicitly or effectively _require_ end to end encryption of cert a in communications, such as HIPAA, so there should be some argument as to why all of those are no longer needed if we are to even begin to consider such a ban.

</comment><comment><USER3> What ever happened to those T-shirts with encryption source code on it?

[https://devopsbootcamp.osuosl.org/_images/rsa.jpg](https://devopsbootcamp.osuosl.org/_images/rsa.jpg)

We should start a campaign to send a 1000 or 10K depending on who cares that much of them to McCain. I'd pay to $2 as part of a campaign.

</comment><comment><USER4> The guy who spent his whole life in the public sector has ideas about your business model.

<comment><USER5> No-one has any obligations to respect anybody else's "business model".</comment></comment>


Clever Australian crows have learnt how to make a meal of cane toads - <AUTHOR> http://www.australiangeographic.com.au/topics/wildlife/2018/01/can-crows-eat-cane-toads <comment><USER2> For those not aware of the context of the article, the Cane Toad was imported to Australia to rid the Sugar Cane fields of an infectious beetle.

As the numbers multiply, there is a constant battle to find a way to rid the country of the foreign invader.

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

Rumour has it that after all the impact the Cane Toad has had on Australia, it never had the desired effect of eating the Cane Beetles.</comment>


Ask HN: Best resources for building a fault-tolerant, highly available system? - <AUTHOR> <comment><USER2> A good introductory overview: Jonas Boner on Resilience [https://www.youtube.com/watch?v=NjPVJ7ZKLnY](https://www.youtube.com/watch?v=NjPVJ7ZKLnY)

</comment><comment><USER3> That was the motivating case for Erlang. However, most problem domains don't require the same levels of availability and fault tolerance as telephone switching.

<comment><USER4> All the same, studying the design decisions that went into Erlang/OTP/Beam is a great place to start.

One of the hardest things to deal with is learning how to deal with all the different permutations of failure cases that can happen with hardware, the network, software bugs, etc. Erlang was designed from the ground up with all of this in mind.</comment></comment>


You Won't Believe What This Web Site Does to the Liberal Left (2013) - <AUTHOR> http://thesocietypages.org/cyborgology/2013/10/11/you-wont-believe-what-this-web-site-does-to-the-liberal-left/

<comment><USER2> funny I don't ever remember Jon Stewart supporting bombing these countries?</comment>


Automatic bug-repair system fixes 10 times as many errors as its predecessors - <AUTHOR> http://news.mit.edu/2016/faster-automatic-bug-repair-code-errors-0129 <comment><USER2> Link to the paper mentioned in the article: [http://people.csail.mit.edu/rinard/paper/popl16.pdf](http://people.csail.mit.edu/rinard/paper/popl16.pdf)

quick summary: They trained on apr, curl, httpd, libtiff, php , python, svn, wireshark.

It basically trains the machine learning algorithm with the Abstrat syntax tree (AST) of the code before and after the successful patches. It then uses the machine learning predictions on real world defects and see what comes out of it.

</comment><comment><USER3> Oh man. I'm already behind on reviewing the Pull Requests I get from human contributors. :(

</comment><comment><USER4> This is undoubtedly cool research, but how useful is the automatic generation of a fix? In practice, finding the bug is by far the most important step. Once you've identified the problematic code, it's normally trivial to fix it.

<comment><USER5> That makes me think of the amount of satisfaction one will receive pushing MIT's autofix-it button as opposed to those seconds or minutes when you've caught the fucker and go in for the final fix.

Those moments of updating the files: That little euphoria of finding the fix but needing to focus to get it done correctly and finally hitting enter for the last time...ahhh.

I'l take that instead.

<comment><USER6> Yeah but sometimes that is predated by unfamiliar or unwanted behavior in a production system and years being taken off one's life.

</comment></comment></comment><comment><USER7> I wonder sometimes what will cause all us thousands of software-engineers to become obsolete.

Not that long ago, we'd be a massive workforce of engineers, armed with sliderules, calculating away.

[http://s7.computerhistory.org/is/image/CHM/500004055-05-01?$...](http://s7.computerhistory.org/is/image/CHM/500004055-05-01?$re- medium$)

In 100 years, we'll be the people in that poster, but what will replace us? Smart software? Quantum computing?

<comment><USER8> Aren't we those people in the poster? Didn't they become us?

<comment><USER9> did you operate a slide rule in a previous job?

</comment></comment></comment><comment><USER4> The full paper can be found on Martin Rinard's website [1].

[1] [http://people.csail.mit.edu/rinard/paper/](http://people.csail.mit.edu/rinard/paper/)

</comment><comment><USER10> After reading about the quality of the patches produced by these in "Is the Cure Worse Than the Disease? Overfitting in Automated Program Repair" ([https://www.cs.umd.edu/~tedks/papers/2015-fse-cure-or- diseas...](https://www.cs.umd.edu/~tedks/papers/2015-fse-cure-or- disease.pdf)), I'm not so interested. One has to have a very awesome test suite to not risk that overfitting.

</comment><comment><USER11> One thing that I don't get from the article is if it can really catch my logical bugs. And I'm not trying to bring this research down because I don't doubt the results, but I am curious, and a bit skeptical, if this is a true step forward in catching "real" bugs or just surface ones. Even a sophisticated algorithm such as this. It takes into account features such variable scope and the operations performed on them, and is trained by real examples of bug patches on open source projects. Can it really understand my project? Because my logical bugs are specific to my project. It kind of reminds me of a recommendation IntelliJ once gave me for the following code:

return {left: am.left, top: am.right};

"WARNING: 'right' should probably not be assigned to 'top'"

This sounds like the kind of conclusion that such an algorithm might come to after seeing enough examples of similar bugs. It turns out that my code in this situation is actually correct, but in order to know this, you would have to have a thorough understanding of the rest of the program.

<comment><USER12> Of course it can't catch your logical bugs. Please see my comment below.

<comment><USER11> I read it and it's a great overview of the different kinds of bugs that happen in the real world. Certainly more examples than the article provided. But your comment seems to be focused more about how a good language with a proper type system can prevent bugs from happening in the first place which is a definitely a good point but not what this article was getting at I think.

</comment></comment></comment><comment><USER13> I wonder if this can be re-purposed to find zero-day exploits.

<comment><USER14> Not sure about the posted paper, but another recent work that comes to mind is from David Brumley's group at CMU:

[http://security.ece.cmu.edu/aeg/](http://security.ece.cmu.edu/aeg/)

"Automatic Exploit Generation" which does basically this. (I haven't read enough of either paper to understand how similar the analyses are, but both seem to be based on symbolic execution.)

</comment></comment><comment><USER15> Are there any languages that automatically (as in, deliberately) lend themselves to automated error detection? I feel like it's either not possible or so possible that Haskell is the answer.

<comment><USER16> Certain languages lend themselves better to static analysis than others. Some qualities (there are others) that simplify static analysis include:

* static (not necessarily explicit) typing

* no dynamic metaprogramming (static OK)

* no "eval"

* no first-class functions (second-class OK)

* no prototype-based OOP (class-based OK)

* no mutable variables (lexical shadowing OK)

* no mutable values, or very strict aliasing rules

* no unbounded recursion

* no dynamically defined structures

Of course you can perform useful static analysis with only some of these guidelines met. e.g. Erlang's Dialyzer does pretty well with dynamic typing, first-class functions, and unbounded recursion, because these features generally aren't abused in Erlang. (Though this took a hit recently due to the recent introduction of the `maps` feature, which was designed in such a way as to encourage violating that last guideline, despite proposals for a similar feature which would not have violated it.)

Surprisingly, C also meets all but two of these guidelines, and, although it is an egregious violator of those both, it is somewhat amenable to static analysis (see Coverity).

JavaScript, on the other hand, is notoriously difficult to statically analyze, since it not only _permits_ code to violate all the above guidelines, but it's _common_ for code to violate all of them.

<comment><USER17> Pardon if this is a naive question, but are there languages designed with static analysis in mind?

<comment><USER16> There are, but they're not too widely used. Cyclone [1] and SPARK [2] are two examples. Of course many others may have been designed in such a way that they _are_ easily analyzable, without that explicitly being a goal.

[1] [https://en.wikipedia.org/wiki/Cyclone_(programming_language)](https://en.wikipedia.org/wiki/Cyclone_\(programming_language\))

[2] [https://en.wikipedia.org/wiki/SPARK_(programming_language)](https://en.wikipedia.org/wiki/SPARK_\(programming_language\))

</comment></comment></comment></comment><comment><USER18>
        there are indeed universal properties of
        correct code that you can learn from one
        set of applications and apply to another
        set of applications

Pardon the speculative thought, but wouldn't a program that detects "universal properties of correct code" be equivalent to a program that detects whether another program will halt? Hence, impossible?

<comment><USER19> It's a machine learning based system, so it's probabilistic. You can certainly write programs that can detect when _some_ other programs halt, just not universal ones. For example, it would be relatively trivial to look for a "while true:" loop that has no end conditions.

</comment></comment><comment><USER20> There is a small downside: there is the potential for learning less of your mistakes. Especially when one doesn't barely do any code review.

</comment><comment><USER21> Anyone who has read this paper: how is their learning algorithm any different than a linear SVM?

<comment><USER22> It's either an SVM or multinomial logistic regression, but the bulk of the work is not the choice/design of model, but the structuring the data in a meaningful way.

The main issues in many interesting ML projects are 'how do you feed the data to the model' and 'how do you determine its success/failure'.

For instance: you could try to train a Pacman AI by feeding the game state into some model and asking for an up/down left/right output. But a lower bound for all the game states would be 2^(number of dots possible on level), making it impractical/impossible to store such a model in memory much less train it.

The strategy would be to encode the game state into a manageable number of features. This is a lossy process and the hope is that your set of features is small enough to be trained on, yet meaningful enough that the model can learn from them.

In the paper, they parse the data (code) into a syntax tree, compares it with the patched version. This identifies the 'point' in the tree where the patch modification takes place. The 'point' the 'type of modification' and a 'collection of neighboring points' are the features that are fed into the model.

tl;dr, yep, probably linear svm or multinomial logistic

</comment></comment><comment><USER23> I think low hanging fruit would be a system that backs out commits and system updates until tests pass again. Has that been done.

That way you could at least keep a system running until you can fix it.

What do you guys think?

<comment><USER24> Essentially, this is git bisect.

<comment><USER25> To add to this 100% correct comment, if you haven't tried using git bisect, I highly recommend it. The only thing you need is an automated way of determining if a specific sha is "good" or "bad" based on the question you are trying to answer. _Often_ that's "do the tests pass?" but (AFAIK) it can be any property of the state of the code.

A++, will use again. (err, hopefully not, but you know what I mean)

</comment></comment></comment><comment><USER26> Does it find incorrect locking code bugs in multi-threaded languages?</comment>


Ask HN: If you could choose 1 thing u knew u couldn't fail at, what would it be? - <AUTHOR>

Looking forward to hear some really exciting options. <comment><USER2> I'd choose being able to present clear and concise ideas and questions.

</comment><comment><USER3> Motivation oriented towards others, and, an affective response more appropriate to another's situation than my own (Empathy).

</comment><comment><USER4> Spelling.</comment>