Culture Icon

Culture

Beliefs, behavioral patterns, thoughts, and institutions of the developer community.
389 Stories
All Topics

Kottke Icon Kottke

Reprogramming a game by playing it (an unbelievable Super Mario 3 speedrun)

Here’s a fun rabbit hole to go down if you have some free time to spend.

After a fellow named Zikubi beat the speedrun record for Super Mario Bros 3 by about 8 minutes with a time of just over three minutes, speedrun analyst Bismuth made the video above to explain how he did it…by changing the game with the gameplay itself.

The first couple minutes go exactly as you’d expect, but the speedrun takes a weird turn when, instead of using the second warp whistle to go to level 8, he uses it to go to level 7. And once in level 7, Mario races around randomly, letting opportunity slip away like a blindfolded birthday boy unwittingly steering himself away from the piñata. It’s only later, during the explanation of how he got from level 7 to the final screen so quickly, that you realize Mario’s panicky idiot behavior is actually the player actively reprogramming the game to open up a wormhole to the ending.

Brain Science Brain Science #29

Clarity and expectation

When you lack clarity or have uncertainty for a direction or goal, it’s going to be difficult to succeed in your actions. Today Mireille and Adam discuss the topic of clear communication and expectation, two of the most important ingredients of success. How do we create better clarity? Like so many things — clarity begins with awareness, and awareness of yourself. You have to know what you want and what you value in life. We must assume 100% responsibility for creating our own clarity in our lives. After all, “if you don’t have clarity, you are operating from assumption.”

Daniel Moch danielmoch.com

Regarding semantic versioning

Daniel Moch shared his thoughts on semantic versioning and how he treats external libraries that violate its inherent contract with developers.

So as not to bury the lede, I’ll get to my point: Semantic Versioning is a meta-API, and maintainers who are cavalier about violating it can’t be trusted to created stable contracts. I’ve lost patience for breaking changes making their way to my code bases without the maintainers incrementing the major version of their projects, especially in language ecosystems where Semantic Versioning is expected, and in such cases I’m going to begin exploring alternative options so I can ban such libraries from my projects—personal and professional—altogether.

If you work in a language ecosystem where Semantic Versioning is the de facto norm, where violating it can wreak havoc downstream, then please play nice and follow its dictates. Instead of viewing it as a straight jacket, try to see it as an algorithm to determine what your next release number should be. We should all like algorithms!

Jared Mauch YouTube

How I started a telco to get fiber to my town

Jared Mauch was tired of waiting for high speed internet access to his very rural house in the outskirts of Ann Arbor, MI so he started a telco to get fiber to his town.

Development was happening in and around Ann Arbor putting new subdivisions nearby. I expected broadband would reach my new home eventually (Cable, DSL, FTTx), but…nothing came. I know…start a telco! – source slides

Jared covers everything in this video – the research, planning, finances, pre-builds, getting customers, internet access, construction, contractors, and running all the fiber.

Brain Science Brain Science #28

Dealing with conflict

Conflict is a part of everyday life. If you are connected to other humans, conflict will eventually occur. But what exactly is conflict? Where does it begin? How can it be resolved? In this episode, Mireille and Adam dive deep into those details to examine the framework of conflict end-to-end, to hopefully equip us with the tactics and skills we need to better navigate and resolve the conflict we encounter in our lives.

Matthieu Cneude thevaluable.dev

Cognitive biases in software development

If you like the topics we cover on Brain Science, then you’ll love this post from Matthieu Cneude based on this study and his own experiences.

Depending on the project, the impact of biases can be completely different, from insignificant to dangerous for the survival of the project itself. … Come with me, I will show you what our enemy looks like, and how to bring it down with a sharp mind.

Tom Larkworthy observablehq.com

Most favorited Hacker News posts of all time

Thanks to Tom Larkworthy for putting together this “goldmine of tech resources.” The cool thing is you can play with the data yourself and make your own analysis.

The most favorited articles by the top 10k most active Hacker News members. The list skews toward innovative learning resources and tech career tips, but there is a little of everything.

Data was scraped 2020-09-1 from the public favourites lists. This is an observable notebook with the data attached as a file, so you can fork your own analysis if you don’t like how I did it (e.g. you could find the favorited Ask HN posts).

To calculate the top favourites, I give each member 30 votes to divided over their (max) 30 most recent favourited articles. I sum the votes over all articles. The results are a goldmine of tech resources.

GitHub Blog Icon GitHub Blog

"Set the default branch name" feature has landed on GitHub

Following Git 2.28’s highly sought after ability to configure init.defaultBranch comes GitHub’s support at the platform level.

You can now set the default branch name for newly-created repositories under your username. This setting does not impact any of your existing repositories. Existing repositories will continue to have the same default branch they have now.

But even if you do nothing…

On October 1, 2020, if you haven’t changed the default branch for new repositories for your user, organization, or enterprise, it will automatically change from master to main.

xkcd Icon xkcd

Yet another xkcd instant classic

