The Changelog The Changelog #350  – Pinned

Boldly going where no data tools have gone before

Computer Scientist Yaw Anokwa joins the show to tell us how Open Data Kit is enabling data collection efforts around the world. From monitoring rainforests to observing elections to tracking outbreaks, ODK has done it all. We hear its origin story, ruminate on why it’s been so successful, learn how the software works, and even answer the question, “are people really using it in space?!” All that and more…

read more

CSS browserlondon.com

The perils of functional css (atomic css)

There’s been a lot of buzz recently about things like Tailwind and functional/utility-first CSS (for more on that, check out JSParty #65 with the creator of Tailwind), but there has also been some pushback against the approach. This article spells out some of the concerns, and why this may be more of a reaction against learning CSS than a new best practice. Author Jay Freestone, after summing up a series of challenges: In summary, functional CSS doesn’t make much sense to me, as a front-end developer. I’d suggest that a dedicated front-end team would be more productive managing their own CSS approach, rather than being tied into the straitjacket of a standardised class library.

read more

Bridget Kromhout ACM

Containers will not fix your broken culture

Bridget Kromhout dropping some hard truths: We focus so often on technical anti-patterns, neglecting similar problems inside our social structures. Spoiler alert: the solutions to many difficulties that seem technical can be found by examining our interactions with others. Let’s talk about five things you’ll want to know when working with those pesky creatures known as humans. Thing #2 (Good Team Interactions: Build, Because You Can’t Buy) alone is worth the price of admission.

read more

Changelog Icon Changelog – Sponsored

You can now support our work with the Brave browser ✊

In retrospect, becoming a Brave Publisher was a no-brainer. We’re big fans/supporters of: Independent publishers New sustainability models Brandon Eich (listen to this RFC if you haven’t yet) Real-world cryptocurrency use cases So, if you appreciate the news and podcasts we’ve been producing for the past decade, please consider browsing our site with Brave and throwing a few BAT into the proverbial tip jar. 💚

read more

logged by @logbot permalink

James Long jlongster.com

The secret of good Electron apps

James Long is using Electron to build Actual, a personal finance manager — and of course James is sharing the “secrets” he has learned to minimize the common issues with Electron apps. Some of Electron’s problems (large file size, slower boot up time) are inherent in the architecture and need to be solved at a lower-level. The bigger problems (memory hungry and sluggish) can be managed in user-land, but it takes a lot of care to do so. What if I told you there’s a secret that automatically minimizes these problems? The “secret” is to do the bulk of your work locally in a background process. The less you rely on the cloud, and the more powerful you make your background process, the more you can reap these benefits… Dig into jlongster/electron-with-server-example to learn more.

read more

Manuel Bieh DEV.to

I will now charge my clients a fee to support open source projects

Manuel Bieh: As an independent Freelance Developer I was wondering how I can support the Open Source community… so I had this idea: starting with my next project I will ask my clients for an hourly rate that is 1 Euro higher than I originally negotiated or I would usually charge. I will take that money (up to ~160 Euros per month) and support those projects on Open Collective that I’m basing my work upon in my client’s project. I like the spirit of what Manuel is doing here, but I’d suggest a slightly different tactic: raise your rate by N euros/hr (where N is at least 10) and give that to open source maintainers whose software you use on the client’s behalf. No need to complicate the client relationship with additional line items or things to explain. Besides, you’re probably under charging as is. Most of us are…

read more

Practical AI Practical AI #49

Exposing the deception of DeepFakes

This week we bend reality to expose the deceptions of deepfake videos. We talk about what they are, why they are so dangerous, and what you can do to detect and resist their insidious influence. In a political environment rife with distrust, disinformation, and conspiracy theories, deepfakes are being weaponized and proliferated as the latest form of state-sponsored information warfare. Join us for an episode scarier than your favorite horror movie, because this AI bogeyman is real!

read more

José Valim elixir-lang.org

The Elixir language is now "feature complete"

José Valim, announcing the just-released Elixir v1.9: … releases was the last planned feature for Elixir. We don’t have any major user-facing feature in the works nor planned. I know for certain some will consider this fact the most excing part of this announcement! This doesn’t mean the language will stop moving forward, but you’ll have to read the full announcement to get the full picture. The Releases feature looks shiny, for sure. Congrats to all involved for yet another awesome milestone!

read more

GoCD Icon GoCD – Sponsored

Continuous delivery for microservices blog series

If you run and deploy microservices, this blog series from the GoCD will be a great guide for you and your team as you navigate testing, feature toggles, and more. 5 considerations for continuous delivery of microservices Test strategy for microservices Trunk based development and feature toggles Environment strategy for continuous delivery of microservices Configuration strategy for continuous delivery of microservices

read more

logged by @logbot permalink

Devon C. Estes devonestes.herokuapp.com

A proposal for some new rules for Phoenix contexts

Phoenix 1.3 introduced the idea of Contexts, which I’m generally very much in favor of. However, I wish there was a little bit more structure to the idea. It’s so open ended that I’ve found deciding where best to put a function kind of tricky, and then I frequently end up with duplicate behavior across contexts or have a hard time finding functions later on because the module they’re in made sense at the time, but it doesn’t make as much sense now. So, I’m proposing the idea of a Primary Context and a Secondary Context. I’ve also struggled to determine just how to use Contexts to my benefit. It seems that Devon is trying an add more structure approach whereas I have (so far) gone with a YAGNI approach.

read more

Rich Harris DEV.to

Why Rich Harris doesn't use web components

Rich kicked the proverbial hornet’s nest yesterday. After you read his 10-point post, stick around for the comments, many of which rebut one or more of those points. I’ll weigh in on #3: Platform Fatigue Every time we add a new feature to the platform, we increase that complexity — creating new surface area for bugs, and making it less and less likely that a new competitor to Chromium could ever emerge. Co-sign! 💯

read more

Julio Biason blog.juliobiason.net

Things I learnt the hard way (in 30 years of software development)

I just started reading this (estimated read time: 34 minutes) and I have to say there are some really great tips inside. This one on code comments is pure gold: If you have no idea how to start, describe the flow of the application in high level, pure English/your language first. Then fill the spaces between comments with the code. Better yet: think of every comment as a function, then write the function that does exactly that. Julio warns that many of his learnings are cynical, but it’s gotta be hard to not be cynical after 30 years in this industry…

read more

Smashing Magazine Icon Smashing Magazine

A progressive migration to native lazy loading

Native lazy loading is coming to the web. Since it doesn’t depend on JavaScript, it will revolutionize the way we lazy load content today, making it easier for developers to lazy load images and iframes. I’m excited about native lazy loading! We’ve been using lozad.js for lazy loading with some success. There are times when it seems that IntersectionObserver fails to its job and an image won’t load. (If you scroll the element out and back in to the viewport, it will usually work the second time.) But it’s not a feature we can polyfill, and it will take some time before it becomes usable across all browsers. n this article, you’ll learn how it works and how you can progressively replace your JavaScript-driven lazy loading with its native alternative, thanks to hybrid lazy loading. I might try this hybrid approach and see what happens…

read more

Wired Icon Wired

The clever cryptography behind Apple's 'Find My' feature

In upcoming versions of iOS and macOS, the new Find My feature will broadcast Bluetooth signals from Apple devices even when they’re offline, allowing nearby Apple devices to relay their location to the cloud… it turns out that Apple’s elaborate encryption scheme is also designed not only to prevent interlopers from identifying or tracking an iDevice from its Bluetooth signal, but also to keep Apple itself from learning device locations, even as it allows you to pinpoint yours. WIRED with a fascinating explanation of an utterly fascinating scheme.

read more

npm blog.npmjs.org

npm token scanning extending to GitHub

The npm team is collaborating with GitHub on a new service that will automatically check for tokens that might have been accidentally pushed up to a repository and then automatically revoke them if they are valid. This will help to quickly mitigate attack vectors that might arise from the accidental oversharing of credentials for projects. From the post: Whenever you commit or push a change to GitHub in a public repository and an npm token is found in the change, it is sent to npm for validation. If it’s valid, we will revoke it and notify the maintainer of this action via email.

read more

Podcasts from Changelog

Weekly shows about developer culture, software development, open source, building startups, artificial intelligence, and the people involved.

0:00 / 0:00