Christian Heilmann

You are currently browsing the archives for the General category.

Archive for the ‘General’ Category

Dev Digest Issue 115 – password beefstew is not Strog/|n0FF

Sunday, May 12th, 2024

Friday I released Issue 115 of the WeAreDevelopers Dev Digest Newsletter

This time you learn how AI changes how code is taught, cryptography, the history of passwords, how the internet is declining and you can play Super Mario on a type writer.

News and Articles

Some cool new things to try out: The Netlify Image CDN is a new player in cloud image conversion and offers similar functionality to imgix and Cloudinary. TypeScript 5.5 Beta is out. jsDelivr wasn’t available on the 2nd and they released an outage postmortem explaining what went wrong. I had no idea that Figma was written in a bespoke language called Skew and they wrote how they moved away from it to TypeScript.

If you want to spend some more time, here are some longer thought pieces, for example, learning about cache coherence, about the UX patterns of successful AI, and a full Cryptography Course in glorious 1990s website design. Talking of internet of yore, it seems the internet is in decline but we can still have a different web if we show it some love.

Interesting bits about language and AI: Scientific studies have been caught using ChatGPT because of excessive use of words like ‘commendable’ and ‘meticulous’ and AI Copilots shift teaching away from syntax to emphasizing higher-level skills in code.

Last but not least, here’s an illustrated history of passwords and there is a coffee shop where you need to order via SSH at terminal.shop.

Code and Tools

Weird code things…


stringify

You probably have used JSON.stringify() in the past, but did you know it has two optional parameters? The first one is a replacer, a function that is called on each value to convert it or an array to filter the output. The second is a spacer, defining the character that will be added to each line. If the spacer is a number, it adds spaces, if its a string, this one is added.

Let’s look at some JavaScript things. First is that with `using`, JavaScript is getting new, disposable APIs. Learn about the top 5 underutilised JavaScript featureswhen to use bun Instead of Node.js, Jo Franchetti has an intro to TSConfig for JavaScript Developers, James Kerr explains how the Array.sort(comparator) works and here is a cheat sheet for moving from jQuery to vanilla JavaScript.

On the platform side, Google has an alternative proposal for CSS masonry as a counter to Webkit’s proposal. Niels Leenheer talks about the brief history of the User-Agent string, Jake Archibald explains the difference of HTML attributes and DOM properties and there is a Virtual x86 simulator in WASM that allows you run all kind of operating systems in the browser.

In the tools space, tinyworldmap is an offline-first world map to use in your applications and the OSS Gallery features the best open-source projects.

Work and Jobs

GitHub has 5 tips to supercharge your career, Microsoft ties executive pay to security after failures and breaches, 7 things engineers should know about talking to users might make your job easier and it’s important to remember that perfectionism can stall you. On the “wow” side, many startups fell for a fake accelerator scam

Procrastination Corner / Wonderful Weird Web

Calling all Manchester and surrounding – come to / apply for CODE100 on 22nd of May!

Wednesday, April 17th, 2024

CODE100 unknown pleasures

The next edition of CODE100 is in Manchester in the UK and I am super excited to come back to the isle! It will be my first time in Manchester and as a huge Joy Division/New Order fan, I really look forward to it.

CODE100 is not your typical coding competition; it’s a coding game show where talented developers go head-to-head live on stage. It’s high energy and people in the audience and on stage alike can participate.

  • Attendees find a fun night watching coders compete in real-time, participate in audience challenges, win prizes, and network with the local tech community.
  • Contestants can showcase their coding skills, compete against other talented coders, and potentially win a seat at the finals at the WeAreDevelopers World Congress 2024.
  • Teams and organisations can nominate a challenger, engage with like-minded individuals, and showcase their group’s talent to a wide audience.

CODE100 is language agnostic, all you need as a challenger is analytic thinking skills, a Github login, a phone and nerves.

Me, I am the person coming up with all the challenges, pick the challengers and making sure all works smoothly. So, see you on the 22nd?

A themed CODE100 Challenge

As a themed challenge, here is our take on the classic Unknown Pleasures by Joy Division cover . In this challenge we ask you to return the amount of black or transparent pixels in the image and return it as an integer. You get the pixel data as a JSON object.

I will be in London for Devoxx earlier in May, back in Islington where I lived for 16 years, so hopefully I will see some of you there.

New CODE100 challenge: #BuntStattBraun

Friday, March 29th, 2024

I just released a new CODE100 challenge- can you tell how many of these hearts are brown from a list of brown colours and the HTML source?

README and code
Gist

Codepen


See the Pen

CODE100 challenge by Christian Heilmann (@codepo8)
on CodePen.


Next week’s solution will also have a “making of”.

Dev Digest 108 – Git off my cloud!

Tuesday, March 26th, 2024

