TIOBE-indeksi on jo vuosia rankannut ohjelmointikielten suosiota verkkohakujen perusteella. Vaikka mittari ei liene absoluuttisen tarkka, se kuvaa hyvin käytetyimpien kielten suosiota. Huhtikuun listalla ykköseksi viime syksyn aikana noussut Python jatkaa ykkösenä.
Pythonin nousu on ollut nopeaa. Vielä vuosi sitten se oli TIOBE-listalla sijalla kolme. Ykkösenä ohjelmoijien verkkohauissa oli tuolloin C, joka nyt on toiseksi suosituin. Java on vuodessa pudonnut 2-sijalta kolmanneksi, joten käytännössä koodaajien suosikit ovat pysyneet hyvin samanlaisina jo pidempään.
The Sign Function is perfectly legitimate. The history of math is littered with mathematicians making up functions as needed to complete a task. I was in the “obviously not” camp, but it turns out a triangle does have an equation!
You can easily argue that the sign function is a “more fundamental” source of discontinuity than absolute value, cause absolute value (and many other discontinuous functions) can easily be defined in terms of sign.
Abs already has very inconvenient properties (rip possibly-decidable integration), sign doesn’t make it worse
Hey Matt, your psychedelic triangles look a lot like optical interference patterns, specifically conoscopic interference patterns. Visually, I’ve seen the same effect in moiré patterns on curved surfaces.
I accidentally discovered them in high school with a diffraction grating sandwiched between two rotated polarizers. I’ve since graduated university with a degree in physics and subsequently learned the name of the phenomenon, but your video has given me a discrete step in understanding how these patterns are mathematically derived. Thank you!
Today, working with GitHub is a fundamental skill. Most libraries and projects reside on GitHub, and we have to know how to use them. GitHub can also enhance our work procedure, and a lot of employers will ask you for your GitHub account or will check it out before they invite you for an interview. So GitHub seems to be at least as important as LinkedIn for a professional developer’s career.
This video will teach you the basics to start with GitHub and use it for your Arduino projects. And I promise: We will avoid the command line!
It’s been a rough year for floppy disk support on Linux and goes to show the state of seldom maintained to unmaintained code.
Earlier this year the Linux floppy disk driver in the 5.17 kernel saw a fix to avoid hanging if trying to read and then eject a broken floppy. Last year was also a Linux floppy fix for a regression that had been around for a half-year before being noticed.
The latest floppy pain is a concurrency use-after-free issue being uncovered within the floppy code when using its raw command ioctl (FDRAWCMD). The FDRAWCMD ioctl is used for sending raw commands to the floppy disk controller. This can be used for dealing with non-standard disks, interacting with copy-protected disks, and other non-standard usage.
Given the FDRAWCMD is just used for non-standard use-cases, the easiest fix is just disabling that interface by default.
So added today to Linux Git is now BLK_DEV_FD_RAWCMD that by default keeps this ioctl disabled unless you need to send raw floppy disk commands in 2022 to your floppy disk controller in which case you can enable it. The ioctl is being considered deprecated and will be removed outright in the future.
This change due to being security in nature was merged today to mainline for Linux 5.18.
What is Vulkan?
Details on the Vulkan SC safety-critical standard.
How much do Vulkan and the variant Vulkan SC differ?
March 1, 2022 marked a pivotal day in the world of safety systems: The Khronos Group ratified the Vulkan SC API standard. “Commercial” Vulkan has been available for some time. It’s used in a diverse array of both graphics and compute applications to maximize the capabilities and performance of the underlying GPU architecture. It also offers a quick and efficient, open standards-based means to scale across diverse architectures.
However, the safety-critical (SC) variant promises to bring those same vectors to developers of safety systems while also offering a path to certifying the software stack to meet various industry safety standards, such as ISO 26262 (automotive), IEC 61508 (industrial), and DO-178C (avionics). The following aims to dispel some of the common myths surrounding the Vulkan API standard.
For the majority of workloads, fiddling with assembly instructions isn’t worth it. The added complexity and code obfuscation generally outweigh the relatively modest gains. Mainly because compilers have become quite fantastic at generation code and because processors are just so much faster, it is hard to get a meaningful speedup by tweaking a small section of code. That changes when you introduce SIMD instructions and need to decode lots of bitsets fast. Intel’s fancy AVX-512 SIMD instructions can offer some meaningful performance gains with relatively low custom assembly.
Frederic Lardinois / TechCrunch:
Google launches Flutter 3, making the multiplatform UI development framework generally available on Linux and macOS, as well as adding support for Apple Silicon
The asynchronous nature of JavaScript to understanding the language. You’ll find the use of callbacks, promises, and async/await in code that you write every day as a JavaScript developer. In this JavaScript tutorial, you’ll learn about all three in about 10 minutes.
A list of 33 concepts that every JavaScript developer should know according to this Github repository. In this video, I’ll walk through the entire list and either explain it or admit I don’t know.
I think a lot of people get confused about call-by-value and call-by-reference. Everything in JavaScript is call-by-value. Some of those values are references.
Want to build your own peer-to-peer video chat app? WebRTC is a technology that creates a realtime connection between browsers where users can exchange audio/video streams
00:00 WebRTC Explained
02:01 Build your own Video Chat
3:37 Code setup
04:34 Peer Connection & Webcam
06:49 Offer Signaling
09:45 Answer Signaling
A “tech stack” includes all the technologies used to build a complete web or mobile application – like frameworks, cloud services, libraries, languages, and APIs. Let’s over-engineer a tech stack for an MVP, then simplify it. Learn how to build fullstack apps
Learning to code can open many doors in life, but it’s NOT easy and NOT for everybody. Let’s take a look at 8 different techniques supported by science that can help you become a programmer faster.
Chapters
00:00 Learn to Code
00:43 1. Hard Work
01:29 2. Patterns over Syntax
02:38 3. Stop Watching
03:22 4. Stay Healthy
03:47 5. Feynman Technique
05:00 6. Dopamine Hits
05:47 7. Not Too Hard tho
06:27 8. Learn Like a Pro
Software and technology has changed every aspect of the world we live in. At one extreme are the ‘mission critical’ applications – the code that runs our banks, our hospitals, our airports and phone networks. Then there’s the code we all use every day to browse the web, watch movies, create spreadsheets… not quite so critical, but still code that solves problems and delivers services.
But what about the code that only exists because somebody wanted to write it? Code created just to make people smile, laugh, maybe even dance? Maybe even code that does nothing at all, created just to see if it was possible?
Join Dylan Beattie – programmer, musician, and creator of the Rockstar programming language – for an entertaining look at the art of code. We’ll look at the origins of programming as an art form, from Conway’s Game of Life to the 1970s demoscene and the earliest Obfuscated C competitions. We’ll talk about esoteric languages and quines – how DO you create a program that prints its own source code? We’ll look at quine relays, code golf and generative art, and we’ll explore the phenomenon of live coding as performance – from the pioneers of electronic music to modern algoraves and live coding platforms like Sonic Pi.
Python jatkaa Tiobe-indeksin listalla suosituimpana ohjelmointikielenä ennen C-kieltä ja javaa, mutta listalla on myös käynnissä muutoksia. Yksi niistä on C#:n suosion kasvun. Indeksin ylläpitäjät uskovat, että C# sattaa nousta kolmen suosituimman ohjelmointikielen joukkoon tänä vuonna.
Syitä C#:n suosion kasvulle on useita, mutta tärkeimmäksi nostetaan se, että kieltä käytetään yhä enemmän Linuxilla.
There is gathering momentum around the idea of adding Rust to the Linux kernel. Why exactly is that a big deal, and what does this mean for the rest of us? The Linux kernel has been just C and assembly for its entire lifetime. A big project like the kernel has a great deal of shared tooling around making its languages work, so adding another one is quite an undertaking. There’s also the project culture developed around the language choice. So why exactly are the grey-beards of kernel development even entertaining the idea of adding Rust? To answer in a single line, it’s because C was designed in 1971, to run on the minicomputers at Bell Labs. If you want to shoot yourself in the foot, C will hand you the loaded firearm.
On the other hand, if you want to write a kernel, C is a great language for doing low-level coding. Direct memory access? Yep. Inline assembly? Sure. Runs directly on the metal, with no garbage collection or virtual machines in the way? Absolutely. But all the things that make C great for kernel programming also make C dangerous for kernel programming.
Now I hear your collective keyboards clacking in consternation: “It’s possible to write safe C code!” Yes, yes it is possible. It’s just very easy to mess up, and when you mess up in a kernel, you have security vulnerabilities. There’s also some things that are objectively terrible about C, like undefined behavior.
Rust seems to be gaining popularity. There are some ambitious projects out there, like rewriting coreutils in Rust. Many other standard applications are getting a Rust rewrite. It’s fairly inevitable that the collection of Rust developers started to ask, could we invade the kernel next? This was pitched for a Linux Plumbers Conference, and the mailing list response was cautiously optimistic. If Rust could be added without breaking things, and without losing the very things that makes Rust useful, then yes it would be interesting.
Why Rust
So what makes Rust so interesting? There are two main answers here. First, it’s a modern language with a strong memory-safety guarantee. (There’s a caveat here, and we’ll cover unsafe code later.) Something around two thirds of all security vulnerabilities are a result of memory handling bugs, and Rust pretty much eliminates those. A second bonus, Rust has some of the niceties we’ve come to appreciate in modern languages, like an easy-to-use STRING type built-in to the standard library, and some handy functions for common scenarios like string comparison.
The other answer is that Rust is an easy fit with C code and kernel programming. Rust does it’s magic in the compiler. The code you write is what actually runs, without an interpreter or garbage collection trying to be helpful. Rust hasn’t overdosed on Object Oriented patterns, but meshes nicely with the C-style structs already used in the kernel. Even the stack model is very similar to C.
There’s one problem with Rust’s memory-safe guarantee — it’s impossible to write a kernel that is formally memory-safe. A kernel has to write to unallocated memory, do weird pointer math, and other seemingly bizarre things to actually make our computers work. This doesn’t work well with a language that tries to guarantee that memory manipulations are safe. How do you write kernel code with Rust, then? Rust has added the unsafe keyword, allowing use of direct memory access and other such techniques that don’t work with Rusts’s memory guarantees. Keep the potential problems together, and it makes auditing easier.
There’s at least one other language that may come to mind as an incremental update to C that tries to do some of these things: C++. Surely this would have been even a better fit, right? Kernel devs have some strong feelings about that idea. To put it gently, none of the improvements in C++ are useful in the context of the kernel, and some of the other changes just get in the way.
What’s the Plan?
So are we about to see the kernel completely rewritten in Rust? Not likely. The kernel development process is painstakingly conservative, so the initial introduction of Rust is going to be done in the least obtrusive way possible — driver code. As kernel second-in-command [Greg Kroah-Hartman] put it, “drivers are probably the first place for an attempt like this as they are the ‘end leafs’ of the tree of dependencies in the kernel source. They depend on core kernel functionality, but nothing depends on them.”
Frederic Lardinois / TechCrunch:
Google Cloud launches new software supply chain and zero trust tools, including one that gives governments and enterprises access to vetted open-source packages — Google Cloud is holding its annual Security Summit this week and unsurprisingly, the company used the event to launch a few new security features.
Google Cloud is holding its annual Security Summit this week and unsurprisingly, the company used the event to launch a few new security features. This year, the announcements focus on software supply chain security, Zero Trust and tools for making it easier for enterprises to adopt Google Cloud’s security capabilities.
It’s no surprise that software supply chain security makes an appearance at this year’s event. Thanks to recent high-profile attacks, it’s been the focus of White House summits and, just last week, an industry group that includes Google, Amazon, Ericsson, Intel, Microsoft and VMware pledged $30 million to work with the Linux Foundation and Open Source Security Foundation to improve the security of open-source software.
At today’s Summit, Google Cloud announced the launch of its Assured Open Source Software service, which gives enterprises and government users access to the same vetted open source packages that Google itself uses in its projects. According to the company, these packages are regularly scanned, analyzed and fuzz-tested for vulnerabilities and built with Google Cloud’s Cloud Build service with evidence of SLSA-compliance (that’s “Supply-chain Levels for Software Artifacts,” a framework for safeguarding artifact integrity across software supply chains). These packages are also signed by Google and distributed from Google’s secured registry. “Assured OSS helps organizations reduce the need to develop, maintain and operate a complex process for securely managing their open source dependencies,” Google explains in its announcement today.
Also new today is BeyondCorp Enterprise Essentials, a new edition of Google Cloud’s BeyondCorp Enterpirse Zero Trust solution that promises to “help organizations quickly and easily take the first steps toward Zero Trust implementation.”
Finally, Google is also launched a new Security Foundation solution for enterprises that aims to make it easier for them to adopt Google Cloud’s security capabilities. It joins Google’s other ready-made solutions, which so far have focused on specific industries (retail, media and entertainment, financial services, etc.) as opposed to this more general security-centric package.
Linux-ydin koodataan lähestulkoon kokonaan C-kielellä. C ja C++ tuovat mukanaan haavoittuvuuksia useille saiteille ja verkkosovelluksiin, koska niiden muistinhallinta on puutteellinen. Nyt käynnissä on hanke, jossa halutaan siirtyä avoimen koodin hankkeissa modernimpiin, turvallisempiin kieliin kuten Rust ja Go.
Suuri osa nykyaikaisista Internet-ohjelmistoista on koodattu C:llä, mikä johtaa suureen määrään haavoittuvuuksia vuosittain. Noin 70 prosenttia Microsoftin alustoilla olevista haavoittuvuuksista vuosina 2006–2018 johtui muistin turvallisuusongelmista. Vuonna 2020 Google raportoi, että 70 prosenttia Chromen haavoittuvuuksista johtui muistinhallinnasta.
Rust-koodia on sisällytetty Linux-ytimeen jo pitkään ja viime syksynä tilanne parani entisestään, kun kehittäjille saatiin vakaa Rust-käännin.
Asialla ovat avoimen lähdekoodin tärkeimmät säätiöt, OpenSSF eli Open Source Security Foundation ja Linux Foundation. Ne ovat esittäneet Jos Bidenin hallinnolle ohjelmaa, jossa näistä kyberturvattomista kielistä päästäisiin eroon. Hankkeeseen voi tutustua täällä.
There was a time when trying to learn to write low-level driver or kernel code was hard. You really needed two machines: one to work with, and one to screw up over and over again until you got it right. These days you can just spin up a virtual machine and roll it back every time you totally screw up. Much easier! We don’t think it is all that practical, but [nsommer] has an interesting post about loading up a C compiler and compiling Linux for a virtual machine. What’s different? Oh, the virtual machine is in your browser.
The v86 CPU emulator runs in the browser and looks like a Pentium III computer with the usual hardware. You might think it is slow and it certainly isn’t going to be fast as a rocket, but it does translate machine code into WebAssembly, so performance isn’t as bad as you might think.
Cryptography is scary. In this tutorial, we get hands-on with Node.js to learn how common crypto concepts work, like hashing, encryption, signing, and more https://fireship.io/lessons/node-crypto-examples/
Chapters
00:00 What is Cryptography
00:52 Brief History of Cryptography
01:41 1. Hash
04:07 2. Salt
05:47 3. HMAC
06:35 4. Symmetric Encryption.
08:19 5. Keypairs
09:29 6. Asymmetric Encryption
10:22 7. Signing
11:31 Hacking Challenge
Richard is a member of the Elm core team, the author of Elm in Action from Manning Publications, and the instructor for the Intro to Elm and Advanced Elm courses on Frontend Masters. He’s been writing Elm since 2014, and is the maintainer of several open-source Elm packages including elm-test and elm-css packages.
In this video we look at branchless programming. This is a technique to gain speed in our high and low level programming by avoiding branching code as much as possible.
Have you been slowly falling down a rabbit hole of Stallman-like paranoia of computers ever since installing Ubuntu for the first time in 2007? Do you now abhor anything with a GUI, including browsers? Do you check your mail with the command line even though you’re behind seven proxies? But, do you still want to play Minecraft? If so, this command-line-only screen viewer might just be the tool to use a GUI without technically using one.
This remote screen viewer is built in Python by [louis-e] and, once installed, allows the client to view the screen of the server even if the client is a text-only console. [louis-e] demonstrates this from within a Windows command prompt. The script polls the server screen and then displays it in the console using the various colors and textures available. As a result, the resolution and refresh rate are both quite low, but it is still functional enough to play Minecraft and do other GUI-based tasks as long as there’s no fine text to read anywhere.
Ohjelmistokehityksessä on monia ongelmia. Ammattitaitoisista kehittäjistä on pulaa, projektit ruuhkautuvat ja myöhästyvät, tietomurtojen määrä kasvaa ja ylipäätään teknistä velkaa on paljon. Jungvidin mukaan vähäkoodiset menetelmät sopivat ratkomaan kaikki näitä ongelmia.
Tutkimusten mukaan kolme neljästä kehittäjästä odottaa useimpien sovellusten olevan pilvinatiiveja jo tänä vuonna. Jungvidin mukaan tämä avaa paljon mahdollisuuksia low code -pohjaisille ratkaisuille.
- Vuosien varrella yritykset ovat oppineet, että pilveen siirtyminen myöhästyttää projekteja ja nostaa kustannuksia ilman, että joustavuuden ja kustannustehokkuudet lupaus toteutuu. Vaikeutena on se, että pilvinatiivi ei ole helppoa. Jokaisella pilvipalveluntarjoajalla on paljon erilaisia palveluita, joilla kaikilla on omat API:t ja tuetut ohjelmointikielensä. Ammattitaitoisten pilvisuunnittelijoiden palkkaaminen voi olla erittäin vaikeaa, ja olemassa olevien resurssien uudelleenkoulutus voi tulla kalliiksi ajan myötä.
Jungvidin mukaan Outsystems yrittää ratkaista tätä ongelmaa uudella alustallaan, jota kutsutaan nimellä Project Neo. – Se on täysin pilvipohjainen low code -pino, jonka avulla voidaan rakentaa täysin pilvipohjaisia natiivisovelluksia ja samalla poistaa kaikki julkisen pilven monimutkaisuudet.
Data classes in Python are really powerful and not just for representing structured data. In this video I show you what you can do with dataclasses as well as new capabilities that have been added in Python 3.10.
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
961 Comments
Tomi Engdahl says:
https://hackaday.com/2022/04/18/ray-traced-doom-really-shines/
Tomi Engdahl says:
Python kärjessä, MATLAB laskussa
https://etn.fi/index.php/13-news/13447-python-kaerjessae-matlab-laskussa
TIOBE-indeksi on jo vuosia rankannut ohjelmointikielten suosiota verkkohakujen perusteella. Vaikka mittari ei liene absoluuttisen tarkka, se kuvaa hyvin käytetyimpien kielten suosiota. Huhtikuun listalla ykköseksi viime syksyn aikana noussut Python jatkaa ykkösenä.
Pythonin nousu on ollut nopeaa. Vielä vuosi sitten se oli TIOBE-listalla sijalla kolme. Ykkösenä ohjelmoijien verkkohauissa oli tuolloin C, joka nyt on toiseksi suosituin. Java on vuodessa pudonnut 2-sijalta kolmanneksi, joten käytännössä koodaajien suosikit ovat pysyneet hyvin samanlaisina jo pidempään.
Tomi Engdahl says:
Ray-Traced Doom Really Shines!
https://hackaday.com/2022/04/18/ray-traced-doom-really-shines/
Tomi Engdahl says:
Is there an equation for a triangle?
https://www.youtube.com/watch?v=4K-Jx914NcQ
Viewer comments:
The Sign Function is perfectly legitimate. The history of math is littered with mathematicians making up functions as needed to complete a task. I was in the “obviously not” camp, but it turns out a triangle does have an equation!
You can easily argue that the sign function is a “more fundamental” source of discontinuity than absolute value, cause absolute value (and many other discontinuous functions) can easily be defined in terms of sign.
Abs already has very inconvenient properties (rip possibly-decidable integration), sign doesn’t make it worse
Hey Matt, your psychedelic triangles look a lot like optical interference patterns, specifically conoscopic interference patterns. Visually, I’ve seen the same effect in moiré patterns on curved surfaces.
I accidentally discovered them in high school with a diffraction grating sandwiched between two rotated polarizers. I’ve since graduated university with a degree in physics and subsequently learned the name of the phenomenon, but your video has given me a discrete step in understanding how these patterns are mathematically derived. Thank you!
Tomi Engdahl says:
https://hackaday.com/2022/04/21/scanning-receipts-proves-trickier-than-anticipated/
Tomi Engdahl says:
Github Tutorial without using Command Line
https://www.youtube.com/watch?v=tCuPbW31vAw
Today, working with GitHub is a fundamental skill. Most libraries and projects reside on GitHub, and we have to know how to use them. GitHub can also enhance our work procedure, and a lot of employers will ask you for your GitHub account or will check it out before they invite you for an interview. So GitHub seems to be at least as important as LinkedIn for a professional developer’s career.
This video will teach you the basics to start with GitHub and use it for your Arduino projects. And I promise: We will avoid the command line!
Tomi Engdahl says:
https://www.cyberciti.biz/tips/my-10-unix-command-line-mistakes.html
Tomi Engdahl says:
https://www.cnx-software.com/2022/04/22/qemu-7-0-released-risc-v-kvm-intel-amx/
Tomi Engdahl says:
https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format
Tomi Engdahl says:
https://bash.cyberciti.biz/guide/Shebang
Tomi Engdahl says:
https://blog.arduino.cc/2022/04/20/the-arduino-ide-2-0-now-speaks-your-language/
Tomi Engdahl says:
https://www.facebook.com/126000117413375/posts/5655754507771214/
Did you know? PHP has an inbuilt syntax check only linter. You can invoke it from Linux or Unix CLI:
php -l myphp.php
php8 -l lib.php
php8-cli -l code.php
Very handy for large scripts and get the exact location where you missed stupid ‘;’ the mortal enemy of every developer
PS: Any person who will shame me for using PHP may be struck by lightning. Lmao.
Tomi Engdahl says:
Linux Disabling Raw Access To Floppy Disks “FDRAWCMD” By Default
https://www.phoronix.com/scan.php?page=news_item&px=Linux-Disable-FDRAWCMD
It’s been a rough year for floppy disk support on Linux and goes to show the state of seldom maintained to unmaintained code.
Earlier this year the Linux floppy disk driver in the 5.17 kernel saw a fix to avoid hanging if trying to read and then eject a broken floppy. Last year was also a Linux floppy fix for a regression that had been around for a half-year before being noticed.
The latest floppy pain is a concurrency use-after-free issue being uncovered within the floppy code when using its raw command ioctl (FDRAWCMD). The FDRAWCMD ioctl is used for sending raw commands to the floppy disk controller. This can be used for dealing with non-standard disks, interacting with copy-protected disks, and other non-standard usage.
Given the FDRAWCMD is just used for non-standard use-cases, the easiest fix is just disabling that interface by default.
So added today to Linux Git is now BLK_DEV_FD_RAWCMD that by default keeps this ioctl disabled unless you need to send raw floppy disk commands in 2022 to your floppy disk controller in which case you can enable it. The ioctl is being considered deprecated and will be removed outright in the future.
This change due to being security in nature was merged today to mainline for Linux 5.18.
Tomi Engdahl says:
Did you know? You can use cpufetch command to display on Linux, macOS, FreeBSD, Android, and Windows to fetch CPU details. See https://www.cyberciti.biz/open-source/install-cpufetch-on-linux-macos-android-to-get-cpu-architecture-info/?utm_source=Social_Media&utm_medium=Facebook&utm_campaign=May_07_2022 for more info.
Tomi Engdahl says:
11 Myths About Vulkan
April 19, 2022
Vulkan can expose compute functionality without exposing graphics capabilities. CoreAVI’s Neil Stroud dispels the myths that have emerged about the technology.
https://www.electronicdesign.com/technologies/embedded-revolution/article/21238533/coreavi-11-myths-about-vulkan?utm_source=EG+ED+Auto+Electronics&utm_medium=email&utm_campaign=CPS220415021&o_eid=7211D2691390C9R&rdx.ident%5Bpull%5D=omeda%7C7211D2691390C9R&oly_enc_id=7211D2691390C9R
What you’ll learn:
What is Vulkan?
Details on the Vulkan SC safety-critical standard.
How much do Vulkan and the variant Vulkan SC differ?
March 1, 2022 marked a pivotal day in the world of safety systems: The Khronos Group ratified the Vulkan SC API standard. “Commercial” Vulkan has been available for some time. It’s used in a diverse array of both graphics and compute applications to maximize the capabilities and performance of the underlying GPU architecture. It also offers a quick and efficient, open standards-based means to scale across diverse architectures.
However, the safety-critical (SC) variant promises to bring those same vectors to developers of safety systems while also offering a path to certifying the software stack to meet various industry safety standards, such as ISO 26262 (automotive), IEC 61508 (industrial), and DO-178C (avionics). The following aims to dispel some of the common myths surrounding the Vulkan API standard.
Tomi Engdahl says:
Browser Developer Tools Tutorial: 10+ Tricks You Must Know
https://torquemag.io/2020/06/browser-developer-tools-tutorial/
Tomi Engdahl says:
https://hackaday.com/2022/05/07/reflecting-on-a-queueing-prism-leads-to-unexpected-results/
Tomi Engdahl says:
AVX-512: When The Bits Really Count
https://hackaday.com/2022/05/09/avx-512-when-the-bits-really-count/
For the majority of workloads, fiddling with assembly instructions isn’t worth it. The added complexity and code obfuscation generally outweigh the relatively modest gains. Mainly because compilers have become quite fantastic at generation code and because processors are just so much faster, it is hard to get a meaningful speedup by tweaking a small section of code. That changes when you introduce SIMD instructions and need to decode lots of bitsets fast. Intel’s fancy AVX-512 SIMD instructions can offer some meaningful performance gains with relatively low custom assembly.
Fast bitset decoding using Intel AVX-512
https://lemire.me/blog/2022/05/06/fast-bitset-decoding-using-intel-avx-512/
Tomi Engdahl says:
Frederic Lardinois / TechCrunch:
Google launches Flutter 3, making the multiplatform UI development framework generally available on Linux and macOS, as well as adding support for Apple Silicon
https://techcrunch.com/2022/05/11/googles-flutter-3-adds-support-for-macos-and-linux-desktop-apps/
Tomi Engdahl says:
10 Things JavaScript Developers Have STOPPED Doing – Are you doing them?
https://www.youtube.com/watch?v=BtXS5KuGkR0
JavaScript has changed. Are you keeping up? Let’s talk about 10 things JavaScript developers have stopped doing in the last several years.
00:00 – Intro
01:00 – TypeScript
02:30 – For Loops
04:20 – Arrow Functions
05:50 – JavaScript This
09:14 – Const and Let vs Var
10:40 – Commenting Code
12:35 – Optional Chaining
14:50 – Browser Compatibility
16:25 – Debugging
Tomi Engdahl says:
Asynchronous JavaScript in ~10 Minutes – Callbacks, Promises, and Async/Await
https://www.youtube.com/watch?v=670f71LTWpM
The asynchronous nature of JavaScript to understanding the language. You’ll find the use of callbacks, promises, and async/await in code that you write every day as a JavaScript developer. In this JavaScript tutorial, you’ll learn about all three in about 10 minutes.
00:00 – Intro
01:15 – Callbacks
03:20 – Error First Callback
05:00 – Promises
10:00 – Async/Await
Tomi Engdahl says:
33 Concepts JavaScript Developers “SHOULD Know” (I don’t know all of them…)
https://www.youtube.com/watch?v=2alCBdPcadM
A list of 33 concepts that every JavaScript developer should know according to this Github repository. In this video, I’ll walk through the entire list and either explain it or admit I don’t know.
I think a lot of people get confused about call-by-value and call-by-reference. Everything in JavaScript is call-by-value. Some of those values are references.
Tomi Engdahl says:
WebRTC Pong
https://www.youtube.com/watch?v=CUtJFKyDCNE
Play the game: https://mitxela.com/pong
Learn how it works: https://mitxela.com/webrtc-pong
Tomi Engdahl says:
WebRTC in 100 Seconds // Build a Video Chat app from Scratch
https://www.youtube.com/watch?v=WmR9IMUD_CY
Want to build your own peer-to-peer video chat app? WebRTC is a technology that creates a realtime connection between browsers where users can exchange audio/video streams
00:00 WebRTC Explained
02:01 Build your own Video Chat
3:37 Code setup
04:34 Peer Connection & Webcam
06:49 Offer Signaling
09:45 Answer Signaling
https://fireship.io/lessons/webrtc-firebase-video-chat/
Source Code
https://github.com/fireship-io/webrtc-firebase-demo
Tomi Engdahl says:
7 Database Paradigms
https://www.youtube.com/watch?v=W2Z7fbCLSTw
00:00 Intro
00:45 Key-value
01:48 Wide Column
02:47 Document
04:05 Relational
06:21 Graph
07:22 Search Engine
08:27 Multi-model
https://fireship.io/lessons/top-seven-database-paradigms/
Tomi Engdahl says:
How to OVER Engineer a Website // What is a Tech Stack?
https://www.youtube.com/watch?v=Sxxw3qtb3_g
A “tech stack” includes all the technologies used to build a complete web or mobile application – like frameworks, cloud services, libraries, languages, and APIs. Let’s over-engineer a tech stack for an MVP, then simplify it. Learn how to build fullstack apps
Tomi Engdahl says:
How to Learn to Code – 8 Hard Truths
https://www.youtube.com/watch?v=NtfbWkxJTHw
Learning to code can open many doors in life, but it’s NOT easy and NOT for everybody. Let’s take a look at 8 different techniques supported by science that can help you become a programmer faster.
Chapters
00:00 Learn to Code
00:43 1. Hard Work
01:29 2. Patterns over Syntax
02:38 3. Stop Watching
03:22 4. Stay Healthy
03:47 5. Feynman Technique
05:00 6. Dopamine Hits
05:47 7. Not Too Hard tho
06:27 8. Learn Like a Pro
Tomi Engdahl says:
The Art of Code – Dylan Beattie
https://www.youtube.com/watch?v=6avJHaC3C2U
Software and technology has changed every aspect of the world we live in. At one extreme are the ‘mission critical’ applications – the code that runs our banks, our hospitals, our airports and phone networks. Then there’s the code we all use every day to browse the web, watch movies, create spreadsheets… not quite so critical, but still code that solves problems and delivers services.
But what about the code that only exists because somebody wanted to write it? Code created just to make people smile, laugh, maybe even dance? Maybe even code that does nothing at all, created just to see if it was possible?
Join Dylan Beattie – programmer, musician, and creator of the Rockstar programming language – for an entertaining look at the art of code. We’ll look at the origins of programming as an art form, from Conway’s Game of Life to the 1970s demoscene and the earliest Obfuscated C competitions. We’ll talk about esoteric languages and quines – how DO you create a program that prints its own source code? We’ll look at quine relays, code golf and generative art, and we’ll explore the phenomenon of live coding as performance – from the pioneers of electronic music to modern algoraves and live coding platforms like Sonic Pi.
Tomi Engdahl says:
C# kasvattaa suosiotaan
https://etn.fi/index.php/13-news/13588-c-kasvattaa-suosiotaan
Tomi Engdahl says:
Python jatkaa Tiobe-indeksin listalla suosituimpana ohjelmointikielenä ennen C-kieltä ja javaa, mutta listalla on myös käynnissä muutoksia. Yksi niistä on C#:n suosion kasvun. Indeksin ylläpitäjät uskovat, että C# sattaa nousta kolmen suosituimman ohjelmointikielen joukkoon tänä vuonna.
Syitä C#:n suosion kasvulle on useita, mutta tärkeimmäksi nostetaan se, että kieltä käytetään yhä enemmän Linuxilla.
https://etn.fi/index.php/13-news/13588-c-kasvattaa-suosiotaan
Tomi Engdahl says:
TIOBE Index for May 2022
May Headline: C# gains most ranking points
https://www.tiobe.com/tiobe-index/
Tomi Engdahl says:
Book Teaches Gaming Math
https://hackaday.com/2022/05/17/book-teaches-gaming-math/
Tomi Engdahl says:
Things Are Getting Rusty In Kernel Land
https://hackaday.com/2022/05/17/things-are-getting-rusty-in-kernel-land/
There is gathering momentum around the idea of adding Rust to the Linux kernel. Why exactly is that a big deal, and what does this mean for the rest of us? The Linux kernel has been just C and assembly for its entire lifetime. A big project like the kernel has a great deal of shared tooling around making its languages work, so adding another one is quite an undertaking. There’s also the project culture developed around the language choice. So why exactly are the grey-beards of kernel development even entertaining the idea of adding Rust? To answer in a single line, it’s because C was designed in 1971, to run on the minicomputers at Bell Labs. If you want to shoot yourself in the foot, C will hand you the loaded firearm.
On the other hand, if you want to write a kernel, C is a great language for doing low-level coding. Direct memory access? Yep. Inline assembly? Sure. Runs directly on the metal, with no garbage collection or virtual machines in the way? Absolutely. But all the things that make C great for kernel programming also make C dangerous for kernel programming.
Now I hear your collective keyboards clacking in consternation: “It’s possible to write safe C code!” Yes, yes it is possible. It’s just very easy to mess up, and when you mess up in a kernel, you have security vulnerabilities. There’s also some things that are objectively terrible about C, like undefined behavior.
Rust seems to be gaining popularity. There are some ambitious projects out there, like rewriting coreutils in Rust. Many other standard applications are getting a Rust rewrite. It’s fairly inevitable that the collection of Rust developers started to ask, could we invade the kernel next? This was pitched for a Linux Plumbers Conference, and the mailing list response was cautiously optimistic. If Rust could be added without breaking things, and without losing the very things that makes Rust useful, then yes it would be interesting.
Why Rust
So what makes Rust so interesting? There are two main answers here. First, it’s a modern language with a strong memory-safety guarantee. (There’s a caveat here, and we’ll cover unsafe code later.) Something around two thirds of all security vulnerabilities are a result of memory handling bugs, and Rust pretty much eliminates those. A second bonus, Rust has some of the niceties we’ve come to appreciate in modern languages, like an easy-to-use STRING type built-in to the standard library, and some handy functions for common scenarios like string comparison.
The other answer is that Rust is an easy fit with C code and kernel programming. Rust does it’s magic in the compiler. The code you write is what actually runs, without an interpreter or garbage collection trying to be helpful. Rust hasn’t overdosed on Object Oriented patterns, but meshes nicely with the C-style structs already used in the kernel. Even the stack model is very similar to C.
There’s one problem with Rust’s memory-safe guarantee — it’s impossible to write a kernel that is formally memory-safe. A kernel has to write to unallocated memory, do weird pointer math, and other seemingly bizarre things to actually make our computers work. This doesn’t work well with a language that tries to guarantee that memory manipulations are safe. How do you write kernel code with Rust, then? Rust has added the unsafe keyword, allowing use of direct memory access and other such techniques that don’t work with Rusts’s memory guarantees. Keep the potential problems together, and it makes auditing easier.
There’s at least one other language that may come to mind as an incremental update to C that tries to do some of these things: C++. Surely this would have been even a better fit, right? Kernel devs have some strong feelings about that idea. To put it gently, none of the improvements in C++ are useful in the context of the kernel, and some of the other changes just get in the way.
What’s the Plan?
So are we about to see the kernel completely rewritten in Rust? Not likely. The kernel development process is painstakingly conservative, so the initial introduction of Rust is going to be done in the least obtrusive way possible — driver code. As kernel second-in-command [Greg Kroah-Hartman] put it, “drivers are probably the first place for an attempt like this as they are the ‘end leafs’ of the tree of dependencies in the kernel source. They depend on core kernel functionality, but nothing depends on them.”
Tomi Engdahl says:
Frederic Lardinois / TechCrunch:
Google Cloud launches new software supply chain and zero trust tools, including one that gives governments and enterprises access to vetted open-source packages — Google Cloud is holding its annual Security Summit this week and unsurprisingly, the company used the event to launch a few new security features.
Google Cloud launches new software supply chain and zero trust security services
https://techcrunch.com/2022/05/17/google-cloud-launches-new-software-supply-chain-and-zero-trust-security-services/
Google Cloud is holding its annual Security Summit this week and unsurprisingly, the company used the event to launch a few new security features. This year, the announcements focus on software supply chain security, Zero Trust and tools for making it easier for enterprises to adopt Google Cloud’s security capabilities.
It’s no surprise that software supply chain security makes an appearance at this year’s event. Thanks to recent high-profile attacks, it’s been the focus of White House summits and, just last week, an industry group that includes Google, Amazon, Ericsson, Intel, Microsoft and VMware pledged $30 million to work with the Linux Foundation and Open Source Security Foundation to improve the security of open-source software.
At today’s Summit, Google Cloud announced the launch of its Assured Open Source Software service, which gives enterprises and government users access to the same vetted open source packages that Google itself uses in its projects. According to the company, these packages are regularly scanned, analyzed and fuzz-tested for vulnerabilities and built with Google Cloud’s Cloud Build service with evidence of SLSA-compliance (that’s “Supply-chain Levels for Software Artifacts,” a framework for safeguarding artifact integrity across software supply chains). These packages are also signed by Google and distributed from Google’s secured registry. “Assured OSS helps organizations reduce the need to develop, maintain and operate a complex process for securely managing their open source dependencies,” Google explains in its announcement today.
Also new today is BeyondCorp Enterprise Essentials, a new edition of Google Cloud’s BeyondCorp Enterpirse Zero Trust solution that promises to “help organizations quickly and easily take the first steps toward Zero Trust implementation.”
Finally, Google is also launched a new Security Foundation solution for enterprises that aims to make it easier for them to adopt Google Cloud’s security capabilities. It joins Google’s other ready-made solutions, which so far have focused on specific industries (retail, media and entertainment, financial services, etc.) as opposed to this more general security-centric package.
Tomi Engdahl says:
Study for Microsoft certifications with over 120 hours of training for $59
This $59 e-learning bundle contains an entire career’s worth of Microsoft training.
https://www.zdnet.com/article/study-for-microsoft-certifications-with-over-120-hours-of-training-for-59/
Tomi Engdahl says:
Qt kertoo, miten toimiva käyttöliittymä koodataan
https://etn.fi/index.php/13-news/13613-qt-kertoo-miten-toimiva-kaeyttoeliittymae-koodataan
Whitepaper: User Interface Design for Smart Appliances
https://www.qt.io/uiuxtrends?utm_campaign=2022-Q2%20Unified%20UX%20across%20connected%20devices&utm_medium=email&_hsmi=213754097&_hsenc=p2ANqtz-8SUwNGVwRuVgu6Uvbr2FaC8Ygl-8leRT3R6tK1DqrNn7dR3LaYtEGe-KyELkO_g5_-Od4C&utm_content=213754097&utm_source=hs_email
Tomi Engdahl says:
Linux haluaa eroon C-kielestä
https://etn.fi/index.php/13-news/13612-linux-haluaa-eroon-c-kielestae
Linux-ydin koodataan lähestulkoon kokonaan C-kielellä. C ja C++ tuovat mukanaan haavoittuvuuksia useille saiteille ja verkkosovelluksiin, koska niiden muistinhallinta on puutteellinen. Nyt käynnissä on hanke, jossa halutaan siirtyä avoimen koodin hankkeissa modernimpiin, turvallisempiin kieliin kuten Rust ja Go.
Suuri osa nykyaikaisista Internet-ohjelmistoista on koodattu C:llä, mikä johtaa suureen määrään haavoittuvuuksia vuosittain. Noin 70 prosenttia Microsoftin alustoilla olevista haavoittuvuuksista vuosina 2006–2018 johtui muistin turvallisuusongelmista. Vuonna 2020 Google raportoi, että 70 prosenttia Chromen haavoittuvuuksista johtui muistinhallinnasta.
Rust-koodia on sisällytetty Linux-ytimeen jo pitkään ja viime syksynä tilanne parani entisestään, kun kehittäjille saatiin vakaa Rust-käännin.
Asialla ovat avoimen lähdekoodin tärkeimmät säätiöt, OpenSSF eli Open Source Security Foundation ja Linux Foundation. Ne ovat esittäneet Jos Bidenin hallinnolle ohjelmaa, jossa näistä kyberturvattomista kielistä päästäisiin eroon. Hankkeeseen voi tutustua täällä.
THE OPEN SOURCE SOFTWARE SECURITY MOBILIZATION PLAN1
W H I T E PA P E R
The Open Source
Software Security
Mobilization Plan
https://8112310.fs1.hubspotusercontent-na1.net/hubfs/8112310/OpenSSF/White%20House%20OSS%20Mobilization%20Plan.pdf?hsCtaTracking=3b79d59d-e8d3-4c69-a67b-6b87b325313c%7C7a1a8b01-65ae-4bac-b97c-071dac09a2d8
Tomi Engdahl says:
Linux And C In The Browser
https://hackaday.com/2022/05/28/linux-and-c-in-the-browser/
There was a time when trying to learn to write low-level driver or kernel code was hard. You really needed two machines: one to work with, and one to screw up over and over again until you got it right. These days you can just spin up a virtual machine and roll it back every time you totally screw up. Much easier! We don’t think it is all that practical, but [nsommer] has an interesting post about loading up a C compiler and compiling Linux for a virtual machine. What’s different? Oh, the virtual machine is in your browser.
The v86 CPU emulator runs in the browser and looks like a Pentium III computer with the usual hardware. You might think it is slow and it certainly isn’t going to be fast as a rocket, but it does translate machine code into WebAssembly, so performance isn’t as bad as you might think.
Linux and Tiny C Compiler in the browser, part one
https://ja.nsommer.dk/articles/linux-and-tiny-c-compiler-in-the-browser-part-one.html
Tomi Engdahl says:
Annotate PDFs On Linux With PDFrankenstein
https://hackaday.com/2022/05/28/annotate-pdfs-on-linux-with-pdfrankenstein/
Tomi Engdahl says:
Clang In Browser is pretty impressive
https://tbfleming.github.io/cib/
Tomi Engdahl says:
7 Cryptography Concepts EVERY Developer Should Know
https://www.youtube.com/watch?v=NuyzuNBFWxQ
Cryptography is scary. In this tutorial, we get hands-on with Node.js to learn how common crypto concepts work, like hashing, encryption, signing, and more
https://fireship.io/lessons/node-crypto-examples/
Chapters
00:00 What is Cryptography
00:52 Brief History of Cryptography
01:41 1. Hash
04:07 2. Salt
05:47 3. HMAC
06:35 4. Symmetric Encryption.
08:19 5. Keypairs
09:29 6. Asymmetric Encryption
10:22 7. Signing
11:31 Hacking Challenge
Tomi Engdahl says:
Why Isn’t Functional Programming the Norm? – Richard Feldman
https://www.youtube.com/watch?v=bVJ-mWWL7cE
Richard is a member of the Elm core team, the author of Elm in Action from Manning Publications, and the instructor for the Intro to Elm and Advanced Elm courses on Frontend Masters. He’s been writing Elm since 2014, and is the maintainer of several open-source Elm packages including elm-test and elm-css packages.
Tomi Engdahl says:
Branchless Programming: Why “If” is Sloowww… and what we can do about it!
https://www.youtube.com/watch?v=bVJ-mWWL7cE
In this video we look at branchless programming. This is a technique to gain speed in our high and low level programming by avoiding branching code as much as possible.
Tomi Engdahl says:
https://hackaday.com/2022/05/31/making-the-case-for-cobol/
Tomi Engdahl says:
Remote Screen Viewer Is Text-Only
https://hackaday.com/2022/05/31/remote-screen-viewer-is-text-only/
Have you been slowly falling down a rabbit hole of Stallman-like paranoia of computers ever since installing Ubuntu for the first time in 2007? Do you now abhor anything with a GUI, including browsers? Do you check your mail with the command line even though you’re behind seven proxies? But, do you still want to play Minecraft? If so, this command-line-only screen viewer might just be the tool to use a GUI without technically using one.
This remote screen viewer is built in Python by [louis-e] and, once installed, allows the client to view the screen of the server even if the client is a text-only console. [louis-e] demonstrates this from within a Windows command prompt. The script polls the server screen and then displays it in the console using the various colors and textures available. As a result, the resolution and refresh rate are both quite low, but it is still functional enough to play Minecraft and do other GUI-based tasks as long as there’s no fine text to read anywhere.
https://github.com/louis-e/cli-screenview
Tomi Engdahl says:
Music
Listen While Working
https://hackaday.io/project/185555-music
Tomi Engdahl says:
https://hackaday.com/2022/06/01/building-faster-rsync-from-scratch-in-go/
Tomi Engdahl says:
https://etn.fi/index.php/13-news/13665-parempaa-koodia-ilman-koodia
Ohjelmistokehityksessä on monia ongelmia. Ammattitaitoisista kehittäjistä on pulaa, projektit ruuhkautuvat ja myöhästyvät, tietomurtojen määrä kasvaa ja ylipäätään teknistä velkaa on paljon. Jungvidin mukaan vähäkoodiset menetelmät sopivat ratkomaan kaikki näitä ongelmia.
Tutkimusten mukaan kolme neljästä kehittäjästä odottaa useimpien sovellusten olevan pilvinatiiveja jo tänä vuonna. Jungvidin mukaan tämä avaa paljon mahdollisuuksia low code -pohjaisille ratkaisuille.
- Vuosien varrella yritykset ovat oppineet, että pilveen siirtyminen myöhästyttää projekteja ja nostaa kustannuksia ilman, että joustavuuden ja kustannustehokkuudet lupaus toteutuu. Vaikeutena on se, että pilvinatiivi ei ole helppoa. Jokaisella pilvipalveluntarjoajalla on paljon erilaisia palveluita, joilla kaikilla on omat API:t ja tuetut ohjelmointikielensä. Ammattitaitoisten pilvisuunnittelijoiden palkkaaminen voi olla erittäin vaikeaa, ja olemassa olevien resurssien uudelleenkoulutus voi tulla kalliiksi ajan myötä.
Jungvidin mukaan Outsystems yrittää ratkaista tätä ongelmaa uudella alustallaan, jota kutsutaan nimellä Project Neo. – Se on täysin pilvipohjainen low code -pino, jonka avulla voidaan rakentaa täysin pilvipohjaisia natiivisovelluksia ja samalla poistaa kaikki julkisen pilven monimutkaisuudet.
Tomi Engdahl says:
This Is Why Python Data Classes Are Awesome
https://www.youtube.com/watch?v=CvQ7e6yUtnw
Data classes in Python are really powerful and not just for representing structured data. In this video I show you what you can do with dataclasses as well as new capabilities that have been added in Python 3.10.
Tomi Engdahl says:
https://coderoasis.com/making-java-better/