DEV Community

Matt Ellen profile picture

Matt Ellen

Ultra-fullstack software developer. Python, JavaScript, C#, C. He/him/his

Location Earth Joined Joined on  Personal website https://www.matthewellen.co.uk github website

Education

I am a master of science

Work

Software Engineer

Last 250 comments

How has your relationship with complexity changed over time?

It's... Complicated.

When are you most productive?

Last year I think I was most productive during Advent of Code...

How do you regex?

I mostly use regex for searching files for something. A strin...

How do you feel about regex?

A few years ago I bought a book (I can't find right now) abou...

What are the coolest coding + music projects out there?

Meet this incredible demo scene musician: youtube.com/c/Gasm...

Do you still work with jQuery?

I inadvertently work with jQuery as it's part of SignalR. If ...

I just bought 👩‍💻👨‍💻.to!

⚰️C# in 2022 — Will it die?

Google put us each in our own bubbles. I get no such auto com...

⚰️C# in 2022 — Will it die?

I have never heard anyone say c# is dying or dead. Where did ...

Is there a way to have raw-types in (modern) C++?

If you were doing this in Java, how would you know the type o...

Tesla Pushes Out Dangerous Software Update, Bungles Rollback Attempt

For anyone else who was wondering: FSD is short for Full Self...

Stop Writing JavaScript Like This

Because?

Stop Writing JavaScript Like This

Strong disagree on using => over function. You'll have a c...

If I were to restart JavaScript again from scratch then I will follow this roadmap.

100% what I was thinking. Software is a soft job compared t...

Who invented JS IIFEs?

He invented the name, but they were already being used, the a...

function in JS

To start with you want to generate a random number based on t...

Who invented JS IIFEs?

Hasn't it been there from the beginning?

Counting zero's sucks!!

Thanks for the insight.

Counting zero's sucks!!

Have you tried toLocaleString? That also solves the problem o...

20 Killer JavaScript One Liners ☝️

This has come up before! ...

When I create a post, how to automatically complete the tag metadata?

I think the Forem dev team are looking into this: github.com/...

What does return do in JavaScript

Parenthesis insertion to combat semicolon insertion! Amazing 😁

What does return do in JavaScript

Fun fact about return statements. They get semicolon insertio...

LocalStorage vs Cookies: All You Need To Know About Storing JWT Tokens Securely in The Front-End

Hi Putri, Just to let you know that the link in your reply i...

Master Objects in JS 🍨 (Part 1)

If you change personTwo to let personTwo = { name: "jame...

Master Objects in JS 🍨 (Part 1)

objectOneProperties.forEach((property, index) => { ...

How is the hate of PHP related with sexism and the rise of the nationalism in America.

ahhhhhh. ya got me 😂

Low-Code and Open Source as a Strategy

I hadn't heard of "low-code" so I assumed it was some kind of...

Countdown number game solver

I have created a solution to this myself in python. Have a lo...

Nobody Cares About Your Programming Experience

Yeah yeah yeah. That's just what an Australian would say. In ...

👀 Using 2 plugins to show you the importance of alt text in just 2 minutes 💡

TIL how to add alt in Twitter. Thanks.

How to Write a good Dev.to post?

Use markdown in your posts. You can learn more here: dev.to/p...

Welcome Thread - v138

Welcome to the site. Write a post about your portfolio when i...

Some Powerful Js One-liners

In case anyone is interested, I plotted the distributions for...

Some Powerful Js One-liners

Very interesting, I hadn't considered how using sort like tha...

S5:E1 - Pegasus Cyber Espionage Tool, Steam’s New Console, Gunshot-Detecting Tech, and NATO Condemns a Cyberattack

NSA have to follow the law? Have you forgotten the time they ...

Ionic vs React..

You can update an app that is already installed on a remote ...

Where to store data for small personal web project?

You can use the heroku free / hobby dev tier. That gives you ...

Check box work

What code have you written? It's very difficult to help you i...

Hello Dev.to

Welcome to the site. Glad to have you here. As well as dev.t...

Star-rating using Unicode stars

Ah, I see. Thanks.

Star-rating using Unicode stars

Why put the star character in the CSS rather than the HTML?

Crack my code

OK, cracked it: click to see decrypted message Error...

Crack my code

Oh dear. I see what I've done. Difficult to automate the deco...

Crack my code

Nice try but I think the message is longer than that 😁

Explain a "memory leak" like I'm five

OK. So you know how you like to watch Peppa Pig on Netflix? A...

Digital Clock with Date using JavaScript, Html & CSS

Today I Learned!

Getting error

it's unlikely the bug is in scrapy or python. it's probably i...

Getting error

what version of python are you using?

Introduction to Hascal Programming Language

😁 so just like Haskell

Introduction to Hascal Programming Language

The name is an interesting choice. When talking about it do y...

I'm switching to vim!

If you've changed to vim without any way back, you might say ...

Hello world with css

body::after { content: "hello world"; } Enter fullscr...

S5:E5 - Hardware Hacking for Everyone

If you prefer javascript to python then I can recommend Espur...

Solution: Interleaving String

Ah! Thanks for insight.

Solution: Interleaving String

I think I have an O(N) solution, where N is the length of s3....

Six Things You Thought Senior Devs Did (But We Don't)

I mean... the way it's phrased you're still using a negative ...

Daily Developer Jokes - Monday, May 24, 2021

Unfortunately, noöne can be told what the matrix is. You have...

POINTERS IN C

You can surround your code with three backticks (```), at the...

Variables in JavaScript

The scope of var is not global if it's used within a function...

25+ JavaScript tips that can help you understand this programming language better

The example for number 2 (recursion) is the same as for numbe...

why does it say not detected to network?

Not sure what you're trying to ask us. Has the markdown inter...

How many applications did it take for you to find your first dev job?

It felt like forever before I got my first dev job, but it wa...

DEV Community: How to Avoid Plagiarism

What I find odd, as some plagiarised posts are easy to spot f...

What profession would you change to?

I started programming as a kid, so I never felt a pull in any...

Strange Behavior in JavaScript

Scenario 6 blew my mind! I did not know that's how the Array ...

Have you ever used services like Fiverr?

I put my limerick writing services on Fiverr, but have only h...

365 Days of Blogging Challenge

I once wrote a limerick a day for two years. It becomes quite...

How much time do you spend writing tests?

The software I'm working on isn't web based, so I'm not sure ...

How many unfinished projects do you have?

There's a reason I wrote ...

How many unfinished projects do you have?

🤣🤣🤣🤣🤣🤣🤣🤣🤣🤣 It's best not to ask

80/20 is the new Half-Ass

What's the 80/20 on this article? At least 20% of the article...

How to make a word counter with JavaScript🦸‍♂️

I haven't tried the full code, but from what I can see it spe...

Reverse switch?

It is difficult to maintain, far more so than an if statement...

Reverse switch?

It is bad. Do not do it. It is counter intuitive and, from m...

Less Popular But Essential HTML Tags

Oh! Thanks, good to know.

Less Popular But Essential HTML Tags

Which element?

explain this snake source code

You can wrap your code with ``` at the top and bottom. It wil...

What was your win this week?

Had a little win today. Found a bug where I was converting st...

What's the best dev joke or pun you know? 😂

Using CSS properly 🙅‍♂️ Using tables for layout 🧙‍♂️

loading screen

It might be good if you described your project so that people...

Cookie Consent Box using HTML CSS & JavaScript

Have you tried using the codepen liquid tag? {% codepen htt...

How do YOU moderate dev.to?

I do occasionally pop into the "moderation" queue to skim the...

Let’s talk about Coded Bias

The section about the teachers being fired by algorithm was m...

Let’s talk about Coded Bias

I watched it for the first time last night. I had an inklink...

A compilation of misconceptions non-tech people have about devs (part 1 of 2) 😞

Re #3: My office manager came up to me today and said "This U...

Quick and dirty server

That's amazing!

Using GitHub Pages domain for other purposes?

No, you cannot do that. GitHub pages is a static site genera...

One thing you love and not love most about your dev career?

One thing I love: there is a potential to really make a posit...

Reverse a ‮string‬: revisited

Reversed direction of text after .... Not as bad as replacing...

JS: Check if an email is valid

I agree. The tag is tested by millions of people, everyday, s...

JS: Check if an email is valid

It doesn't completely comply to the RFC, as the RFC allows fo...

JS: Check if an email is valid

The full spec for valid email addresses allows for comments i...

3 ways to convert HTML text to plain text

The method presented in the main post doesn't append to the b...

Why do we still speak in direct DNS?

I remember once I was trying to set up a subdomain (or whatev...

What's the longest you've ever spent debugging a single bug?

I used to work on some data processing software for a particu...

How to filter() your school lunch because nobody wants meatloaf

A way I have used filter is to get rid of undefined array ele...

What are your favorite and least favorite 2021 design trends?

I've always liked minimalism. I guess I'm easily distracted, ...

What are your favorite and least favorite 2021 design trends?

Wasn't that geocities/anglefire era?

Chegg for free

what is chegg?

January 22nd, 2021: What did you learn this week?

Today I learned about System.Timers.Timer, a .Net class that ...

Explain "Code Smells" like I'm five

When someone is really good at something, like a footballer (...

Choose...

Ah, in that case I'd choose Django. I am much more familiar w...

Choose...

I don't understand the question. You're comparing a javascri...

Daily Challenge #310 - Boolean to String Conversion

That's pretty heavyweight! value.toString() works, too.

Aide

Rather than having "Aide" as your title, it might help people...

10 Clean code examples (Javascript).

10 could be really bad in a language like c++ with operator o...

The Contributions of Jimmy Ocean Osorio Guevara to Fidupetrol.

Hi! Welcome to the site. Are you writing about yourself in th...

How To Make An Analog Clock With HTML, CSS and Pure JavaScript

I bet you could do this without javascript, so long as you op...

Jan 13: DEV Daily Discovery

Savvas Stephanides has some great posts on how to fix particu...

Snail Array Challenge Solution JavaScript

While I don't think I have an efficient way of generating the...

A silly way to reverse an array

I see the problem. I'm creating a square grid, and if the arr...

More Python Strings: Can You Solve This *More* Difficult String Problem?

If ac is a substring of abc, why isn't ca?

Software contractors and entrepreneurs: Do you have a business entity?

Thanks for the encouragement, but free lancing wasn't for me....

ROT13: awful answers only

Any language or platform is permissible, so you're fine limit...

ROT13: awful answers only

To set the ball rolling: (function () { let input = '066...

Stop fighting holy wars

KEEP FIGHTING HOLY WARS Holy wars are great and you're wrong ...

What's your attitude towards hype?

Keystones in arches? It'll never catch on.

Software contractors and entrepreneurs: Do you have a business entity?

I was what is known as a "Sole Trader" in UK accounting speak...

Advent of Code 2020 Solution Megathread - Day 21: Allergen Assessment

Another javascript gist. It's been a few days since i could s...

Why hosting isn't free!

I didn't pay a penny for Geocities...

Hello

Hello

How do people solve Advent of Code puzzles so quickly?

If I had the energy left at the end of work, I'd probably get...

Advent of Code 2020 Solution Megathread - Day 12: Rain Risk

Another javascript master piece: this gist. Happy to use the...

Welcome Thread - v95

Welcome to the site!

Advent of Code 2020 Solution Megathread - Day 10: Adapter Array

Sorry it's so late, but I'm pretty proud of figuring this out...

How do people solve Advent of Code puzzles so quickly?

Ah! I hadn't considered about having snippets ready to go. I ...

Drafts

You should contact the dev.to team and see if they can help.

Advent of Code 2020 Solution Megathread - Day 9: Encoding Error

More javascript. Still can't see a regex solution. Part 2 con...

How do people solve Advent of Code puzzles so quickly?

I certainly expect there to be highly competitive people. I j...

Advent of Code 2020 Solution Megathread - Day 8: Handheld Halting

More javascript, less regex. I get the feeling that I'm going...

Advent of Code 2020 Solution Megathread - Day 7: Handy Haversacks

I'm not happy with this javascript solution. Part 1 is very s...

Advent of Code 2020 Solution Megathread - Day 6: Custom Customs

I spent a long time trying to get a regex to work for part 2,...

Advent of Code 2020 Solution Megathread - Day 5: Binary Boarding

I'm sad I couldn't think of a regex solution, just a quick so...

Advent of Code 2020 Solution Megathread - Day 4: Passport Processing

Again, more javascript. It's in a gist if you like that sort ...

hello, Dev

Welcome! Maybe we can tempt you to play the Advent of Code: ...

Advent of Code 2020 Solution Megathread - Day 3: Toboggan Trajectory

I'm always amazed by the main leader board. Some people seem ...

Advent of Code 2020 Solution Megathread - Day 3: Toboggan Trajectory

I put my solution in a gist. It's only for the second part, b...

Which concept took you the longest to grasp?

My first language was BASIC, which I think was a good place t...

Which concept took you the longest to grasp?

Back in 1999 I was trying to learn c++, but I got stuck on te...

How Do You Test Your Ideas?

I agree. Especially for usability. My friends will show me wh...

How to add a video to your GitHub README

That's great! You can also use the webp format too. It is wid...

Yo, I'm going to become a Software Dev

I think you can either aim for a particular industry, e.g. ph...

How to make Good Website part 2/3

If you want to create a series, to give you the nifty set of ...

Good Bye Web APIs

I would say yes. At first I thought that this was an independ...

Advanced splitting with Symbol.split

This is very interesting. I had no idea you could do overridi...

How to contribute to Nim language?

Thanks!

How to contribute to Nim language?

What is the inspiration behind Nim? For example, Javascript'...

S2:E4 - U.S. Military Buying Location Data, GitHub Reinstating youtube-dl, Apple Server Problems, and School Ransomware Attacks

DMCA takedowns are misused on Youtube to censor videos other ...

I feel like the quality of posts in Dev is deteriorating

Thanks for the negative weight tip!

How did you get your first software developer job?

I had been applying for jobs for a year or so after finishing...

Square a number: awful answers only

So meta 😂

Square a number: awful answers only

I was hoping I'd see something like this 😁

Square a number: awful answers only

For example: function square(n) { n = Math.abs(n); if...

Js question

short version: Introduce yourself to the group. Try and sol...

Daily Challenge #305 - Remove Anchors from URLs

REGEX to the rescue. function remove_url_anchor(url) { r...

What is software? (wrong answers only)

Software is the synergising of customer expectation managemen...

Js question

Would you like advice on how to ask programming questions?

Js programquestion

Hi! What do you need to know? Do you know how to tell if a nu...

Daily Challenge #302 - setAlarm

Enjoy! function setAlarm() { if((typeof arguments[0]) ==...

Reverse a string: awful answers only

My humble submission: function reverseString(s) { let re...

What are alternatives to git?

Look at the watch. Follow its motion. Let yourself drift into...

Wait... Serverless Isn't Actually Serverless?

Both are better options for their respective applications. Na...

Web in Upcoming Years ??

Over the last 10 years we've seen far fewer innovations in th...

Wait... Serverless Isn't Actually Serverless?

Managed servers. It's no different paying Amazon to manage yo...

Wait... Serverless Isn't Actually Serverless?

I remember learning this not that long ago, too. It's a terri...

Looking for a nice git client for Linux. Recommendations?

I use emacs, so if you hate emacs you can ignore this. magit...

Pay cut to work remotely - Fair deal?‍

100% no. They are paying me to produce things. It does not m...

Daily Challenge #297 - Loneliest Character

function lonliest(str) { str = str.trim(); let spaces = ...

Heroku is to IaaS as Apples are to Apple Seeds

Oh, I think I got it: Infrastructure.

Heroku is to IaaS as Apples are to Apple Seeds

What does the I in IaaS stand for?

What was the most irritating quirk for you when you learned another language or stack?

For me, go's bracket style was a deal breaker that means I do...

Daily Challenge #297 - Loneliest Character

I didn't write the rules, just copied them from the other sit...

Daily Challenge #297 - Loneliest Character

Only the last example make sense. There has been some corru...

Explain like I'm five documentation

Well, you know how you want to do something and you don't kno...

Daily Challenge #296 - Years to Centuries

It should be 112th not 112nd, because 12 gets a th

How does the ES6 Job Queue Work?

Super interesting! This is the first time I've heard of the m...

Accessibility beyond 'alt' tag, 'color contrast', and semantic tags

Fab article! Thanks so much for writing it. I'm really curiou...

What type of computer do Linux Developers use?

I can't say for sure, as I haven't bought a regular xps, but ...

What type of computer do Linux Developers use?

I got a Dell XPS 13 Developer Edition about 5 years ago. It c...

Daily Challenge #296 - Years to Centuries

"1066 --> 11st" should be 11th "10266 --> 103th" should...

Daily Challenge #296 - Years to Centuries

Good question. I didn't notice that in the test cases.

Daily Challenge #296 - Years to Centuries

function thuffix(n) { let ending = 'th'; if(n%100 != 11 &...

Daily Challenge #296 - Years to Centuries

what about the year 11122?

How Can I Access Environment Variables in My Static Website?

Yes. 👍 I'm a bit out of the loop on web dev with APIs, but i...

How Can I Access Environment Variables in My Static Website?

I'm not 100% sure I understand, so bare with me. You have an...

JavaScript Challenge 3: Remove Zeroes

Well, to be fair, that's over 100000 iterations. But surprisi...

What Is a Virtual Machine?

My first thought was "a play within a play", the same directo...

JavaScript Challenge 3: Remove Zeroes

function put0AtTheBack(arr) { let zeroIndex = -1; for(let...

JavaScript Challenge 3: Remove Zeroes

OK, you beat me this time! :D You're about 3x faster Swappin...

JavaScript Challenge 3: Remove Zeroes

So, before I see your solution, I want to try and figure it o...

Three Consecutive Odds

Here's my solution: function threeOdds(arr) { let hasTh...

The Scrabbling String Problem

More solutions over here: ...

Dev.to SPAM

Also, to toot my own horn: ...

Dev.to SPAM

If you look at the issue tracker on the Forem github, you can...

UKs Covid system crashed due using Excel as "backend database"

LOL the problem has been "solved" by splitting the file into ...

Quick fix for current spam deluge

I've put it into a Gist if people want to offer up improvemen...

Quick fix for current spam deluge

Updated to cover when "customer care number" has things other...

JavaScript Challenge 2: Word Scrambles

Challenge accepted! function scramble(s1, s2) { let s2a...

Spam on dev.to?

The team behind Smoke Detector on Stack Exchange might be abl...

20 Famous Quotes for your DEV Inspiration

I have never agreed with this logic. If I don't take a shot I...

20 Famous Quotes for your DEV Inspiration

"Give a man a fish, now you're down one fish. You idiot. Teac...

Why use pointers at all.

So you can say, to your great grandkids, as they're writing i...

September 24th, 2020: What did you learn this week?

I learnt that multiple exclamation marks are allowed for visu...

Five Cool Ways to Iterate over JavaScript String

[...'World'].forEach(l => console.log(l));

What are you glad you no longer use?

Visual Source Safe. Only one person can edit a file at a time...

Daily Developer Jokes - Thursday, Sep 17, 2020

There are 10 types of people in this world Those who unders...

Stop Using React

I think that using software created by a company is showing s...

Stop Using React

I realise there is no ethical consumption under capitalism, b...

Stop Using React

Point 5 is the main reason I've not tried react. I learnt ang...

Is`let` the new `var` in Javascript?

I can see how it could be useful to declare a var within an i...

Is`let` the new `var` in Javascript?

I think var should be used sparingly. Because of hoisting, yo...

JS Async: async/await

That's interesting. In the console (Firefox) it worked fine. ...

JS Async: async/await

Does the fact that you can use await in the global/window sco...

What gives you the most anxiety?

Asking for help, especially if that involves a phone call.

September 3rd, 2020: What did you learn this week?

TWIL What a VxWorks Event is, and used it to create an inte...

Explain Regular Expressions Like I'm Five

"Find every character that's not a letter" isn't just those 4...

Promote programming and earn money

It's interesting. I'm a magic: the gathering player, so it ha...

Promote programming and earn money

I think it would help if you went into detail about what Su...

What does it take to create a strong password?

Ah OK. I didn't realise you could check the hash at pwnd. Tha...

What does it take to create a strong password?

Doesn't checking if a password is pwnd require knowing a user...

poggers

TIL POGChamp means Play Of Game Champion. I had previously th...

GitHub Party Trick

And this is why it's important to sign your commits! Also, u...

How to get started on fiverr?

An elevator pitch example, from when I was part of a start up...

How to get started on fiverr?

The trick with freelancing of any kind is getting the word ou...

What would you do if you had a Time Machine?

Obviously go into the future to get an almanac of all the spo...

How Dev Bootcamps Are Failing Their Students

Ah, thanks.

All you need to know about Dynamic Programming

Ah! Thank you :D

All you need to know about Dynamic Programming

What is FAANG?

How Dev Bootcamps Are Failing Their Students

What is a MERN stack?

Daily Challenge #279 - Playing with Sandpiles

Oh! I did a sandpile thing in javascript and canvas years ago...

JavaScript Array methods

It might be worth mentioning that sort without a comparison f...

Explain Git To Me Like I'm Five

Imagine you're playing with Lego, and you've made a thing. Le...

Piping in Python

Would it work as well if you implement __or__ instead of __ro...

Favorite Examples of Clear, Understandable Documentation?

Actually, if I can broaden the definition of documentation, G...

Favorite Examples of Clear, Understandable Documentation?

I haven't read it in a long time (for reasons) but back in th...

What TV shows are you in to these days?

Jaye Hernandez already mentioned Dark, so I'll add Space Forc...

What great software invention or idea never gained adoption?

I don't think I've made any mistakes. You asked what my expec...

5 EXACT alternatives of VSCode!

Don't forget Emacs: M-x vscode-mode (just kidding)

What great software invention or idea never gained adoption?

OK, so what I, and I assume Sam, thought it would be like is ...

Explain what a programmer does. Wrong answers only

an enee fuul no, spelling izunt part uv grammer

Explain what a programmer does. Wrong answers only

Programmer: someone who needs 5 years experience in a discipl...

What are some examples of "productive laziness"?

I like to question if things are necessary. The less I have t...

loading...