fluffy Git pillow

Welcome to another edition of the WeAreDevelopers Dev Digest. This time we have am interview with Sead Ahmetovic, CEO of of WeAreDevelopers amd Scott Chacon, co-Founder of GitHub. They talk about careers, early coding days, developer communities, evangelizing git, and how AI is shaping the future of coding.

Gitting things done…

So, let’s get started with some some Git topics. Julia Evans is full of great information about it, for example talking about popular Git config options, or a deep-dive explanation on how HEAD works in Git. Always worth coming back to her blog.

Version control to me is the main step to move from an enthusiast to a professional developer. You need to get your head around it at first, but it is so much better than keeping lots of zip archives and rename folders to `_final_really_this_time_it_is_version1.0a` and the like. The big thing about Git is that it allows safe collaboration without the danger of overwriting each other’s work. And that makes us more effective.

graph showing PRs done by developers over time

Which is an interesting topic, as the median active developer merges 2 PRs per week and on average 48% of active developers are responsible for 80% of PRs merged since 2023. So whilst collaboration is much easier, we still wait for each other to deliver the work for us. Anyone wanting to start as a developer should try to break this cycle and start collaborating immediately. Do your own branch or fork and nobody can be annoyed at your contributions.

Working together is a big thing in general and it’s amazing how the communication part is often what breaks down. This is why many big products have a well-defined code of conduct. The W3C just adopted a new Code of Conduct which is pretty thorough and sensible to enforce. Also a good example for others.

Looking back at development learnings…

Development is nothing new, and we should be more organised by now and not afraid of change like other markets are. We have lots of experience of other people to build upon. And most is available on the internet. 50 years ago the book `The Mythical Man Month` defined the The “10x engineer and it still a mythical being to me. It’s not about one person doing everything or finding the shortcut to release things much quicker. It is about people from various backgrounds, with different perspectives and experience building things together. Lars Wirzenius wrote a wonderful article on his experiences of 40 years of programming. If performance is your thing, there is a great performance-aware programming series with lots of information about the inner workings of different processors.

But can’t AI do what we do already?

Last week, we reported about Cognition’s Devin, the first “AI software engineer” apparently making developers a virtual thing. Many people wrote about and over on the pragmatic engineer they discuss if the “AI developer” is a threat to jobs – or a marketing stunt. The previous Director of AI @ Tesla, Andrej Karpathy, wonders if software engineering can even be automated and XX explains how AI Will affect your career.

So, yes, AI can do a lot of things well, but it’s not really a replacement. And we still have to worry about it multiplying and replicating our biases. Mozilla did some research showing that AI is unfairly targeting and discriminating against Black people and whilst AI chats try their best not to give bad advice, you can get harmful responses from 5 major AI chatbots by using ASCII art of all things.
¯\_(ツ_/¯ indeed.

What about jobs?

The job market has become a bit better but job cuts are still at highest since dot-com crash which has people worried. I remember the crash and how the dotcom I worked for closed all its offices. My response was to work for an agency focussed on government services in the UK, which was a good time to lay low for a year.

However, whilst some development work will be automated, there are still high-paying jobs in the age of AI.

On a more baffling note, in some companies remote workers can’t get promotions. This sounds borderline discrimation to me, and I wonder what European work law says about this.

Back to the Bard?

Terrible Shakespeare bum joke

Some things are great to be automated, like browser testing, and Playwright is an excellent tool for that. Browsercat released the Ultimate Guide to Visual Testing with Playwright and I did not know that Playwright has a code generator. You can use a web product, record all the interactions and let Playwright replay them.

Money matters

Serverless Horrors Stories”:https://serverlesshorrors.com/ is a collection of things going wrong when you go serverless. Especially bills coming in for traffic you didn’t expect. Another interesting thing is a report showing that most subscription-based apps do not make money and ads don’t seem to work either. So what can we do?

Tools in brief

TLM suggesting solutions

Procrastination Corner

illustration showing the air flow around a wing

  • Bartosz Ciechanowski is great at explaining complex topics with beautiful animated illustrations. He told us some time ago how bikes work, but this time things really take off with How planes fly.
  • GifCities The GeoCities Animated GIF Search Engine allows you to find all those wonderful GIFs that made people’s Geocities pages so much more unique. Time to let babies dance, hamsters spin and show that “under construction” sign.

That’s it! See you all next week!

Giving your app a temporary public URL with VS Code port forwarding

Monday, March 18th, 2024

port forwarding in VS code's terminal

VS Code now has port forwarding. If you want to share what you are working on with the world, open folder in terminal, run your server and forward the port. Set it to public and Bob’s your uncle!

This is great for some testing and showing people what you do, but of course should not be used as a hosting alternative. After all, you do make your computer web accessible that way, and you got to be 100% sure your app is safe.