Tim Perry

Senior software engineer at resin.io.
Creator of Build Focus, keen open-source contributor, and maintainer of Loglevel, Git‑Confirm and Server Components.

Post on Medium
Lastly, users tend to get a bit complainey about people intercepting and saving everything they type, particularly credit card numbers, passwords and the like. So it’s important that they don’t know you’re doing this. Wink.

I don’t need to worry about covering the boring stuff like privacy and security

Woah there, ok. This is an interesting technique, but it needs some huge warnings on top!

If you’re doing this for real after Spring 2018, you have any EU users, and you’re not extremely careful, then this is illegal and subject to fines of up to 20 million euros or 4% of business turnover, whiche...

HTTPS Is Not Enough at Codemotion Milan

Federate your content just one more step, all by yourself, and making jumping ship a little less scary.

Mastodon has been quietly building popularity for a good few months now, but over the past 48 hours it’s really burst to life, leaping from 25,000 to 40,000+ users in no time at all.

This is an exciting good thing: we’ve been in desperate need of less centralized and walled social networks for a good long time now.

Moving on from Twitter though isn’t easy, as many of us have been there many years, and dumping all your friends there is a high price to pay. What you need, is a way to sync between ...

Because sometimes you want to know if they actually work.

Bash scripts are unloved and underappreciated. Many of us developers spend a lot of time on the command line, and a good shell script is an incredibly powerful thing to drop into & extend your existing workflow.

Shell scripting isn’t easy though. Many of the tools and techniques you might be used to aren’t nearly as effective or well-used on the command line. Testing is a good example: in most languages, there’s a clearly agreed basic approach to testing, and most projects have at least a few tests sprinkled around (though often not a...

CSS-only tabs are a fun topic, and :target is a delightfully elegant declarative approach, except for the bit where it doesn’t work. The #hash links involved jump you around the page by default, and disabling that jumping breaks :target in your CSS, due to poorly defined behaviour in the spec, and corresponding bugs in every browser.

Or so we thought. Turns out there is a way to make this work almost perfectly, despite these bugs, and get perfect CSS-only accessible linkable history-tracking tabs for free.

What? Let’s back up.

What’s :target?

:target is a CSS psuedo-class that matches an element i...

I just found @DevDocs (https://devdocs.io), from an interview candidate no less. Love MDN, but the search and… https://twitter.com/i/web/status/965546065742258176
Ensure login does not wait for the browser process to close
Tweak TS & add missing deps that may cause build failures in some envs
Shiny new device to play with! It's an @LTEKelektronika FF1705: a @MultiTechSys xDot chip (i.e. LoRa LoRa LoRa) on… https://twitter.com/i/web/status/964496699896025090
My tiny new @typescriptlang module of the day: typesafe-get https://www.npmjs.com/package/typesafe-get get(obj, 'key1', 'key2') Equi… https://twitter.com/i/web/status/964446274702446592
New repo: pimterry/typesafe-get
Want to know how @resin_io builds native ARM code, at scale, at speed? We're using @packethost to get real bare met… https://twitter.com/i/web/status/964220139695759360
The @RAKwireless + @resin_io guide to setting up a @thethingsntwrk gateways is out: https://www.thethingsnetwork.org/docs/gateways/rak831/. Time… https://twitter.com/i/web/status/964138033476964352
Setting up some new automated interview tests! Unfortunately, this means I need to check them, and effectively go t… https://twitter.com/i/web/status/964135158533296128
Announcing ⭐️ Mockttp ⭐️: https://github.com/pimterry/mockttp Powerful friendly HTTP integration testing for #JavaScript. Rea… https://twitter.com/i/web/status/963795289084715014
This is a neat deprecation approach: https://githubengineering.com/crypto-removal-notice/ Kill deprecated crypto standards for only one hour, t… https://twitter.com/i/web/status/963734493688483840
Update tests to stop using various recently removed device types
Make iterall as a runtime dependency
Upgrade pinejs-client to v4
Make small corrections to typings for device.register
WIP: Try to improve test stability with a small delay on reset
Remove support for CLI plugins
What https://t.co/QafH2JruFg
Assorted tiny fixes
Canary tokens: https://www.mulliner.org/blog/blosxom.cgi/security/re_canary.html Clever idea, reverse engineering or otherwise: embed some unique canary sec… https://twitter.com/i/web/status/960832771991195649
Log when local build really starts, to better explain the build process
Add support for Balena in local ssh
I love flying into Barcelona, the views across the city on the way in are incredible. If you squint a bit, you can… https://twitter.com/i/web/status/959819531584786433
Missed my #TheThingsConference talk, and want to learn about managing a fleet of devices in production with… https://twitter.com/i/web/status/959333752521490433
The @resin_io workshop has been a little oversubscribed here at #TheThingsConference... We'll be around after thoug… https://twitter.com/i/web/status/959085571573501955
I'm at #TheThingsConference in Amsterdam, surrounded by fascinating projects for LoRa and @thethingsntwrk. Are you… https://twitter.com/i/web/status/959069766697840640
Add token support, tweak config, and improve startup reliability
"Well, there's actually another approach we could take [crunch, crash] oh, shit, the cat just jumped on the [mumbles] [pause] [big sigh]."
I've been looking for more tools to help automate documentation, and just discovered Madge, which looks great for J… https://twitter.com/i/web/status/953266071573794816