It's painful to do a tech startup in London - <AUTHOR> http://www.techdisruptive.com/2014/01/21/painful-tech-startup-london/ <comment><USER2> I can think of a counter-argument to all this. I live in New York, but I have worked briefly in London. I could make a case for London that would go like this:

There are brilliant programmers in places like Italy and Poland and they feel stifled in their home countries, so they escape to London. Many of them would prefer to go to the USA but the USA's strict immigration policies keep them out. As EU citizens they have a right to move to London, so that is where they go. London is bigger than San Francisco and it is also bigger than New York. London is also much more international than just about anywhere: this place used to be the capital of an empire that held 25% of humanity. The phrase "The sun never sets on the British Empire" used to be literally true. London is nowadays the favored playground for Russian investors and Saudi princes and Brazilian entrepreneurs. The amount of money in the city, waiting to be invested, is beyond imagining. And also the amount of programming talent, drawn from all over Europe, is of the highest caliber imaginable. At some point these 2 things, the vast pool of investors and the vast pool of talent, must inevitably spark something, and when that happens the results will be great.

<comment><USER3> Slight nitpick made better by an xkcd link

[http://what-if.xkcd.com/48/](http://what-if.xkcd.com/48/)

Strangely the sun is yet to set on the Empire.

<comment><USER4> It might not set on France either, but I am not sure. [http://upload.wikimedia.org/wikipedia/commons/2/25/Outre- mer...](http://upload.wikimedia.org/wikipedia/commons/2/25/Outre- mer_en_sans_Terre_Adelie.png)

</comment></comment></comment><comment><USER5> "I wanted edgy. I wanted mobile. I wanted hip. I wanted cool."

"Actually I continue to fight with myself not to expose two individuals in particular who have been completely toxic to the very infant ecosystem which needs the exact opposite."

"I've been in San Francisco for 23 days now. In these 23 days I've been here, I've met with some of the brightest names in technology angel investing, signed customers, partnered my company with a team of MBAs for an entrepreneurial project, and have had more productive business development meetings than in 10 months in London."

This reads like parody but it seems to be serious. Please be careful mbesto

<comment><USER6> I think this is supposed to be a parody of someone who got into tech because it was trendy and may or may not have a trust fund.

"Disruptive Technologies and Forces in Business Technology"

"We use the Business Model Canvas to help our clients provide clarity around many of the challenging aspects that every business must endeavour."

</comment></comment><comment><USER7> I think what Mike is lamenting is that London isn't succeeding in mimicking the West Coast US (or indeed _anywhere_ US) startup scene which I think is a very valid observation. I think the UK has to learn to create an entrepreneurial style of our own and not attempt to transplant something from another culture - two countries separated by a common language etc. There was a post recently on how codified the startup process appears to be getting (sorry couldn't find it) which I think also hints at the problem.

Whilst the UK has had it's moments - remember when Acorn and Sinclair ruled the bedroom? - we often revert to the enthusiastic amateur, responsible for the breakthrough but never quite capitalising on it. Indeed Mike uses the word _amateurish_ in describing the scene himself. Also I get the impression that both for cultural and legal reasons the hire-and-fire approach to staffing doesn't happen in the UK which might be a necessary component in establishing an available pool of talent with the right risk mindset. We are also a terribly cynical bunch here in the UK which isn't the ideal frame of mind.

For the record, I'm a UK developer working for tech startups in Manchester which is 200 miles north of London (that's regarded as a long way in England) and all of the above is personal conjecture based on 45 years of being a cynical, amateur Londoner who got lost in The North and never went home.

</comment><comment><USER8> The crux of the issue is the inherent reluctance towards investing in tech companies here in London. Believe me, the community is willing and working bloody hard towards creating 'the next big thing' but getting investment in London is painfully difficult.

The London Hacker News meetup is a SV investors wet dream. 500 like-minded people turning up every month to discuss amazing ideas and woefully struggling to get investment to fund their passion.

<comment><AUTHOR> Steve, as a regular (and speaker) to HNLondon meetups, totally agree. You are one of those people who _has_ made an impact through your efforts on HNLondon and HackerJobs. I applaud you for doing something I couldn't.

</comment></comment><comment><USER9> My experience in the UK startup scene is the opposite - people are ridiculously optimistic about _everything_ without giving much apparent thought to how stupid the idea is. Someone down the road from me is making a social network for pets. Not pet owners, but for people _pretending to post as their pets_. For &!%$s sake.

</comment><comment><USER10> Hmmm. I'm in London but not closely involved with the "startup scene" (though I have a fledgling company that's doing ok). I suspect there's a certain amount of cultural mismatch going on here. I moved here from nz over a decade ago and it took _years_ before I understood the culture well enough to be credible in conversation. Arguably the culture I came from is closer to the uk than the states is.

No doubt, some things are a bit rubbish - for example my old agency moved to "silicon roundabout" then had to pay an absolute fortune to get bespoke fibre put in - because it's not even available there.

Maybe your experiences are genuinely indicative of the differences in possibilities but I don't hold it against people for not jumping on your idea with absolute enthusiasm. The onus is on you to prove that your idea has legs. Given some of the things that have been funds over the last few years, I think a little bit more scepticism might be healthy.

</comment><comment><USER11> There's a certain amount of irony in startup founders who claim they relish the challenge of starting their own business and then turn around and complain about how challenging it is. Is it supposed to be hard or isn't it?

<comment><USER12> There are challenges, and there are avoidable challenges. If a given challenge (e.g., for this author, being in London) can be avoided then the right thing to do is to avoid it. I'm sure there will be more than enough challenges left for him to relish.

<comment><USER13> Why the downvote(s)? He's technically right, startups in London are more of a challenge than in SV... If you can avoid it, why not?

</comment></comment></comment><comment><USER14> "partnered my company with a team of MBAs for an entrepreneurial project"

Good luck with this.

<comment><USER15> Why can HN never miss an opportunity to bash MBAs? It's so sadly predictable it's almost like parody now.

</comment></comment><comment><USER16> I really dislike the "do a startup" language that prevails now. Whatever happened to "start a business"?

<comment><USER17> 'Start a business' and you'll have to go to a bank: 'grow a startup' and you're in the greater idiot economy. Easy choice.

</comment></comment><comment><USER18> I think the main problem is the big banks are right next door to the Silicon Roundabout area, and they typically pay 3 times as much.

<comment><USER19> Are people still trying to push the phrase "Silicon Roundabout" for Old Street roundabout and the Shoreditch triangle? It is probably just me, but nothing makes me cringe harder.

<comment><USER20> It's not just you.

</comment></comment></comment><comment><USER21> Interesting.

Side note:

How can London startups hiring "rockstar" devs offer 40k? Have they seen the rent prices here?

I can earn at least x2 in the City and x3 contracting. It's just not acceptable.

<comment><USER22> It seems to be accepted in London that when you join a startup, you take a paycut of 33%.

 _Even if the startup doesn 't offer any equity_. All risk, no reward...

<comment><USER23> Yeah, one thing that startups in London need to get through their think skulls is that, if they can't match the salaries on offer in the City or the media/marketing/advertising companies in the West End, they need to offer equity stakes to early employees.

I've actually felt embarrassed at some of the stories I've heard.

</comment></comment></comment><comment><USER24> It's painful to start any business, anywhere.

</comment><comment><USER25> I'm guessing there is a lot more "No because" rather than "Yes if" attitude in London?

<comment><AUTHOR> Exactly.

</comment></comment><comment><USER23> It's painful to do a tech startup anywhere! I don't think it'll come as a surprise to anyone that Silicon Valley is the best place in the world to do a tech startup. The eco-system there has had decades to develop and grow, while London's is still in its infancy. Silicon Valley's tradition of the benficiaries of IPOs re-investing their new-found wealth into tech startups stretches back to Mike Markkula's investment in Apple, while there are still relatively few British angels. And the "What's in it for me?" attitude prevalent in London stands in marked contrast to Silicon Valley's collaborative, "Pay-It-Forward" culture. London is also hampered by government attempts to "help" (i.e. take the credit for) the tech industry that is often inept and, at times, cronyistic.

But I wouldn't give up on London. It takes time for eco-systems to grow and mature. London's tech startup scene may well be amateurish but it's also incubating world-class companies like Mind Candy, Huddle, King.com and Spotify. Silicon Valley-based startups are coming to London to acqui-hire companies like CrashPadder and Lightbox.

London's already the best place in the world to start a company in certain segments (e.g. fin.tech) and it's often the first choice for companies looking to establish their first international office.

And it's going to keep getting better because there are people here who want to see it get better.

Thanks Michael, your feedback is appreciated. We wish you all the best in Silicon Valley.

</comment><comment><USER26> This guy hits a lot of nails on their respective heads, and yes granted there is a culture difference between here and the US.

I think the biggest difference between here and the US is there is no stigma attached to having a failed start-up. It's almost the natural run of events in the US. You simply dust yourself off and on with the next idea.

In the UK we seem to attach a stigma to failure and this runs the full spectrum from start-up entrepreneurs to investors. It's a tricky mindset to break.

<comment><USER27> I think this stems back to the fact that those with a failed startup, lost investors hundreds if not millions of pounds. As a culture I think we're FAR more risk averse.

So someone standing and saying "Yeah, I lost some a bunch of money that some old guys shouldn't have invested if they weren't prepared to write it off" is a huge stigma over here.

In the states, you have way more professional tech investors so the "bad vibe" about losing that money isn't as bad.

I think US founders carry it almost as a badge of honour, a symbol of a war fought bravely to the end. Here it;s just like, "Oh, you fucked up last time.... I'm going to stand over here now"

</comment></comment><comment><USER28> It's painful to do a tech startup anywhere but in my experience, what London suffers the most from is the cost of living.

I spent the last 3 years working in Shoreditch and most of the startup founders I came across were either bootstrapping to the extreme (spending _nothing_ but sweat capital on their project) or freelancing at least 2-3 days a week to cover costs. I think in practice this makes a lot of the work look more amateurish in comparison to seed/angel funded teams in the US. In practice, you would see a technically very talented founder without the right UI/design, a visually polished MVP with no user traction, a businessy founder outsourcing technical work to East Asia etc.

