@kevlin@mastodon.social
@kevlin@mastodon.social avatar

kevlin

@kevlin@mastodon.social

consultant • father • he/him • human (very) • husband • programmer • keynote speaker • technologist • trainer • writer

This profile is from a federated server and may be incomplete. Browse more on the original instance.

kevlin, to random
@kevlin@mastodon.social avatar

There is a TDD exercise I run in a number of courses and workshops that involves creating a recently used list class (as in a recently open files menu or MRU cache).

One thing I find interesting is that the majority of developers do not use the most obvious name for the class — i.e., RecentlyUsedList, which is the title of the exercise and the term used consistently throughout the description — and instead seem to almost go out of their way to avoid any reference to the terminology used.

kevlin, to random
@kevlin@mastodon.social avatar

Code generated from LLMs is going to need more testing than code written by developers. This seems self-evident to me, but I suspect a lot of people are going to learn it (or ignore it) the hard way.

Given that most existing codebases are not well tested, and most developers don't test, this does not bode well.

kevlin, to random
@kevlin@mastodon.social avatar

In today's workshop I'm introducing a new group exercise, one that seems to fulfil an oft unspoken need and question: compare and contrast microservices and modular monoliths...

... except that, given the cycles of technology/fashion and the reality of many so-called 'micro'-service implementations, I can't bring myself to call it 'microservices versus modular monoliths'...

... so the exercise is actually described as 'service-based versus component-based architectures'

kevlin, to random
@kevlin@mastodon.social avatar

The recording of my @ACCUConf talk, 'Gilding the Rose: Refactoring-Oriented Software Engineering', is now online:
https://www.youtube.com/watch?v=kTcDBYCpj7Q

kevlin, to random
@kevlin@mastodon.social avatar

A reminder: in code, naming is a design activity; it is not merely labelling.

kevlin, to random
@kevlin@mastodon.social avatar

Yes, JavaScript has a lot of oddities, especially around what is or is not considered equal to another value, but I see a lot of posts/talks/etc. along the lines of "Here's a crazy JavaScript feature" that are actually not specific to JS at all and are well-specified and consistent across all languages that fully support IEEE 754 (and follow-on specs) for floating-point numbers.

kevlin, to random
@kevlin@mastodon.social avatar

It's often observed that we spend more time reading code that writing it.

What many conclude from this is that we should aim to make that task easier by making code more readable; what we should conclude is that we should aim to create code that doesn't have to be read as often and that doesn't take as long to read.

The goal is write code that reduces overall reading time rather than thinking of the reading time as constant. Move that needle.

kevlin, to random
@kevlin@mastodon.social avatar

Suggestions for an Evernote replacement? I held on as long as I could, but the latest version has such a shockingly poor UX that I feel now is the time to migrate.

kevlin, to random
@kevlin@mastodon.social avatar

Communicating is one of most significant yet also most challenging things that humans do.

So, in the spirit of communicating improvements, I want to highlight that clicking an option labelled "Keep me logged in", this has a simple interpretation in standard English: it means keep me logged in.

There's a variety of things it does not mean, including "Order me a coffee" and, perhaps most significantly, "Keep me logged in for a bit, but arbitrarily log me out at some point without notice".

kevlin, to random
@kevlin@mastodon.social avatar

A developer just dismissively described their coding approach as comment-driven development 😄

kevlin, to random
@kevlin@mastodon.social avatar

As the term 'intelligence' is used in 'artificial intelligence', it is perhaps worth asking, what kind of intelligence do AI systems represent? Confident and detail focused, but naïve, easily misled and lacking in common sense, worldliness, situational awareness, fairness, imagination, empathy, emotional intelligence and social intelligence 🤔

kevlin, to random
@kevlin@mastodon.social avatar

Found a bug the other day in a refactoring example I've used as a demo for a while. Totally hadn't spotted that in one of the steps I introduce the bug, before 'fixing' it by shifting from imperative to declarative.

It was changing the demo language and, therefore, the way I wrote the tests that illuminated this temporary unfix and blind spot.

I included one more set of test parameters than usual, and that tripped it from false negative to correct positive.

kevlin, to random
@kevlin@mastodon.social avatar

As a human I want to be required to enter a default value in a field that shouldn't be present on an input form so that a developer doesn't have to change any code

kevlin, to random
@kevlin@mastodon.social avatar

For the avoidance of doubt, as I'm receiving a number of notifications and messages, I'm not speaking at the DevTernity conference or its workshops. I withdrew my participation over the weekend.

