This is an interesting and compelling post about using ENV values for secrets - something I do almost exclusively.
The only (big) problem I run into is that the solution offered is to use "docker secrets" which, for the vast majority of my own work isn't something that's available (I don't use docker for my development or deployments).
It makes me wonder, is there a simple alternative for those non-docker devs 🤔
I've been using Simplify (v1) for so long now that when I do come across the original Gmail design I find it visually jarring and overwhelming.
This is such a good product and I'm glad that it's moving into a paid for business model because I can give them my cash in the safe knowledge that the extension will continue to be supported even as Gmail changes under it.
Free is great, but longevity is better and always worth paying for.
Sara Soueidan's post on what keeps her focused is a great read (even if I did miss it being posted over a month ago).
Generally I have a similar process to my day to day work, but two things that specifically stood out for me. She writes
I’ve found that I like to create standing, and consume sitting.
I've realised I have exactly the same approach I just hadn't articulated it. Now that I've got words to go with this process, I'm intentionally switching from standing to sitting depending on the type of work I'm doing.
I've got an IKEA Bekant desk with a custom hack "Megadesk" - so switching to the predefined sit/stand positions is simple for me.
The other item that jumped in Sara's post was the note on music. I love music. Since as far back as I can remember, I've intentionally listened to music more often than not listening to music (i.e. it's always there) - but a funky track can sometimes be distracting and I've used Noisli (similar to Noizio that Sara mentions) for relaxation sounds, but it's not quite "in the zone music".
There's so many code examples that hint at running your code on the terminal prompt, and that hint is a $ character at the start.
I've written about how I run my blog in a way that this character isn't actually part of the content (it's an non-selectable CSS pseudo element), but this doesn't help when taking code from other sites.
Mikkel's tiny, tiny script is so elegant I pinched it right away. The script, called $ consists entirely of:
Now whenever I paste a line starting with $ ... the command runs as I would intend. Perfect!
An excellent dissection of The Social Dilemma, a programme on Netflix that I've not been particularly interested in watching, partly because I'm fairly aware of how badly we've messed up our privacy, but also correct, it would seem, I avoided because of the self rewarding Silicon Valley boys claiming "I meant well" whilst carrying on similarly badly thought out paths.
One of the fascinating things about The Social Dilemma is that in one scene a person will proudly note that they are responsible for creating a certain thing, and then in the next scene they will say that nobody is really to blame for that thing. Certainly not them, they thought they were making something great! The insiders simultaneously want to enjoy the cultural clout and authority that comes from being the one who created the like button, while also wanting to escape any accountability for being the person who created the like button. They are willing to be critical of Silicon Valley, they are willing to be critical of the tools they created, but when it comes to their own culpability they are desperate to hide behind a shield of “I meant well.” The insiders do a good job of saying remorseful words, and the camera catches them looking appropriately pensive, but it’s no surprise that these “critics” should feel optimistic, they’ve made fortunes utterly screwing up society, and they’ve done such a great job of getting away with it that now they’re getting to elevate themselves once again by rebranding themselves as “critics.”
Lots of quotable material, and I'll definitely be forwarding this on to my family and friends in the hope they find time to read the full article.
There's been many (many!) visualised sorting algos before, but this is particularly enjoyable - and beautiful a number of different algorithms are used to sort colour (a problem that's hard by itself).
Really interesting stuff, but also reminds me that picking an algorithms that suits the dataset is an important consideration.
This is a short list of some of the easiest things to fix for us developers and designers and is, what I'd call, bread and butter of our work.
This is the kind of article that needs to be shared amongst our colleagues so that they see the impact of sloppy/quick coding that results in a poor user experience. And again: this list of 5 items are incredibly simple to do right.
Usborne were the book publishers that as a kid, were strangely distributed via school parents' front lounge.
I remember rarely being able to afford these books though they were, and are, rife with great educational material.
I've since bought a few of these for my own kids, the modern books that is, but this page also includes a full gamut of the computing books of the 80s - in particular BASIC and how to write a wide range of adventure games - for free, via PDF.
Really great stuff even to learn some fundamentals of how computers and software works.
I'm not a TypeScript user (I've tried and run in to my own issues), yet I do see the value in Types in code.
Certainly during development with introspect into the method I want to call which helps me make sure I'm using the arguments correctly.
This post is a good primer on how to use JSDoc and how you can use it in a structured way around your code.
When VSCode picks up on the type definitions in my code, it definitely makes coding just that little bit easier.
Excellent walk through of best practices for sign in forms - something we have to do each time.
Particular highlights for me are: the show password functionality (which also includes CSS and JS to show how it can be done), aria support and reports backing recommendations (particularly for mobile UI).
Amazing visual walkthrough a crypt reminding me that there were people many hundreds of years ago meticulously carving and scratching messages and stories into stone - for us, with computers so easily and freely. Wow.
Though this is primary about an electron app, there's some very useful insights in this article on performance and changes that have direct impact on browser based load times - a useful read even if you're dipping in and out.
How to make a React app load ~30% faster – by tuning some configs and delaying some scripts
Single biggest win: if you're not code splitting, you're hurting your customers, which in turn, hurts your own business.
As BASIC returns to my radar, this was a bit of lovely timing on Twitter lately:
The first computer program in BASIC ran OTD in 1964. The language was designed by John Kemeny, Thomas Kurtz and Sister Mary Kenneth Keller.
She, the next year, was the first US woman to earn a PhD in computer science.
This is Owen's great walkthrough of Microsoft's new laptop offering, and if I hadn't just upgraded my MacBook Pro (after 6 years of use), this would definitely be at the top of my list.
If you're looking for your next laptop, the Surface Book 3 is a capable, powerful replacement for the MacBook Pro, and it's only going to get better with time. I can't recommend it more than enough. Microsoft has positioned itself as the company building the best tools for developers, while Apple has stagnated with macOS, and there's never been a better time to jump over to Windows.
The review also has a few great links to other web dev friendly workflow, including Microsoft's own Terminal app and
What I was particularly interested in is that style guide in the manual that puts forth some really nice and straight forward ideas for good, stable code, and it almost points out the weak points of Node.js with statements such as:
It's amazing to think of the monumentous impact twitter has had on the personal lives of individuals and that the site is responsible for a massive amount of intentional misinformation to further the grip of bad actors in our world.
Draft of Brown study says findings suggest ‘substantial impact of mechanized bots in amplifying denialist messages’
At first this looks like it's just selectors in on the command line to scrape HTML (though itself is useful), but where it gets interesting is the display options allowing me to display as text, select attributes or even spit out as JSON.
Great lower priced alternative to a tool like browserstack. I've paid for this service for a few years and it does exactly what I need: provides a lot of older OS and browsers, spins them up quickly and provides a screenshot service.
Word of warning: it looks like it's not been updated in a few years. But it's definitely working.
This article has some great skimmable content for how to throw errors in graphql, but most importantly it also includes how to handle re-auth, a topic that I find is so often lacking in articles around authentication - and from the example, it doesn't look too complicated.
If you are using JSON Web Tokens to authenticate the origin of a request, you will need some way to refresh the token when it expires, all without impacting the user experience
Amazing tutorials and content with live rendered previews of where you're up to in the tutorial, adding the code as the tutorials build up. Really really great method for learning code and generative art.
A detailed and excellent walk through how to profile a React app. Kent also catches the classic chicken/egg issue of profiling in dev mode and how to fix up production code so you can properly profile.
Brilliantly in depth walk through of how to set up a web dev/JS development environment on Windows. Particularly useful to someone like me who's considering putting the Macbook Pro out to pasture and jump ship to Windows.
A full online book, along with audio (and a spanish translation) to help think about startups. What I have in mind, whilst not wanting to go into full startup territory, is where there's any processes that I could take away for my own projects.
According to the court, website owners "must provide, at the time of their collection, certain information to those visitors such as, for example, its identity and the purposes of the [data] processing".
By extension, the ECJ's decision also applies to services like Twitter and LinkedIn.
Indeed the "by extension" bit is also important. It was why I removed Twitter's "follow" embed from my own blog and replaced it with my own custom code: so that they couldn't collect data on my users.
On the money when it comes to opinions about the ridiculous situation around .eu domain registration. I've had my own experience with this, and thankful it was for a internal project domain that I switched from .eu to .app
I've had this link open in my browser nearly a month after seeing Jeremy posting it. This list makes up the core ethics for working on the web. It's something I feel is worthy of re-reading every week to strengthen the message in my head.
There is one web
The web should not cause harm to society
The web must support healthy community and debate
The web is for all people
Security and privacy are essential
The web must enable freedom of expression
The web must make it possible for people to verify the information they see
The web must enhance individuals' control and power
The web must be an environmentally sustainable platform
The web is transparent
The web is multi-browser, multi-OS and multi-device
People should be able to render web content as they want
Apply these ethics and you'll build a solid and strong web, for everyone.
The source code for Google's robots.txt parser has been released to encourage developers to standardise. Apparently the Robots Exclusion Protocol (REP) has never been standardised and we developers are proving our inability to spell properly!
For example, it includes code to accept five different misspellings of the "disallow" directive in robots.txt.
I'm always on the lookout for services that offer free tiers for some experimentation - particularly around databases, "DaaS".
Developers and Open Source authors now have a massive amount of services offering free tiers, but it can be hard to find them all in order to make informed decisions.
This is a list of software (SaaS, PaaS, IaaS, etc.) and other offerings that have free tiers for developers.
Superb dive into detail on how to analyse a font's contributing to bandwidth and performance, how to pick apart the font(s) to understand what's actually included, then how to split the font up for staged loading for the best rendering performance.
Useful tools and practical (copy & paste) examples in the post too.
How Mark Everitt is using Github Actions to schedule a git process that moves scheduled posts into publish posts. Cool to see how Github Actions are, in a way, like mini executions of functions that could do anything with.
Recently, ppk claimed the web is going too fast in the wrong direction, and asked for a year's moratorium on web features. I was so angry I ran straight to a dictionary to find out what "moratorium" meant. Turns out it means "suspension".
I got a bit snarky about it on Twitter, which isn't really fair, so here's a more considered response.
Build features fast. Ship them. That's what we try to do at GitHub. Our process is the anti-process: what's the minimum overhead we can put up with to keep our code quality high, all while building features as quickly as possible? It's not just features, either: faster development means happier developers.
When you're just getting started, something as straightforward as a merge can be terrifying. It can take a long time to really become comfortable using some of Git's more advanced features. (It took me a year or two.)
I do not enlighten those who are not eager to learn, nor arouse those who are not anxious to give an explanation themselves. If I have presented one corner of the square and they cannot come back to me with the other three, I should not go over the points again.
SMACSS is a way to examine your design process and as a way to fit those rigid frameworks into a flexible thought process. It's an attempt to document a consistent approach to site development when using CSS - by @snookca