Ask HN: Is there anywhere to get help with low level Windows development? - non-entity I'm talking mainly things like writing WDK drivers, understand how certain existing OS drivers.
With Linux / BSDs / etc. there are dozens of resources including websites, IRC channels, Discord servers, subreddits, books, etc.
With Windows, however there seems to be the docs on MSDN (pretty complete, but better as a reference than anything) or the MSDN forums which have a terrible UI and vague copy / paste answers along with a handful of outdated internet articles.
I understand that with Windows being proprietary, there is going to be less in depth knowledge, subject experts, and resources, but it's still shocking to me that there aren't even any good WDK books. <comment><AUTHOR> [https://www.amazon.com/Windows-Kernel-Programming-Pavel- Yosi...](https://www.amazon.com/Windows-Kernel-Programming-Pavel- Yosifovich/dp/1977593372/) ?

<comment> non-entity Just ordered a copy, sadly it seems it doesn't talk about hardware drivers, but the info should be good in general.

</comment></comment><comment><USER2> [https://community.osr.com/](https://community.osr.com/)

</comment><comment><USER3> MSDN, Channel 9, MSFT engineering blogs, #win32 and #winprog on EFNet IRC, if they still exist.

</comment><comment><USER4> Is WDF obsolete? There is a book for Driver Foundation development.

[https://www.microsoftpressstore.com/articles/article.aspx?p=...](https://www.microsoftpressstore.com/articles/article.aspx?p=2233336)</comment>


Threes creators express puzzlement, sadness over 2048 and rampant cloning - <AUTHOR> http://www.polygon.com/2014/3/28/5557840/threes-creators-express-puzzlement-sadness-over-2048-and-rampant

<comment><AUTHOR> The original discussion [1] to the original article [2]:

[1] [https://news.ycombinator.com/item?id=7484053](https://news.ycombinator.com/item?id=7484053)

[2] [http://asherv.com/threes/threemails/](http://asherv.com/threes/threemails/)</comment>


Facebook is reading your private messages and blocks you if it doesn't like - <AUTHOR> http://444.hu/2016/11/14/facebook-is-reading-your-private-messages-and-blocks-you-if-it-doesnt-like-the-link-you-send-to-your-friends <comment><USER2> Facebook wants to be a/the primary communication channel. And many individuals want that too. Yet, Facebook asserts its right to control what you can and can't communicate.

I think about that when people tell me "Yeah, I dislike facebook, but I have to be on it, so that I can be in easy communication with group X."

OK. Sure. As long as Facebook approves of what you're communicating with X. I guess you don't, for example, get to communicate everything you'd like to if your X is nudist enthusiasts, or friends and family who are (fellow) nudist enthusiasts. No vacation snaps for you, not even "privately". (And what a funny term when applied to a Facebook or G+.)

Or possibly you have strong feelings about the recent US election. Now that Facebook is accused of enabling fake news, will their new efforts to curb that fake news disrupt the political bubble (of whichever flavor) you and your correspondents live in? Will it spill over, and block you because you said "Z is a racist, or a terrorist, or a criminal."

Private? I laugh.</comment>


The IPv6 Adoption Curve - <AUTHOR> https://community.infoblox.com/t5/IPv6-CoE-Blog/Where-Are-You-On-The-IPv6-Adoption-Curve/ba-p/11116 <comment><USER2> I decided to commit to using IPv6 a couple of years ago and got my personal servers serving my sites in a dual-stack. I also got my home router set up for it, getting my subnet from my ISP and making sure that all of my home devices were getting addresses.

It was only after doing this that I realized the problem with IPv6 adoption in the US: the network sucks! Most ISPs (including mine) are using 6rd gateways to get their customers onto the IPv6 backbone. The gateway servers are poorly placed (rarely local) and totally overloaded. The performance was so bad that it was making my everyday web browsing experience feel broken. I killed v6 at home and haven't looked back.

Maybe some day ISPs will do a proper deployment with real routing and I will try it again.

<comment><USER3> That is generally the opposite of reality. IPv6 is generally faster than IPv4.

I don't know what "a couple of years ago" is, but all tier-1 ISPs have IPv6 backbones. There should be no reason for your access ISP to have to tunnel anything to get to a tier-1.

Your statement "Most ISPs (including mine) are using 6rd gateways to get their customers onto the IPv6 backbone" is kind of a red flag. If ISPs aren't connected to a backbone, can you even call them an ISP?

<comment><USER4> AT&T has deployed 6RD instead of native dual-stack. I can get close to gigabit on IPv4, but max out at 80mbps if I use their 6RD gateway.

<comment><USER5> It also crashes some of their modems! Every few hours through normal traffic, in under a minute if I quickly visit many IPv6 addresses.

</comment></comment></comment></comment><comment><USER6> Seems like one of the largest sources of IPv6 adoption is mobile phone networks. I'm on AT&T in the US and if I check "what is my ip" when on LTE it shows me an IPv6 address. Mobile now accounts for well over half of all web traffic, so if/when mobile networks are universally IPv6 then we'll basically be over the hump.

<comment><USER7> What's weird is what you're seeing doesn't just apply to IPv6 adoption

[https://xkcd.com/1865/](https://xkcd.com/1865/)

<comment><USER6> Hadn't seen that one. Brilliant, and absolutely true.

</comment></comment></comment><comment><USER8> I like to change to IPv6 and my current ISP can make it happen (Ziggo, The Netherlands). However, I have currently my own externally accessible IPv4 address and I will lose that when I opt-in to IPv6 because Ziggo only offers IPv6 with DS-lite. DS-lite means I cannot access my network anymore over IPv4, so I will not change to IPv6.

</comment><comment><USER9> (Hopefully obsolete) anecdote: in France, the ISP 'Free' offered IPv6 ahead of the competition (2009? I forget). I was glad to hop onto the bandwagon and enable that.

A while later (2014?), I was annoyed by my poor bandwidth. A bit of sleuthing revealed that IPv6 was the culprit: turning that off in the ISP's control panel doubled my bandwidth!

I know that a lot of internet routers didn't have IPv6 acceleration. IPv6 packets jumped out of the (fast) data plane to be processed by the (slower) control plane. At the time this made sense considering the rarity of IPv6. I suppose Free, being a cheap ISP, were still using these older routers.

In 2013, the telephony-focused router company I worked for still hadn't implemented data-plane processing of IPv6, because there was no requirement from it.

Hopefully in 2017, driven by Comcast or other IPv6-dependant phone operators, most routers do IPv6 acceleration.

<comment><USER3> I'm not aware of any routers that can forward IPv4 in hardware, but pass IPv6 to the control plane.

Even the discontinued Catalyst 6500, which was used (and still is) by a lot of ISPs with the SUP720 supervisor, can do native IPv6.

I think you are completely wrong about this. Routers with native IPv6 were available 15 years ago, and are already getting pulled out to be replaced by the new stuff.

The reality is that, that ISP tier 1s use either Juniper MX or Cisco ASR9000 routers. These routers have good IPv6 performance.

<comment><USER10> Off the top of my head, Cisco routers with the PXF chipset (7304/NSE-100) had this problem for much of their service life

</comment></comment></comment><comment><USER11> Microsoft is also experimenting with IPv6-only networks internally:

[https://blog.apnic.net/2017/01/19/ipv6-only-at- microsoft/](https://blog.apnic.net/2017/01/19/ipv6-only-at-microsoft/)

</comment><comment><USER12> A few years ago I remember hearing all about the IPv4 crisis and how we were going to run out of addresses very soon. How did we misjudge this so badly? It seems like it should be some pretty simple mathematics to figure out when exhaustion would occur?

<comment><USER6> There was no misjudgement. IPv4 addresses are still running out. Adoption of IPv6 _has_ helped the issue. Some parts of the world are aggressively going IPv6 only. IPv6 adoption has seen a massive uptick in the last year. Check the google graphs.

Also some under-utilized IPv4 address blocks have been recently re-claimed. MIT recently sold off half of its class A to Amazon:

[https://www.networkworld.com/article/3191503/internet/mit- se...](https://www.networkworld.com/article/3191503/internet/mit- selling-8-million-coveted-ipv4-addresses-amazon-a-buyer.html)

<comment><USER13> > MIT recently sold off half of its class A to Amazon:

And garbage like this is why I cannot wait for the IPv6-only future, CIDR let us stall IPv4 address exhaustion but it has caused severe bloating in routing tables. Considering an IPv6 route at the internet level is capped at 64-bits (the max length of a proper network prefix, you can technically do smaller ones but WHY, and nobody will take your BGP advertisement for it either) I expect even with a 2X increase in size occupied by each individual route the size of a full BGP table is going to be dramatically smaller.</comment></comment></comment>


The Art of Being Alone - <AUTHOR> https://fs.blog/2020/06/being-alone/ <comment><USER2> I've said this multiple times, but it bears repeating:

The most important job of a parent is to make sure their kid(s) are bored.

From boredom comes innovation and the ability to be alone with ones thoughts.

We practiced this actively with our first-born and they can invent a game or play with just about anything.

A scarf will be a cape, the exercise stick I was using is a staff and now they're Gandalf. Next the scarf is a roof in a fort, which the stick is holding up etc.

And just the ability for kids to be quiet and alone with their thoughts on long car trips is amazing. Brings up some really weird questions though, when a preschooler or first grader thinks about stuff for a while :)

<comment><USER3> I don't think is a good just for kids, it is good for humans in general. I sit on the commode, bored without a cellphone and find a shampoo bottle, ponder about all the processes that goes into make shampoo.

We all need boredom. Shut down computers once in a while, go garden. Or just sit.

<comment><USER4> I used to spend a lot of time on the commode or in the tub reading and thinking. Now I prefer to have more blood and air pumping for thinking, it's better.

Discovering running and big DIY excavation projects I can do with just a shovel has been life-changing. Anything cardio that requires little thinking is wonderful, and it's such a great payoff for maintaining some level of fitness that forms a positive feedback loop.

<comment><USER5> Yeah I find that long runs provide me both a meditative aspect and a boredom aspect that can really clear my mind and spark creative thinking. I very often find myself struggling with sweaty fingers to jot down ideas on my phone at the end of a run.

<comment><USER6> Perhaps consider an easily activated voice recorder app, or maybe even Siri / Google Assistant if you can abide the ToS.

</comment></comment></comment></comment></comment><comment><USER7> As other touched on: Lots of social people are experiencing Loneliness they may have never encountered due to lockdowns, working from home, etc.

One has to wonder if it'll have other effects. As in people will rush to get back to social norms(clubs, restaurants, etc) regardless of risk. Or maybe that some people will become less social and adopt some more introverted lifestyle choices after learning about spending time alone.

</comment><comment><USER8> >>Becoming a machine also meant having relationships with machines, using physical devices as a way of filling the uncomfortable, sometimes unbearable space between self and world

Sounds like kids these days.

The idea of connecting with people who have inhabited the same lonely space before you via their work, makes me wonder, is it so important to be in the same city?

</comment><comment><USER9> Im get bored with technology quite often. Its my body probably trying to communicate something: get up, move, focus your eyes on different surfaces, etc

</comment><comment><USER10> Being alone is a strange experience. Most people can't tolerate it. I think maybe 5-10% of people will make through it. They'll give up. They'll find ways to reconnect.

It's important to have faith. It'll spark curiosity, hope and optimism. Otherwise, pessimism will slowly consume you. Studying philosophy, religion and history are useful to develop faith.

Being alone is hard. But it can help us develop deep understanding.</comment>


Search and Deploy: The Race to Build a Better Search Engine - <AUTHOR> http://www.michaelspecter.com/ny/2000/2000_05_29_google.html <comment><AUTHOR> An interesting article on the race betwen Google (before they got big) and their competitors (ever heard of Clever ?)</comment>


Why Python Is The Most Powerful Programming Language For Web Applications - <AUTHOR> http://thetrickslab.com/2013/11/python-powerful-programming-language-web-applications.html#fref <comment><USER2> I'd much rather see specific comparisons to other choices, rather than generalizations pointing out the strengths of the language. Why and when, specifically, is Python preferred to C# for web apps? Why and when is it preferred to Ruby? How can we be sure it is not just 'trendy'? Is it common because there is a larger economic force behind it, like C# is only on the list because it is Microsoft's?

<comment><USER3> Not sure I'd call Python "trendy". It has been around for a while, it's massively popular, and it's used at scale. Python is a very mature language.

</comment></comment><comment><USER4> This article looks like linkbait, and poorly written linkbait at that. There's very little of substance in it, and nothing in the way of comparison with other languages that might alternatively be used.

For example, consider the paragraph headed "Python is a dynamic language".

 _" One of the reasons why Python has grown in popularity is because it is a highly robust programming language. Python includes a large variety of classes and data types in addition to the interactive and object oriented nature of the language."_

 _" It also incorporates dynamic typing, modules and exceptions making the Python language an ideal way to create innovative solutions within the same operation."_

This doesn't really say anything, in fact some of it doesn't even make sense. What does "includes a large variety of classes" even mean? As for having "a large variety of... data-types", pretty much any language you might consider as an alternative to python for web programming will be able to match it in terms of data-types.

I don't want to be snarky, but this article seems way below the quality threshold of what I would expect/hope to see on HN.

<comment><USER5> +1, my thoughts exactly - read it just out of curiosity, i bet the linkbaiter got his traffic though...

</comment></comment><comment><USER6> I find readability and reuse to be very underrated. Even if it's an imperfect tool for many things, if the code is easy to maintain and update, you can overlook other flaws.

</comment><comment><USER7> You can almost completely substitute "python" with "ruby" here. (not sure about the amiga part, though).

Or, how about Javascript? Every common desktop, smartphone, tablet and so on has at least one JS runtime preinstalled (the browser), node,js kicks ass on the server side, and even databases "speak" javascript, like MongoDB. Oh, and JS can be used through OOP and Functional Programming as Well, not to mention several meta-languages ontop of JS, like Coffeescript, Livescript, Typescript, ... .

No offense, but the "strong points" of python are pointless as of today's standards. Even the old "LAMP" Stack is fading away more and more.

</comment><comment><USER8> I can't imagine how many times it has been already said, but here goes anyway: Use the tool that suits your needs.

Python might be a good start, but don't stick to it just because articles like this claim it's the best.

</comment><comment><USER9> I love Python and would agree that it's been a boon to work with it for web stuff, but this type of articles, with their provoking titles are doing the language and the community a disservice.

</comment><comment><USER10> Useless article. Don't waste your time. Should have stuck to my rule of avoiding blog posts which claim a certain thing is "the most powerful".

</comment><comment><USER11> Nice hyperbolic headline followed by generally known information that fails to prove your thesis; yeah for click bait! Did you consider defining 'powerful', or was it just a good word for a headline (the only place the word appears in the article)? I happen to really like Python; this doesn't do it justice, and ignores the value of the great Python community.

</comment><comment><USER12> I love Python, but skip this 'article'. It's poorly written and offers nothing to the reader.</comment>


Wikileaks conducting poll to determine how to show Assange proof of life - <AUTHOR> https://mobile.twitter.com/wikileaks/status/790406530738913285 <comment><AUTHOR> It's somewhat interesting that 'PGP signed message' is notably and inexplicably not one of the available options.

<comment><USER2> Almost like this is yet another obvious attempt to stir publicity rather than an actual issue.

</comment></comment><comment><USER3> Why can't he just walk to the window and wave?</comment>


Apply HN: openastro – an open stack for the space industry - <AUTHOR> PROBLEM
Finding the right parts for your satellite is time-consuming and inefficient: matching specs consumes a lot of engineering man-hours. Why can't it be as easy as shopping for a laptop, cell phone or flight?
SOLUTION
We've launched a satellite parts search engine: https://satsearch.co. Satsearch will deliver parametric-search for the space industry for engineering, procurement and market analysis.
We are building a set of open-source & open-data tools to break open the traditionally conservative space sector. Satsearch belongs to this set of tools. We have open-sourced a number of simulation libraries: https://github.com/openastro.
TEAM
I am an Aerospace Engineer with 10+ years of experience developing software for mission analysis, trajectory design and mission planning. I've directly faced the pain of trying to find parts for mission concepts that I've worked on. I am founder of the thriving Tudat library (http://github.com/tudat) and I'm finalizing my PhD from Delft University of Technology. My co-founder, Alberto, is a software developer (iOS and Node primarily) with a PhD in Bioengineering from Politecnico di Milano.
WHY WE'RE APPLYING
We're bootstrapped and could use the money offered through YCF. More than that though, we think that YC is ideal for what we're trying to build, given that they've recently supported teams building launchers and small-satellites. We would greatly benefit from access to and mentorship through the YC network. <comment><AUTHOR> A few more details due to the character limit:

BACKGROUND

There are a slew of new applications that can benefit from space technology, e.g., "internet everywhere", IoT (M2M messaging), asset tracking etc. Rapid growth of the small-sat sector and robust consumer electronics have precipitated a drastic drop in the cost of space-based infrastructure.

BUSINESS MODEL

We'd love to put together something like the Red Hat business model: delivering enterprise-level, open-source software under SLAs. With satsearch specifically, we plan on delivering a comprehensive analytics report (likely monthly) that allows suppliers to monitor what's being search for and how the market is evolving (under a subscription model).

We've already had a number of inbound requests from suppliers to be listed in satsearch. We are in advanced negotiations with a major space agency (direct procurement), a supplier that wants our structured data for market analysis, a university small-satellite team and two governmental organizations seeking to raise the profile of their space clusters.

Besides directly serving the space industry, we have supported an indie game developer in adopting our libraries for a new space-based strategy game. We have also had discussions with a company interested in leveraging our tools for tech transfer.

</comment><comment><USER2> Are we talking about the commercial/military space sector, or about the burgeoning public/research/cubesat sector? I can't help but feel like the former doesn't really have an incentive to make things more efficient given the way the contracts typically work, while the latter might be more interesting.

<comment><AUTHOR> We are indeed talking about the burgeoning sector that is often referred to as NewSpace, which is made up of universities, research institutes, agencies and commercial companies. The idea is to use our network in the Cubesat/PocketQube community to prove the benefits of integrating the spacecraft design phases, ultimately leading to more robust designs and cost savings. It's also a sector that is highly fragmented at the moment, with parts suppliers popping up all over the world.

If we reach the target of proving the benefits of our open stack, I think large industry players will have to take note. We've had some discussions with the likes of Airbus DS in Europe and the sales cycle is very long, but not impossible.

The mission that we're on is really to open up the sector to completely new applications and teams. We want to expose the tools and technologies that are needed, so that it's not just a select few that can reap the benefits of space technology and infrastructure.

</comment></comment><comment><USER3> I think you have to better explain the key difficult or problem for those who try to build satellites.

This sounds cool at first glance, I think you have to elaborate a lot more on the user pain intensity and who they are.

<comment><AUTHOR> Thanks for the feedback.

Satellites are complex machines and there's a lot of engineering work that goes into figuring out exactly what to build. The goals for a mission are usually set by a client/end user: e.g., I want images of San Francisco at a resolution of 5m/pixel or less.

Engineering work goes towards simulation and analysis to figure out what the size of the solar panels are that you need to generate enough power on-board to power the camera, what the size of the battery needs to be to make sure that the satellite keeps functioning during eclipse, what the size of the thruster is that you need to keep the camera pointing at the right spot, etc.

Once you've figured out what you need, the job of finding a vendor that has your part involves wading through their websites to find data sheets, calling them, emailing them etc. It's a really time-consuming process and all you want to know is if there's a part that matches what you need, within your budget, that has heritage in space, etc.

The engineering work is iterative because the subsystems within the satellite all depend on each other. Hence, you're doing this search over and over again. Usually, you just end up making sub-optimal choices.

We've tried to explain the search problem in the following video: [https://www.youtube.com/watch?v=FlHEoq7utW4](https://www.youtube.com/watch?v=FlHEoq7utW4). The low-hanging fruit comes from the fact that a lot of data is already available online, just completely unstructured.

The idea of tying this in with simulation tools is that it allows you to do things like programmatically figure out what happens to your design if the vendor you've picked for e.g., your battery fails to deliver. This kind of sensitivity and robustness analysis is very important during the design process, because it allows you to reduce uncertainty and figure out the main risk items that you need to devote engineering time to.

Bit a long explanation, but hopefully that gives you a better sense of the immediate problem we're trying to tackle for engineers.

For vendors, the pain simply comes from not knowing where their users are, i.e., teams that need the parts that they are selling.

Does this help explain the pain better?

<comment><USER3> Great. I think to win, you've got to have aggressive conversation with the folks who buy sattelites/ your customer base.

While your answer to this question right now is generic, in the future, you can have a lot more insight and it will shine through in your pitch with customer stories you can tell.

<comment><AUTHOR> Thanks for the feedback! It's a slow process, but we're plugging away at trying to on-board users and pinpoint where our open stack can directly address challenges they're facing. Our best starting point at the moment seems to be universities building satellites, as we have a good network and the barriers to get started on evaluating product/market fit are lower than B2B.</comment></comment></comment></comment>


President Obama's inauguration, as seen from space - <AUTHOR> http://venturebeat.com/2009/01/20/pictures-president-obamas-inauguration-as-seen-from-space/

<comment><USER2> This was taken very early in the day, as witnessed by the sharp northwestern shadows and disorganization in the crowd. I'd guess it was around 7am based on when the sun came up today here.

<comment><USER3> Exactly my thoughts.

Whether it was done on purpose to try to diminish the magnitude of the event, or a stupid mistake from the publisher.

It was packed to the roof with more than a million souls.

<comment><USER4> I'm sure they would have wanted to have the satellite orbit at the appropriate time, but changing the orbit to coincide with a specific time isn't exactly cheap or easy.

<comment><USER2> That being said, you wouldn't need a satellite to take these pictures. Also, the Mall is under constant (heavy) surveillance.

</comment></comment></comment></comment><comment><USER5> Whenever I see images like this I always get a little grossed out when I think that the splotches are people packed together. Dunno what that says about me.

<comment><USER6> My feeling is related, yet altogether different.

It's more along the lines of: <http://www.youtube.com/watch?v=p86BPM1GV8M>

<comment><USER5> It's different when I think about the planet as a whole, or even when I am in a crowd or am viewing a crowd on ground level. But the vantage point the pictures in the post give us gives me an uneasy feeling.

</comment></comment></comment><comment><USER7> Looks weird....Reminds me of a fugus growing on something that it will eventually kill.

<comment><USER8> I thought ants, but yeah, crazy.</comment></comment>


Canada's immigration website crashes on election night - <AUTHOR> http://www.ctvnews.ca/canada/canada-s-immigration-website-crashes-on-election-night-1.3152231?hootPostID=14d10ea891a36bd74ea02d19ec7cf954 <comment><USER2> A few points I think are relevant:

\- I find leaving your country only because you didn't vote for the winner is rather cowardly, you can still do something about it, we're not quite talking systemic harassment yet...

\- as a friend of mine pointed out, Canada is not a consolation prize for disgruntled americans, it's a real country, with its own real people and its own real problems

\- having just aquired my canadian permanent residence after years and lots of money, it was a harrowing process. Clogging the already dysfunctional immigration system en masse as a whim is not just stupid, it's insulting to people currently going through immigration, and downright threatening to people who are in very real danger

If you're a disgruntled US citizen, I can understand your frustration, but please don't take this lightly.

<comment><USER3> > having just aquired my canadian permanent residence after years and lots of > money

Slightly off topic:

I've been through the process as well and accept the frustrations but I didn't not think the costs were unreasonable. I only had to pay CIC application fees. How was the process harrowing for you? Not defending the frustration, just curious I guess.

<comment><USER4> Compare it to US immigration also, where I got 6 years and easily over $20,000 in employer-paid costs in, and didn't even get to the green card stage.

[EDIT] Overstated cost, ran the numbers it's $20-25K.

<comment><USER5> That's ridiculous.

I moved to Germany from Canada a few years ago when I was in my mid-20s. Nothing wrong with Canada, I was just bored.

I came to Germany on a tourist visa and found a job by sending my CV to random German technology companies I found via LinkedIn.

The Blue Card (EU equivalent of a Green Card) cost all of 135 EUR and is valid for four years. The processing time for the Blue Card is around 6 weeks after application, but I think that's pretty standard for bureaucracy in any country.

Getting my Canadian Bachelor of Engineering recognized as a German equivalent degree cost 200 EUR and took 3 months.

You'll also need one biometric (passport) photo, which if you use a machine at any of the train stations will cost around 6 EUR. You can use the remaining 5 photos for things like getting a German driver's license, health card, etc.

I paid ADAC around 40 EUR to "translate" my Canadian driver's license into German, and then around 50 EUR to exchange it for a German Führerschein.

Total visa/admin cost for a comparable life in Germany: 450 EUR

Now, I have spent around 3000 EUR for language courses over the past several years, but I'm getting pretty fluent in German, so I'd consider it money well spent. If you were more self-motivated I'm sure you could study the language by just getting the textbooks and watching YouTube videos.

</comment></comment></comment></comment><comment><USER6> Canada seems appealing to Americans until you realize you could be earning more in the U.S. while spending less on a bunch of other things.

Don't get me wrong, I love living in Canada and I mostly don't miss living in Bay Area, but most of my friends lament the fact that their salary and career opportunities are a joke compared to what they could have in the U.S. (even adjusting for cost of living).

<comment><USER7> Canada would be an odd choice for many reasons, but is probably attractive for the combination of proximity, and cultural/linguistic similarities. For me, I've been looking at Ireland, Denmark, or the Netherlands for a while, and I'd say they're looking far more attractive today than yesterday.

Besides, money isn't everything. There is something to be said for not having to deal with the insane evangelicals, bitter uneducated whites, and insane levels of violence too. Not to mention the impact this will have on the SCOTUS, and how incredibly screwed up healthcare is.

<comment> tuna-piano If you didn't read the newspaper, how many of the negative things you mentioned would actually impact your life? Would you even know who was president for the last 4 (or the next 4) based on the impacts to your life? I'd guess not.

Just live your life and be happy, vote when you can but don't let what you don't control make you sad.

<comment><USER8> After two or three conservative justices are appointed the court your life will be mega affected. Are you gay? Kiss gay marriage goodbye. Right to privacy ? Gone. Wanna buy or own a sex toy? Those were illegal in many states until a progressive court put an end to it. A conservative court will absolutely reverse that.

This is a huge deal.

<comment><USER9> Serious question from a non-American: What are the checks and balances on Trump? He has the presidency, House, Senate, and can tilt the supreme court. He's got a mandate to take action against the media and free speech on the internet. What's left?

If Clinton won, the republicans would probably have held one or both houses, which seems like significant checks on power even if she could have a more friendly supreme court than Obama.

<comment><USER10> The check and balance is that he has to get all those people to agree with him. Certainly on major issues where he aligns with Republican philosophy that might happen. But he's not a dictator that can do as he will tomorrow. If he decided he wants to transfer the entire U.S. treasury into his personal bank account he wouldn't be able to.

Certainly I doubt our founders thought an entire political party would control every single branch of government. But even if it does the only things that can be accomplished need to be agreed upon by that large group of people. If the will of the people is to elect a group of people into those positions that all hold the same philosophy and values, then that's just democracy. It's what we voted for. I don't know if any party has controlled all three branches of government at once, but it's not like that negates the principle of checks and balances

<comment><USER11> You mean where republican philosophy aligns with him. If you've followed the primaries he has ripped the republican playbook to shreds. They never wanted him as their candidate and now they can't hide from him. And for a lot of politicians their success is directly tied to his support.

I think we are closer to uncharted territory than a lot of people assume.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Montreal startups hiring:

-Transit (transitapp.com)

-Unsplash (unsplash.com)

-Hopper (hopper.com)

-Breather (breather.com)

-Sonder (sonder.com)

-Busbud (busbud.com)

-AmpMe (ampme.com)

-Fuzzy AI (fuzzy.ai)

-Frank & Oak (frankandoak.com)

You can get a pretty nice 1 BR apartment in Montreal for ~$600 US/mo. Incredible bars, beautiful people, great schools, bike paths, and lots of outdoor rinks to play hockey in the winter :-)

FYI: Montreal startups operate in English!

<comment><USER13> But no bikeshare in the winter :(

<comment><USER12> Unlike SF, we have great public transit! Most startups are a 5 minute walk from a subway stop, and it's cleaner/less crowded. Few people own cars here. (But granted, the snow is no joke!)

<comment><USER14> As a New Zealander who is unable to move anywhere else due to immigration laws. I am happy for you, but the Jealousy is real.

<comment><USER15> Working Holiday Visa depending on your age will get you 2 years in Canada.

</comment></comment></comment></comment></comment><comment><USER16> People are not going to move. After every single election in France people say they will move to the US, or to germany, or to... I've never seen anyone moved anywhere.

ps: parts of my family moved out of Hong Kong when it became Chinese again. But that was quite a different situation.

<comment><USER7> I think that's incredibly naive. For one thing, moving from France to Germany is a huge cultural and linguistic leap. Moving from the US to Canada is really not.

<comment><USER17> I recently moved from France to Germany, and the biggest cultural gap so far is that people in here respect traffic lights and using a qwerty keyboard. Otherwise, most people speak English and the lifestyle is similar.

<comment><USER18> Don't they use QWERTZ keyboards?

<comment><USER19> Yes, we use QWERTZ in Germany, but it's muuuch closer to QWERTY than France's AZERTY (needs shift for numbers!). The difference between QWERT{Y,Z} is those two keys (Y and Z are swapped), the shape of the enter key (necessitated by an additional key), and basically all of the special keys. Many of those moves are due to ä/ö/ü/ß. Meanwhile, AZERTY is very different, and even typing alphanumerical things requires paying serious attention to key placement if not used to it.

</comment></comment></comment></comment></comment><comment><USER20> As a Canadian who moved away, I must warn you that Canada has a form of dutch disease. Resource extraction investments have a much better risk/return ratio, so the pay doesn't even approach US levels. Thus software doesn't approach the levels of investment you have in the USA. And you thought SF was bad, wait until you see what has gone wrong with the housing markets in Toronto and Vancouver.

I liked Canada and it's sad that I have to live away from my family, but I would be a fool to stay otherwise.

<comment><USER21> I moved to Toronto from the UK, received a solid 25% increase in salary and cut my rent expenditure in half.

Houses are expensive here but still cheaper than London or SF.

Canada isn't all doom and gloom.

<comment><USER22> This. Canadian salaries are low, compared to the US. They're much better than Europe.

</comment></comment></comment><comment><USER23> I don't really get the mindset of "if Trump wins I'm moving to X country." The citizens in all of those countries are much more scared of a Trump presidency than Americans seem to be. It stands to reason that the best place to weather a Trump administration is from within the U.S.

I mean, when your guy is threatening to disband NATO, tear up NAFTA (and rejects free trade as a whole), reinstate torture as official policy, etc...would you rather live in the U.S. or in one of its allied countries?

<comment><USER24> As someone from a country which strongly depends on NATO (Lithuania, former Soviet state, shared border with heavily militarized Russian territory Kaliningrad), you are spot on.

<comment><USER25> Lithuania, another NATO country which contributes about half of what they're supposed to to the collective defense.

</comment></comment></comment><comment><USER26> I would advice anyone considering moving to a different country to spend some time studying FATCA. Even if you move out of the U.S you will still be responsible for filing taxes every single year unless you renounce your citizenship which is not easy by any means. Foreign banks are required by FATCA law to pass all your financial information to the I.R.S and in some countries they will downright refuse opening a bank account for american citizens to avoid this nuissance.

<comment><USER27> It's annoying and maybe a little invasive, but it's not impossible. The FBAR takes about 10 minutes to fill out and submit, and the bank may want a few extra forms if you earn a lot of interest.

Taxes are annoying, but between treaties and the foreign income exclusion or credit, you probably won't be double-taxed.

<comment><USER28> The US has tax treaties with just about anywhere good want to go, so no double-taxation. (And no, paying income tax in two countries is not double- taxation.)

<comment><USER29> Unlike just about any other country in the world, the US will tax you even if you don't live or derive your income there.

Furthermore, also unlike every other country in the world, the US will only deduct the paxes you paid in the other country from the taxes it thinks you owe it on income you earn+spend while living abroad. Every other country considers your tax obligations fulfilled.

<comment><USER27> However, you can either 1) Exclude the first ~$100k from your US taxes altogether, or 2) Receive a credit for taxes paid to the other jurisdiction.

Most places, particularly those where you'd earn a high salary, have higher tax rates (particularly if taxes cover what would be health insurance in the US), so the credit often completely cancels your US taxes.

In many places with lower taxes, it's fairly difficult to earn $100K to begin with, so you're covered there too.

The two situations which are tricky are 1) Earning a lot in a low-tax location (maybe oil workers?) 2) Having income from a mix of US and non-US sources (renting out your American apartment?) since your US income gets "bumped up" to the tax bracket associated with your worldwide income.

</comment></comment></comment></comment></comment><comment><USER30> If you need to leave the U.S. consider moving to Australia. (I did) The cost of living here is high, but the salaries are very high for professionals. If you are a talented thrifty person - you can save a lot of money fast. Good surfing too.

For startups. you get about ~50c back on the dollar from the gov't annually. You don't need to make a single dollar in profit to get that, it is based on the invested capital.

Feel free to hit me up if you have any questions.

<comment><USER31> Hi grizzles, as a european currently vliving in Austria I am quite interested in relcoating to Australia for the weather and the people but I'm not sure how the tech scene is over there for EE jobs like Embedded Software/Firmware Engineer. I had a quick look on indeed but I wasn't very lucky.

<comment><USER30> Try seek.com.au. It's the biggest job site here by a big margin. Also I know someone that is looking for an EE, so you can send me your cv (email in profile) too if you wish.

</comment></comment></comment><comment><USER32> $20 says the crash is because of all the online jokes about moving to Canada that contain links to this site.

<comment><USER33> Agreed. It's still funny though.

</comment></comment><comment><USER34> I don't even know how to respond to this. People die trying to make it into the U.S. I'm not a flag-waving jingoist, but the the United States is a f'ing great place to live.

<comment><USER35> It is. It won't be next year.

My original plan was to move and telecommute, but that's kind of fucked because the dollar is crashing.

<comment><USER36> Why will it be much different next year? I don't see much changing in the short term besides a new set of characters in the news. Longer term, we'll see.

</comment></comment></comment><comment><USER37> If you're afraid of the US President, moving abroad isn't helpful. His domestic power is severely limited and checks-n-balanced.

Granted, that only counts for fear of a semi-tyrannical president, not necessarily for economic concerns.

<comment><USER38> Republicans won the House and Senate too, and he gets to appoint probably 3 justices to the Supreme Court.

So it'll be a more unified government than you've seen in a long time, which makes Trump able to get a lot of his platform through.

It's a great time to live in America.

<comment><USER39> What's that anyway, besides 'building a wall and make Mexico pay for it'?

<comment><USER40> Well, there's putting the brakes on globalization, fewer foreign wars, lower government spending (and probably some progress on reducing the national debt, which has increased more in the last eight years more than all of the 232 years prior to that, combined), among other things.

<comment><USER41> Trump's tax plan involves adding significantly to the debt:

[https://www.americanactionforum.org/research/budgetary- impac...](https://www.americanactionforum.org/research/budgetary-impact- candidate-trumps-proposals/)

[http://www.latimes.com/nation/politics/trailguide/la-na- trai...](http://www.latimes.com/nation/politics/trailguide/la-na-trailguide- updates-trump-tax-plan-would-increase-national-1476211310-htmlstory.html)

It's the same sort of thing as a lot of left wing policitians favour. Incur a lot of debt, and then that's going to cause so much growth that you'll come out smelling of roses.

<comment><USER42> Left wing politicians tend to do things that are actually useful with that money though. Trump just gives himself tax breaks.

</comment></comment></comment></comment></comment></comment><comment><USER43> I stick to George Carlin's advice: I'm in the front seat and I want the best entertainment. And Trump will deliver the best entertainment of all candidates! I'm staying to watch this circus, pass the pop corn!

</comment><comment><USER44> Corp tax in Ontario is 15% and free health care. Dev pay also comparable.

Come over :)

<comment><USER45> Cool, how welcoming are they to non Western immigrants? And also recent graduates?

<comment><USER46> My wife is a non-Western immigrant (English is her third language). She says she's never faced any discrimination and many people assumes she was born here (in Toronto). Non-white people are very common and very accepted in Toronto.

</comment></comment></comment><comment><USER47> It seems like it would be more useful for Silicon Valley to just put their money where their mouth is and declare war. Fund education like crazy, pour a ton of money into environmental causes and just go nuts. Create a useful America.

<comment><USER48> Despite the caring face that most startups put up they all have to make money to survive. Only when they grow really big can they even think of pursuing social goals and even then they will have opposition from the shareholders.

</comment></comment><comment><USER49> There actually are more options than just the Canadian cities and there's a site for figuring out your best options: [http://teleport.org](http://teleport.org)

</comment><comment><USER50> My girlfriend and I (Both software devs) would gladly move to Canada with the help of a company employing us. Almost immediately. We have little to no attachment to our current city of Portland.

<comment><USER51> Research TN-1 visas. No labour market assessment required. Need to have a degree or other significant experience though.

<comment><USER14> What is considered significant experience?

<comment><USER51> Re-reading it, it looks like it's "Individuals may be eligible for one of the TN visa categories that only require a 2 year post-secondary diploma and 3 years of experience".

There's lots of minefields. I've never done it, just familiar with it.

</comment></comment></comment></comment><comment><USER52> The major tech centers in Canada have major housing price issues. The housing to salary ratio in Vancouver and Toronto are terrifying.

<comment><USER53> An exception is Waterloo.

<comment><USER54> But Waterloo isn't a great city to live in. Especially for young professionals, Waterloo is not nearly as exciting as Toronto, Montreal, Vancouver.

<comment><USER28> I think Kitchener-Waterloo (~300k people) punches above its weight. It definitely feels like a small city, but there are still things to do. Plus Toronto is 1.5 hours away on a Greyhound bus for about $15. ;)

</comment></comment></comment></comment><comment><USER55> If any of you have seen an Ottawa winter, you'll understand that the one guy on the night-shift there is too busy trying to figure out how fast he can get to Australia.

<comment><USER56> In 20 years Ottawa will be sub tropical thanks to global warming ;)

<comment><USER55> I totally agree - the problem is that for every degree of warming Trudeau will raise the carbon tax 5%.

</comment></comment></comment><comment><USER57> Do you really want to move to a country whose government can't even keep a mostly-static-webpage site up?

<comment><USER58> The same website handles actual processing of citizenship and permanent residency applications, such as form submissions, qualification questions, and so on. It runs a very light client so all of the validation is server-side. Far cry from "mostly static".

</comment></comment><comment><USER59> No surprises. It runs on Windows with IIS as the web server [0].

[0] [http://toolbar.netcraft.com/site_report?url=http://www.cic.g...](http://toolbar.netcraft.com/site_report?url=http://www.cic.gc.ca)

</comment><comment><USER60> Leaving the country over an election like this seems pretty childish IMO. Why wouldn't you wait until there was, you know, some kind of policy change before making that kind of massive life decision?

<comment><USER61> Because, frankly? A country that is down with electing somebody who overtly panders to white supremacists is not a country I really want to be in. A country that elects somebody who thinks electrocuting teenagers to cure homosexuality is not a country I really want to be in. I don't need to see what they will do to know what they have done.

I don't intend to move stupidly, and I don't intend to unless I can better my situation--but I wasn't even considering it yesterday, and I am now.

<comment><USER60> You are so brave for quitting the moment your political ideals are challenged. /s

The people that voted in trump represent about 1/5th of the population. How about sticking around and fucking participating rather than expecting a political free ride?

</comment></comment></comment><comment><USER62> I have lived extensively in NL and Denmark. Would give an arm and a leg to move there again. Need to find a job for myself and wife there

<comment><USER63> What is it like for an American making the move? What were the best and worst parts?

<comment><USER64> First paying the heavy Dutch taxes, then having to pay US taxes because you're still a citizen.

<comment><USER27> If you actually did that, you're either making _tons_ of money regardless or doing your taxes wrong.

</comment></comment></comment></comment><comment><USER65> What happened or didn't happen to the people running the site between 2004 and now when GWB was re-elected? You'd think that you should be shoring up the website seeing spikes for a while, and it's been over 10 years since that site crash and populations haven't gotten an order of magnitude higher exactly.

<comment><USER66> If it happens once every 8 years I can understand that the wouldn't care much. Do you expect them to employ expensive services that would cost them a lot of money to stop that just for one day? It's government, they just live with it.

<comment><USER65> I've worked in government before and understand bureaucracy but there's a certain level of quality even they have standards for. Most government sites aren't massive volume transactions but primarily static brochure type sites that may need some occasional updates making them suitable for many commercial CMSes that are well known and easy to optimize. Adding caching for documents that are almost never updated and adding a CDN layer for the application are inexpensive compared to writing and even hosting the CMS itself (usually on rather expensive TCO on-premise infrastructure). Furthermore, this kind of upgrade helps fulfill use cases of access and availability to government- provided services that is the spirit of the law in many developed countries, especially as citizens increasingly reach to online services for their interaction with governments.

<comment><USER58> This site is done separately. Your entire application, from initial contact to permanent residency or citizenship, is handled through this website, entirely through submission of electronic forms. While it's basically a form-and-image- and-pdf-and-docx-grabbing site, that's still a step or two above brochure-and- static.

</comment></comment></comment></comment><comment><USER67> Let's get real. No one is going to Canada. This is just grist and posturing for the social media mill. But it's still fun.

Trump does not take himself seriously, so why should you. The trump presidency is going to be a clusterfuck, gaffes galore, pure comedy but hopefully eventually harmless and the bigger risk is people overreacting.

Seriously nothing can be worse than the sinister and duplicitious behind the scenes status quo represented by Hilary Clinton and her ilk. This is 4 years for the entrenched frauds and clowns in politics and media to reassess their ruling strategies as it appears nearly everyone can now see through their bullshit and crave honesty and sincerity even if its ugly.

</comment><comment><USER68> Is it good or bad news that the Australian immigration website is still up [1]?

1\. [https://www.border.gov.au/Trav/Visa-1/457-](https://www.border.gov.au/Trav/Visa-1/457-)

<comment><USER69> We already voted in our version of Trump, so we probably won't let you in.

<comment><USER70> But the Yanks don't have a means to oust him like Turnbull did...

</comment></comment></comment><comment><USER71> This probably has more to do with Patch Tuesday than the extra 500 page loads it got.

</comment><comment><USER72> There's more to it than just sour grapes, there are minorities legitimately concerned about what their future in America looks like, would not be surprised if they made up a decent chunk of the visitors to that site.

</comment><comment><USER73> Canada is not bad if you feel comfortable in that weather.

There are some cultural differences, but at a professional level it is very similar to the US.

They do seem friendlier though. Much friendlier.

</comment><comment><USER74> Well, [https://teleport.org](https://teleport.org) is still up, for searching 200+ other cities you could move to...

</comment><comment><USER56> I wonder how this might affect startups in Canada? Will it be easier to hire American programmers? Will more investors come up north?

<comment><USER75> How long does it take for paper work to be completed? 1-2 years? And than what? Trump will almost certainly mess up enough (which Dem have warned about) to be out of office after just 1 term. And will they go through the paper work to return to US?

<comment><USER56> I think highly skilled and paid jobs are expedited. Above CAD $85k I believe.

<comment><USER28> I was making $70k as a newgrad in Waterloo back in 2012.

</comment></comment></comment></comment><comment><USER76> Before we know it, politicians in Canada will be promising their citizens they're going to build a wall of their own ;)

</comment><comment><USER77> No one mentioned Tel-Aviv. We have excellent weather, food and beach. Google and Facebook have engineering offices in Tel-Aviv, and there are lots of start-ups here.

I'm not sure what's the process of getting a visa though. Jewish people can get citizenship relatively easy (Jewish state yada yada yada).

Disclaimer: I work at Facebook Tel-Aviv

<comment><USER78> > No one mentioned Tel-Aviv

People that fear Trumpist racism are very much the same people that understand Israel as a racist country.

<comment><USER77> I'm not going to get into this discussion. You're welcome to have your opinion, but I don't think all Trump's objectors are against Israel.

</comment></comment></comment><comment><USER79> The folks over at anonymous were bombarding the site according to some of the shadier 4chan boards.

</comment><comment><USER80> Serious question - why doesn't anyone talk about moving to Mexico? It's a lot warmer...

</comment><comment><USER81> I haven't heard any of Trump's opponents threaten to move to Mexico... ;-)

<comment><USER82> I'm moving to Mexico in a few months :)

<comment><USER81> Smart - having spent time in both places, I'd hole up in Baja over Lake Ontario any day.

</comment></comment></comment><comment><USER83> Coming to Canada? We can help, www.vanhack.com, our focus is helping international tech talent get jobs in Canada.

Check out our jobs board: app.vanhack.com/jobboard and shoot me an email with any questions: email@example.com

</comment><comment><USER84> I've heard a lot of people say, in the U.S, that if this or that happens then "I'm moving to Canada". It's as if they think Canada would welcome them with open arms. Think again.

</comment><comment><USER85> What poor risk analysis on behalf of voters.

Same happened at Brexit. Businesses suddenly reacting to what had happened rather than being prepared for something they had known was a possibility for months if not years.

</comment><comment><USER86> As a Canadian, I want to say that the great country that is the United States absolutely needs democrat voters more than ever. So PLEASE stay home for the democracy in your country.

</comment><comment><USER87> I'm seriously considering switching citizenship now - I've lived in Norway long enough that I can, although I'm not sure how long the process will take or cost.

</comment><comment><USER88> For what it's worth, I doubt the infrastructure was that good to begin with. Sites put up by my country's government are only set up to handle normal load.

</comment><comment><USER89> The snarky reply to the "moving to Canada" thing is: why don't all these California liberals want move to Mexico? It's closer, isn't it?

<comment><USER90> It's pretty clear what you are insinuating, but Canada is more culturally similar to the US, and not Mexico. Also not to forget I have to learn Spanish.

</comment></comment><comment><USER91> I say we Canadians build a wall and make America pay for it.

</comment><comment><USER92> Guys, take me to the first world. I want to suffer, too.

</comment><comment><USER51> You also get a few more Canadian cents per US$ since the markets closed today, so your money goes further.

And vacations to Mexico just got 10% cheaper.

</comment><comment><USER93> I believe it takes like 5 yrs for citizenship anyway, I remember hearing something like that back in 2005

</comment><comment><USER94> Is this really feasible for Americans? Is it hard to get citizenship? Would double taxation kill you?

</comment><comment><USER95> I've lived in LA, SF, Boston, Toronto, and Vancouver.

I liked SF and Boston. Things moved a lot quicker. The cities were more populated, people were more educated (I was near Harvard / MIT / UC Berkeley ) and unassuming.

I went to college near Toronto, and almost all my professors were American. They liked Canada for all the reasons I didn't like it. Things seemed to progress slower than their American counterparts, and people were less wound up. The downside is that the service quality in the private sector is not comparable that of the US.

I currently reside in Vancouver. It's beautiful here, but you get lots of rain during winter seasons. People are friendly. It's expensive if you live near the city, but where isn't?

Pay is definitely not as good if you're an engineer... Maybe 70 cents on the dollar. If you're trying to build a software startup, definitely consider moving your HQ to Canada (or outside of SF!), and keeping a corporate office in SV for fundraising. There's less competition for engineers, and you'll make 30% more progress per dollar invested.

Technology-wise, I'd suggest Waterloo. Silicon Valley hires graduates from U of Waterloo only second to UC Berkeley. Perimeter Institute for Theoretical Physics chaired by Stephen Hawkings is also there. The city is also home to Institute of Quantum Computing, started by the founder of Blackberry.

D-Wave, one of the major players in quantum computing is based in British Columbia.

In terms of AI, Canada is a bit of a talent drain. Most of the lead researchers and professors have been lured to Oxford or Google or wherever.

Venture Capital presence is limited here. Vancouver has only got a handful of major venture firms. Though, I met a couple of investors from Silicon Valley investors trying to start something up near UBC. I can't say much about Toronto.

Quality of living is pretty good here. I can go out for walks during midnight and not have to worry about getting robbed - something I was never able to do in LA. Many parks.

Overall, you'd like Canada if you're willing to trade slower pace, liberal views, colder weather for population size, and American imperialism.

Every American I've met in Canada really enjoyed being here, just as every Canadian in America I've met really enjoyed being there.

I'm no exception. There's something I love about the narrow Cobblestone streets in Cambridge, the golden hills in SF Bay Area, the weather in LA. And oddly enough, I've found that people I've met in the US are more personable than those in Canada. I suppose that comes with the more unified sense of national identity that is in someways a fascade.

</comment><comment><USER96> Now they get to find out what labour laws are like for aliens :o)

</comment><comment><USER97> Here is a helpful tool I made for anyone considering moving to Canada!

[https://www.canadiantechjobsforamericans.com/](https://www.canadiantechjobsforamericans.com/)

</comment><comment><USER66> As if Canada is far enough away. Good luck.

</comment><comment><USER98> China, Welcome you. :-)

</comment><comment><USER99> Is it just me who is cursing themselves for not shorting USDJPY at the right moment ?

Damn. Whoever thought being obsessed with the election coverage would be useful.

<comment><USER100> Hindsight.</comment></comment>


Organic Chemistry - <AUTHOR> http://chemed.chem.purdue.edu/genchem/topicreview/bp/1organic/organic.html <comment><USER2> Hn long since owned

<comment><USER2> Sorry but this is true. Content is controlled by what are likely deterministic algorithms fed from the actions of end users. Users therefore can and do "own" the content.</comment></comment>


Show HN: Scrawl-canvas – build responsive, accessible HTML5 canvases - <AUTHOR> https://scrawl-v8.rikweb.org.uk/ <comment><AUTHOR> Maintainer here. dang suggested I add a comment to the thread to help start possible conversations about the project. So I'll answer 3 self-asked questions.

"Why did you start the project?"

Short answer: I'd spent 3 years trying to get my first job in tech (London). A recruiter took pity on me in 2013 and suggested I build up a portfolio of projects on GitHub to showcase my abilities. I started a project which included an animation on canvas, and took the decision to code the animation using the canvas API rather than an existing library. I got a bit obsessive about the canvas element over the next few years. 7 years later, I'm finally beginning to feel happy and confident in the work.

"What problems does the project solve?"

My view is that there's three big issues with the <canvas> element: accessibility; responsiveness; fun.

Accessibility - because the current canvas element completely fails users who access websites with non-visual browsers and devices. All information contained in the graphic output is a black box to them. This has to change.

Responsiveness - because the current canvas element doesn't know how to play nicely with CSS responsive design patterns.

Fun - because trying to do anything reasonably complex with the Canvas API is not fun.

"What are your hopes for the project?"

I'm not looking for the library to take the frontend world by storm (though it is a nice fantasy).

What would really make me happy would be if maintainers of other canvas libraries look at what I've tried to do with Scrawl-canvas around the areas of accessibility and responsiveness, and add that sort of functionality to their projects - hopefully in even better, more efficient ways.

Oh - and finding some collaborators to work on the project would also be good, because I've spent too long working on it by myself and it could really do with some fresh eyes and opinions.

<comment><USER3> I can't get it to load on the latest Safari on iOS.

It looks fine in Chrome though! Super cool.

<comment><USER4> [https://caniuse.com/#feat=intersectionobserver](https://caniuse.com/#feat=intersectionobserver)

Lots of Safari versions don't support IntersectionObserver it would seem.

Then again, Safari is the new IE.

</comment></comment></comment><comment><USER5> This fails my very first test of anything canvasy: it's not scaling by devicePixelRatio, so it looks bad on a high-DPI display, especially if text is involved. I usually find this to be a bad sign.

This puzzled me, because it mostly looks very good (even if it rather encourages CPU-guzzling). Have you just never had access to a high-DPI environment and thus never thought about it? Anyway, this one should be very quick to fix.

Accessibility: yeah, you can tab between the links, which is good, but when you're just hovering you're not hovering over a real link, so you can't see the link target, the cursor is wrong (though one that could be fixed), and modifiers don't work. Right-click triggers the "links" too, which it shouldn't. Things like this _must_ be handled by drawing real DOM elements persistently on top of the canvas, and letting the user _genuinely_ interact with them. No other approach is capable of achieving the expected and desired result. Not `location.href = …`, not `open(…)`, not `link.click()`. Nothing.

One straightforward (but inferior) approach to make this work could be to put an  above the entire canvas (or even wrapping the canvas!) and set its href when hovering a "link", and remove it again when not.

I haven't delved into any more of the accessibility stuff, but it looks much better than most, and just needs to work on any real DOM counterparts to canvas pieces actually being in the right place, so that interactions, text selection, &c. can work properly.

<comment><AUTHOR> Hi chrismorgan. Many thanks for taking the time to check over the site, and giving me feedback!

Can I ask which device/screen you used to view the site? I'm currently limited to a Macbook Pro, so can't get the insight of seeing the page on other devices.

>> This fails my very first test of anything canvasy: it's not scaling by devicePixelRatio, so it looks bad on a high-DPI display, especially if text is involved. I usually find this to be a bad sign. [...] Anyway, this one should be very quick to fix

Noted. Fixing will take a bit of thought as it won't be a simple case of scaling (as suggested here[1]). The canvas Cell where most of the work happens can already have different dimensions to the display canvas, which goes partway to addressing the problem. The library should also play nicely with  \- I'm only supplying a single src value for the images used on the site.

>> (even if it rather encourages CPU-guzzling)

Yes. Minimising the impact on the CPU will remain a key priority for the library going forward.

>> Accessibility: yeah, you can tab between the links, which is good, but when you're just hovering you're not hovering over a real link, so you can't see the link target,

That's an issue with the page code, not the library, I think. Hovering over a link with the mouse cursor should bring up a tooltip (working on my machine for Chrome, Firefox, Edge; fails on Safari) - I didn't think to include the link url when designing the page, but that can be easily added. Tabbing (which doesn't work on Firefox because[2], and is buggy on Safari) shows the link at the bottom-left of the browser window on Chrome, Edge.

>> the cursor is wrong (though one that could be fixed),

Agreed, fixable.

>> and modifiers don't work.

On my Macbook Pro hovering over a link (and tabbing to it) changes the size of the pin and displays a graphic text label. Is that not what you see? The library has functionality to handle focus and blur states, but I've not thought to include anything to handle visited and active states.

>> Right-click triggers the "links" too, which it shouldn't.

I can replicate this on Firefox, when I previously agree to "allow popups". Without that user agreement, the right click shows the small menu with links to "save image" etc. Does not seem to be occurring on Chrome, Edge, Safari.

... I'm beginning to fall out-of-love with Firefox on Mac

>> Things like this must be handled by drawing real DOM elements persistently on top of the canvas, and letting the user genuinely interact with them. No other approach is capable of achieving the expected and desired result. Not `location.href = …`, not `open(…)`, not `link.click()`. Nothing. One straightforward (but inferior) approach to make this work could be to put an  above the entire canvas (or even wrapping the canvas!) and set its href when hovering a "link", and remove it again when not.

This can be achieved by wrapping the canvas element in a Scrawl-canvas stack, which then allows DOM elements to be positioned over (or beneath) the canvas in the same way as canvas entitys. By making the DOM element "mimic" its entity, DOM element positions and dimensions can be handled automatically.

>> I haven't delved into any more of the accessibility stuff, but it looks much better than most, and just needs to work on any real DOM counterparts to canvas pieces actually being in the right place, so that interactions, text selection, &c. can work properly.

Again, thank you!

[1] - [https://www.html5rocks.com/en/tutorials/canvas/hidpi/](https://www.html5rocks.com/en/tutorials/canvas/hidpi/)

[2] - [https://stackoverflow.com/questions/11704828/how-to-allow- ke...](https://stackoverflow.com/questions/11704828/how-to-allow-keyboard- focus-of-links-in-firefox/11713537#11713537)

<comment><USER5> The main thing I'm talking about is links, that links _need_ to be real, or the interactions are all wrong, irredeemably. It _must_ be a real  element that the user hovers over and clicks on, or else the link destination isn't shown in status text (and you can't just set window.status like you used to be able to!), and modifiers don't work.

Modifiers: Ctrl+click, Shift+click, Ctrl+Shift+click, that sort of thing, which change where the link will open—current window, new window, new background tab, new foreground tab, it's up to the user agent to decide what it all means, and target=_blank is the only slight control authors can have. If you use open(…) or similar, it will do the wrong thing.

open() is a very flimsy tool that has (or should have) very limited use. Browsers are likely to block it, though they _may_ allow it to operate as part of an event handler.

Concerning DOM elements matching the canvas contents, yes, that's the approach that needs to be taken; and it _needs_ to be taken. This leads me to suspect that for many applications minimising the part that happens in the canvas, or making an SVG/canvas hybrid, may be more sensible.

The few examples I looked at seemed to _start_ in the direction of doing this, but not take it as far as it needs to be taken to satisfy accessibility.

<comment><AUTHOR> >> It must be a real  element that the user hovers over and clicks on

For each <canvas> element that Scrawl-canvas wraps, it adds a hidden  element to the DOM, immediately after that <canvas> element. Creating a graphical entity with an anchor attribute will trigger the library to add an  element to the hidden  element. When the user clicks on the graphical entity in the canvas, the library creates a new MouseEvent 'click' event and then dispatches it from the  element.

The anchors are not directly placed over the graphical entitys in the canvas, but they are there in the DOM.

>> Modifiers: Ctrl+click, Shift+click, Ctrl+Shift+click, that sort of thing, which change where the link will open—current window, new window, new background tab, new foreground tab, it's up to the user agent to decide what it all means, and target=_blank is the only slight control authors can have.

For Chrome running on a Macbook Pro: Shift+click opens the link in a new window; Command+click opens the link in a new tab but remains on the original page. I've not tested this functionality yet for other browsers, or for any browser running in a different OS/device.

>> If you use open(…) or similar, it will do the wrong thing. open() is a very flimsy tool that has (or should have) very limited use. Browsers are likely to block it, though they may allow it to operate as part of an event handler.

The library makes no use of window.open(), or similar. Links are driven by MouseEvents:

        let e = new MouseEvent('click', {
            view: window,
            bubbles: true,
            cancelable: true
        });

>> Concerning DOM elements matching the canvas contents, yes, that's the approach that needs to be taken; and it needs to be taken. This leads me to suspect that for many applications minimising the part that happens in the canvas, or making an SVG/canvas hybrid, may be more sensible. The few examples I looked at seemed to start in the direction of doing this, but not take it as far as it needs to be taken to satisfy accessibility.

I am grateful for the feedback! If the responses I've given above indicate that my thinking is flawed, then it is much better for this flawed thinking to be exposed and examined - and, if possible, fixed in the near future - <USER2> than letting them lie hidden and festering in the library, making it unusable for serious production sites.

<comment><USER5> Interesting. I had forgotten that synthesising events and dispatching them triggered the appropriate functionality. I knew it once, but for some reason I'd ended up thinking that .click() was special.

Anyway, it's not enough to simulate clicking on the anchor element, for two reasons:

• As hitherto stated, the anchor element is not there under the mouse; so any _other_ interactions definitely won't work properly. e.g. hover should show the link destination in the status bar, and right click should open a context menu with items like "open link", "open link in new tab", "open link in private window", "send link", &c. I don't believe that either of these can be triggered programmatically.

• It doesn't have the desired effect across all browsers. In fact, I find it surprising that a synthesised click event would have modifiers work in _any_ browser, and I'm inlined to call it a bug. The synthesised event doesn't have the modifiers like ctrlKey set on it, so if Chrome is trying to be helpful by guessing that you probably want the modifiers to apply even to the faked event (which is a dubious assumption) then it puts it at odds with event handlers, which will see events without ctrlKey _et al._ And if you try to set ctrlKey in Firefox (haven't tried in any other browser) then it ignores the event (which I find a tad surprising, but I'm guessing it's a form of browser hijack protection), so there doesn't seem to be any way to make this simulation approach work in Firefox.

There's a lot you can do in browsers, but there's also rather a lot of user agent functionality that can't be faked, like  and scrolling. And so for those sorts of things, I say: use the native functionality, and accept no substitutes.

I am heartened to see how carefully you've been thinking all these things through. Nice job!

</comment></comment></comment></comment></comment><comment><USER6> Cool project. I used a somewhat similar project fabric.js to build an interface to display OCR boxes on scanned documents and label them them for document understanding. The essential feature was to display polygons on top of the document image, which were editable by hand (resize, translate, zoom, rotate).

<comment><AUTHOR> I agree that Fabric.js[1] is an excellent Canvas library. I still follow Kangax, who started that project, on Twitter.

[1][http://fabricjs.com/](http://fabricjs.com/)

</comment></comment><comment><USER7> On Linux Firefox 75 the page shows only teal background.

<comment><AUTHOR> Thanks for the bug report!

Firefox is choking on this regular expression: `let matches = val.toString().match(/\\((. _?)\\)._?\\{(.*)\\}/s);`

Firefox doesn't support the dotAll /s flag yet - [https://developer.mozilla.org/en- US/docs/Web/JavaScript/Refe...](https://developer.mozilla.org/en- US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/dotAll)

I'll investigate - see if there's a way around this issue. Do you/anyone have any pointers towards a possible fix?

<comment><AUTHOR> Ah - no worries. Found a potential solution. Will try it and, if it works, do a new release later today

[https://stackoverflow.com/questions/1068280/javascript- regex...](https://stackoverflow.com/questions/1068280/javascript-regex- multiline-flag-doesnt-work)

</comment></comment></comment><comment><USER8> This is beautiful! Congratulations!</comment>


Live Face Substitution with JavaScript - <AUTHOR> https://auduno.github.io/clmtrackr/examples/facesubstitution.html <comment><USER2> Didn't seem to work for me in Chrome. I got a face outline, but it never drew the overlay.</comment>


Suggest HN: Standard file locations for website info - <AUTHOR>

It would be nice, for automation, to standardize information locations.
For example, the standard logo for a company could always be at http://website.com/images/logo.png  Perhaps there could be multiple sizes of logos that are standard as well.
You could also have contact information always at /contact or /contactus
I'm not so concerned about the actual urls as I am the desire to start a convention like this that we can all use moving forward.  How many times have we pasted a link to our logo or uploaded our logo?  Or a company asked for it for an article or testimonial, etc...
If we could just specify a base url to grab the information, from any service we choose pretty much, then life would be a lot easier for us all. <comment><USER2> Standard locations are horrible things, imo.

Better would be another <link rel> type. The "contact us" one might even already exist.</comment>


Rails 5.1.0 Beta 1 - <AUTHOR> http://weblog.rubyonrails.org/2017/2/23/Rails-5-1-beta1/ <comment><USER2> I don't like this "secret storage" system. Unauthenticated CBC mode, and doesn't actually set an IV (I'm assuming a hardcoded default comes into play).

<comment><USER3> This needs to be higher up. It's using Blowfish (a 64-bit block cipher), unauthenticated, in CBC mode. These should _not_ be the defaults for a system designed and built in the past five years.

<comment><USER4> What should be the default?

<comment><USER3> AES-128-GCM (or ChaCha20-Poly1305 if you're feeling particularly hipster) with a new, random IV every time data is encrypted.

</comment></comment></comment></comment><comment><USER5> Actually pretty major release. Hopping on javascript's crazy train. It was expected anyway, there are no way to ignore js-crazyness anymore (most of the frontend toolset exists only as js implementation).

Also, Phoenix (ideological successor of rails) took this approach from the start

<comment><USER6> I think the JavaScript updates are great news, enough for me to finally dive into Rails.

<comment><USER7> This release is in my opinion a life saver for Rails. Instead of forcing people to hop off the Rails train, it empowers them and let them choose their favourite JS library on top of it, while serving them hassle-free, in a very rails fashion.

Shouldn't this have been shipped in 5.1, it might have very well been a bit too late.

</comment></comment></comment><comment><USER8> The marquee upvote worthy headline:

ES6 love + webpack + Yarn in the asset pipeline.

If you're still in rails land this seems pretty cool.

</comment><comment><USER9> This is awesome. Webpack and yarn are incredibly powerful tools. There's a learning curve with webpack, but once you pick it up, it's easy to make it do anything you need. If you actually dig into the internals, you quickly realize that everything is incredibly modular and you can pretty much hook into everything.

If you're not already using yarn, go check it out right now. Migrating literally took our team less than 5 minutes, and we haven't had a single problem so far. Its default behavior is much more sensible than npm.

Writing a SPA that handles every edge-case is really challenging, so it's actually incredibly refreshing to write a fully server-side rendered app. Especially after spending a lot of time working on SPAs. It's pretty mind- bending how easily you can wire up a meaningful prototype, just by sticking to rails' guidelines. Even though my love for ruby has diminished after having tried other languages, I'll still happily reach for rails in many situations.

I think for many apps you'd strike the best balanced in complexity by mixing both server-side rendering and having some pages which are small javascript applications, instead of going for a full-blown SPA. Depending on what the app does, somewhere between 5k and 10k SLOC seems to be a sweet spot for an app to be useful while still being trivially easy to change and keep track of everything. Once you pass ~20k SLOC, I've found it starts to get harder to follow everything, and changes start to require a bit more effort. It's worth noting that those numbers are pretty arbitrary and are probably wrong :). Again, it depends on the application.

In my job we had a period where everything was handled by a SPA, and it was pretty painful. If you have a password-gated app, consider doing all the auth views with server-side rendering, and only load the SPA for logged-in users. This lets you drastically simplify how you handle things like resource caching and routing. Leverage the server more, stop trying to handle everything on the client! That's gotta be one of the most important lessons I've learned.

My really big complaint with rails is that it works so well until it grows enough, and then it gradually starts to fight you. How do you transition beyond rails MVC? I've looked at stuff like Trailblazer [0], but I'm uncertain if that's really the direction a growing rails app should take.

[0] [http://trailblazer.to/](http://trailblazer.to/)

<comment><USER10> Good points! It always seems easy to start with a SPA for a small app but I noticed that it can be quite hard to maintain if the app is not super actively developed. Even if the code is simple you usually have a lot of dependencies, not always well maintained themselves, and upgrading is hard.

</comment></comment><comment><USER11> This is pretty great. Since hopping back onto Rails about six months ago, I've made a habit out of removing the asset pipeline from every new project in favor of webpack and Yarn. It always feels a little cobbled together, but worth the trouble to take full advantage of the JS ecosystem. Having these tools as a native part of Rails will hopefully make my own workflow a bit more streamlined. Looking forward to it.

<comment><USER12> How do you handle versioning of the compiled assets and linking to them from the view? `<%= javascript_tag 'foo' %>` is the main benefit of the asset pipeline to me, so they can be long-expiring and busted with any change.

I, too, agree that the asset pipeline is clunky. But at my startup we went the other way: use npm/webpack but compile the resulting file _into_ the assets directory, so we can still use the asset pipeline. It sort of double processes the assets but it was the only way I could think of to take advantage of modern JS with imports and exports, and still get the cache-busting goodness and easy rails view interoperability.

<comment><USER9> You can use a plugin like assets-webpack-plugin [0] to get a JSON file that maps to the compiled file names. That's basically the same thing asset pipeline would do.

Here's a blog post [1] explaining how to use webpack with rails.

[0] [https://github.com/kossnocorp/assets-webpack- plugin](https://github.com/kossnocorp/assets-webpack-plugin)

[1] [http://clarkdave.net/2015/01/how-to-use-webpack-with- rails/#...](http://clarkdave.net/2015/01/how-to-use-webpack-with- rails/#including-precompiled-assets-in-views)

</comment></comment></comment><comment><USER13> These release notes _really_ let Rails down. Crowing on about the number of commits and rationalising decisions is a waste of my time, just explain how it's going to make or ruin my day. Links you'd expect to explain features just take you to source files, not documentation. And a HUGE amount of the changes are actually scattered around in sub-project changelogs.

They should look at Django for some inspiration. Here's their latest beta release notes [1]. It's concise, _everything_ links to relevant documentation with examples, and the entire project's changes are handled on the one page. There's even a list of things to check if you're upgrading.

[1]: [https://docs.djangoproject.com/en/dev/releases/1.11/](https://docs.djangoproject.com/en/dev/releases/1.11/)

<comment><USER14> I think they're excellent – the text is actually interesting to read and it gives me a much better impression of the relativ importance of changes than a simple list would.

I also can't find fault with giving some appreciation to the relevant people who contributed by actually naming them.

<comment><USER13> You'd call the Django release notes a simple list?

My main problem isn't the fluff, it's the lack of real documentation for new features. Or that the link doesn't go to the documentation, it goes to the merged PR on guthub. And that it's very incomplete (see Everything else).

This is not excellent, in that it could keep the things you like and still be much better.

</comment></comment></comment><comment><USER15> At StackShare[0] we're using the webpack-rails gem to use React and ES6 javascript.

[https://github.com/mipearson/webpack- rails](https://github.com/mipearson/webpack-rails)

It would be awesome if someone could write a migration guide for this switch. I'm sure a lot of Rails teams are using the webpack-rails gem and are planning to switch to the official gem.

[0] - [https://stackshare.io/stackshare/stackshare](https://stackshare.io/stackshare/stackshare)

</comment><comment><USER16> I'm happy they've provided a solution to Encrypted Secrets instead of simply saying "You should not commit secrets".

<comment><USER17> There's a new command, `bin/rails secrets:setup`. I haven't worked with any recent versions of rails, but it's kind of surprising that they are just now addressing this. I know I've seen Rails secrets being checked into Github.

<comment><USER3> Even with this, I think it's personally a bad idea. But sometimes security is improved more by reducing the _impact_ of making poor decisions (e.g, storing secrets in your repo more safely) than it is by chastising users to make better decisions (not storing them in your repo at all).

</comment></comment></comment><comment><USER18> Is CoffeeScript still the default then? I see it referenced in the codebase still.

<comment><USER19> I'd imagine with ES6 all nicely wired up in this release that moving away from Coffee would be an obvious next step but was way to large to undertake in one release.

</comment></comment><comment><USER20> I am the only one who sees this JS integration as bloated overkill?

Nowadays developers prefer to do SPA based approach where you have API (RoR - JS Stuff) and Front-End (Whatever front-end people decide to choose that will be outdated in 1 year).

Why can't RoR just focus on the back-end stuff instead of adding bloat that will be obsolete in 1 year?

<comment><USER21> Because it's a fullstack framework.

</comment></comment><comment> wes-k biggest change for me is the new webpack gem. Hopefully I can replace my current setup with this so that I can get seamless es6 within my asset pipeline.

</comment><comment><USER22> Very interested to see how webpack plays with the asset pipeline.

With Capybara, I'm not keen on the default transactional rollbacks. The reason for this is, that it's handy to keep the data in the db after a test to see what the final state of it was. I always drop the data before a test runs - but then again, I prefer the use of factories over fixtures.

Can someone please explain the benefits of this encrypted secrets business?? I'm struggling to see the benefit - I understand that you need access to the code + the env var, but in all practicality, if someone has access to your env vars, then is it really that much more of a reach to figure out what the key in the code is?

<comment><USER3> In a nutshell, the point is that despite near-constant warnings not to commit secrets to repositories… people do. So this lets developers commit secrets to their repo with reduced risk of leaking the secrets themselves.

That said, there are other good reasons not to commit configuration like this to your repo (configuration and code don't always change in unison; sometimes you need to use older code with more recent configuration, for example) but it's at least better than the current situation where careless developers wind up with thousands of dollars of charges against their AWS accounts after accidentally committing AWS keys.

<comment><USER22> So, I guess now these same developers will commit two keys into their repos? :D

</comment></comment></comment><comment><USER23> I had heard that Capyabara-based tests were going to be incorporated in Rails. As the multi-threaded concurrent nature of these always makes things a pain, hard to get right, leading to much pain for devs with non-trivial test suites -- I was curious to see how they'd handle it, if there'd be an 'official' Rails solution, ideally backed by some deep Rails knowledge.

I was surprised that they've chosen to use the 'shared database connection accross two threads' approach. While this was for a while popular approach amongst people trying to figure out the best way to use Capybara-based tests with Rails -- mostly because you get to keep transaction-based database cleanup -- it was largely determined through experience to be too flaky. ActiveRecord's architecture just wasn't designed for a Connection object (representing a single actual network connection) to be shared between two threads, it's not a thread-safe object.

José Valim originally proposed the approach in a gist, and you can see a long discussion among people having hard-to-debug problems with it here: [https://gist.github.com/josevalim/470808](https://gist.github.com/josevalim/470808)

There are other such threads in various places from over the years.

Here's one blogger explaining the race condition issue, with the ActiveRecord architecture not actually being concurrency-safe in this use case: [http://influitive.github.io/news/2015/09/02/dont-use- shared-...](http://influitive.github.io/news/2015/09/02/dont-use-shared- connection.html)

I thought I remembered Valim actually posting somewhere himself "Yeah, turns out, that wasn't a great idea", but now I can't find it. (It may be that José deleted most of his tweets when he left twitter?)

So I'm surprised Rails took this approach. I can't tell for sure if the approach now in Rails just basically takes Valim's approach (violating AR's concurrency contracts and expectations), or actually takes a new approach that will truly be concurrency-safe, while somehow still sharing the connection (another lock somewhere? Are AR connections in general now safe for sharing between threads? Cause that'd be huge if it was true in the general case). [https://github.com/rails/rails/pull/28083](https://github.com/rails/rails/pull/28083) Can anyone else?

Either way, reliable Capybara has been a real challenge to a lot of devs due to race conditions, it would be shocking if Rails gets it right on the first try, when many devs haven't managed to figure out a right way to do it in years of trying! I expect lots and lots of frustrated devs running into race conditions and filing Issues. It will be interesting to see if this ends up a maintained feature, or another Rails internal abandonware. If dhh and his team use it, and run into the race conditions, then it will certainly be addressed; otherwise, some 'difficult' Rails features seem to sometimes end up basically abandonware.

<comment> why-el What kind of race conditions are you talking about? I ran this setup for years, and just about the only thing that has been stable in the whole setup is ActiveRecord.

<comment><USER23> You ran the shared connection situation with no problems? Great, but I linked to examples of people who have had different experiences, you can follow the links to see. Like all race conditions, sometimes they appear and sometimes not, and it can depend on your particular app.

They are not surprising, because the concurrency guarantees of AR do not include sharing a connection object between threads, it is not meant to be thread-safe.

With postgres, the race conditions on sharing a connection between two concurrent threads sometimes look like "PG::Error: connection is closed" or "PG::UnableToSend: another command is already in progress", with mysql sometimes like "Mysql2::Error: This connection is in use by: #<Thread:...>"

</comment></comment></comment><comment><USER24> Looks like fanatastic release! Yarn and Webpack support, inspired from Phoenix probably. Capubara!... I mean Capybara and DB cleanup. All this looks pretty great. I need to look into mailer upgrades.

</comment><comment><USER25> How is the upgrade to 5.x from 4.x? Kinda dreading rolling out the upgrade and running into the inevitable gem incompatibility dance.

<comment><USER26> Wasn't a huge pain in my opinion. I always use [http://railsdiff.org](http://railsdiff.org) to start, but yeah I did run into a couple of unmaintained gems that weren't compatible and I had to patch myself.

</comment></comment><comment><USER4> Great improvements here which will eliminate boilerplate setup in a lot of circumstances. Thanks to everyone who has contributed!

</comment><comment><USER27> I feel like it should be version 6 instead of 5.1. Many should be considered as major release

</comment><comment><USER28> In terms of integration with Javascript, RoR seems to be behind for example (PHP) Laravel.

<comment><USER26> After this integration with webpack, will it still be behind?

<comment><USER29> I wouldn't have thought so.

Laravel 5.4 shipped a month ago with browser integration testing and Webpack by default, now Rails has the same.

</comment></comment></comment><comment><USER30> nice! A welcome addition to my default stack. Thank you rails team for putting in the work!</comment>