DEV Community

loading...
David Wickes profile picture

David Wickes

British. Strong opinions held weekly. No, that's not a typo. Teaches when and where and what I can.

Education

MA Continental Philosophy

Work

Senior Software Developer at Acuris

Last 250 comments

Mechanical keyboard : first build (v2) - DIY kit

Nice one Drilon! Did I ever show you the Preonic I built a fe...

Dealing with Error: β€œchromedriver” cannot be opened because the developer cannot be verified.

This is the sort of thing I can never remember how to do. Nic...

Test Driven Development by Example

If you're looking for the next book in your TDD journey, take...

X-headers, what and why?

πŸ‘πŸ˜

X-headers, what and why?

Nice article - as this is tagged up for beginners, maybe you ...

Three Books

I was just thinking about the Milewski lectures/blog/book in ...

Three Books

(Is Radical Candour good? As a phrase it's always seemed like...

Three Books

I think it skirts too close to hiring someone who is like me...

Three Books

Ah. Good - dissenting opinion! And I can't dismiss this posi...

Three Books

Great books - thanks for sharing!

On 'Simple Made Easy' by Rich Hickey

This is great!

Table Tennis in Pure HTML CSS 🀯

What is a Makefile and how do I use them

Nice article - a small correction: Makefile isn't case sensit...

How To Spell JavaScript

Hahahaha - brilliant! Lovely to see a language resist brandin...

Music for Coding

Yeesh. J. S. Bach, 48 Preludes and Fugues aka Das Wohltempe...

Do they teach "pointers" in bootcamp? Should they?

No they don't (personal experience). Yes they should - incred...

How much of a role should "enthusiasm" play in the software development process?

False dichotomy. Developers should be enthusiastic about solv...

Fizz-buzz in TypeScript

If there is an award for most over-engineered fizz-buzz impl...

Server-Side Rendering vs Client-Side Rendering

No Chris, you don't understand. You don't want to have to ren...

How my website works

This is definitely the way ahead Chris. You should have a ser...

What terminal do you use?

The Dec VT09 is a great terminal. Really customizable too -...

Tell me an unpopular software opinion

I really recommend both of you disabling JS in your browser a...

Tell me an unpopular software opinion

Yes you can 😁 - think of it as a forum.

Why You Shouldn't Use A Web Framework

In my experience (mainly of Ruby), some languages just don't ...

Why You Shouldn't Use A Web Framework

Yup - I like this idea around "memorising vs. understanding"....

Send a screenshot of your Code Editor πŸ“Έ

ed(1) is the standard editor. If I wanted to spend my time ...

Perfect height

One day I'll learn to use and stick with elisp - I look forwa...

What languages and tools do you use that spark joy?

Yeah +1 to Lua. Aggressively simple. I've been enjoying my Lu...

Replacing Windows 10 with Ubuntu 18.04

And viola, your system is up and running with Ubuntu! I th...

SpaceX and JavascriptπŸš€

Nobody told the astronauts, right?

Computer Science vs Software Engineering

I will one again quote Abelson and Sussman [Computer scienc...

OOP vs Functional Programming

What's an object?

A couple of thoughts from the Python survey results - 2019

A special mention to that 26% (!!) of people who do web deve...

Repl Coding Challenge:Basic Recursion πŸ‘―

Nice work on the recursive solution. Now let's make your cod...

Repl Coding Challenge:Basic Recursion πŸ‘―

Hey - looks like you're writing Ruby 😁. Try taking up the pos...

JavaScript Clean Code β€” Test-Driven Development

We only write a test that fails and not makes compilation fa...

Recoil - Facebook's own State Management Library

Reminds me of Clojure and ClojureScript libraries from about ...

Deno: Node.js Killer? Introduction & Demo | Ryan Dahl

So we can't use NPM modules. But, on the bright side, we can...

Is it Webpack or Node?

Very good overview. Also reinforces my view that developers s...

How To Spell JavaScript

Lisp is not OO. 🀨 I look forward to convincing you otherw...

How To Spell JavaScript

Sorry, this is a post about how to spell JavaScript. I don't ...

How To Spell JavaScript

Elm isn't a language; it's an abstract syntax tree.

How To Spell JavaScript

Thank you!

How To Spell JavaScript

How To Spell JavaScript

I only use PurrScript. Because I love cat-egory theory...

How To Spell JavaScript

JScript would be JavaScript trying to do 90s rap...

Declarative Gibberish in React

cracks open my copy of The Structure and Interpretation of Co...

"Hello, World!" but in 30 different languages!!!

Thirty languages, and not a single Lisp? For shame. Three off...

The Citadel Architecture at AppSignal

Where is that picture from?

Share Your Conway's Game Of Life

The greatest solution I've ever seen is written in APL. ←...

Learning German

I learned some German while studying philosophy at universi...

How did YOU learn Ruby?

MINASWAN πŸ‘

Hyper Webapp Template

That made me feel better - misery loves company!

Hyper Webapp Template

Great stuff - but Ben... where are the tests? :D Actually,...

Linux terminals, tty, pty and shell

Oh, this is brilliant! A great explanation - well done. (v...

Get Started Writing Scheme

Highlighting is for the weak.

Is Go only for infrastructure?

Sure, I've built back end web apps in Go. It's a great fit ...

Is Go only for infrastructure?

Go is a general purpose programming language. Write what yo...

Use Multi-Stage Docker Builds For Statically-Linked Rust Binaries

I've used scratch builds for some of the Go stuff I do. It ...

How dependent are you on your development environment configuration?

I think I'd like to do some sort of opt-in experiment on De...

How dependent are you on your development environment configuration?

Yeah. Also I was using a phone keyboard so... it was subopt...

How dependent are you on your development environment configuration?

Oddly enough I was semi pushed into doing something similar...

πŸ“š Tell me your ABSOLUTE favorite books and online classes

If you're a vaguely confident with one programming language...

Why You Shouldn't Use A Web Framework

πŸ˜‚

Whats your favorite shell

I use Bash - obviously, I'm not insane. But my favourite i...

Better Web Components Pt. 1: Rendering Children βœ”οΈ

Couldn't help but notice that the HTML you used with the te...

Must have command line tools!

TBH the only useful tool in this lot is jq - it's useful for ...

Big-O Cheat Sheet

OH!

Tell me an unpopular software opinion

πŸ’― coverage is usually an indicator of highly coupled testing,...

Who uses IRC?

πŸ˜‚πŸ˜πŸ‘

Who uses IRC?

still very much alive and well, but mostly occupied by peo...

πŸ›Έ Is JavaScript using pass by value or pass by reference? Let's find out!

Is JavaScript using pass by value or pass by reference? ...

Tell me an unpopular software opinion

Like the sprinkles on a cake... πŸ‘

Who uses IRC?

I still enjoy bouncing in and out of the programming rooms ...

Tell me an unpopular software opinion

Continuous integration means integrating continuously. Dep...

Tell me an unpopular software opinion

CSS and HTML are sufficient to build 99% of all websites.

I Built My Portfolio With Wordpress

Approved. Whatever works, right? Developers as a whole have...

Todo-MVP: Or 'Why You Shouldn't Use A Web Framework' - The Revenge

Sure! I was using the lib HTTP4K - programming in Kotlin.

Correct a Beginner About Buzzword Technologies

RabbitMQ Does a lot of things. Far too many thin...

TDD an Analogue Clockface in Go

I really do recommend the book - not just because I contrib...

10 Coding principles and acronyms demystified!

To correct the correction ;) DRY isn't about code duplicat...

Demonstrating TDD (Test-driven development) in Go

Your example of TDD is poor for many reasons, but I'm going...

Todo-MVP: Or 'Why You Shouldn't Use A Web Framework' - The Revenge

Heartwarming read! Thanks and Happy New Year!

dev.to posts tagged 'beginners' considered harmful

Ahhhhh nuts it sounds like I just volunteered... that'll te...

dev.to posts tagged 'beginners' considered harmful

Yup, dev.to is full of trash posts by whatever the diminutive...

What's the Node framework landscape like?

What's the Node framework landscape like?

Au Revoir, Gentoo - Sell Me A New Linux Distro

So you're after something that's super stable a good daily ...

Currying in JS 🀠

CHALLENGE Write a function that curries a functi...

Why You Shouldn't Use A Web Framework

I like this reply, as it focuses on where frameworks shine:...

What changes are you making in 2020?

I'm going to learn to play the recorder.

Wayland the Smith: a myth for the Software Developer

This is an interesting take (and I'd not heard the arsenic ...

I'm a Doer. How do I become a Knower?

How did you write all this and not say 'praxis' even once I...

Q: What Technologies Should I Use for Migrating a Rails Monolith to Microservices in 2020?

This is a bad piece of advice - it's advocating a complete re...

I'm a Doer. How do I become a Knower?

Hmmmm... doing vs. knowing. Well there's a fun one. It's ob...

Building an interactive login form with HTML and CSS

πŸ‘πŸ‘πŸ‘πŸ‘πŸ‘πŸ‘

Using Live Reload in Go

If you like this idea, but want something a little more flexi...

One of my favorite testing/productivity tools: guard

I've often used entr for this sort of thing: eradman.com/e...

JavaScript developer must know these Console methods.

JavaScript Developer Must Know These Console Methods 🧐 ...

13 ways the Internet is broken - #9 will shock you!

Here's 14 for you Bloated SPA sites which could easily be wr...

TIL: String.raw

Very nice. I love these little corners of the language whic...

Optional Chaining Has Arrived!

functionDoesNotExist?.() πŸ˜žπŸ˜–πŸ˜©πŸ˜«πŸ˜΅

No More Tears, No More Knots: Arena-Allocated Trees in Rust

is there a more efficient way to perform that check, or am...

No More Tears, No More Knots: Arena-Allocated Trees in Rust

is there a more efficient way to perform that check, or am...

No More Tears, No More Knots: Arena-Allocated Trees in Rust

Willingly. I used a reverse lookup hash table. Each key wa...

No More Tears, No More Knots: Arena-Allocated Trees in Rust

This is interesting! The two thoughts I had were: this is...

Bash Variables: To quote, or not to quote...

In the words of Ellen Ripley: I say we take off and quote...

New JavaScript features coming in 2020 that will surely rock your world!!

So here's an opinion: none of these are at all interesting as...

Loading web pages fast on a $20 feature phone

The simplest way to keep your bundle size small? Don't use ...

Pressure-Free AoC

Amen to not doing this in real time. Without the pressure i...

What conventional wisdom in software is wrong?

One of my favourite things in Go is the enforcement of good...

What conventional wisdom in software is wrong?

Pull requests in non open source projects are code quality ...

What conventional wisdom in software is wrong?

Frameworks slow development down in the long run.

What conventional wisdom in software is wrong?

The mistake here: people assume they need to DRY up repeate...

Todo-MVP: Or 'Why You Shouldn't Use A Web Framework' - The Revenge

First up - I am not a PHP developer, I know very little abo...

Build tool maintenance?

Even in projects where I know the tools worked several mon...

What do you use to test JavaScript code (if)?

Tape.js for util libs Yes, yes and 1000 times yes. By fa...

So, what does it mean to be a senior developer?

Yeaaaa - promotion to 'senior' to make sure they don't leav...

The carbon footprint of your website

95%, which is what I pay for loading up MathJax I guess...

Example: Imperative vs. Functional

Classy! But It still involves a non-referentially transpare...

Example: Imperative vs. Functional

Whew - some fine responses! And yes, if you encapsulate bo...

Example: Imperative vs. Functional

But it's still not a function. And the semantics matter here ...

Example: Imperative vs. Functional

This means the function is not pure What function? I see...

20 Small Steps to Become a Regex Master

The best way to get better at regexes is to use them - prac...

Recursion - what, why & how

One of the benefits of recursion is it can potentially red...

HTML `<kbd>` Tag

Nice one Samantha!

Mac Keyboard Shortcuts Every Dev Should Know

Fantastic list - I didn't know a lot of these. Something I ...

Daily Challenge #1 - String Peeler

Factor USING: kernel math sequences ; IN: dev....

Why You Shouldn't Use A Web Framework

And for God-sake change the background color of your follo...

Can we separate the artist from their art? Should we?

I saw this and immediately thought it would be a great plac...

The Five Pillars of a Successful Career in Software

Ecclesiastes is full of fine advice for a developer. Vani...

What Terminal Application do you use on macOS?

I don't really care which terminal emulator I use. If you'r...

Shareable CLI demo?

I've just scrapped around with this in Go - I'm sure you ca...

Shareable CLI demo?

Another option... perform the interaction over TCP instead...

Shareable CLI demo?

Yup, curl won't cut it. Are the prompts for 'configuration...

Shareable CLI demo?

If it's reading from stdin and spitting out on stdout... ...

How often do you clean your screen/keyboard?

Both once a month. You people are monsters and are going t...

How To Search And Replace String Across Multiple Files in Vim

Is there another trick that you use to do global search and ...

Which Distribution of Linux Should I Use?

This is a great read - thank you for writing it! I'm trying ...

Trivia: The letter "e" is special. πŸ§™β€β™‚οΈ

this notation gives a huge number 9 to the power of 9 N...

How to exit Vim

Come now, we're just scratching the surface... Given you're ...

RΓ©sumΓ© / CV Sift

If you want an inclusive hiring process I think it's harde...

RΓ©sumΓ© / CV Sift

I hope you mean you'd control for all those conditions but...

Coding practices your future self will love you for

Finally, five pieces of advice I can actually agree with. ...

RΓ©sumΓ© / CV Sift

I would honestly rank people with more creative ways of pr...

RΓ©sumΓ© / CV Sift

I know, sounds incredible doesn't it? But, from my experien...

RΓ©sumΓ© / CV Sift

If your sending out hundreds of CVs a week (!) consider the...

RΓ©sumΓ© / CV Sift

I have an actual job to do at the same time This is poor...

RΓ©sumΓ© / CV Sift

Well that was inevitable! Comes of blogging with one hand w...

Human Readable JavaScript

I know! I think it's maybe the only place I've ever found a...

Human Readable JavaScript

The refactor from const arr = [1,2,3] const timesTwo = (el...

Brag Post

I took care of my daughter all day on my own on Tuesday and...

Which fictional story (book, movie, etc.) is the best allegory for software development?

The Myth of Sisyphus

Haskell for madmen: Setup

I keep running into this - makes me sad.

The Programming Language That Changed My Life!

You have my attention πŸ˜„

When do you need axios?

Oddly enough I always bring up axios when I want to talk abou...

What's the FASTEST web framework? | Web Framework Comparisons

Remember kids: the fastest JS frontend framework is no fron...

The Programming Language That Changed My Life!

Lisps. All of them. Scheme changed how I write JavaScript (an...

Should interviewees be allowed to search for answers?

The best engineers are problem solvers, not fact memorizes...

Node.js Under The Hood #1 - Getting to know our tools

Very good! πŸ’―

Daily Challenge #52 - Building a Pyramid

Isn't that a triangle?

The World's Simplest "Static Site Generator"

Good question! Maybe I'll benchmark it - or you could! 😁

I created Hoppscotch πŸ‘½ - Open source API development ecosystem

a clone I look forward to lawyers trying to claim copyrigh...

I created Hoppscotch πŸ‘½ - Open source API development ecosystem

Did you know Postman has raised 58 million in venture fundin...

Simplicity to the Rescue (My New Personal Site)

Deployed to an S3 bucket which hosts the static site using...

Daily Challenge #46 - ???

ENTERPRISE

Simplicity to the Rescue (My New Personal Site)

I'm going to be picky, so please excuse me. I think your we...

Simplicity to the Rescue (My New Personal Site)

That would be nice! You could use content negotiation to se...

Daily Challenge #46 - ???

Try tr instead. 😁

Daily Challenge #46 - ???

sed is overkill. Try tr: echo "why not use tr?" | tr -d '...

Oops, I'm Making A Framework

Oh Ben, oh why oh why oh why ;) ...

Pass all props to children in Vue

'Pass all props to children' sounds like a school play

Jordan promises – async/await vs .then

Your example of 'bad' promises would look nicer with a Prom...

Three Ways to Retrieve JSON from the Web using Node.js

Hey Isa - nice article! I think you picked the three ways I'd...

What Does Your IDE/Code Editor Look Like?

I have FINALLY gotten my code editor to be my ideal setup....

Simple libraries do not guarantee simplicity - Rethinking popular NodeJs libraries

At the end of the day, we want to build applications and b...

Interesting Board Game Mechanics

Oh of course you also play boardgames :lol: One of my favo...

What does your team do when your communication channels go down?

I just shout people's names to get their attention before t...

What’s the best JavaScript framework?

Backbone... now there's a name I haven't heard in a long ti...

What’s the best vacation you’ve ever had?

I went with my wife for a week when we were first dating......

I created DEV and have other positive qualities, ask me anything!

When people ask me how I am at work I sometimes say I am ...

Go back to basics with MVC

Great post! How would you apply the same principles to a f...

How To Make A Makefile

Thanks Ben :D

How To Make A Makefile

Great article! I use make in really crappy ways - very uns...

What was your win this week?

This David Wickes ...

Daily Challenge Post #20 - Number Check

Well, as this isn't the most challenging challenge, I decid...

Daily Challenge #19 - Turn numbers into words

Common Lisp is a good choice for this: (defun wordify (n...

What's your most re-watchable movie?

L'Avventura. After twenty five years it's still haunting m...

The Trials and Tribulations of actix-web and the OSS community

Steve has this to say - which is about right: ...

Wanted: JavaScript Book Recommendations

I regard it as one of the most beautiful books about progra...

Wanted: JavaScript Book Recommendations

The Little Schemer

The Trials and Tribulations of actix-web and the OSS community

Ben - I'm sorry, this turns into a rant. Please forgive me ...

What software projects made you "wow" 🀯

We obviously have different definitions of 'cool' πŸ˜‰

What software projects made you "wow" 🀯

That's amazing 😁

What software projects made you "wow" 🀯

Gmail... I don't doubt that it did ultimately trigger the w...

What software projects made you "wow" 🀯

You should definitely look into Scheme πŸ˜‰

What software projects made you "wow" 🀯

What did you use in the end?

On Developer Fetishes

Can I borrow some and play meeting bingo with them please?...

I spend one hour a week optimizing my development environment.

As much as I love cli tools, dc is a bit too hardcore for ...

Things All Developers Should Learn In College

There are very few cases where the language choice actuall...

Things All Developers Should Learn In College

:thumb: "popularity filters these out for the most part" d...

JS == vs ===

Have you read about why there's a === in JavaScript? I thin...

Create YOUR next static blog in Vuepress and Vue

As a personal note, this is seriously the simplest static ...

I spend one hour a week optimizing my development environment.

Lovely list! Replacing my Caps Lock with ESC If you're ...

How to write testable code

Good article - thanks for sharing it! Although this class...

Why You Shouldn't Use A Web Framework

Used to be, but they moved on... I don't know the current s...

What sport/physical activity would you recommend to someone who's not super sporty by nature?

πŸ˜‚ also true! πŸ˜‚

What sport/physical activity would you recommend to someone who's not super sporty by nature?

Running. Saved my life. Buy a good pair of running shoes f...

Interest in a Haskell tutorial?

I'm still rather conflicted about what is the "best" way o...

Interest in a Haskell tutorial?

Not that I wish to influence the good doctor too much... bu...

My reflections on Golang

Only if you ask Father Christmas nicely. Or rsc.

My reflections on Golang

No, it is not the same. In Typescript, interfaces are impl...

My reflections on Golang

Enjoyed that - a relatively balanced piece. Just a few correc...

What's your greatest software development skill?

Team morale. I bring the enthusiasm and energy, or so I'm t...

It Isn't Magic, It's Webpack.

When I first saw the title of your article, I immediately t...

Weeknotes - 06 Makers

I'd love to hear more about the pivot and your retrospectiv...

CriCLI is here! Any Cricket Fans in the House? πŸ‘€πŸ

Bowled me over πŸ˜‰

You might think a pirate's favorite programming language is R...

It's what I can hear when I hold my shell against my ear...

Continuous Integration Explained

And best of all is you can deploy on Fridays...

What jobs did you hold before you got into software?

Plastics recycling Cannery (night shifts) Construction sit...

What jobs did you hold before you got into software?

Marketing director at a startup Yeah, marketing will do ...

Traditional vs modern web development βš”οΈ

You appear to be confusing 'web development' with 'JavaScri...

VIM & Visual Studio Code Tips & Tricks (With Video / GIF)

Worth pointing out that cs relies on (vim-surround)[github....

Folks should choose their project names wisely!

True... but also... Don't spend weeks acting like some mar...

Convince me that types are awesome

First up Suppose I've mostly used untyped programming lan...

My Dog is a Therapist

My editor is a therapist: M-x doctor

The Value Of Your Time

just now at 27 starting my bachelors You are still young...

Weeknotes - 04 Makers

Adding a fixnum to a string "sting" + 2 would be handling ...

The Value Of Your Time

I guess my only comment would be: is it open sourced? Make ...

A Moment of gratitude for the community

Lawful Good? That works out well for me. I always play a P...

Tell me some useless (or useful) software trivia

Willingly. You'll find most of it on the Wikipedia page und...

Tell me some useless (or useful) software trivia

That's fun! Although I'm not sure if it's any better to kno...

Front End: Is Anything Getting Better?

🀣

Tell me some useless (or useful) software trivia

So B came from BCPL, the Basic Combined Programming Languag...

Tell me some useless (or useful) software trivia

I always remap caplock as a Ctrl in my keyboards. If you...

Tell me some useless (or useful) software trivia

From the top of my head: C, as in the language, stands fo...

Front End: Is Anything Getting Better?

So your argument would be one of economics? It's now cheape...

Front End: Is Anything Getting Better?

Could you expand? How is React better for developers? How i...

Is GraphQL the future of APIs?

Interesting. I'd like to see somethibg of a like for like com...

Byte Sized: A Taste of Coding History (Coming soon!)

Pleased and excited. Looking forward to what you're going t...

How do you feel about the "misuse" of HTTP methods?

I don't mind people using the "wrong" method. What DRIVES ...

How do you feel about the "misuse" of HTTP methods?

While I appreciate the rage designed in a vacuum is pat...

Parents of DEV: How are you teaching your children about technology?

Well, there's a reason I'm not posting as much - five month...

What was your win this week?

this #!/bin/bash # # bconv # # converts integers from on...

ELI5: Useful Unit Testing

You're welcome. I don't think I express it very well - have...

ELI5: Useful Unit Testing

What's a unit test? First answer: what's a unit? A unit sh...

Creating Pixel Art with CSS

Or just make a gif. :) 🀣🀣🀣

Weeknotes - 02 Makers

You like the footnotes, yes? I see them with the *? Markdow...

Weeknotes - 01 Makers

Well this is giving me flashbacks... bike.break!

What does your Terminal look like?

How did you choose the font, by the way?

loading...