I’m a bit late to the party on this one (was out on vacay last week), but my oh my did Randall Munroe hit the nail on the head. I have a feeling we’ll be referencing xkcd #2347 for years to come…

Oh, and in case you’re not yet aware, xkcd’s image title attributes always carry an additional punch-line/comment (which is a brilliant way to make it worth visiting the site each go-around). I’ll save you a click, just this once:

Someday ImageMagick will finally break for good and we’ll have a long period of scrambling as we try to reassemble civilization from the rubble.

Yet another xkcd instant classic

Alex Kantrowitz bigtechnology.substack.com

Why a Slack backlash is inevitable

Slack and its counterparts ‘create problems, high-school-type problems,’ one CEO said.

What’s your internal Slack like? Does it fuel “drama” or enable greater collaboration? Both…?

Beyond internal politics, executives are also paying attention to how employees use tools like Slack to organize. Workers at companies like Away, Andela, and the New York Times have recently used Slack to put leadership on blast and leaked those conversations to advance their interests. As Slack spreads, this type of action will spread with it. And even the most open companies are unlikely to tolerate it for very long…

BTW, are you on our Slack? Join the community 🤓

Jessica Kerr jessitron.com

Back when software was a craft

Are you craving more of that wisdom you heard from Jessica Kerr on The Changelog #398: The ONE thing every dev should know? Yea me too…here we go…

Software feels more like assembly than craft. What if software used to be a craft? What if the standardization of common tasks in libraries and frameworks means craftsmanship isn’t such a big deal anymore? What matters now is knowledge of all those different materials. Understanding the libraries and frameworks and ecosystems and tools and infrastructure and automation. The implications, considerations, and conglomeration of their use.

What it sounds like Jessica is getting at, is that craftsmanship doesn’t seem to be required for entry anymore in order to thrive as a software developer. But I do believe there is still a place for craftsmanship in software, it’s just not as required as it used to be with the proliferation of standards. What do you think?

Shubheksha Jalan shubheksha.com

How to start reviewing code

Code review is critical to being a software engineer yet there aren’t many resources on how to build up the skill. That’s why Shubheksha wrote what she learned when she first started making the mental shift from writing code to reviewing it.

Remember to be kind and empathetic — Code reviews are very ripe for misunderstanding and lack of empathy on either side. At the heart of code reviews is collaboration. It is as important to remind yourself as a reviewer that you’re reviewing someone’s code and not passing judgments on them as a person and it is equally important to remember that whatever your reviewer tells you is not meant as a personal attack.

Brain Science Brain Science #27

What does it mean to be Indistractible?

Distractions will always exist – managing them is our responsibility. We often talk about the need for new information in order to change the old patterns of our brain. One of the best ways we can do this is through reading good books. In this episode, Mireille and Adam discuss the highlights of Nir Eyal’s book, Indistractible – how to control your attention and choose your life. In his book, Nir highlights this clear connection between people’s distraction and its relationship to psychological discomfort, otherwise known as pain. He says, “all behaviors, whether they tend toward traction or distraction are prompted by triggers, internal or external. When we learn how to recognize these “triggers,” there is opportunity for change. And changing in the direction that you desire, as based on what you value, is key to having the life you want to live.

Peter-Paul Koch quirksmode.org

The cult of the free must die

ppk muses after digesting Mozilla’s big lay off:

To my mind, Mozilla’s core problem is the cult of the free. To my mind, we should eradicate the cult of the free from web development, and Mozilla should take a small step in that direction by requesting donations from inside Firefox — on an entirely voluntary basis.

This conversation hits close to home for a few reasons here at Changelog.

First, we have plenty of friends and acquaintances who were directly affected. Second, we share concern for the future of these bastions of the web (MDN) and open source (Servo). Finally, we’re a small internet-based business that gives away almost everything we create for free and shares a business model with Mozilla.

Changelog++ might be even more integral to our survival than we’ve been thinking it is….

Carl Johnson blog.carlmjohnson.net

Never use a dependency you could replace in an afternoon of programming

In a post aptly titled “Tripping over the potholes in too many libraries,” Carl Johnson explains his philosophy on using dependencies.

In short, I think it’s become entirely too easy for people using certain programming languages to use libraries from the wide world of clowns that is the Internet. Their ecosystems make it very very easy to become reliant on this stuff. Trouble is, those libraries are frequently 💩. If something about it is broken, you might not be able to code around it, and may have to actually deal with them to get it fixed. Repeat 100 times, and now you have a real problem brewing.

I have a simple rule: never use a dependency that you could replace with an afternoon of programming.

Mozilla Icon Mozilla

Significant changes at Mozilla Corporation

Today Mitchell Baker, CEO of Mozilla Corporation, shared news of big changes taking place at Mozilla in the wake of COVID-19. In addition to the changes noted below, Mozilla is also laying off 250 employees while it makes these changes.

…going forward we will be smaller. We’ll also be organizing ourselves very differently, acting more quickly and nimbly. We’ll experiment more. We’ll adjust more quickly. We’ll join with allies outside of our organization more often and more effectively. We’ll meet people where they are. We’ll become great at expressing and building our core values into products and programs that speak to today’s issues. We’ll join and build with all those who seek openness, decency, empowerment and common good in online life.