</comment><comment><USER29> It seems like the author is surprised that the fledgling tech scene in London (and the UK) isn't as well developed as that of the place with the most VC dollars invested per sqare mile in the world, it's taken silicon valley 50 years to get where it is now so give it time. Also, and I am in a minority here, I don't think London has the geography or incumbent mindset to rival SV in the future - there are other places in the UK more favourable to setting up the UK's tech hub with a greater history of innovation and prospect of nurturing a startup epicentre BUT capital is even more stretched in those areas.

</comment><comment><USER30> This is one of the more facile things I've read on the internet.

> Dear London, it's not you, it's me

Er, except the next 1500 words are a very muddled and occasionally misspelt attack on London, and not you.

> I left you for another women. Her first name is Silicon and her last name is > Valley. I'm not sure why I believed you for so long, but you lied to me. You > told me Tech City is the next Silicon Valley, and it isn't. You told me you > were going to lead the UK out of a slump and you didn't. I wanted edgy. I > wanted mobile. I wanted hip. I wanted cool. You were boring, conservative, > and expensive. So what did I do? I left. I left you because my new > girlfriend knows how to support me.

Ignoring the painful rhetoric here, Tech City is not going to be the next Silicon Valley, and nobody said it would be. You thought the global economic recession's impact on London, the financial capital of the world, would be lessened by the government putting ten people in an office and asking them to talk about startups? I'm not sure what the output was which you were expecting from this input, but it's clear that you were misguided. Maybe you think SVASE is going to help the homeless in San Francisco?

London is expensive. A bit cheaper than SF, though. Boring and conservative? Make grand plans and I think you'll find people willing to back you. We did.

> When we launched our MVP in march my thoughts were "yes, let's be part of > this tech city revolution". My thoughts now, "What revolution?"

I've run a venture-backed startup in London for nearly 3 years. I also think "what tech city revolution?" because a common hallmark of the successful / venture-backed startups in the UK (you seem to conflate the two) is that they don't really go in for the bullshit: networking, accelerators where you get a communal office and access to a shitty lawyer, ec. The good startups in the UK don't obsess over Tech City News or go to networking events with cold pizza and warm white wine. They work out whether there's an opportunity in a market, raise capital, and build things.

> Without sounding completely derogatory – London's tech startup scene is very > amateurish.

I've read your article a couple of times and I'm still not clear on what facets strike you as amateurish.

> the developer talent isn't exactly amateur. For example, take a stroll into > a TechHub campus or the Innovation Warehouse and it's buzzing.

I'm not sure that the "buzz" of an engineer is the best way to evaluate his or her amateur/pro status. If you want to assess software engineers, you need to meet them and work with them. Also, you're again talking about going into incubators and shared offices to assess the health of companies in a city. A bit weird.

> I met a number of young and hungry developers, technical and online savvy > who struggled to find good companies to work for.

That's odd: I know at least one YC company in addition to us who find it very hard to find great software engineers. We're constantly advertising positions and recruiting through our networks. _Whenever_ I speak to other venture- backed companies the biggest challenge is finding talent. Not all engineers are created equally.

For established world class talent the attraction has traditionally been San Francisco, whether you're in Europe or America. But look at people like Nikolaj Nyholm: built a fantastic software company (which now powers facial recognition in most of Apple's products), sold it, and now back in Europe working with startups.

> Here in SV, that match is almost nearly always met. I even met a women tech > founder, yes one of this "pink" unicorns SV is biting it's hands off to use > as a poster child, who lacked a support network.

Trying to decrypt this sentence. You met a female founder in SV, or in the UK? What "support network" was she lacking?

      > The bottom line is this – the right people aren't leading the pack. I'm not suggesting a personal nomination, but it was still clear there aren't enough of the right people in the system. Could have I waited it out and became one of those people? Sure, but one thing you learn in tech is that time is not on your side.

       This is so muddled. What are you saying, exactly?

> One of the foundations of Silicon Valley is its strong angel investing > community and large amounts of high net worths.

At last, something we can all agree with!

> As far as I am concerned this community doesn't exist in London.

Simply put this is wrong. London's major problem is that startups have become more popular and readily accessible due to a stronger proclivity to invest at the seed stage amongst people in the financial services. If you cannot raise £150k for your startup's seed round in London, you're doing something wrong.

The big challenge has been at the seed through to Series A stage. Because of a lack of major institutions in the UK with large funds, the institutional backers tend towards later stage deals. A few are actively correcting that and one or two great funds have sprung up to specifically tackle this problem (Profounder, Hoxton Ventures, Passion), but the challenge is the same: because there isn't competition in the funds, only in the startups, there's less likely to be money trickling down to riskier ventures and those who are between seed and Series A.

> Are there high net worth individuals in tech investing in companies in > London? Yes, but as a whole, it is neither the correct group nor right > number of people to become critical mass.

There should be some kind of rule against asking yourself easy questions so you can look like a genius in a blog post. There are a great many HNWI and UHNWIs in London.

The good point you veer towards making but manage to miss, is that there aren't the high number of $1bn exits in Europe which lead to HNWIs with tech backgrounds investing in companies. I agree with that. But I've also found that there are some, and they're interested in hearing from credible entrepreneurs.

I got bored of the rest of this but here's my tl;dr:

1\. Yes there are good reasons to found a startup in San Francisco and not in London. 2\. There are also good reasons to found a startup in London and not San Francisco (another topic for a different time). 3\. I believe that if you truly have a disruptive idea and the capacity to make it happen, you will not have a problem raising capital. But it tends to be at the higher end of the spectrum (£1bn+ idea) that you will have an easier time raising.

I wish you well in San Francisco but I don't think London was the problem here. I think you had mismanaged expectations. Feel free to ping me if you want to meet for a coffee next time you're in London so we can compare notes on SF vs. London -- address is in profile.

<comment><USER31> >because a common hallmark of the successful / venture-backed startups in the UK (you seem to conflate the two) is that they don't really go in for the bullshit: networking, accelerators where you get a communal office and access to a shitty lawyer, ec. The good startups in the UK don't obsess over Tech City News or go to networking events with cold pizza and warm white wine. They work out whether there's an opportunity in a market, raise capital, and build things.

So do you think that there's more of an emphasis on getting the product make or the job done than the start up/hacker culture side of things?

<comment><USER30> > So do you think that there's more of an emphasis on getting the product make > or the job done than the start up/hacker culture side of things?

Sort of.

I think there are fewer professional / institutional investors in the UK. It feels like there are more early stage startups in fewer spaces, too. So there's a really big "scene": Drinkabout, meetups, the various L*UGs (e.g. London Ruby User Group), the incubators (WAYRA, TechStars, Seedcamp), the offices (Tech Hub, Google Campus, Innovation Warehouse). Fuck, I went to an event at Bloomberg last year (probably the last wank networking thing I went to) where whoever the most recent government stooge told to gas about startups (without any credibility) was speaking authoritatively.

In my experience, venture-backed startups mix in with other venture-backed startups. E.g. Smarkets/GoCardless/Rentify used to share a single floor at Royal London House (somehow!). Now Rentify is moving into WAYN's office as we're approaching 40 desks. So whereas when we were younger we were in environments where networking was forced on us because, fuck, it's a communal space and everyone is doing it, now we're not beholden to someone else's schedule.

Whereas I phrased the point about good startups not doing networking events very poorly, I believe very strongly that the successful startups in London (and probably across the rest of the world) focus maniacally on one of growth, revenue, or raising capital. If you have two of those three you will get the third. I think people in the early stages of their startup can mistake hustle and networking as routes to all three, and it's usually bullshit.

<comment><USER31> Ok, thanks very much for expanding.

</comment></comment></comment></comment><comment><USER32> Oh man, prepare for the backlash. These articles are supposed to go the other way or else you're just an arrogant American.

</comment><comment><USER33> Typo in your second sentence = I stop reading

</comment><comment><USER34> The biggest problem of London is that the only way to get a decent compensation is by working in financial sector.

</comment><comment><USER35> Come to Paris !

Just kidding, but it's very refreshing to hear that things in London look just as bad as in Paris.

</comment><comment><USER36> He's from the US. Perhaps he didn't fit the culture over here.

<comment><USER8> I've had the pleasure of meeting Mike a few times and I promise you, he's painfully accurate in his description of the tech scene in London. London's loss is SF's gain.

</comment></comment><comment><USER37> Bye!

<comment><USER38> (Y) :D

</comment></comment><comment><USER39> _The market dynamic in London is to recycle money in the banker's boys club, whereas SV recycles it in tech. In SV, this is all based on the value of a Pay it Forward™ economy. London is based on a forecasting spreadsheet. NYC has caught on, what gives London?_

 _I've been in San Francisco for 23 days now. [...]_

The California niceness is superficial. Europeans tell you, point-blank, that they think your idea sucks. Californians say "Let's keep in touch" or "If you can find a co-lead, we're definitely in". They kick the rejection can down the road and it can cost you months. New Yorkers are between the two on that spectrum: not as blunt and harsh as Europeans, but closer to it than Californians.

For example, if you're not from Harvard, Stanford, or MIT, you're a second- class citizen in the Valley. Here's the thing, though. Unlike European-style snobbery, which is overt but actually relatively harmless, you're never told that and unless you're unusually attuned, you'll have no idea what's going on. You just aren't as likely to get good projects, promotions, or introductions that make your career what it should be.

The VC-funded, Silicon Valley game is also a Good Ol' Boy network. Don't let the fact that they dress poorly fool you.

<comment><USER40> Interesting. I have always found how different cultures "say no" to be one of the biggest acclimatisation factors when working on an international project.

I've worked with Japanese clients where they won't disagree or discuss problems explicitly. You might have your attention subtly directed at something for you to discover the problem yourself but no-one will tell you you are wrong.

I compare that to some German engineers who are breathtakingly blunt and have no problem saying "You are wrong. That won't work. We will not do that." no matter how sensitive the client situation.

On the scale of things, I see us Brits as fairly sensible. Put a German and Japanese person in a room and you sometimes needs a Brit to translate between the extremes. We sometimes flannel around too much in an effort to be polite but IMHO we take the effort to balance clarity and politeness.</comment></comment>


Open source drivers for SoC GPUs - <AUTHOR> http://blog.emmanueldeloget.com/index.php?post/2013/01/12/Open-source-drivers-for-SoC-GPUs