Unfortunately — but somewhat in keeping with the nature of this whole affair — the website does not currently reflect the truth of the situation.

kevlin, to random
@kevlin@mastodon.social avatar

Regardless of its features — but sometimes because of — a programming language will gather a set of habits around it that become unquestioned creed.

When viewed objectively — or sometimes through the perspective of another language — such articles of faith often don't make that much sense.

From time to time, it's good to identify and question such habits, and the narrative around them. Habits are often picked up subconsciously through exposure rather than through careful choice and reasoning.

kevlin, to random
@kevlin@mastodon.social avatar

There's a certain sensationalism to some jargon that hides a more mundane reality. And mundane is fine and should be considered common place rather than unusual.

Case in point, I was reminded of this just now when a developer walked through an example, repeatedly making a point of "injecting dependencies", which is a somewhat sexed up way of saying "passing an argument".

kevlin, to random
@kevlin@mastodon.social avatar

Terminology in software can be something of a minefield. I've just spent a few minutes disentangling the terms 'Inversion of Control', 'Dependency Injection' and 'Dependency Inversion' for a group. While these three things may often be collocated and true of the same design, they are not the same, and one does not necessitate the others.

kevlin, to random
@kevlin@mastodon.social avatar

I'd love to see some of the so-called user stories for many websites. Because, if you'll pardon my (extreme) scepticism, I don't think many of the features — front-end and back-end — were written for the benefit of users.

kevlin, to random
@kevlin@mastodon.social avatar

There's a piece of advice that goes "If you're the smartest person in the room, you're in the wrong room."

While I don't want to detract from the message and insight that maxim offers, it's also worth considering "If you're the smartest person in the room, you're wrong."

kevlin, to random
@kevlin@mastodon.social avatar

Judgment Day by Teedy Deigh

"when a dev uses LGTM it means they couldn’t be bothered to look through it
when an architect uses LGTM it means they haven’t a clue"

https://accu.org/journals/overload/32/180/deigh/

kevlin, to random
@kevlin@mastodon.social avatar

One of the most frustrating things about large organisations is the bureaucracy and theatre that is often erected in the name of security.

The policies enacted, such as blocking sites (especially file-sharing sites such as Dropbox, Drive, OneDrive, etc.) are more frustrating than effective, and not only for software developers.

kevlin, to random
@kevlin@mastodon.social avatar

Delighted to discover that the photo used for the sculpture outside the Children's Hospital is one of my Instagram shots
https://secretbristol.com/public-art-bristol/

kevlin, to random
@kevlin@mastodon.social avatar

Ah, my website nemesis: poor validation and input processing.

Just entered my valid phone number to be told, in red, that my phone number was not valid. Was it the use of an international prefix? No. Was it that I used spaces in my phone number? Yes!

Forget NP completeness, AI fairness, etc., if we look at software as it is built, space removal has a claim to be one of the biggest challenges in modern software development 🙃

kevlin, to random
@kevlin@mastodon.social avatar

Coined the term 'architecture theatre' yesterday during a workshop.

I was asked whether there was such a thing as 'too much architecture', and the participant then described a very hierarchical, bureaucratic, committee-driven approach that seemed to be innately opposed to the very idea of actually developing software. I said that if anything, as far as I was concerned, it was actually an example of 'not enough architecture', that it was 'pure architecture theatre'.

kevlin, to random
@kevlin@mastodon.social avatar

WordFriday: echthesia

A state of confusion when your own internal sense of time doesn't seem to match that of the calendar — knowing that something just happened though it apparently took place seven years ago, or that somehow you built up a decade of memories in the span of only a year and a half.

(This definition is taken from The Dictionary of Obscure Sorrows by John Koenig: https://www.dictionaryofobscuresorrows.com/)

https://www.facebook.com/WordFriday/posts/pfbid023XbUvnvFLUjBBkV5jXCGK6aFPiZ3WJPDMLWHkNntKwp8VErZPPrb74Zfj7ypXszSl

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • rosin
  • thenastyranch
  • cubers
  • ethstaker
  • InstantRegret
  • DreamBathrooms
  • ngwrru68w68
  • magazineikmin
  • everett
  • Youngstown
  • mdbf
  • slotface
  • kavyap
  • anitta
  • GTA5RPClips
  • khanakhh
  • normalnudes
  • osvaldo12
  • cisconetworking
  • provamag3
  • Durango
  • tacticalgear
  • modclub
  • Leos
  • megavids
  • tester
  • lostlight
  • All magazines