I suspect 2020 and the years to come will see LowCode solutions (like React, Vue, Svelte…) continue to gain traction by making it simple and succinct to share UI and behavior (e.g.: as UI components or hooks).
A reading list of articles and other links I use to inform my work, posted almost every weekday.
You can subscribe to my lens RSS feed.
Whoever you are, wherever you are, we have a common enemy: the nationalist international. The problems of our time transcend national borders. The solutions must also. The systems we build must be both local and global at once. The network we must build is one of solidarity.
I don’t have numbers, but I’ve heard Gmail rewrite also made it much slower with no apparent new functions. It’s still pretty drastic if you put GMail next to Fastmail, or Twitter next to Tweetdeck, both of which didn’t get any full rewrites in the last decade, so you can see how fast even Web UI could be if we weren’t constantly climbing up the abstraction ladder.
Docker and Electron are the most hyped new technologies of the last five years. Both are not about improving things, figuring out complexity or reducing it. Both are just compromised attempts to hide accumulated complexity from developers because it became impossible to deal with.
My role as Product Design Lead is figuring out our high level product design vision, advancing our design processes, working on our internal style guide, growing the team, and ensuring everyone is happy and productive. When I’m lucky, I get to work on design projects. What’s not included in my job description is making sure that subtasks on a certain project are on schedule.
Making technology that respects the rights of the people using it isn’t a fun responsibility to take on. It’s also a challenging exercise to weigh our convenience and privilege against exposing other people to harm when life feels difficult already. But we can’t sit back and expect other people/overseers/charities/ombudsmen/deities to fix our communities or industries for us. We’ve got to do some of the work, pay some of the costs, and take responsibility for ourselves. Especially if we are people who can afford it or have the time. We can’t keep prioritising our conveniences over the safety of other people.
While accomplishing things — or just plain getting our work done — is important, it’s also important that not everything go in that bucket. The life where everything is measured is not really a full life: we need room for the un-measured, the not-obsessed-about, the casual, the fun-for-fun’s sake.
Creating this new social contract requires new norms, new institutions, new laws – and a stronger public sector, that is prepared to hold a different space: uphold different kinds of progress, measure different kinds of success, and celebrate a different kind of innovation to that of big technology platforms and venture capitalists.
Indeed, growth-oriented capitalism will "sell" you veganism as a noble practice that reflects your values and benefits your health, but it would not tell you the full story about the ongoing and long-term social and ecological consequences of industrial veganism.
Saying something meaningful (especially if you want to say it well) requires more than just throwing out off-the-cuff thoughts like these. It requires thought, and more than that: it requires understanding
Collaboration with a large team is challenging, and even more so if it’s on a single codebase, like the Shopify monolith. Shopify changes 40 times a day. We follow a trunk-based development workflow and merge around 400 commits to master daily. There are three rules that govern how we deploy safely, but they were hard to maintain at our growing scale. Soft conflicts broke master, slow deployments caused large drift between master and production, and the time to deploy emergency merges slowed due to a backlog of pull requests. To solve these issues, we upgraded the Merge Queue (our tool to automate and control the rate of merges going into master) so it integrates with GitHub, runs continuous integration (CI) before merging to master keeping it green, removes pull requests that fail CI, and maximizes deployment throughput of pull requests.
In practice the vast majority of software projects find they need to change their requirements significantly within a few months, due to everyone learning more about the domain, the characteristics of the software environment, and changes in the business environment.
“If you’re too busy doing the actual work, as a manager, that’s a huge mistake.” Michael shared how you can’t truly anticipate nor respond to the needs of your team if you’re in the weeds of the work. You can’t clarify a decision or help sort out interpersonal dynamics.
If you’re serious about finding 1000 true fans for your work, you need to stop confusing attention with accomplishment and make a shift from metrics to meaning. This is not an easy shift because as a society we are programmed to seek out status. And more is the ultimate indicator of status: more followers, more money, more traffic.
[UIImage imageNamed]is the de-facto method for loading images on iOS, so, why was it slow? It turns out, React Native was passing it absolute paths instead of referencing named images in the bundle. So, we deleted all the images again and added a few of them to the bundle and tried again. Now, the exact same images were loading in 0.1ms and the app was fast.
Yes, this is screwy, but welcome to the web! I see far worse on a near daily basis and arguably, there are multiple different circumstances in which you may genuinely need a script block that contains dynamic content that's potentially malicious. But that means you can't return a hash because you simply don't know what the script block will contain. Yes, you could build the whole thing up dynamically, calculate the hash then return that in the CSP and render the script block to the page but not only is that getting super messy, it doesn't help with the maintainability problem.
Each time you write a page, you are a writer. Each time you practice the violin, you are a musician. Each time you start a workout, you are an athlete. Each time you encourage your employees, you are a leader. - Atomic Habits