<comment><USER2> My read is MALI GPU is the way to go in the short term. More people working on it.

GPU drivers are holding back the <$50 linux desktop in my opinion. XBMC looks nice.

Sure, android works great but that is not a desktop environment IMO.</comment>


Deeper Ties to Corporate Cash for Doubtful Climate Researcher - <AUTHOR> http://www.nytimes.com/2015/02/22/us/ties-to-corporate-cash-for-climate-change-researcher-Wei-Hock-Soon.html <comment><USER2> I am more interested in the adjustment of historical temperatures by NOAA. The whole debate hinges on accurate temperature reporting. Of course we could also have an article about the politics of climate grant chasing as well. This whole issue has become less about science and almost entirely about politics.

<comment><USER3> That sounds like you're trying to weasel out of having to accept the science. However, since you mention your interest, you'll probably be interested in the work of Richard Muller / Berkeley Earth. Their research reexamined the temperature data underlying climate change, and despite initial skepticism they were able to rule out alternative theories.

The debate is of course of political manufacture, because the science is unequivocal.

</comment></comment><comment><USER4> One of the co-authors has been writing about this extensively. [http://wmbriggs.com/post/15337/](http://wmbriggs.com/post/15337/)

</comment><comment><USER5> I think the link should be [http://www.nytimes.com/2015/02/22/us/ties-to- corporate-cash-...](http://www.nytimes.com/2015/02/22/us/ties-to-corporate- cash-for-climate-change-researcher-Wei-Hock-Soon.html)

Currently the link is for the science section, and this is the top article.

<comment><USER6> Thanks. Fixed.

</comment></comment><comment><USER7> This is part of a scurrilous campaign by green activists to get solar physicist, Dr. Willie Soon fired from his post at the Smithsonian Institute. This campaign was apparently triggered by his co-authorship of a paper critical of the predictive skill of climate models.

"Why models run hot: results from an irreducibly simple climate model"

[http://www.scibull.com:8080/EN/abstract/abstract509579.shtml...](http://www.scibull.com:8080/EN/abstract/abstract509579.shtml#)

Hacker news is not a venue for rent-a-mob activity. Flagged.

<comment><USER8> Are you claiming that this is false:

"He has accepted more than $1.2 million in money from the fossil-fuel industry over the last decade while failing to disclose that conflict of interest in most of his scientific papers."</comment></comment>


Ask: What are the tools and factors that let you to program at your best? - <AUTHOR> I've been thinking about how and when I program at my best, what the tools are, what the situation is and how I can engineer it more often.
It's a combination of editor/IDE (that I know), debugging tools, clear goal, clear head, ...and a bunch of other things.
What are your factors of 'the best programming you'? <comment><USER2> My environment has to feel isolated yet not alone, i.e. I could not work alone in a basement as I tend to get anxious. Other than that: 1) A good IDE (my current fav is anything by JetBrains) 2) Either Atom or Notepad++ as a basic text editor 3) A Unix-like environment so I can use tools like vim, Perl, and bash (Linux Mint and macOS FTW) 3a) If I must be on Windows, I insist on ComEmu and PuTTY 4) Youtube in the background for watching/listening to stuff that is slightly distracting 5) I play guitar a lot, so I keep a junker electric guitar at my desk in case I need to take a mental break or think through a solution 6) Coffee, within reason 7) I have found that I can get 2-3x more done at 6-9am than from 9am-5pm. My brain seems much more alert when I just wake up. 8) Frequent breaks 9) Somewhat cool -- I can't code hot and deep thinking and analyzing make me feel hotter for some reason. And finally....10) Having as few interruptions as possible from IM (Slack, etc.). I sometimes have to go "dark" for a few hours to get shit done.

</comment><comment><USER3> Emacs, door shut, no noise, no interruptions. Phone etc in different room. No notifications enabled on my machine.

My office at home has three walls made of floor to ceiling glass (back wall is bookshelves). You might think that would be distracting but all I can see is trees, and I'm above ground level so not even animals distract.

<comment><USER4> that sounds amazing. any chance you'd share some photos?

</comment></comment><comment><USER5> I've been coding at home for 20 years now. I really don't know how I'd do in an office environment now.

I need quiet, solitude, and no interruptions at work, and a good nights sleep before it.

I don't know how people can code with music playing or people talking and coming in and out of the work space. I can't hear myself think with that around me and it bugs the hell out of me.

I code in spurts. If I'm focused I won't stop and I'll keep coding until I'm exhausted and get a shit ton of work done, and then I need time off.

When I'm tired and "burnt out" I can't code squat. I just sit there and stare and can't really follow and track logic and if I try to write something it's garbage and will break stuff and I'm better off not mucking with anything at all.

As far as tools go, I've been using BBEdit the entire time. I use it for JS, Perl, HTML, CSS, Python, plain old text and most everything else I might code. I use it more than any other app I have.

I still use "Fetch" for the Mac to transfer files. It works for me.

I use a few Raspberry Pi computers connected to my LAN and configured similar to my production servers for development and to keep working when I lose my internet connection. Where I live, in a rural area, that happens quite a bit.

I have a collection of disk images for the Pi that I use to prototype stuff on and experiment with. I can hack on those and break them or copy them and go from there or start over again on something else with a fresh install in just a few minutes.

The Pi has become one of my favorite tools. I can emulate the internet in my office on my desk and work on building a server dedicated to a specific task and then mimic the install on a production quality VPS. I even have a disk setup to use as portable PC on trips now and don't bring a laptop anymore. I bring a small bag of adaptors for monitors and a tiny wireless keyboard with a touchpad and that's it. Everything important is on a microSD that's easy to remove and conceal and replace.

<comment><USER6> +1 for BBEdit. I may have just converted from Sublime.

</comment></comment><comment><USER7> I get about 4x work done with my main rig at home vs my laptop in an office.

1\. Big monitor. Tried a regular monitor vs UHD. UHD monitor gives me two rows so I can do stuff side by side.

2\. The right music + headphones + no background noise.

3\. Nice keyboard and mouse. My laptop isn't good enough.

4\. L-Theanine pill before work starts.

5\. Half hour meditation time before work. Headphones are great for this.

6\. Decent IDE.

7\. Also I block off Facebook and games for the entire work week, even past office hours. Flow goes well into the night.

<comment><USER4> UHD choice is interesting. I have one 29" 1080p screen now and trying to decide between two side by side, a 4k, or an ultra wide or even curved screen

<comment><USER7> Mine is 28" and I can't really imagine having something of lower res as a larger size.

Fonts are really crisp on it. It's very pleasurable to work on and one of the things I look forward to every day.

It acts as 2-3 screens on its own so I don't really see any use for more screen space.

</comment></comment></comment><comment><USER8> 1\. Good Music/pod casts/tv on for noise to ignore/trigger other parts of my brain. 2\. moderate lighting not to bright not to dark. 3\. Confortable temp - codeing cold or hot is a no go. 4\. a Decent keyboard with good key travel that doesn't bottom out, and isn't squishy feeling. 4\. fluids - having water, coffee, soda, etc... close that I don't have to go get it. 5\. standup desk, with bar stool when I do need to sit. 6\. Linux/freeBSD 7\. open terminal (for man and tool chain: compiler, debugger, etc..). 8\. Browser, and some select books when I need to look things up. 9\. Vim or VS Code. 10\. train co- workers, spouse, kids to not interrupt the zone/flow.

</comment><comment> q-base Definitely music and a good nights sleep. If I haven't slept properly or am somewhat exhausted nothing can bring me into flow.

If I'm well rested I have 4-5 different hour long mixes that I put on my noise cancelling headphones or use "Focus" from Brain.fm - which I actually think I bought a lifetime membership of because of a HN discount - and with either one of those, I have somewhat trained my mind to go into "work-mode"/flow.

</comment><comment><USER9> I find tools not so important, as working conditions.

Most important are quiet conditions, minimal interruptions & meetings and confidence management know what they are doing.

</comment><comment><USER10> Peace of mind before I start working. If there's something bothering me, I just can't up and get going on work that needs to be done. A peaceful mind, good night's sleep, and some good breakfast all put together gives me a full day's worth of high productivity.

I used to think it was about the tools btw. Then realized the constant experimenting with what tools to use was just my mind playing tricks with me and making me believe I was getting work done.

</comment><comment><USER11> Visual Studio.

Clunky at times and possibly bloated with too many features and menu options but Debugging IDE is by far the best of any IDE I've worked with!</comment>


Ask HN: Has WP7 app pricing turned you off from development or purchase? - <AUTHOR>

I just got my new windows phone today after being a happy ZuneHD user since the device was introduced. Living in Canada, I never had access to the Zune Marketplace to purchase music, so it wasn't an issue.
Somehow I never understood that Zune didn't work like iTunes (or any logical establishment) where you pay for what you purchase. Zune makes you purchase points which are then redeemed for apps and media.
My instant reaction, I'm not going to 'top-up' on Zune points so I can buy something later. I'm not going to give Microsoft (or anybody else for that matter) a balance to hold until a later date. Why would I?
I find this particularly interesting as I can get netflix on my phone, I can probably build an app that will connect to the amazon music store, or other source where I already have an account, etc. etc.
I'm surprised there hasn't been more discussion around this 'strategy' which I can only believe is setting Microsoft up for failure in the apps world.
As a developer, I'd steer away from a paid app just because I'm sure there are lots of WP7 uers who won't use the credit system.
Am I the only one that feels this way? Or am I just the only one who bought a windows phone? <comment><USER2> _> Somehow I never understood that Zune didn't work like iTunes (or any logical establishment) where you pay for what you purchase. Zune makes you purchase points which are then redeemed for apps and media._

Anyone with an XBox will be familiar with this setup. XBox Live uses Microsoft Points as a currency so that Microsoft doesn't have to eat the cost of processing so many transaction fees on purchases of a dollar or two. I'm not sure how Apple gets around this on $0.99 purchases...wouldn't they have to pay $0.10-$0.30 per app/song sold? Microsoft's system cuts that per-transaction cost dramatically, because people would buy $10, $25, or $50 worth of points at a time.

And yes, you are the only one who bought a windows phone.

<comment><AUTHOR> I know all about the cc processing charges, but as you mentioned it didn't stop Apple,Google,Palm or bb. I assume when these companies are processing so many small transactions the cc companies cut them a break on the transaction cost.</comment></comment>