This internal document includes the details about the restructuring and other specifics.

I’ve reached out to Mitchell via LinkedIn messages to invite her on The Changelog for deep dive into the future of the internet. If you or anyone you might know has a direct connection to Mitchell, please pass this invitation on to her — we’d love to have her on the show.

Brain Science Brain Science #26

It all begins with empathy

Have you heard the phrase, “Put yourself in their shoes?” In this episode, the conversation focuses on the “HOW” and why it all begins with empathy. Empathy is the key that enables access to another person’s perspective and emotional state. It is also a fundamental aspect of building and sustaining relationships with others. The fascinating thing is that there are 3 types of empathy: cognitive, social, and empathic concern. Plus there’s a counterpart component called compassion that moves us to take action.

Taylor Blau GitHub Blog

Git 2.28 brings `init.defaultBranch`

Leading off the updates for Git 2.28 is the highly sought after ability to configure init.defaultBranch so folks can move from master to main as their default branch name.

From Taylor Blau on the GitHub blog:

When you initialize a new Git repository from scratch with git init, Git has always created an initial first branch with the name master. In Git 2.28, a new configuration option, init.defaultBranch is being introduced to replace the hard-coded term. (For more background on this change, this statement from the Software Freedom Conservancy is an excellent place to look).

Starting in Git 2.28, git init will instead look to the value of init.defaultBranch when creating the first branch in a new repository. If that value is unset, init.defaultBranch defaults to master

Also check out github/renaming to learn more about the complementary changes GitHub is making. GitLab and Bitbucket are making similar changes.

Git 2.28 brings `init.defaultBranch`

Career news.ncsu.edu

Tech sector job interviews assess anxiety, not software skills

A new study from North Carolina State University and Microsoft finds that the technical interviews currently used in hiring for many software engineering positions test whether a job candidate has performance anxiety rather than whether the candidate is competent at coding. The interviews may also be used to exclude groups or favor specific job candidates.

What’s more, the specific nature of the technical interview process means that many job candidates try to spend weeks or months training specifically for the technical interview, rather than for the actual job they’d be doing.

Be careful out there.

Brain Science Brain Science #25

The science behind caffeine

Today’s episode features our very first guest. We’re joined by Danielle Rath, a notable expert and product developer in the caffeine and energy drink industry. Danielle is the founder of GreenEyedGuide Research and Consulting where she shares science-based information about energy drinks and caffeine, and helps people and companies where fatigue and caffeine use are prevalent. In this lengthly episode, we talk through all aspects of the science behind caffeine — its chemical structure and half-life, where and how it’s being used, the good, bad, and the ugly, as well as practical advice for everyday consumption. If you consume caffeine of any sort, this is a must listen episode.

Culture daedtech.com

How developers stop learning: rise of the Expert Beginner

Erik Dietrich:

I believe that there is a unique group dynamic that forms and causes the rot of software groups in a way that can’t be explained by bad external decisions causing the talented developers to evaporate … In this post, I’m going to set the stage by describing how individuals opt into permanent mediocrity and reap rewards for doing so.

A must-read piece for anyone in danger of getting stuck in the “Expert Beginner” loop.

… during these years, the software developers are job-hopping and earning promotions, especially these days. As they breeze through rapid acquisition, so too do they breeze through titles like Software Engineer I and II and then maybe “Associate” and “Senior,” and perhaps eventually on up to “Lead” and “Architect” and “Principal.” So while in the throes of Dunning-Kruger and Advanced Beginnerism, they’re being given expert-sounding titles and told that they’re “rock stars” and “ninjas” and whatever by recruiters–especially in today’s economy. The only thing stopping them from taking the natural step into the Expert Beginner stage is a combination of peer review and interaction with the development community at large.

Matt Lacey mrlacey.com

But you only added two lines of code...

Ah, the classic mis-alignment of value to LOCs. How have you responded to this type of question or scenario?

Why did a fix that seems so simple when looking at the changes made take two days to complete?

Because I took the time to investigate the real cause of the issue, not just looking at the symptoms. If some code is throwing an error, you could just wrap it in a try..catch statement and suppress the error. No error, no problem. Right? Sorry, for me, making the problem invisible isn’t the same as fixing it. “Swallowing” an error can easily lead to other unexpected side-effects. I don’t want to have to deal with them at a point in the future.

Brain Science Brain Science #24

Cognitive distortions

How reflective are you with the thoughts you think? In this episode, Mireille and Adam talk through a few more cognitive distortions. These “distortions” are general tendencies or patterns of thinking that are false or inaccurate, which also have the potential to cause psychological damage. Generally speaking, people develop cognitive distortions as a way of coping with adverse life events. The more prolonged and severe those adverse events are, the more likely it is that one or more cognitive distortions will form. By recognizing these patterns in our thoughts and possibly how, when, or why we’re prone to use them, like many things, we create the opportunity to change them.

0:00 / 0:00