HNHacker News
TopNewBestAskShowJobs

ryantownsend

109 karma · joined June 8, 2010

[ my public key: https://keybase.io/ryantownsend; my proof: https://keybase.io/ryantownsend/sigs/vcABc_WLxLlnkz44thLfpHGOvYmF-BSsuCrXNn9LWTE ]
submissionscomments
ryantownsend··on We fell out of love with Next.js and back in love with Ruby on Rails
In my view, DX should be renamed "Developer Convenience" as we all know that convenience is often a trade-off.

Please forgive the self-promotion but this was exactly the premise of a conference talk I gave ~18 months ago at performance.now() in Amsterdam: https://www.youtube.com/watch?v=f5felHJiACE

ryantownsend··on How do HTTP servers figure out Content-Length?
iirc, most content delivery networks have now configured initcwnd to be around 40, meaning ~58kb gets sent within the TCP slow start window and therefore 14kb is no longer relevant to most commercial websites (at least with H1/H2, as you mentioned QUIC/H3 uses UDP so it's different)
ryantownsend··on Core Web Vitals for Search Engine Optimisation: What Do We Need to Know?
Great to see presentation of actual facts rather than unsourced anecdotes – it cleared up some of my own misinterpretations.
ryantownsend··on Postgres 15 Merge Command with Examples
This will make complex upserts so much more simple, fantastic addition.

I really hope `RETURNING` support gets added to `MERGE` asap though (I believe it's been noted as a fairly trivial addition to come in future), then it'll be super powerful for doing bulk upserts that require post-processing.

ryantownsend··on Removing HTTP/2 Server Push from Chrome
You've got a fairly heafty JS file on the critical rendering path (350kb), so one option to help your roundtrips 3 is to preload the other files it uses so it's not dependent on the JS download and executing before they are discovered. See: https://web.dev/preload-critical-assets/
ryantownsend··on Heroku resetting passwords for “a portion” of their users immediately
Another thing to be mindful of with Render: currently there's no native high-availability Postgres / Redis.
ryantownsend··on Grenfell Tower inquiry: key things we’ve learned this year
I don’t want to distract from the tragedy itself but, even after all this, more people will continue to suffer due to the subsequent cladding scandal.

The UK government are trying to pass the costs of remediation for other cladded buildings on to leaseholders who didn’t have any involvement in the design, build or sign-off of their buildings.

Some people are already being bankrupted through extortionate waking watches, mitigation and remediation bills and I’ve even heard that one person in my city (Leeds) has killed themselves due to the stress.

According to the select committee reviewing the Building Safety Bill, “the only people who believe leaseholders should pay are the government”.

The House of Lords has proposed an amendment to the bill stating that leaseholders won’t be made to pay (note: not forcing the tax payer to pay, just ensuring the leaseholders don’t) and the Housing Committee (namely MP Robert Jenrick) are rejecting this on the basis that the tax payer shouldn’t foot the bill.

We’re talking sums amounting to up to £100k being charged to people who paid similar amounts for their apartments in the first place! One affected block was built since Grenfell, so the entire ownership could effectively be in massive negative equity.

The government have put together a fund of £1bn for non-ACM cladding remediation, expecting that to cover ~600 buildings, but already over 2,700 buildings have applied and the estimated cost UK-wide is upwards of £15bn.

The whole thing is an utter shambles and people are stuck unable to sell their properties (stalling the first time buyer market as they can’t move up to other properties, and meaning they cannot move for work in a time when there are masses of redundancies) or even remortgage!

ryantownsend··on Mandrill has been down for over 30 hours with no explanation
> Mandrill has a `render` endpoint which makes this easy. None of the others have this yet.

Campaign Monitor have the ability to take an API call and render into HTML using templates, this might do what you want: https://www.campaignmonitor.com/features/transactional-email...

(I'm unaffiliated with CM, just a customer)

ryantownsend··on Google AMP – A 70% drop in our conversion rate
> schwinn: were the filmstrips enough to convince them, or did your bosses want to see numbers/stats like how many were dropping off your site for each x-seconds of delay?

There are some great stats on bounce rate / abandonment on WPOStats: https://wpostats.com/

This is my favourite:

> 53% of visits to mobile sites are abandoned after 3 seconds according to research from Google's DoubleClick.

One thing to note, to those stakeholders who are aware of web traffic stats, is that if a site uses client-side analytics (e.g. Google Analytics) and it hasn't loaded the analytics script by the time the user abandons the site, they won't be tracked, so the bounces won't be affected – it'll be like they were never there.

So ultimately, bounce rates in analytics tools can typically be significantly worse than reported when web performance is poor.

ryantownsend··on Google AMP – A 70% drop in our conversion rate
One technique I've seen work well for getting bosses to care is showing them how much slower their sites are than their competitors - nobody wants to be worse than their competition.

In SpeedCurve, for just around $8/mo per page/site you can set up daily synthetic checks for the business and its competitors, covering multiple profiles: mobile/3g, tablet/4g, desktop/fibre.

You can use both the metrics (Start Render, SpeedIndex, Hero Paint) [1] and the filmstrip videos to literally show them how they compare side-by-side [2] – this is super-powerful as it's so visual.

Disclaimer: I don't work for SpeedCurve, just a fan of the tool.

[1]: https://speedcurve.com/features/synthetic/#benchmark [2]: https://speedcurve.com/demo/video/?tests=180102_1T_d12fa882f...

ryantownsend··on Nginx HTTP/2 server push support
You might want to read https://jakearchibald.com/2017/h2-push-tougher-than-i-though...

This is specific to H2 Push

ryantownsend··on Progressive Web Apps in Microsoft Edge and Windows 10
iOS is getting Service Worker support in 11.3 [1], this is one of the key foundations for PWA support, so the situation is improving. I reckon it’ll be a long time before we see PWAs in the App Store though!

1: https://caniuse.com/#search=Service

ryantownsend··on How Long Is Long Enough? Minimum Password Lengths by the World's Top Sites
It makes sense as an approach – Dropbox open-sourced a library along these lines, called zxcvbn: https://github.com/dropbox/zxcvbn
ryantownsend··on I decided to disable AMP on my site
I'm going to guess Google would penalise that behaviour for showing different content, justifying it as "harming the user experience" or something.

If they don't do this already, they probably will if they keep going down the AMP rabbit-hole.

ryantownsend··on Mac Pro 2 Concept Design
Are 16x TB3, 4x TB2 AND 4x USB3 actually achievable with current/near-future hardware?

If Apple were to implement this, I'd imagine it would be N x TB3/USB3 USB-C format ports, an ethernet port and maybe HDMI (though a dongle would possibly negate that – if 2.1 can be achieved that way)

Otherwise, looks good to me.

ryantownsend··on Hackers say Friday's massive DDoS attacks were just a dry run
Can anyone comment on the best way to run multiple DNS services?

Is this as simple as setting up the same records on multiple providers and updating your nameservers to point to the different providers? Or is there more involved?

Are there any providers which will replicate records from your 'master' provider, or is this going to be manual?

ryantownsend··on Blaze CSS – Open Source Modular CSS Framework
It's not so much about performance, it's about specificity. To override anything in `.c-button.primary` you'd need something to have equal or greater specificity (meaning you couldn't do `.c-button--large`).

Obviously this is a fairly basic example, but with more chaining comes more levels of specificity which makes for increasingly difficult changes and worse productivity.

ryantownsend··on Apple Pay on the Web
Does anyone know if this is going to be available via the standardised Web Payments API? [1] (support being worked on by Chrome [2] and Microsoft Edge [3]) That way web developers won't need to build different implementations for different platforms.

[1]: https://web-payments.org/specs/#transactions

[2]: https://www.youtube.com/watch?v=yelPlCVZLEE

[3]: https://blogs.windows.com/msedgedev/2016/02/03/2016-platform...

ryantownsend··on What's new in Rails 5?
I agree with the above. That said, even if you are doing something new, you don't need to reinvent the wheel – it may be worthwhile taking a look at https://www.contentful.com/ (not affiliated, just an interesting service) and utilising their API to build an application which purely delivers the added value.
ryantownsend··on Will WhatsApp kill Slack?
Ditto this, the integrations are really the icing on the cake for Slack.

We've even written notifications from our own applications to push into Slack, so we get notified on everything from continuous integration test results and deployments through to analytics and sales figures.

ryantownsend··on SNI and HTTP to HTTPS Redirection for CloudFront
This is excellent news - SNI very widely supported in browsers now, so there is little excuse to avoid it.

Would be great to see SPDY/HTTP2 support so the overhead of serving many small assets (i.e. typical website use) would be reduced.

ryantownsend··on Pixelmator 3.0
I also use this setup. Sometimes Sketch can be a little fiddly to get SVG export working properly, so iDraw fills that niche nicely for me.

I'm glad to finally see Layer Styles in Pixelmator, for years this feature has been preventing it from being comparable to Photoshop in the eyes of many. The forum was full of people requesting it, the argument was they wanted to "get it right" rather than rushing, which is valid, but it's not really any different from Sketch or Photoshop, so I'm not sure that was really the truth (maybe a Pixelmator dev could shine some light on that?), that said - it's here now so no complaints :-) excellent work chaps & chapettes!

ryantownsend··on GoDaddy, Media Temple, and the Horrible World of Web Hosting
If you happen to be doing Rails development, it may be worth checking out Ninefold: http://ninefold.com/pricing [no affiliation of mine]
ryantownsend··on Dribbble offline due to Postgres problem
I also have this problem intermittently - using Chrome v26, Mountain Lion.
ryantownsend··on Rails 4.0 Whirlwind Tour Presentation
WebSockets enables two-way communication between the server and client.

ActionController::Live is merely an improvement of the HTTP Streaming functionality where the server will send HTML (or other data) down to the client part way through the request. So the server can send data, but not receive it from the client.

If you want to stream data to a client, then you can keep the connection open and just never "finish" the page. If you do this you'll have to be careful with concurrency etc, hence the requirement to use Thin/Rainbows/Puma not Unicorn.

A better comparison would probably be the new HTML5 Server-Sent Events (SSE) functionality. Though I'm not too familiar with that spec yet, so I can't comment on that.

ryantownsend··on Anvil - a Mac app for Pow
I'm curious as to whether you can submit an app to the MAS which integrates with non-MAS apps? Any idea whether Apple allows that?

e.g. so you could offload any frowned-upon functionality into external apps/services, and maybe promote or offer automated download & install functionality within your own app...

ryantownsend··on Cheddar
And randomly a different serif font. The line-height on the actual app's UIToolbar title is a bit too much too, should be slightly higher up, imo.
ryantownsend··on How I attacked myself using Google and I ramped up a $1000 bandwidth bill
I believe this kind of attack is already referred to as EDoS (Economic Denial of Service/Sustainability) - basically killing of a service through bankruptcy.

This is why most cloud services have a customisable limit on how many virtual servers can be booted automatically, a solution is yet to be found for protecting S3.

ryantownsend··on Who makes the little promo videos that startups typically have?
http://www.epipheostudios.com/ have had some big clients, including Facebook, Google, Yelp, Microsoft
ryantownsend··on Ask HN: What's a great email deliverability service?
I've been using Postmark for a while now, it's a no brainer to add to all of my projects - for Rails it takes literally a few seconds to integrate and that fact alone makes it worth using.
Page 1 of 2Next →