Physical Security Key That Keeps Google Staff from Getting Phished Now Available - <AUTHOR> https://gizmodo.com/the-physical-security-key-that-keeps-google-employees-f-1828712018 <comment><USER2> I think this is a duplicate of [https://news.ycombinator.com/item?id=17875658](https://news.ycombinator.com/item?id=17875658)</comment>


How to Come Up with Better Titles for Your Content - <AUTHOR> https://open.spotify.com/episode/1NBkiRhOWmNMkoG5MJCZPo?si=E5AuOypISK24OVMJ51aBIw <comment><USER2> Love Neville's tool!</comment>


Ask HN: When does "no" really mean no? - <AUTHOR>

Example.  You go up to someone and ask them about if they would every buy [INSERT NAME HERE] product.  They say "Definitely No, Not Now, Not Never"  You believe them and then go amongst your merry way thinking they would never buy a product like this.
One year later, guess what product they are happily using?  At this point they are trying to deny they never even wanted this product.
So, when does "no" really mean no and when does it mean "well not right now, maybe later"? <comment><USER2> """ When does "no" really mean no?"""

When the words "date rape, police, lawyer" are mentioned in a non casual manner.

Seriously, now, this is a really bizarre question.

People change their minds, especially in non-important areas of their lives, like purchase decisions.

If someone tells you "I'll never move in a third world country" that is more likely to remain a no than "I'll never buy a Honda".

In regards to purchases decisions, "no" means no for as long as:

1) the market does not change (i.e no new products introduced) 2) the peers/marketing influence on the person doesn't change 3) the attitude/lifestyle of the person doesn't change 4) the needs of the person doesn't change (including "perceived" needs)

i.e very rarely.

Someone could say "I'll never buy an X, my K rocks", and then:

1) Have a chance to use an X and conclude it's actually better. 2) X could actually get more popular so he feels peer-pressured to get one. 3) He is not as opinionated about X's maker anymore (or companies in general), because he's no longer 15. 4) The X version 3 is way better than both K and X version 1. 5) Things that thought mattered about K (like spec Y), he found out they don't really matter to him in actual use.

X could be an iPod and K a Creative Zen, for example. Or X could be an Android phone, and K an iPhone.

Or vice-versa, but the main point is, in this context, no means almost nothing at all.</comment>


Architecting Back end for a Social Product - <AUTHOR> http://highscalability.com/blog/2015/7/22/architecting-backend-for-a-social-product.html?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed%3A+HighScalability+%28High+Scalability%29 <comment><USER2> having worked on & maintained & architected 5 different social backends and failed at 4 of them, here are my key take aways;

data storage: * keep data structure as simple as possible, * do not go with the hypes, stick to old?, proven technologies * have your db constraints as strict as possible in early stages, later you can remove them as for performance improvements * test the key features of your database choices(does transparent sharding really works?), you will see them failing... * you dont need a graph db, you need a graph-like access layer to your data * your >1 month old data wont be accessed/modified at all (mostly) chose your shard key accordingly * keep duplication of your data as small as possible in early stages

indexing: * >1 month old thing might not apply here * ACL can be problematic/hard to manage, try to keep it simple.

queuing: * to me this is one of the most important elements, if you want a simple way to keep every component in sync with others, use event publishing, really. * have your re-try mechanism, dead letter queue, delayed processing in place.

> We can use ActiveMQ, which is the most reliable queuing software. a very > bold statement :)

caching: * think your cache invalidation strategy from the beginning * keep your immutable and dynamic data cache separately in your code (at least visually) * try not to mix your business logic and cache code

> We should be ready for anything in the order of billions of queries per > seconds. if only you are next/already facebook...

<comment><USER3> Thank you for reading this and sharing your thoughts.

</comment></comment><comment><USER4> Pretty good and much the same sensible architectural choices as many other already successful companies aside from the neo4j choice. Just use a normal db like postgres like everyone else. There are good reasons why the biggest sites in the world use or have moved to using an RDBMS. They may not be cool but they work. I'll not expand on all the reasons but a trivial search will enumerate them extensively. You already have some cool stuff like mongo, a store I love, and hate. ActiveMQ? I can't think of anyone else using it. Is there a good reason why everyone seems to be using rabbitmq?

<comment><USER3> Thank you for reading this and sharing your feedback. Well this is more of a template to get started. It is not really "one size fits all" solution. I agree, instead of getting carried away by all these no-sql solutions, one may get started with RDBMS and then as they grow, may take a decision to move towards a no-sql solution or what ever solves the problem. But from my experience I can tell you that, if things go "as-planned" in terms of data and traffic, soon one will have to move a part of their data to a no-sql store.

>> ActiveMQ? I can't think of anyone else using it

I have used ActiveMQ multiple times, and found it to be a stable MOM. I love its scheduler support and some of its cool features like message grouping, virtual destination, composite destinations and wildcards. Of course, like you said there are many other alternatives too.</comment></comment>


Ask HN: Does anyone have a guide for filing the overseas U.S. tax return? - <AUTHOR> As a savvy computer user, I was asked by a friend if I know how to make sense of the mandatory U.S. tax filing requirements she must adhere to, as a U.S. citizen who lives overseas.
She's rightly infuriated that when she called the IRS, they said "I'm sorry, due to budget cuts we cannot help you line by line".
I'm fortunate enough not to have to worry about this but I know if I was, I would have written myself a clear, reusable guide or custom-designed web form I could refer to every year. Does anyone have something they would be willing to share, that I could pass on to her? <comment><USER2> It depends on which country you're in, and whether they have any tax agreements with the US. In some countries like Switzerland you get double taxed.

<comment><AUTHOR> She is a U.S. citizen, she thought it was irrelevant what country she is in? She is also under the threshold (whatever it is) and has no tax to pay.

