Coding tools news 2022

Here is a post where I post information on new and interesting coding tools on the comments.


  1. Tomi Engdahl says:

    Compare PDFs Visually

    Sometimes a problem seems hard, but the right insight can make it easy. If you were asked to write a program to compare two PDF files and show the differences, how hard do you think that would be? If you are [serhack], you’ll make it much easier than you might guess.

    Of course, sometimes making something simple depends on making simplifying assumptions. If you are expecting a “diff-like” utility that shows insertion and deletions, that’s not what’s going on here. Instead, you’ll see an image of the PDF with changes highlighted with a red box. This is easy because the program uses available utilities to render the PDFs as images and then simply compares pixels in the resulting images, drawing red boxes over the parts that don’t match.

  2. Tomi Engdahl says:

    The best thing we can do today to JavaScript is to retire it,’ says JSON creator Douglas Crockford
    By Tim Anderson -August 4, 2022

    Crockford made this assertion in an interview last month:

    “The best thing we can do today to JavaScript is to retire it. Twenty years ago, I was one of the few advocates for JavaScript. Its cobbling together of nested functions and dynamic objects was brilliant. I spent a decade trying to correct its flaws. I had a minor success with ES5. But since then, there has been strong interest in further bloating the language instead of making it better. So JavaScript, like the other dinosaur languages, has become a barrier to progress. We should be focused on the next language, which should look more like E than like JavaScript.”

    JavaScript is the world’s most popular programming language according to most surveys
    According to a StackOverflow survey earlier this year, JavaScript is used by over 65% of developers, way ahead of second placed Python at 48 percent (ignoring HTML, CSS and SQL which are not general purpose languages). It is an unlikely achievement considering its origins.

    Brendan Eich invented the language for Netscape in 1995, apparently in just 10 days. “In May I did 10 days of hard work, I didn’t sleep much,” Eich told the dot.JS conference in 2018.

    Eich called the work “a rush job” but also said that “I knew there would be mistakes, there would be gaps, so I made it very malleable as a language. That has enabled web developers to make it be what they want it to be.”

    Why has JavaScript been such a wild success?

    There are multiple reasons, including Eich’s foresight, ease of learning, and tolerance of code that would be mistakes in many languages, like comparing strings to numbers and getting a common-sense result – though Eich later called this “a big regret, because that breaks an important mathematical property.”

    Another big factor is that Google’s determination to make browser-based applications competitive with the desktop gave the world the V8 engine (2008), which along with Mozilla’s SpiderMonkey and Apple’s JavaScript Core gave the language amazing JIT-compiled performance. In 2009, Ryan Dahl came up with Node.js, enabling V8 to run outside the browser. Dahl had server applications in mind, but today Node.js and NPM (Node Package Manager) are also essential to the development process for most web applications.

    Development process? Part of the problem referenced by Crockford is that along with increased capability JavaScript has acquired lots of complexity, and a typical application today includes a build process using WebPack, Rollup or some other bundler, a long way from Eich’s original concept.

  3. Tomi Engdahl says:

    Should we call Rust a Failed Programming Language?
    Rust has been ranked as the most liked language by its users for two years in surveys but programmers say otherwise

  4. Tomi Engdahl says:


    The latest programming language of Google, named Carbon will bring back the glory days of C++
    Google Principal Software Engineer Chandler Carruth introduced Carbon this week at the “CPP North” C++ conference in Toronto. The purpose of this new work-in-progress programming language is to convert the C++ codebases in a better way than Rust. According to experts, Rust doesn’t have the same bi-directional interoperability as other tools, which introduces a type of language barrier when translating between different programming languages.

    Now, What makes Carbon Better than Others?
    What makes Carbon better suitable than Rust is its introducer keywords and simple grammar. Carbon’s unction input parameters are read-only values and the pointers provide indirect access & mutation. The writer can use expressions to name types and the package is the root namespace. The user can also import APIs through their package name. For Carbon, the explicit object parameter declares a method and it has a single inheritance. There are further benefits that extend beyond Carbon’s language, including ethical motives like the accessibility and inclusivity of the project’s culture.

  5. Tomi Engdahl says:

    Microsoft + Canonical Announce Native .NET 6 For Ubuntu 22.04 LTS

  6. Tomi Engdahl says:

    Machine learning, concluded: Did the “no-code” tools beat manual analysis?
    In the finale of our experiment, we look at how the low/no-code tools performed.

    The whole point of this experiment was to see:

    Whether a relative novice could use these tools effectively and accurately
    Whether the tools were more cost-effective than finding someone who knew what the heck they were doing and handing it off to them

  7. Tomi Engdahl says:

    GStreamer for your backend services

    Daily is a real time calling platform as a service. One standard feature that users have come to expect in their calls is the ability to record them, or to stream their conversations to a larger audience. This involves mixing together all the audio/video from each participant and then storing it, or streaming it live via YouTube, Twitch, or any other third-party service.

    As you might expect, GStreamer is a good fit for building this kind of functionality, where we consume a bunch of RTP streams, composite/mix them, and then send them out to one or more external services (Amazon’s S3 for recordings and HLS, or a third-party RTMP server).

  8. Tomi Engdahl says:

    Microsoft is updating how you build Visual Studio extensions, with new APIs and the ability to run extensions outside of the Visual Studio process.

  9. Tomi Engdahl says:

    JavaScript Websites

    Useful or interesting JavaScript websites.

  10. Tomi Engdahl says:

    Understanding Any() and All() Functions in Python
    In this tutorial, we’ll be covering the any() and all() functions in Python. The any(iterable) and all(iterable) are built-in functions in Python and have been around since Python 2.5 was released. Both functions are equivalent to writing a series of or and and operators respectively between each of the elements of the passed iterable. They are both convenience functions that shorten the code by replacing boilerplate loops.

  11. Tomi Engdahl says:

    Alustariippumattomuus tuo useita etuja asiakkaille sekä tekijöille
    Alustariippumattomuus mahdollistaa parhaan työkalun valinnan sekä riskien paremman hallinnan.

  12. Tomi Engdahl says:

    Controlling USB devices with Python and libusb @siliconlabs

    Controlling USB devices with Python and libusb @siliconlabs

  13. Tomi Engdahl says:

    It-järjestelmien kehittämiseen tarvitaan uusia työkaluja “Pilvenpiirtäjää yritetään rakentaa vasaralla ja lapiolla”
    Ruotsissa kyberturvallisuuden avainhenkilöihin kuuluva Pontus Johnson peräänkuuluttaa uusia työkaluja, sillä turvallisten it-järjestelmien kehittäminen ei onnistu nykyisillä välineillä. Johnson toimii Tukholman Kuninkaallisen teknillisen korkeakoulun eli KTH:n (Kungliga Tekniska Högskolan) professorina. Tietojärjestelmät vuotavat hänen mukaansa kuin seula ennen kuin uusia välineitä on saatavilla. Ja joudumme elämään asian kanssa.

  14. Tomi Engdahl says:

    C23 Programming For Everyone

    Here’s a history quiz: What architecture did the first C++ compiler target? Of course, it is a trick question. The original C++ — known then as C with classes — compiler wrote out standard C code that you then compiled for whatever your target was. This has a lot of advantages since C compilers are everywhere. Now we are seeing a similar approach to bring C23 to the world with Cake. Cake can translate C23 or other versions to C99 which you can then compile with normal compilers.

    Curious about what’s new in C23? Well, some old stuff was removed and even more was deprecated. But the really interesting things are the additions which include decimal floating point types, integers with specified bit size, standard attributes, and many changes involving constants and initialization. You can find a summary over on Of course, many of these things have been around in C++ or in common extensions for compilers for a long time, but this brings a lot of common practice together in standard C.

  15. Tomi Engdahl says:

    While the old C++ compiler, cfront, needed special steps to compile (since it was built using C++), you can build cake for Windows or Linux easily. However, it can also be built with emscripten and you can try it yourself in your web browser.

    Cake is compiled with emscripten and it is running in your browser.

  16. Tomi Engdahl says:

    Use-after-freedom: MiraclePtr

    Memory safety bugs are the most numerous category of Chrome security issues and we’re continuing to investigate many solutions – both in C++ and in new programming languages. The most common type of memory safety bug is the “use-after-free”. We recently posted about an exciting series of technologies designed to prevent these. Those technologies (collectively, *Scan, pronounced “star scan”) are very powerful but likely require hardware support for sufficient performance.

    Today we’re going to talk about a different approach to solving the same type of bugs.

  17. Tomi Engdahl says:

    Your hardware and software tools are probably fine.

    We do this nasty thing in tech sometimes where we really rip into each other for our hardware and software choices. We “content creators” also have a bad habit of using very aggressive language to get attention. And I don’t like it! Hrmph!

    In today’s “opinion-piece” episode of Veronica Explains, I share my take on this phenomenon, and why I think it’s not a great thing. Maybe I’ll change your mind, and maybe I won’t. That’s how it works!

  18. Tomi Engdahl says:

    Control multiple computers at the same time with Barrier

    If you’ve ever needed to control multiple computers on the same desk from a single keyboard and mouse, Barrier is software worth checking out!

    Barrier is a software solution (a fork of Synergy) which replaces unsightly KVM switches, and is super neat! In this video, I’ll install Barrier on four systems (running Pop!_OS, Windows 10, macOS, and GhostBSD), and run them all from the same keyboard and mouse!

  19. Tomi Engdahl says:

    Javasta tuli uusi versio – miljoonat koodaajat ajavat vanhoilla
    Javasta tuli uusi versio – miljoonat koodaajat ajavat vanhoilla
    Julkaistu: 21.09.2022
    Oracle on esitellyt uuden version Javasta. Java 19 JDK sisältää seitsemän JDK-parannusehdotusta kehittäjien tuottavuuden lisäämiseksi, kielen parantamiseksi ja alustan suorituskyvyn, vakauden ja turvallisuuden parantamiseksi. Useimmat java-koodaajat käyttävät kuitenkin aiempia versioita.
    Java on yksi suosituimpia ohjelmointikieliä. Erilaisissa vertailuissa se sijoittaa aina kärkipäähän. Oracle puhuu ”suosituimmasta teknologiatrendien kielestä”, joka ei tarkoita oikein mitään. Mutta se tiedetään, että maailmalla on 60 miljardia javavirtuaalikonetta.
    Edellisen kerran java-koodaajien käyttämiä versioita tutkittiin alkuvuodesta, Tuolloin kävi ilmi, että suosituin java-versio on Java 11, joka julkistettiin syyskuussa 2018. Sitä käytti 48 prosenttia kehittäjistä. Maaliskuussa 2014 esiteltyyn Java 8:een luotti 46 prosenttia.
    On uusien versioiden käyttöönotto sitten hidasta tai ei, uusia ominaisuuksia Oracle toi tälläkin kertaa.
    JEP 424 tunnetaan taasen projektinimelä Panama ja siinä kehitetään tekniikkaa, jolla Java-ohjelmat kommunikoivat virtuaalikoneiden ulkopuolelle natiivikirjastoilla ja -datalla. JEP 422 yrittää saada javavirtuaalikoneita toimimaan RISC-V-pohjaisilla laitteilla.
    Oracle toimittaa uusia Java Feature -julkaisuja kuuden kuukauden välein ennakoitavan julkaisuaikataulun mukaisesti. Tämä poljinnopeus tarjoaa tasaisen virran innovaatioita samalla kun se parantaa jatkuvasti alustan suorituskykyä, vakautta ja turvallisuutta, mikä auttaa lisäämään Javan leviämistä kaikenkokoisissa organisaatioissa ja toimialoilla.

  20. Tomi Engdahl says:


  21. Tomi Engdahl says:

    A Spreadsheet For The Python Hacker

    You can write a Python program or use a Jupyter Notebook to do almost anything. But you can also get a lot of things done quickly using a spreadsheet. Grist is a “hacker’s” spreadsheet that merges these worlds. It looks like a spreadsheet, but underneath are SQLite tables and the formula language is Python.

    The code is open source and if you want it hosted, there are free and paid plans. You can even try it out without even logging in and either start with a blank screen or use a template. You can see an introductory video below.

  22. Tomi Engdahl says:

    What is the Live approach to software development?

    When it comes to software development, there’s more than one way to finish a project quickly and efficiently while meeting all the necessary requirements.

    Software development methods have changed just as much as the software itself has changed, and as a result, the tools used have evolved and changed, too.

    Siemens Digital Industries Software developed the Live approach as a part of that natural evolution.

    The Live approach is a set of six guidelines introducing a new philosophy to managing software development artifacts and development-related information.

    The first four guidelines relate to the information model and storage and the final two relate to how information is accessed and shared.


Leave a Comment

Your email address will not be published. Required fields are marked *