Sulautetut järjestelmät yhdistävät laitteen ja sitä ohjaavan ohjelmiston kiinteästi toisiinsa. Niiden kehittäminen on hyvin erilaista kuin tavanomainen koodaustyö.
Mitä yhteistä on älykellon laturilla, nykyaikaisella autolla ja metsäkoneella? Niiden toiminnan edellytyksenä ovat sulautetut järjestelmät, jolla tarkoitetaan tiettyyn tehtävään suunnatun laitteen ja sitä ohjaavan ohjelmiston kiinteää yhdistelmää.
A nightmare week for hundreds of millions of Microsoft Windows users has just got worse. And while there had seemed some good news coming out of Microsoft HQ for those users earlier in the week, that vibe has just been quashed.
Most Windows headlines over recent days have covered the latest Patch Tuesday, which confirmed no less than five actively exploited zero-days, all of which were rapidly added to the U.S. government’s Known Exploited Vulnerability catalog.
Perceptive Rustaceans may have noticed my activity has gone down as of late. There are a handful of different reasons for this. I’ve been the subject of a truly apocalyptic series of life events, including the death of a relative that rattled me to my core. I’ve had more responsibilities at work, leaving me with less time and energy to contribute. Maybe I’ve also lost a little bit of the college-kid enthusiasm that brought me to open source in the first place.
There’s another reason, too. I’ve been cooking up a project that’s been taking up most of my time. It’s certainly the largest project I’ve created in the open source world, and if I complete it, it will certainly be my crowning achievement.
The benefits of serverless architecture were so convincing back in 2019 that I even wrote a blog post about how serverless will eat the world. In this post, I reflect on what has changed since then and how serverless is doing in 2024.
With that out of the way, I want to add my voice to the recent discussion about the purported serverless decline. I’ve seen blog posts about teams moving away from AWS Lambdas, read news of Amazon Web Services shuttering its serverless advocacy program, and perused articles comparing lambda to a vanity project. So, was I wrong all along?
Well, yes and no – the benefits do not come without considerations
I’ll start with the “no” since it is more straightforward. Serverless still has all the benefits I mentioned in my old blog post. It still eliminates whole classes of errors around operations and state management. You must push the state to the edges (database or the client), and your workload is guaranteed to scale within the limits of your chosen Functions as a Service (FaaS) platform. Updating a single function is possible, potentially making upgrades smaller and safer and enabling faster velocity. There are significant limitations with performance and cost, but many use cases will run well enough with minimal expense.
Let’s get to the point where I was wrong then. At the time, the market players were working very hard to push the limits of FaaS services. Given the progress of computing power consistently lowering costs, I hoped that providers would quickly eliminate all of the significant limitations.
Cold starts are still a thing, and FaaS pricing has remained mostly the same. You still must understand all available options to determine which fits your workload best. FaaS services come with hidden limitations, and tooling still doesn’t sufficiently encourage good architecture or warn about bad choices that might end up being costly.
How to know when to go serverless
Serverless solutions are still an excellent choice for many use cases that do not require high frequencies and super-low latencies. However, if those things are required, you can run some semi-serverless options with minimal infrastructure, like AWS Fargate. The point is to avoid infrastructure complexity and focus all of the team’s talent on the actual problem – and containers do that well.
There is also hope for FaaS. The problems around the current limitations are by no means insurmountable.
Most functions need very little memory, but you need to grab a gigabyte to get the necessary CPU. This leads to overprovisioning memory and waste for AWS and contributes to the inability to drive AWS’s costs down.
Similarly, provisioned concurrency is quite expensive
True serverless FaaS is at its best in naturally event-driven and asynchronous scenarios. Many data streaming use cases can greatly benefit from the infrastructure simplicity gained by using serverless functions triggered by streamed events. It’s good to keep an eye on the volume, as high-volume streams will be cheaper to run in a constantly running container on a platform such as AWS Fargate. You can also mitigate costs related to high throughput streams by appropriate batching when real-time processing is not required.
In conclusion, as I did back in 2019, I still find serverless solutions are an excellent fit for many things. However, I’d like to see more progress in tackling the complex performance engineering challenges that serverless platforms face today.
[Michael Lynch]’s adventures in configuring Nix to automate fuzz testing is a lot of things all rolled into one. It’s not only a primer on fuzz testing (a method of finding bugs) but it’s also a how-to on automating the setup using Nix (which is a lot of things, including a kind of package manager) as well as useful info on effectively automating software processes.
Fuzz testing is a technique for automatically uncovering bugs in software. The problem is that it’s a pain to set up. Read any fuzz testing tutorial, and the first task is an hour of building tools from source and chasing down dependencies upon dependencies.
I recently found that Nix eliminates a lot of the gruntwork from fuzz testing. I created a Nix configuration that kicks off a fuzz testing workflow with a single command. The only dependencies are Nix and git.
I used my Nix workflow to find an unpatched bug in a PDF renderer, even though I’m a beginner at both Nix and fuzz testing.
This is a debug build speed comparison test, where the program calculates all prime numbers in the range of 1-100000. I used PyCharm for Python, CLion for C++ and RustRover for Rust.
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.
We are a professional review site that has advertisement and can receive compensation from the companies whose products we review. We use affiliate links in the post so if you use them to buy products through those links we can get compensation at no additional cost to you.OkDecline
1,036 Comments
Tomi Engdahl says:
https://www.howtogeek.com/easy-tasks-to-improve-the-security-of-your-linux-computer/
Tomi Engdahl says:
Perinteiset ohjelmointikielet kukoistavat näissä laitteissa – osaajille riittää kysyntää
https://www.tivi.fi/uutiset/perinteiset-ohjelmointikielet-kukoistavat-naissa-laitteissa-osaajille-riittaa-kysyntaa/4d5440c9-1231-4a6e-9d41-05a3ca56edc7
Sulautetut järjestelmät yhdistävät laitteen ja sitä ohjaavan ohjelmiston kiinteästi toisiinsa. Niiden kehittäminen on hyvin erilaista kuin tavanomainen koodaustyö.
Mitä yhteistä on älykellon laturilla, nykyaikaisella autolla ja metsäkoneella? Niiden toiminnan edellytyksenä ovat sulautetut järjestelmät, jolla tarkoitetaan tiettyyn tehtävään suunnatun laitteen ja sitä ohjaavan ohjelmiston kiinteää yhdistelmää.
Tomi Engdahl says:
PowerToys will soon let you create app workspaces and launch them with a single click
https://www.neowin.net/news/powertoys-will-soon-let-you-create-app-workspaces-and-launch-them-with-a-single-click/
Tomi Engdahl says:
Setting up a home lab? Check out these 5 incredible operating systems
https://www.xda-developers.com/best-home-lab-os/
Tomi Engdahl says:
Microsoft’s New Upgrade Decision—Bad News Confirmed For 70% Of All Windows Users
https://www.forbes.com/sites/zakdoffman/2024/08/17/microsoft-warns-1-billion-windows-10-users-new-windows-11-free-upgrade-decision/
A nightmare week for hundreds of millions of Microsoft Windows users has just got worse. And while there had seemed some good news coming out of Microsoft HQ for those users earlier in the week, that vibe has just been quashed.
Most Windows headlines over recent days have covered the latest Patch Tuesday, which confirmed no less than five actively exploited zero-days, all of which were rapidly added to the U.S. government’s Known Exploited Vulnerability catalog.
Tomi Engdahl says:
Rust 1.80.0 breaks existing code such as time crate, exposes compatibility snag with type inference
https://devclass.com/2024/08/19/rust-1-80-0-breaks-existing-code-such-as-time-crate-exposes-compatibility-snag-with-type-inference/
Tomi Engdahl says:
Sourcegraph makes core repository private, co-founder complains open source means “extra work and risk”
https://devclass.com/2024/08/21/sourcegraph-makes-core-repository-private-co-founder-complains-open-source-means-extra-work-and-risk/
Tomi Engdahl says:
In Leaked Audio, Amazon Cloud CEO Says Human Developers Will Soon Be a Thing of the Past
https://futurism.com/the-byte/aws-ceo-human-devs-ai
“Coding is just kind of like the language that we talk to computers. It’s not necessarily the skill in and of itself.”
Tomi Engdahl says:
Will Mojo Replace Python? Mojo’s popularity and better performance has led many developers thinking if Mojo will kill Python and become the king of programming languages
Read more at: https://analyticsindiamag.com/ai-trends-future/will-mojo-replace-python/
Tomi Engdahl says:
https://dev.to/dipakahirav/modern-api-development-with-nodejs-express-and-typescript-using-clean-architecture-1m77
Tomi Engdahl says:
https://randomnerdtutorials.com/esp32-cyd-lvgl-display-image/
Tomi Engdahl says:
OpenCTI: Open-source cyber threat intelligence platform
OpenCTI is an open-source platform designed to help organizations manage their cyber threat intelligence (CTI) data and observables.
https://www.helpnetsecurity.com/2024/08/21/opencti-open-source-cyber-threat-intelligence-platform/
Tomi Engdahl says:
Why am I writing a Rust compiler in C?
https://notgull.net/announcing-dozer/
To bootstrap Rust, no cost is too great.
Perceptive Rustaceans may have noticed my activity has gone down as of late. There are a handful of different reasons for this. I’ve been the subject of a truly apocalyptic series of life events, including the death of a relative that rattled me to my core. I’ve had more responsibilities at work, leaving me with less time and energy to contribute. Maybe I’ve also lost a little bit of the college-kid enthusiasm that brought me to open source in the first place.
There’s another reason, too. I’ve been cooking up a project that’s been taking up most of my time. It’s certainly the largest project I’ve created in the open source world, and if I complete it, it will certainly be my crowning achievement.
I am writing a Rust compiler in pure C. No C++.
Tomi Engdahl says:
TiddlyWiki: An Open Source Alternative to Notion or Obsidian
Non-linear personal web notebook TiddlyWiki can be a note-taking or information-ordering system. It produces a wiki with interactive components.
https://thenewstack.io/tiddlywiki-an-open-source-alternative-to-notion-or-obsidian/
Tomi Engdahl says:
https://www.marktechpost.com/2024/08/14/sparrow-an-innovative-open-source-platform-for-efficient-data-extraction-and-processing-from-various-documents-and-images/
Tomi Engdahl says:
https://www.loihde.com/ajankohtaista/blogi/arkkitehtuurisuunnittelu-askel-askeleelta
Tomi Engdahl says:
https://www.howtogeek.com/why-i-stopped-using-ubuntu/
Tomi Engdahl says:
https://www.theregister.com/2024/09/03/gnu_screen_5/
Tomi Engdahl says:
https://www.infoworld.com/article/3486307/the-open-source-community-strikes-back.html
Tomi Engdahl says:
How to build an open source metrics dashboard
How GitHub volunteers built an open source metrics dashboard for the World Health Organization and some best practices they picked up along the way.
https://github.blog/open-source/maintainers/how-to-build-an-open-source-metrics-dashboard/
Tomi Engdahl says:
https://www.omgubuntu.co.uk/2024/08/microsoft-mono-project-to-wine
Tomi Engdahl says:
https://blog.adafruit.com/2024/08/26/a-raspberry-pi-emulator-in-an-easy-to-use-docker-image/
Tomi Engdahl says:
Nuclei: Open-source vulnerability scanner
Nuclei is a fast and customizable open-source vulnerability scanner powered by YAML-based templates.
https://www.helpnetsecurity.com/2024/08/26/nuclei-open-source-vulnerability-scanner/
Tomi Engdahl says:
Devs: Don’t Just Read About Design Patterns, Implement Them
Design patterns help document software as an engineering discipline, but implementing examples is still the best way to solve new problems.
https://thenewstack.io/devs-dont-just-read-about-design-patterns-implement-them/
Tomi Engdahl says:
https://thenewstack.io/is-react-now-a-full-stack-framework-and-other-dev-news/
Tomi Engdahl says:
https://www.howtogeek.com/why-is-it-called-a-terminal-emulator/
Tomi Engdahl says:
https://hackaday.com/2024/09/18/blowing-up-shell-scripts/
Tomi Engdahl says:
https://www.infoworld.com/article/2336216/white-house-urges-developers-to-dump-c-and-c.html
Tomi Engdahl says:
https://www.infoworld.com/article/3511336/c-language-slumps-in-tiobe-popularity-index.html
Longtime leading programming language for systems development dropped to fourth in the Tiobe index for September, its lowest position ever.
Tomi Engdahl says:
https://www.taiste.fi/en/post/why-ux-writing-is-the-secret-weapon-you-didnt-know-you-had
Tomi Engdahl says:
https://analyticsindiamag.com/developers-corner/why-most-developers-dont-like-visual-programming/
Tomi Engdahl says:
The rise and fall in programming languages’ popularity since 2016 – and what it tells us
Our latest deep dive crunches the numbers from 2016 to 2024, revealing fascinating insights into the popularity of programming languages and how emerging trends and industry shifts have influenced developer preferences.
david-gewirtz
https://www.zdnet.com/article/the-rise-and-fall-in-programming-languages-popularity-since-2016-and-what-it-tells-us/
Tomi Engdahl says:
https://www.raspberrypi.com/news/rust-on-rp2350/
Tomi Engdahl says:
Google says replacing C/C++ in firmware with Rust is easy
Not so much when trying to convert coding veterans
https://www.theregister.com/2024/09/06/google_rust_c_code_language/
Tomi Engdahl says:
Upgrading Linux with Rust looks like a new challenge. It’s one of our oldest
From the crooked timber of humanity, no straight thing was ever built. Not even a kernel
https://www.theregister.com/2024/09/09/opinion_column_rust_linux/
Tomi Engdahl says:
https://www.infoworld.com/article/3511396/rust-1-81-stabilizes-error-trait.html
Tomi Engdahl says:
Is there anything to translate Python to C code?
https://discuss.python.org/t/is-there-anything-to-translate-python-to-c-code/12273/6
https://www.codeconvert.ai/python-to-c-converter
https://gist.github.com/vi4hu/a1aae1a6d209705a14bca2b7c4c7625e
https://github.com/jagv091205/Python_to_C_converter
https://wiki.python.org/moin/PythonImplementations#Compilers
Tomi Engdahl says:
Is there any algorithm to check memory safety and data races at the same time? [closed]
https://stackoverflow.com/questions/79066130/is-there-any-algorithm-to-check-memory-safety-and-data-races-at-the-same-time
Tomi Engdahl says:
Krasimir Tsonev revealing 6 signs you suffer from Senior Developer Syndrome
https://webexpo.net/blog/krasimir-tsonev-revealing-6-signs-you-suffer-from-senior-developer-syndrome/
Tomi Engdahl says:
The Most In-Demand Programming Languages for 2025
Python is the most widely used programming language since its inception
https://www.analyticsinsight.net/coding/programming-languages/the-most-in-demand-programming-languages-for-2025
Tomi Engdahl says:
Rust Programming for Beginners: Building a Recipe Manager App
https://www.howtogeek.com/rust-programming-for-beginners-building-a-recipe-manager-app/
Tomi Engdahl says:
Google’s Rust belts bugs out of Android, helps kill off unsafe code substantially
Memory safety flaws used to represent 76% of ‘droid security holes. Now they account for 24%
https://www.theregister.com/2024/09/25/google_rust_safe_code_android/
Tomi Engdahl says:
Rust nousee tasaisen varmasti suosituimpien kielten listalla
https://etn.fi/index.php/13-news/16764-rust-nousee-tasaisen-varmasti-suosituimpien-kielten-listalla
Tomi Engdahl says:
The Top 5 Python Packages and What They Do
This look at the most downloaded Python packages shows Amazon’s dominance in the PyPI ecosystem.
https://thenewstack.io/the-top-5-python-packages-and-what-they-do/?fbclid=IwZXh0bgNhZW0BMABhZGlkAAAGABJYpC0BHfylYf4t9kTbpkZqFh2_6dSfOxbqQj5lkZW3UBpnaQvjaahO51qEd-357w_aem_zX_ag89CeIPDMVcezKOv4g&utm_medium=paid&utm_source=fb&utm_id=6597377553941&utm_content=6597377555341&utm_term=6597377554341&utm_campaign=6597377553941
Tomi Engdahl says:
https://www.valagroup.com/blog/why-to-invest-in-quality-assurance/
Tomi Engdahl says:
Serverless is dead; long live serverless!
https://nitor.com/en/articles/serverless-is-dead-long-live-serverless?fbclid=IwZXh0bgNhZW0BMABhZGlkAAAGHUA-ayYBHXXQ0i759PDa5-ZjwOAaCfowhl9ZJ6dJB_J8LSrUAl1ioQjgF02cvwDmKg_aem_viqOHjTFFLx1HcrL9VfioQ
The benefits of serverless architecture were so convincing back in 2019 that I even wrote a blog post about how serverless will eat the world. In this post, I reflect on what has changed since then and how serverless is doing in 2024.
With that out of the way, I want to add my voice to the recent discussion about the purported serverless decline. I’ve seen blog posts about teams moving away from AWS Lambdas, read news of Amazon Web Services shuttering its serverless advocacy program, and perused articles comparing lambda to a vanity project. So, was I wrong all along?
Well, yes and no – the benefits do not come without considerations
I’ll start with the “no” since it is more straightforward. Serverless still has all the benefits I mentioned in my old blog post. It still eliminates whole classes of errors around operations and state management. You must push the state to the edges (database or the client), and your workload is guaranteed to scale within the limits of your chosen Functions as a Service (FaaS) platform. Updating a single function is possible, potentially making upgrades smaller and safer and enabling faster velocity. There are significant limitations with performance and cost, but many use cases will run well enough with minimal expense.
Let’s get to the point where I was wrong then. At the time, the market players were working very hard to push the limits of FaaS services. Given the progress of computing power consistently lowering costs, I hoped that providers would quickly eliminate all of the significant limitations.
Cold starts are still a thing, and FaaS pricing has remained mostly the same. You still must understand all available options to determine which fits your workload best. FaaS services come with hidden limitations, and tooling still doesn’t sufficiently encourage good architecture or warn about bad choices that might end up being costly.
How to know when to go serverless
Serverless solutions are still an excellent choice for many use cases that do not require high frequencies and super-low latencies. However, if those things are required, you can run some semi-serverless options with minimal infrastructure, like AWS Fargate. The point is to avoid infrastructure complexity and focus all of the team’s talent on the actual problem – and containers do that well.
There is also hope for FaaS. The problems around the current limitations are by no means insurmountable.
Most functions need very little memory, but you need to grab a gigabyte to get the necessary CPU. This leads to overprovisioning memory and waste for AWS and contributes to the inability to drive AWS’s costs down.
Similarly, provisioned concurrency is quite expensive
True serverless FaaS is at its best in naturally event-driven and asynchronous scenarios. Many data streaming use cases can greatly benefit from the infrastructure simplicity gained by using serverless functions triggered by streamed events. It’s good to keep an eye on the volume, as high-volume streams will be cheaper to run in a constantly running container on a platform such as AWS Fargate. You can also mitigate costs related to high throughput streams by appropriate batching when real-time processing is not required.
In conclusion, as I did back in 2019, I still find serverless solutions are an excellent fit for many things. However, I’d like to see more progress in tackling the complex performance engineering challenges that serverless platforms face today.
Tomi Engdahl says:
Ohjelmiston laatua voi parantaa kääntämällä ajattelun päälaelleen – ”On luonnollista kirjoittaa ensin testi”
Panu Räty2.11.202412:11OhjelmistokehitysTeknologia
Laatua korostava testivetoinen kehittäminen on vähälle huomiolle jäänyt ohjelmistokehitysmenetelmä, josta olisi paljon hyötyä harkitusti käytettynä. Mitä varhaisemmassa vaiheessa laatuun panostetaan, sitä kustannustehokkaampaa se on.
https://www.tivi.fi/uutiset/ohjelmiston-laatua-voi-parantaa-kaantamalla-ajattelun-paalaelleen-on-luonnollista-kirjoittaa-ensin-testi/11d81391-3c7f-4532-ab2e-bd2383a2bf13
Tomi Engdahl says:
Nix + Automated Fuzz Testing Finds Bug In PDF Parser
https://hackaday.com/2024/11/09/nix-automated-fuzz-testing-finds-bug-in-pdf-parser/
[Michael Lynch]’s adventures in configuring Nix to automate fuzz testing is a lot of things all rolled into one. It’s not only a primer on fuzz testing (a method of finding bugs) but it’s also a how-to on automating the setup using Nix (which is a lot of things, including a kind of package manager) as well as useful info on effectively automating software processes.
Using Nix to Fuzz Test a PDF Parser (Part One)
https://mtlynch.io/nix-fuzz-testing-1/
Fuzz testing is a technique for automatically uncovering bugs in software. The problem is that it’s a pain to set up. Read any fuzz testing tutorial, and the first task is an hour of building tools from source and chasing down dependencies upon dependencies.
I recently found that Nix eliminates a lot of the gruntwork from fuzz testing. I created a Nix configuration that kicks off a fuzz testing workflow with a single command. The only dependencies are Nix and git.
I used my Nix workflow to find an unpatched bug in a PDF renderer, even though I’m a beginner at both Nix and fuzz testing.
Tomi Engdahl says:
Python vs Rust vs C++ Speed Comparison
https://www.youtube.com/watch?v=wGUk3LiidQk
This is a debug build speed comparison test, where the program calculates all prime numbers in the range of 1-100000. I used PyCharm for Python, CLion for C++ and RustRover for Rust.
Tomi Engdahl says:
Every Programming Language Explained in 5 minutes
https://www.youtube.com/watch?v=BqfPgJwlUqY
0:00 Javascript
0:22 Python
0:42 Go
1:01 Java
1:16 Kotlin
1:35 PhP
1:50 C#
2:08 Swift
2:21 R
2:31 Ruby
2:48 C++
3:12 Matlab
3:23 Typescript
3:37 Scala
3:49 SQL
4:02 HTML
4:21 CSS
4:36 noSQL
4:49 Rust
5:01 Perl