<comment><USER3> Does [https://www.hrblock.com/expat-tax-preparation/expat- guide/fi...](https://www.hrblock.com/expat-tax-preparation/expat-guide/filing- taxes-abroad/) help?

Even if you don't want to use their services, there are pointers about some of the relevant topics, like [https://www.hrblock.com/expat-tax- preparation/articles/fbar-...](https://www.hrblock.com/expat-tax- preparation/articles/fbar-fatca-filing-requirements.html)

<comment><AUTHOR> Thanks. A quick review of these links ultimately point to "pay us to do the hard work" for $300-500 - a lot of money for her.

It seems ridiculously unfair to be submitted to this process when the preference should be like it is in my home country, if you don't make above the threshold, you don't file. Forcing everyone to file, who is making money or not, is brutal.

<comment><USER3> I did a search for "expat American taxes" and found [https://www.internationalcitizens.com/finances/tax-filing- am...](https://www.internationalcitizens.com/finances/tax-filing-american- expats.php) .

Add a country for more country-specific results, like for the UK at [https://www.taxesforexpats.com/uk/us-tax-preparation-in- uk.h...](https://www.taxesforexpats.com/uk/us-tax-preparation-in-uk.html) and Germany [https://www.howtogermany.com/pages/ustaxes.html](https://www.howtogermany.com/pages/ustaxes.html) .

The latter mentions "IRS Publication 54, Tax Guide for U.S. Citizens and Resident Aliens Abroad, which should answer most of your questions" then adds "Due to the complexity of both the U.S. and German tax systems and their interaction with one another, it is always recommended that you hire a tax consultant (Steuerberater/CPA) or a professional US Tax preparer to guide you through the intricacies involved in filing returns as well as to provide some ease of mind during your stay abroad".</comment></comment></comment></comment></comment>


Inside The Netflix/Comcast Deal and What The Media Is Getting Very Wrong - <AUTHOR> http://blog.streamingmedia.com/2014/02/media-botching-coverage-netflix-comcast-deal-getting-basics-wrong.html#

<comment><USER2> While the author is correct to admonish the news media for its incorrect use of words like 'speed', 'throughput', 'bandwidth', etc., the author has much to learn about the economics and law at play here.

He says, "While I don't know the price Comcast is charging Netflix, I can guarantee you it's at the _fair market price_ for transit in the market today and Comcast is not overcharging Netflix like some have implied."

Well, there is no "fair market price" in the absence of perfect competition. Where I live, Comcast is the only game in town. Verizon won't compete. So, Comcast is a monopoly. There's a monopoly price, and that price is significantly higher than what the price would be if we had a competitive market. In places where consumers have a 'choice' between Verizon and Comcast, there's a duopoly, with duopoly prices. Duopoly prices aren't much different from monopoly prices as far as consumers are concerned. The difference here is that Comcast/Verizon are making somewhat smaller duopoly profits, rather than higher monopoly profits.

 _Monopoly /duopoly, either way, consumers are getting screwed, whether that consumer is a household like me or a business like Netflix._

The author emphatically insists these deals have "NOTHING TO DO WITH NET NEUTRALITY." As a reminder, Net Neutrality was struck down by the Federal Courts on Tue 14-Jan-2014. So its funny we're seeing a tidal wave of deals between Netflix and the big three ISPs (Comcast, Verizon, and AT&T) just 6 weeks later, after numerous accusations of throttling. I know Comcast 'promised' to respect Net Neutrality until 2018. But Comcast has made me many promises they've broken, e.g., quoting me one set of prices, then charging me much higher rates when I get my bill. So why should I believe them now?

For a detailed economic analysis, I highly recommend looking at the 2010 paper "The Economics of Network Neutrality" by Nicholas Economides and Benjamin E. Hermalin. The paper finds that "network neutrality is welfare superior to bandwidth subdivision (granting or selling priority service)." See [http://faculty.haas.berkeley.edu/hermalin/net_neutrality_v17...](http://faculty.haas.berkeley.edu/hermalin/net_neutrality_v17.pdf)

I also recommend reading the 2006 testimony of Lawrence Lessig at the Senate hearing on Net Neutrality. He concludes that the loss of Net Neutrality will stifle innovation, damage the economy, and take away our freedom. See [http://www.commerce.senate.gov/pdf/lessig-020706.pdf](http://www.commerce.senate.gov/pdf/lessig-020706.pdf)

I wish Lessig had expanded on his comments on freedom. We've seen illiberal countries like Iran, Libya, etc. block their citizens' access to internet sites that officials disapprove of. People think it can't happen in the US. But we see Arizona in the news today considering a law that allows firms to discriminate against gays. What if a major ISP's conservative CEO decides he doesn't want his customers accessing websites with content about gays, abortion, porn, gambling, alcohol, the big bang, evolution, islam, and so forth? Does his freedom of religion take precedence over my freedom of speech? It would be one thing if I could switch to a competing ISP, but as I've stressed, there's a real lack of competition. So, this scary scenario is becoming a real possibility now in the US.</comment>


Ash HN: how would you design a society that focused on wage growth - <AUTHOR> <comment><USER2> In theory, I think you would have to have a stable currency, something like a gold standard. This would prevent your money from losing value due to inflation/printing. Then with a fixed stable currency, your purchasing power ( like wage growth in a sense ) would increase as innovations happened.</comment>


Game designer designs a game for 2,000 years from now, hides it in desert - <AUTHOR> http://www.polygon.com/2013/3/28/4157884/game-designer-jason-rohrer-designs-a-game-meant-to-be-played-2000

<comment><USER2> The hard part of this challenge is not necessarily just the titanium but also communicating the rules of the game. Even if the game board is intact, how will a future civilization know what to do with it?

One of my favorite "designed to last thousands of years" document is the alternately dry and scintillating 1980s/1990s Sandia Labs report on how to communicate with future generations about nuclear waste after the collapse of the U.S.

The well-known part is [http://www.wipp.energy.gov/picsprog/articles/wipp%20exhibit%...](http://www.wipp.energy.gov/picsprog/articles/wipp%20exhibit%20message%20to%2012,000%20a_d.htm) . The part that's gotten some recent press is this language, which was not an actual written message anyone suggested be used at a nuclear waste site, but was instead the panel's consensus on the message that the site should somehow communicate::

""This place is a message...and part of a system of messages...pay attention to it!

Sending this message was important to us. We considered ourselves to be a powerful culture.

This place is not a place of honor...no highly esteemed deed is commemorated here...nothing valued is here.

What is here is dangerous and repulsive to us. This message is a warning about danger.

The danger is in a particular location...it increases toward acenter...the center of danger is here...of a particular size and shape, and below us.

The danger is still present, in your time, as it was in ours.The danger is to the body, and it can kill.

The form of the danger is an emanation of energy.

The danger is unleashed only if you substantially disturb this place physically. This place is best shunned and left uninhabited.""

But there's quite a lot more good stuff in there about how to communicate with future people who might not speak English, or any language at all. Some cool, detailed descriptions (with pictures!) of a "spike field" type landscape to keep people from inadvertently using the nuclear waste site as a shelter.

And one panelist writes: "A marker system should be chosen that instills awe, pride, and admiration, as it is these feelings that motivate people to maintain ancient markers, monuments, and buildings."

It's very cool stuff to read — you get to watch a panel of very smart people think very far into the future about how to talk to people they'll never meet.

<comment><USER3> About the Sandia Labs report... imagining myself as a future archaeologist, such a place would only attract me! even if I were a bronze-age post- apocalyptic culture "wise man", if I could somehow figure out that there is a poison in there, I could only think "cool! we can use this poison against our enemies in the next battle! maybe some of our slaves will die digging it up, but boy, we'll sure make a killing with it!" ...and most other things they assume seem wrongly optimistic about human nature: something that instills pride and owe would only communicate that there is probably something of _value_ in there, therefore something that is worth _getting or stealing!_ (most ancient tombs were robbed, you know!) ...imho the best bet for such a place would be to make it inconspicuous and hard to open: _for example, after properly cloaking everything, you could make the actual storage rooms for the dangerous stuff be part of some "stone"/concrete "walls", with no entrance, and have "dummy rooms" with "dummy content" (for whoever actually digs beyond the cloaking and warning signs) surrounded by these "walls" - no modern archaeologist would, for example, consider smashing what seems like a solid granite wall to look for a hidden chamber inside it if there is no sign of it._

<comment><USER4> Assuming that this future civilization is sufficiently advanced, wouldn't they have the ability to detect what's inside the ground without actually digging? I know we can through (I believe) echolocation, why wouldn't they?

Then they would see a cavity that's been sealed on all sides by concrete. However I suppose by this point they would have also discovered radiation and nuclear reactions so it might be a moot point.

<comment><USER5> I believe the assumption is that a future civilization will be less advanced. Should society collapse, you can expect knowledge to be lost and advancement to cease. Sure, we hope that our civilization will continue to advance, but we plan for the worst and leave the message in simple language in the hope that the last remnants of mankind will survive by avoiding a serious threat left by their ancestors.

</comment></comment></comment></comment><comment><USER6> _He estimates that if one person visits a GPS location each day with a metal detector, the game will be unearthed sometime within the next million days — a little over 2,700 years._

 _[T]he sheets of GPS coordinates were collected by GDC volunteers at the door in an attempt to collate the data, hopefully leading to the game's earlier discovery._

Gentlemen, start your Travelling Salesman algorithms. From a quick skim of the wikipedia page, 1M nodes is probably too many to solve exactly, but (might?) be within 1% via heuristic methods.

Then again, depending on the area the entire set of coordinates covers, dividing it into zones and computing TSP over each would be much more practical, and allow parallel searches by multiple groups.

I wonder if the creator wouldn't have been better off with a Geohashing[1] type location clue, but I'm struggling to think of a useful time-specific seed that is both resistant to precomputation, and likely to survive 2k+ years hence. The XKCD one uses the value of the Dow Jones average for industrial stocks, but I doubt it could be relied on for more than a few decades, or a century or three in a best case.

[1] <http://wiki.xkcd.com/geohashing/Algorithm>

<comment><USER7> TSP is relevant to graph traversal. "Something buried in the desert" has no (or at least, very little) restriction on how you move from node to node.

</comment></comment><comment><USER8> Damn, Rohrer is really good at these GDC game design challenges. Here's a great write up on Chain World (his previous win): <http://www.wired.com/magazine/2011/07/mf_chainworld/>

Besides Will Wright, he is the only person to have won twice: [http://gamedev.stackexchange.com/questions/53704/where- can-i...](http://gamedev.stackexchange.com/questions/53704/where-can-i-find- the-full-game-list-of-game-design-challenge-on-gdc)

<comment><USER9> Nobody has ever actually _seen_ the gameplay from his games. (The video of the most recent game does not disclose the gameplay.) It's entirely possible that his games are utter crap, with a great coat of marketing.

<comment><USER10> You can judge his ability from his other games: <http://hcsoftware.sourceforge.net/jason-rohrer/>

EDIT: fixed the link, thanks

<comment><USER11> I can't believe you had to link to his easily-locatable webpage to show he had a large amount of free games to speak for his game-making ability.

Hacker News is depressing.

</comment></comment></comment></comment><comment><USER12> This is a MMO RPG IRL actually =) Nobody cares about the "board". He won because the real game is to find the board.

</comment><comment><USER13> He used titanium for the game pieces because they would be more likely to last a couple thousand years. I wonder whether amber would have been an easier material to work with? Amber seems to preserve quite well over the ages.

<comment><USER14> Not necessarily. We have examples of amber that have survived millions of years, but that does not mean every sample of amber has survived.

</comment></comment><comment><USER15> The idea that Jason Rohrer didn't allow anyone, not even himself, to play(test) the game is mind boggling.

</comment><comment><USER16> _Rohrer hasn't played it himself, he says_

No playtesting? Probably isn't going to be very good, then.

<comment><USER17> 5th paragraph of the article.

"To accomplish that, Rohrer first built the game in computer form, designing a set of rules that would be playtested not by a human, but by an artificial intelligence. He said he plugged the game's rules into a "black box," letting the AI find imbalances, iterating new rules and repeating. Rohrer showed the video game version of his board game onscreen, but obscured key portions of the board game's layout, so no one in attendance could reverse engineer its mechanics."

<comment><USER16> That's just testing, not playtesting, in my opinion.

</comment></comment></comment><comment><USER18> NV has an area of approximately 286,367 km2. Only the lower (Southern) third of NV can be described as 'desert'. From this one may safely subtract the area of the Nellis Test Range and the City of Las Vegas.

The result is a density of about 12 GPS co-ordinates per km^2

At a single square km per day, it takes 288 years to clear them all. (And order of magnitude reduction.)

At a square mile per day, it takes 88 years and 2 months.

</comment><comment><USER19> Assuming there is no obliteration of information, perhaps people a lone time from now, will simply be aware that this game exists -- due to the fact that there's um... a newspaper article discussing it.

A curious digger aeons from now would probably find it. Or maybe just some kid a few decades down the line.

</comment><comment><USER20> Now that's thinking ahead.</comment>


New Insight on Ground Shaking from Man-Made Earthquakes - <AUTHOR> http://www.usgs.gov/newsroom/article.asp?ID=4202&from=rss_home#.VT0wdSGqqko

<comment><USER2> Nominally these smaller earthquakes are releasing tension that was already present.

That would seem to imply that they reduce the risk of larger earthquakes.

Is there something I'm missing here?</comment>


US Funds IP Enforcement, Offers to Draft Legislation in New Zealand - <AUTHOR> http://www.michaelgeist.ca/content/view/5769/125/

<comment><USER2> If you take the time to read the recently passed legislation in NZ, it's big media's wet dream. Presumption of guilt: check. Bypassing of due process: check (fucking kangaroo court tribunals). Three strikes and termination of Internet access: check. Passed via "emergency" Christchurch earthquake session. The whole thing stinks of Washington arm twisting.

<comment><USER3> Internet access should (and I think, likely will) be legislated as a right in many countries in the semi-near future.

Already, it's difficult/impossible to find/apply for a job without internet access. Cutting off someone's internet access may be a breach of freedom of expression/free speech in some countries. When all phones are VOIP phones, the internet will be a life or death matter for 911/111/999 calls. Not to mention stuff you have to buy, children's homework, your job may likely be a telecommute position (in which case, revocation of internet access = hungry kids), etc.

They don't revoke your license and right to wear coats when you're caught shoplifting, even though the car is how you got to the store, and you hid the item in your coat. It's because those items are necessary and useful for other purposes. And because there is no lobby to get that legislated.

</comment></comment><comment><USER4> Wait, in the US, we have a "budget crisis" that's letting us seriously contemplate de-funding virtually all social programs, we're in 2.5 wars, and we've got money and time to waste on "intellectual property" and diplomatic arm-twisting?

What a load. Something's fishy.

</comment><comment><USER5> And people wonder why as an Australian I take such an interest in the US political system. As an added bonus it makes me feel better about the sorry state of our system. One case where the grass isn't greener.

<comment><USER6> As an American living in Australia, I find Australians as a whole are often more clued-in than Americans regarding US political matters. (They're also far more pragmatic and less idealistic about politics in general.)

</comment></comment><comment><USER7> Is there anyone on our side? Looking at the Canadian elections currently, I'm not sure there is a single party that wouldn't pass a C-32 or NZ like bill. It's sad. The 301 list is such a joke it's not even funny. I think Canada should raise taxes on oil exports to the US to replace the money we already give the big media and friends (for example: per Blank Disc,Hard drive, iPod tax should be paid by the US because it all goes to them anyway.)

</comment><comment><USER8> They're not making a very good argument against unethical copying by trying to do others' homework for them.

Now really, what kind of message does that send?!

</comment><comment><USER9> A similar legislation was also passed in Malaysia not too far back. I would not be surprised if the same situation occurred there as well. However, enforcement would be another matter.</comment>


Pilot Test Begins for Tech to Connect Everyday Vehicles - <AUTHOR> https://spectrum.ieee.org/transportation/advanced-cars/pilot-test-begins-for-tech-to-connect-everyday-vehicles <comment><USER2> I'm very excited by the DSRC/IEEE 802.11p technology used in this pilot. I don't want to wait for Tesla's "Full Self Driving" to, someday, reliably and automatically avoid an accident; I'd much rather have an idiot light on my dash provide a warning.

See [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&c...](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwjK- ejko5HqAhVBKH0KHQVPAY0QFjABegQICxAD&url=http%3A%2F%2Fwww.cts.virginia.edu%2Fwp- content%2Fuploads%2F2014%2F04%2FPFS_DSRC02_Task1_Messaging_Reqs_007-101-02.pdf&usg=AOvVaw04YVIPR2tmfTizLqOxNa8k) for details on the "Basic Safety Message" that each vehicle broadcasts.

Also see that this technology is already being used in the new VW Golf Mk 8. See [https://www.forbes.com/sites/samabuelsamid/2019/10/28/volksw...](https://www.forbes.com/sites/samabuelsamid/2019/10/28/volkswagen- includes-nxp-v2x-communications-in-8th-gen-golf/#787a930216bc) and [https://www.eetimes.com/vw-pits-its-new-golf-against- the-5g-...](https://www.eetimes.com/vw-pits-its-new-golf-against- the-5g-lobby/)

But the situation has been terribly complicated by the cellalur industry (and Ajit Pai's FCC) wishing to appropriate the needed frequencies to provide a similar service over 5G ([https://www.consumerreports.org/car-safety/fcc-plan- could-st...](https://www.consumerreports.org/car-safety/fcc-plan-could- stall-v2x-car-safety-revolution/))

Are there any Europeans who have experience with the new Golf Mk 8's DSRC, which they have branded as Car2X?</comment>


Google supports Java 7 features on Android - <AUTHOR> http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Using-sourceCompatibility-1.7

<comment><AUTHOR> Officially relying on "try with resources" for Android 4.3 and before can be hit or miss, depending whether the OEM added it to the build for the device or not, so just a fair warning.

A way to overcome the issue with "try with resources" is to add the missing JDK7 source files[1] yourself to your build and enable "\--core-libraries" found under settings → Compiler → Android Compilers in Intellij IDEA 13 and Android Studio. The "\--core-libraries" option allows your app to use any system libraries you may include instead of those on the device. It's a dex compiler option that's been around for a while, but was much more painful to enable prior to a recent update to IDEA 13.

[1] From the Android SDK v19 sources, take java.lang.AutoCloseable, java.lang.Throwable and any of the Stream Classes you wish to use that implement AutoCloseable (such as java.io.BufferedInputStream)

Edit: Forgot to mention the stream classes that implement AutoCloseable are also required for the 4.3 and before to use the workaround.

<comment><USER2> Statically including system libraries with an application just to be able to use a convenience feature of a language seems pretty dangerous. What if Google finds and fixes a bug in one of those classes in an Android version update?

<comment><AUTHOR> Since it could set it up so you're only overriding system files for Android versions older than 4.4. Any bug fixes, would be part of the system core are only going to be in updated with Android 4.4+, which is not using the backported classes. If doing that, don't see it ever being an issue.

This is a little rough and there may be a better way, as it's 7am here right now and looking at the SDK source is not something I want to do at this hour, but something like this should work, making your own "Android support library":

1) Use multiple dex files[1] in an apk and dynamically load the backported library files based on whether the app is using 4.3 and before or 4.4+.

or

2) Mess around with the source files, which is much more ugly:

\- Change Throwable to your app package domain, leaving the class name the same. This will likely require changing some other exception classes to do the same as well.

\- Leave Closable and AutoCloseable in the system package domain within your app, as each is just a one method interface and will make things more complicated if you move them, but they could also be changed if refactored in the backported stream files.

\- Change the backported AutoClosing streams to your app package domain. Make a wrapper for each to check if you're on 4.3 and before and call to your modded stream backported files or 4.4+ and call to the system ones. The key would be ensuring it uses the proper Throwable class, since that is where things happen.

\- Add to the Streams some conditions to check if the app is installed on Android 4.4+ and use the system classes with the OS or 4.3 and use your backported classes.

[1] [http://android-developers.blogspot.com/2011/07/custom- class-...](http://android-developers.blogspot.com/2011/07/custom-class- loading-in-dalvik.html)

Edit: Remembered you could load a library from a separate dex file and dynamically load it.

<comment><USER3> > Since it could set it up so you're only overriding system files for Android > versions older than 4.4...

I note that, to do this, you would have to publish (at least) two APKs using the multiple APK mechanism ([http://developer.android.com/google/play/publishing/multiple...](http://developer.android.com/google/play/publishing/multiple- apks.html)), which seems like quite a hassle.

<comment><AUTHOR> I revised my post to be more clear about how it would be done so no need for that I don't think if minimizing what one is directly overriding in the system classes.

EDIT: I forgot that multiple dex files can be included in an apk[1] as well and dynamically loaded. That may be the most elegant solution. To just package it as as separate dex file and dynamically load it if on Android 4.3 or older.

[1] [http://android-developers.blogspot.com/2011/07/custom- class-...](http://android-developers.blogspot.com/2011/07/custom-class- loading-in-dalvik.html)

</comment></comment></comment></comment></comment><comment><USER2> That's interesting. As far as I remember, it's not possible to use any Java 7 language features while compiling to class files compatible with the 1.6 JRE with "regular" Java. (See e.g. [http://stackoverflow.com/questions/17168184/java-7-language-...](http://stackoverflow.com/questions/17168184/java-7-language- backwards-compatibility))

<comment><USER4> The title of the section is using Java 7 source compatibility, so I don't think it is about compiling to be compatible with 1.6, it's compiling to be compatible with 7. Realistically, Android code doesn't get run on a JVM anyway, so the whole thing is kind of silly. If their translation to DEX byte code supports only 1.6 class files, then it supports only 1.6, but clearly it supports 7 now.

<comment><USER5> Try-with-resources requires library compatibility. All other Java 7 features can be expressed using Java 6 bytecode structures, so it doesn't surprise me that they're allowing them in pre-KitKat projects.

</comment></comment></comment><comment><USER3> But does it actually support invokedynamic?

I saw that [https://android- review.googlesource.com/#/c/58880/](https://android- review.googlesource.com/#/c/58880/) was merged a while ago, but I'm not sure if any other commits have improved things further.

<comment><AUTHOR> Not sure yet, but I'll test and see at some point. I only stumbled on the actual support evidence shortly before submitting the link to HN.

<comment><USER3> If you plan to check, I won't bother (I had also planned to investigate later). You should also check on MethodHandles, since (as of the commit I linked) their parser also threw exceptions when it came across them.

If these things don't work, I'm very disappointed in the Android team, as this would be totally fake v51 classfile support.

<comment><AUTHOR> Tried a small invoke example, there seems to be no java.lang.invoke.* package in Android API 19 and also no MethodHandle class.</comment></comment></comment></comment>


Abstracting Abstract Machines (2010) [pdf] - <AUTHOR> http://matt.might.net/papers/vanhorn2010abstract.pdf <comment><USER2> This is a beautiful paper that anyone interested in abstract interpretation and sound static analysis probably already knows, but the core idea is quite accessible.

An abstract machine is a formalization of the concrete semantics of a programming language, and we'd like to be able to "lift" that concrete semantics to an abstract semantics: a finite (and therefore computable) over- approximation of program semantics.

However, the concrete structures of an abstract machine (most notably continuations) are themselves potentially infinite, so you can't just build a "structural abstraction" by applying the abstraction function pointwise over concrete structures -- the resulting abstraction is infinite and thus static analysis may diverge.

That's where this paper comes in: its key insight is that, by store-allocating continuations and bounding the number of store addresses, you can finitize an abstract machine such that structural abstraction works out nicely while preserving the underlying semantics.

</comment><comment><AUTHOR> I posted this because just this week it won the ICFP Most Influential Paper Award: [https://www.umiacs.umd.edu/about-us/news/van-horn-wins- most-...](https://www.umiacs.umd.edu/about-us/news/van-horn-wins-most- influential-paper-award-icfp-2020)

</comment><comment><USER3> This paper won the Most Influential Paper Award just yesterday at ICFP'2020.

Award video: [https://www.youtube.com/watch?v=WfRqE4NBecM](https://www.youtube.com/watch?v=WfRqE4NBecM)</comment>


Will you hire this guy? - <AUTHOR> http://ro31337.github.io/Will-you-hire-this-guy/ <comment><USER2> _" goto operator in C? It can be simplified. This code smells! He probably should go and work for Starbucks."_

The use of 'goto' in C to separate error-handling code from main-line code is a commonly accepted practice.

Also, "goto" isn't an operator.

<comment><USER3> I wouldn't hire this person. And I'm not talking about Linus.

</comment></comment><comment><USER4> `goto` to arbitrary labels can be pretty risky. But `goto` to facilitate a single-point-of-exit for a function is a pretty sane idiom. It's all over the linux kernel and I don't think that anyone regrets it.

So I wouldn't state something like "Even Linus isn't perfect," rather "you should be open minded to learn new development idioms in environments where you're less experienced."

<comment><USER5> Agree with you. My first job out of college was working with C code on embedded modem software and when I saw this pattern and was like WTF?! but then realized how useful it is to have single point of exit in a function (especially in embedded systems code).

<comment><USER6> Often it's very useful to have separate returns from functions for errors. The reason being you can set a break point on the error return and then let the code run. The code will run normally until the error occurs, which in some cases may take days.

</comment></comment></comment><comment><USER7> I'll use the "vouch" function for the first time ever, because if you think Roman's an idiot, congratulations, you're in the running for World Champion of Missing the Point.

Lest you doubt me, let me quote the final sentence which you probably didn't read after the first, and impulsively felt the need to run back to HN and show everyone how smart you are: "Author of this code is Linus Torvalds. This world is not perfect and your judging based on small peice of code just doesn't work."

IOW, Roman might very well know C better than you do, and ironically folks like you might be the reason he wrote the post in the first place.

<comment><USER8> I flagged this submission because it was provocative (w/ linkbait title) with no proportionately intellectual or insightful payoff.

<comment><USER7> Eh, good point, it was a bit thin on content. I probably should have let sleeping dogs lie.

As for the other comments, I'm thinking I'm reading this quite differently than others. That's cool, that's why we have a voting system I guess.

</comment></comment></comment><comment><USER9> Ok, here's what I got from this - Roman can't spell and doesn't understand how to code in C. Fail?

</comment><comment><USER10> If you are wondering the code is from the Linux kernel source: drivers/usb/core/hub.c

Direct link: [https://github.com/torvalds/linux/blob/48d10bda1f2c69980601a...](https://github.com/torvalds/linux/blob/48d10bda1f2c69980601a61194015bb0790fb7ab/drivers/usb/core/hub.c)

</comment><comment><USER11> I suppose I should be happy that some Fortran code I wrote back in school wasn't in Github. One of the things I look for in people is their ability to learn, and to do that they have to challenge themselves, to re convince themselves when they do something that it is still the right thing to do, the right path to take, and when they discover new information or new insights they adapt their behavior appropriately.

It makes me wonder if folks growing up in the permanent digital foot print age will be able to escape their early years. There is a reason police records for minors are often sealed, so as adults the things they did as kids don't permanently stain their lives. It is the basis for the right to be forgotten movement in the EU as far as I can tell.

</comment><comment><USER12> Seems just like click-bait, author makes a point but doesn't really go in depth or explain his thoughts. And it only works because the author tries to mislead you : 'This code smells' Why does it smell exactly? Why should he work at Starbucks?Don't judge a book by its cover, don't extrapolate on a single data point, or a single piece of code, got it.

</comment><comment><USER13> When I was working with GStreamer, gotos of this sort were all over the main workhorse functions in the common elements.

</comment><comment><USER14> Someone should send this to Linus for some juicy popcorn.</comment>


Web merchants routinely leak data about Bitcoin purchases - <AUTHOR> https://www.technologyreview.com/s/608716/bitcoin-transactions-arent-as-anonymous-as-everyone-hoped/ <comment><USER2> I'm a co-author of this paper. It's available here: [https://arxiv.org/pdf/1708.04748.pdf](https://arxiv.org/pdf/1708.04748.pdf)

The surprise here isn't that Bitcoin isn't perfectly anonymous. There are two new findings. The first is the extent to which your Bitcoin payment details get leaked to third party trackers. I've been writing about the excesses of third party tracking for years [1], and I'm pretty jaded, but the extent of the leaks surprised me.

The second main finding is that CoinJoin isn't enough to protect yourself. We tested this on our own transactions, but also by coming up with a way to identity essentially all existing CoinJoins on the blockchain and analyzing their anonymity.

[1] [http://randomwalker.info/web-privacy/](http://randomwalker.info/web- privacy/)

<comment><USER3> Seems like a good business opportunity to develop and offer a privacy shield service for customers who care.

<comment><USER4> or just use cryptocurrencies that support anonymous transactions?

<comment><USER5> That is not the point.

Even if you have a 100% anonymous cryptocurrency, you are spending it on a site that has information about you and your activities on that site. If you are dealing with physical items, it has your address.

<comment><USER4> Agreed. However, if someone is leaking your physical address, they really don't need bitcoin addresses at all. They can just join on your address :)

This made me curious about the feasability of an anonymous postal service. One which you pay for with x-coin, with no identity attached, and you get physical deliveries at that address (placed into a box only you can access, maybe with some sort of private key).

With the security cams and all it might be hard, but probably not impossible if enough people are using it.

Thoughts?

</comment></comment></comment></comment></comment><comment><USER6> IMHO anonymity has never been Bitcoin's strength, and we must stop pretending that BTC is the right tool for transactions that need to be private. At best, Bitcoin is pseudonymous.

Other currencies have attempted to fix this problem, such as Zcash. But I think it will be hard to escape the volumes of metadata created through transactions on merchant websites. Ultimately, your spending habits and browser cookies will say more about you than your BTC address.

<comment><USER7> Sure, but it's quite nice that any random passerby who happens to look at the Monero blockchain has no idea what you've spent and where. If there's something like bitcoin's "new address per transaction" for Monero, they won't be able to tell anything even if they have data from all the merchants.

<comment><USER8> Monero should be treated like the beta software it is. There have been vulnerabilities in the past to remove anonymity and there will be in the future. I would at least give it 5 years & a lot more adoption to start trusting it somewhat.

<comment><USER9> The only Monero software in beta is the GUI which no one has reported any major issues with, and the CLI is just fine.

There hasn't been any vulnerabilities in the code affecting anonymity. Saying there will be vulnerabilities in the future is FUD.

Trust is a personal preference, but the code is open to all to analyze.

<comment><USER10> This is an incredibly naïve point of view.

> Saying there will be vulnerabilities in the future is FUD.

Saying there will be vulnerabilities is 99.99% likely to be true. All software written by humans is highly likely to have mistakes. Remember Heartbleed? The code was open for all to analyze and used by millions, and yet we recently found a vuln that allowed attackers to dump the entire memory of a server. Open source is no guarantee against vulnerabilities.

Default assumption should airways be that there will be vulnerabilities.

</comment></comment></comment></comment></comment><comment><USER11> I'll just throw this out here because I still need feedback. [https://www.comsys.rwth- aachen.de/fileadmin/papers/2017/2017...](https://www.comsys.rwth- aachen.de/fileadmin/papers/2017/2017-maurer-trustcom-coinjoin.pdf) I think anonymous CoinJoin transactions are possible and could be the default in Bitcoin.

</comment><comment><USER12> I'm new to cryptocurrency and it astounds me the amount of information I have to hand over just in order to buy currency on an exchange. Presumably this is a source of de-anonymization? I thought the whole point was that you don't have to give away information to a third party?

Does anyone know how to get cryptocurrency without going through this process? Is there a way just to buy cryptocurrency with a simple credit card transaction?

<comment><USER13> You can always use a site like localbitcoins for buying directly from someone. At least before you could occasionally find people willing to sell for money exchanged in real life.

Alternatively you can buy btc from bitcoin ATMs (tho some but not all ask for ID) depending on where you are.

<comment><USER14> In the US all Bitcoin ATMs are required to ask for picture ID

</comment></comment></comment><comment><USER15> Technically, the protocol is anonymous. Addresses/hashes are not human readable or, better said, you can't easily infer someone's identity/physical address/phone/nationality just by glancing at them.

Exchanges as entry points to the network are required to make that conection. Merchants as the paper say, do too.

If a merchant required a certain amount to complete your transaction, and that amount came from an unknown, unregistered wallet (in the sense you didn't acknowledge its ownership), would they legally be able to say it coming from you?

In the end, yes, it's a technicality, because it's difficult to enter the blockchain without leaving a trace at the fiat-border. But still...

</comment><comment><USER16> I think because of it's lack of anonymity and how that helped with the recent hansa / alphabay takedowns, we're going to see a big boost in use of dash/zcash/monero/anonymous-crypto-coin-du-jour once the next round of markets rise up. I'm very curious to see the regulatory response to those style of coins, as until recently they've kinda been in the shadows.

</comment><comment><USER17> Pretty much everyone in the bitcoin community takes this knowledge for granted. If you want actual privacy go with either Monero or ZCash.

<comment><USER18> I wouldn't trust in Monero's privacy. Most of the techniques uses to defeat CoinJoin would also work against Monero's ring signatures, which amount to effectively the same thing.

ZCash is definitely a different tier of privacy... or it would be if they made ZCash proofs required for every transaction. But instead they made anonymous payments opt-in and therefore your privacy can be defeated by people upstream or downstream of you.

<comment><USER19> I'm not sure I follow on the "your privacy can be defeated by people upstream or downstream of you." In ZCash, your transaction is completly indistinguishable from the other shielded transactions. The only thing the person you are paying learns is they were paid e.g. $10 by a shielded TX user. So they learn nearly nothing from upstream, and know nearly nothing to share downstream. In particular, this seems to completely negate the attack described in this paper. (Which coinjoin does not).

The limitation for ZCash is that shielded tx's are only 1/5th of the total number of TXs by volume, so your anonymity set is not as large as it could be. But it's likely considerably larger than the anonymity you get by mixing < 10 TX's and then doing this repeatedly both because of intersection attacks (which the attack here is) and because of the impossibility of correctly sampling the TXs to mix with.

<comment><USER18> There are a LOT of factors that could be used to de-anonymize you including frequency and time of day of transactions, wallet application identifying signatures in the transaction itself (e.g. use of fee sniping protections vs not, type of multi-sig used), patterns of usage in non-block chain services such as exchanges, etc.

You could identify a dozen or a hundred different features about a transaction or the transaction graph, then run standard machine learning tools to find clusters of usage patterns. You could then probabilistically infer connections between upstream and downstream usage patterns that implicate you.

I'm not arguing against the cryptography of zcash, which is solid as far as I'm aware. But while it does such a thorough job of bolting the front door, the window is left wide open.

<comment><USER19> So there definitely are other attack options that Zcash on its own does not protect against and in some cases cannot. The biggest being timing. Usage patterns fall seem to fall into that.

But do you think the fact that 1/5th of transactions are shielded actually enables more attacks on shielded TXs?

<comment><USER18> Yes because 4/5 of the transactions are revealing a LOT more than they otherwise would, thereby greatly increasing the signal to noise of other analysis techniques.

</comment></comment></comment></comment></comment></comment><comment><USER20> Is this really a flaw in bitcoin?

And I do not agree that this makes bitcoin any less anonymous. There is still the gap between key and owner that needs to be bridged before identification can take place, and I do not believe that the word anonymous guarantees no history available, only that the history cannot be linked to a person. By definition, I mean to say.

I would compare this to a headline titled "bitcoin is less secure" because of the Mt.Gox hack. Similarly not the fault of bitcoin.

</comment><comment><USER21> It's a public ledger of every single transaction, as soon as you link your identity to some payment, the game is up surely ?

<comment><USER22> Well, one can have arbitrarily many Bitcoin wallets. I have dozens in current use. Each one is associated with an identity, at least an email address. Most of them only connect through Tor, so there's no IP address association.

But yes, if you don't compartmentalize like that, everything is linked.

<comment><USER23> You can have as many wallets as you like, but the problem is the same for all of them: getting coins into them. Transferring between wallets would obviously link them. You would have to go through a (different) convoluted way of obtaining the coins for each wallet.

<comment><USER22> Not at all. I work anonymously for Bitcoin. Under a few identities, each with its own set of wallets. And I transfer among identities using mixers. I generally mix at least twice, using throwaway intermediary identities. And each identity has its own Whonix instance.

</comment></comment></comment></comment><comment><USER24> No one who understands what bitcoin is thought it was anonymous.

<comment><USER25> Hey, at least Satoshi's identity is still unknown, so there's that!

</comment></comment><comment><USER26> Appreciate your work.

In a sense it's similar to talking on the phone and being recorded by a security camera. If anyone thought that using Bitcoin or any cryptocurrency for purchases magically hides any side-channel privacy leaks, I would say it's lack of (self-)education. The reality is with such influx of users in the space and countless of Youtube etc. channels educating without actually doing research and spreading wrong facts we have some poor level of intro-education for new people. But that happens to any new system getting mass attention.

</comment><comment><USER27> Yeah. Monero would solve this problem.

</comment><comment><USER28> Who is everyone? I highly doubt that anyone that actually studied the underlying protocol had any illusions about it being anonymous.

The important thing to remember is that all transactions are public and that _any_ linking of a single transaction will allow someone to link all other purchases / receipts with that address.

At best bitcoin is pseudo anonymous.

<comment><USER29> More interesting is that they broke CoinJoin.

<comment><USER22> Maybe. But see [https://www.reddit.com/r/joinmarket/comments/6d60f0/coinjoin...](https://www.reddit.com/r/joinmarket/comments/6d60f0/coinjoin_vs_mixing/)

</comment></comment></comment><comment><USER30> Bitcoin's anonymity, or lack thereof, has not changed. This article is poorly titled.

The problem is with the endpoint - the person or business you are transacting with (or the technologies they use for the interaction).

This problem will exist with any cryptocurrency if the endpoints still operate the same.

</comment><comment><USER31> Bitcoin was never claimed to be "anonymous." It operates under a privacy model called "pseudonymity," which was described elegantly in Satoshi's white paper.

The distinction is important because conflating privacy in general (and pseudonymity in particular) with anonymity is one way people get into trouble.

<comment><USER32> Read the paper. This isn't what is being covered here.</comment></comment>


JavaScript best practices - <AUTHOR> http://jstherightway.org/ <comment><USER2> Glancing at this, it has some clearly outdated information... And it has a lot of links but I don't see a lot of meaty information. It's very shallow.

JS best practices are questionable at best. As an example, when React came out everyone was saying how much of a terrible idea it was (with me being one of those people, unfortunately), and how templates and code should be kept separate... But then I tried it, and I realized just how wrong I was. It makes a lot of sense to keep related things together. Your component's logic / template can be in one place, and your _application_ logic is kept elsewhere.

I read a lot about JS, and I get the impression a lot of people are just hacking together websites with JS sprinkled on top, or hackathon-style apps that they don't plan on maintaining for longer that a few weeks. So their "best practices" end up being questionable at best. Basically, who are you to claim that whatever you're doing is a "best practice"? It seems like a pretty bold claim, so I'd argue that it's not unreasonable to expect someone to back up their claims.

As a side-note, why don't people ever talk about testing? And not just linking to some tools, but actually talking about how you figure out _what_ things are worth testing, and _how_ you test em.

<comment><USER3> > As a side-note, why don't people ever talk about testing? And not just > linking to some tools, but actually talking about how you figure out what > things are worth testing, and how you test em.

I have a screencast on this subject at [http://www.letscodejavascript.com](http://www.letscodejavascript.com) . It's been going for three years and has tons of content on this subject.

</comment></comment><comment><USER4> This is great, but what I think is sorely needed is a roadmap to navigating the maze of module systems, transpilers, preprocessors, packagers, etc.

Why do npm and bower both exist? What is the difference between UglifyJS and Closure Compiler? Do I want WebPack or Browserify? Should I use these standalone or should I use them together with Gulp, Grunt, or another build tool? Which of the hundreds or thousands of plugins for the build tools should I use (Gulp has 1,532 plugins and Grunt has 4,403!!)? Should I use CommonJS, ES6 modules, AMD, UMD, or something else? Don't even get me started on application-level frameworks like React, Angular, Ember, etc.

I have reasonably good answers to these questions in my head right now, but three days ago I had no clue. And it really is a maze, because while all of these projects have flashy web pages and nifty "getting started" guides, their docs rarely explain the role of their tool in the big picture, and its relationship to other tools, they just give you examples and point to recipes. And there aren't a set of best practices for setting up a project that cover 99% of common needs painlessly -- you really have to get your hands dirty and configure the tools, in my experience.

I mean, take a step back and writing JavaScript in 2015 is pretty weird. Writing JavaScript in Node.js involves writing things like require() that the browser doesn't understand at all. So you have to run code like that through a tool before you can use it in a browser at all. But what tool exactly? There are so many to choose from, all of which have their own way of being configured. To write JavaScript in 2015, you basically have to sit down and choose a language dialect design a compiler pipeline to match.

I mean, just look at the Babel "setup" guide and how many different variations there are in the instructions based on what tools/frameworks you are using! [https://babeljs.io/docs/setup/#make](https://babeljs.io/docs/setup/#make)

The point of all this isn't to criticize, but more to offer my experience of being extremely confused/overwhelmed.

Hopefully a lot of this will get better once ES6 is ubiquitous.

<comment><USER5> I recently read this article, which is a nice primer: [https://www.airpair.com/javascript/posts/the-mind- boggling-u...](https://www.airpair.com/javascript/posts/the-mind-boggling- universe-of-javascript-modules)

I would not say that it answers all of your questions, but I thought it was nice. I guess the short answer for me was CommonJS and thus Browserify on the front-end.

Note: I'm not a JS expert, but at work we have a number of repos written in JS, both "back-end" Node.js projects, and "front-end" JS and a Chrome extension (also JS). I know for a fact that I don't know what I'm doing (I am _not_ going to take the time to learn about CommonJS, AMD, UMD, "Interop", etc., and I've just learned the basics of ES5 and am not eager to rush into ES6 or Babel) and when I find myself in such cases I like to take the simplest approach that seems to work.

</comment></comment><comment><USER6> Was hoping this would be similar to PHP: The Right Way ([http://www.phptherightway.com/](http://www.phptherightway.com/)) where everything you need to know is on the one page with links for more information available, rather than just links to other sites.

</comment><comment><USER7> This is a mostly garbage. It doesn't even mention control flow; callbacks, promises.

A big problem with JS is in part its best quality; flexibility. New and old developers need to be shown how JS has evolved to be written. I see massive code-quality and structure discrepancies in various large modules throughout the JS community and it only serves to dissuade contribution.

I'm not sure if it exists, but there should instead be a site dedicated to: "JS, done right."

It could outline actual best practices. \- Building, usage of precompilers \- Control flow \- Code structures \- Tests \- Everything in between

Usage of precompilers. \- Browserify, for modularity \- Babel, for next-gen features and code elegance

Control flow \- Bluebird, for promises

Tests \- What libraries to use \- How to build tests and how the big guys do it \- Guides for complex tests

Then you could introduce other somewhat subjective deviations, like CoffeeScript, other promise libraries, other control flow techniques.

Describing code structures is another big one. With the use of Babel, the example-code can feature ES6 classes which would remove a nice chunk of the confusion newbs might associate with JS's prototype system (Not to say it shouldn't be introduced).

Then describe when to use each code structure.

My last thought would be to link to Github repos; for example, applications in both node.js and the client, which could describe a standardized filestructure, explain build steps, introduce tests, supply a step by step guide, etc..

Then I might say that if someone makes it through that gauntlet (and everything I missed in between), they might just be a competent JS dev.

</comment><comment><USER8> Loads of bullshit if you ask me.

e.g. "Singleton pattern in JS": var x = {}, that's enough, folks, do not write pages of code when all you need is just one line.

</comment><comment><USER9> Whoever made this page: have you actually tried to use it?

I'm confident that all of this could fit neatly on 3 or 4 vertical scrolls (not 20+ as it stands currently)... Without making any compromise to readability, without the rainbow zebra bands.

</comment><comment><USER10> Not sure why hoisting is listed under "the good parts"

<comment><USER11> My recent experience of doing quite a bit of JS/coffee script at a new place is that scope is the topic of conversation far too often.. :|

</comment></comment><comment><USER12> TL;DR just read this book [http://addyosmani.com/resources/essentialjsdesignpatterns/bo...](http://addyosmani.com/resources/essentialjsdesignpatterns/book/)

</comment><comment><USER13> JS isn't Java. It usually doesn't need the design patterns of more brittle OOP languages.

</comment><comment><USER14> Aren't there way too many options for something advertised to a beginner? Shouldn't one dare to have a pedagogical opinion and so curate?

</comment><comment> github-cat It's a good guideline for JavaScript developers though there are more to be added.

</comment><comment><USER15> Great content and organization but awful layout and design. Sorry for being negative.</comment>