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:

    Data Science Going Mainstream: Python and R Lang are also

    Jun 1, 2022

    “When [Netflix’s data science team] started, there was one single kind of data scientist,” says Christine Doig, director of innovation for personalized experiences at Netflix. “Now the role has been integrated into the organization.”

  2. Tomi Engdahl says:

    Linux Fu: Easy Widgets

    Here’s a scenario. You have a microcontroller that reads a number of items — temperatures, pressures, whatever — and you want to have a display for your Linux desktop that sits on the panel and shows you the status. If you click on it, you get expanded status and can even issue some commands. Most desktops support the notion of widgets, but developing them is a real pain, right? And even if you develop one for KDE, what about the people using Gnome?

    Turns out there is an easy answer and it was apparently inspired by, of all things, a tool from the Mac world. That tool was called BitBar (now XBar). That program places a widget on your menu bar that can display anything you want. You can write any kind of program you like — shell script, C, whatever. The output printed from the program controls what appears on the widget using a simple markup-like language.

    That’s fine for the Mac, but what about Linux? If you use Gnome, there is a very similar project called Argos. It is largely compatible with XBar, although there are a few things that it adds that are specific to it. If you use KDE (like I do) then you’ll want Kargos, which is more or less a port of Argos and adds a few things of its own.

    Good News, Bad News

    The good news is that, in theory, you could write a script that would run under all three systems. The bad news is that each has its own differences and quirks. Obviously, too, if you use a complied program that could pose a problem on the Mac unless you recompile.

  3. Tomi Engdahl says:

    Optimizing Linux Pipes

    In CPU design, there is Ahmdal’s law. Simply put, it means that if some process is contributing to 10% of your execution, optimizing it can’t improve things by more than 10%. Common sense, really, but it illustrates the importance of knowing how fast or slow various parts of your system are. So how fast are Linux pipes? That’s a good question and one that [Mazzo] sets out to answer.

    The inspiration was a highly-optimized fizzbuzz program that clocked in at over 36GB/s on his laptop. Is that a common speed? Nope. A simple program using pipes on the same machine turned in not quite 4 GB/s. What accounts for the difference?

    Did he finally get to 36GB/s? No, he actually got to 65 GB/s! There is a lot to learn both in specific techniques and the approach.

    How fast are Linux pipes anyway?

  4. Tomi Engdahl says:

    How I make beautiful GRAPHS and PLOTS using LaTeX

    I make most of my graph and plots inside of LaTeX using a package called pgfplots. LaTeX is a type setting language and I like using it for graphs specifically because I can control all aspects of my graphs very precisely, with formatting native and easily adjustable with the rest of my document, with syntax similar to the syntax of the rest of LaTeX that I use all the time, and best of all it is free and will remain readily available. In this video we will see how to do 2D graphs, scatter plots, bar charts, 3D surface plots and 3D line plots, as well as how to format all aspects of our plots and axes.

    0:00 Why I use LaTeX and pgfplots for plots and graphs
    1:17 Why I use Overleaf as my LaTeX editor
    2:00 The simplest 2D plot
    3:57 Adjusting the preamble
    4:49 Customizing plot color, style, marks, samples
    6:25 Adjusting axis bounds, placement, labels and title
    9:04 Plot domain
    9:45 2nd example: ticks, tick labels, grid lines
    13:51 Adding text nodes
    15:18 3rd example: Scatter plot with imported data
    18:38 4th example: color coded scatter plot
    20:16 5th example: stacked bar chart
    21:23 Version history in overleaf
    22:00 6th example: 3D surface and mesh plots
    25:47 7th example: 3D curve plot

  5. Tomi Engdahl says:

    PyScript: Python In The Web Browser

    A chainsaw can make short work of clearing out the back forty. It can also make a good horror movie. So while some people will say we don’t need another tool to allow more malicious scripting in the browser, we also know that, like any tool, you can use it or abuse it. That tool? PyScript, which is, of course, Python in the browser.

    The tool is in the early experimental phase, so the project doesn’t suggest using it in a production environment yet. However, if it works well, the promise is not just that you can write browser-based applications in Python — you’ll have a handy way to reuse existing Python code and even be able to run the same code on the browser that currently runs on the server.

    A First Look at PyScript: Python in the Web Browser

    PyScript is a brand-new framework that caused a lot of excitement when Peter Wang, the CEO and co-founder of Anaconda, Inc., revealed it during his keynote speech at PyCon US 2022. Although this project is just an experiment in an early phase of development, people on social media seem to have already fallen in love with it. This tutorial will get you up to speed with PyScript, while the official documentation is still in the making.

    In this tutorial, you’ll learn how to:

    Build interactive front-end apps using Python and JavaScript
    Run existing Python code in the web browser
    Reuse the same code on the back-end and the front-end
    Call Python functions from JavaScript and the other way around
    Distribute Python programs with zero dependencies

    Disclaimer: PyScript Is an Experimental Project!

    This tutorial is coming to you only a few weeks after the official announcement of PyScript.

    One of the goals of PyScript is to make the Web a friendly place for anyone wanting to learn to code, including kids. The framework achieves that goal by not requiring any installation or configuration process beyond your existing text editor and a browser. A side effect is that PyScript simplifies sharing your work with others.

    When you look at PyScript’s README file, you’ll find the following summary and a longer description:

    PyScript is a Pythonic alternative to Scratch, JSFiddle, and other “easy to use” programming frameworks, with the goal of making the web a friendly, hackable place where anyone can author interesting and interactive applications.


    PyScript is a meta project that aims to combine multiple open technologies into a framework that allows users to create sophisticated browser applications with Python. It integrates seamlessly with the way the DOM works in the browser and allows users to add Python logic in a way that feels natural both to web and Python developers (Source)

    Scratch is a relatively straightforward visual programming language that children learn at school to build simple games and funny animations. JSFiddle is JavaScript’s online editor commonly used to demonstrate a given problem’s solution on forums like StackOverflow.

    Furthermore, PyScript’s home page contains this tagline:

    PyScript is a framework that allows users to create rich Python applications in the browser using HTML’s interface and the power of Pyodide, WASM, and modern web technologies. The PyScript framework provides users at every experience level with access to an expressive, easy-to-learn programming language with countless applications. (Source)

    In other words, PyScript allows you to use Python, with or without JavaScript, to build interactive websites that don’t necessarily have to communicate with a server. The main benefit here is that you can leverage your existing knowledge of Python to enter the world of front-end development, lowering the entry barrier and making it more accessible. But there are many other benefits of using PyScript that you’ll learn about later.

    On a slightly more technical level, PyScript is a single-page application (SPA) written in TypeScript using the Svelte framework, styled with Tailwind CSS, and bundled with rollup.js. According to one of the comments in an early Git commit, the project was based on a template mentioned in a blog post by Sascha Aeppli, which combines those tools.

    PyScript wouldn’t be possible without building on top of a recent version of Pyodide—a CPython interpreter compiled with emscripten to WebAssembly, enabling Python to run in the browser.

    The first file, pyscript.css, provides default styling for PyScript’s visual components that you’ll explore later, as well as the loader splash screen. The second file, pyscript.js, contains JavaScript that bootstraps the Python runtime and adds custom elements like , which can hold Python instructions such as a call to the print() function.

    With this setup, you don’t need to start a web server to access your HTML content. See for yourself! Go ahead, save that HTML document to a local file, and open it directly in your favorite web browse

    Note: PyScript was only tested on Google Chrome. Unfortunately, this means there might be small differences in your code’s behavior across various web browsers, which has never been a thing in traditional Python development.

  6. Tomi Engdahl says:

    2022 is gonna be wild for developers…

    Glimpse into the future with all the latest trends and hype for software developers in the year 2022. Learn all about Web 3.0, the Metaverse, GPT-3, new JavaScript frameworks, databases, and more.


    00:00 The Year 2022
    00:38 Web3
    03:06 Fake Sponsorship
    03:28 Metaverse
    05:05 AI
    06:22 Databases
    07:31 JavaScript
    09:58 Other Trends to Know

  7. Tomi Engdahl says:

    GitHub Open Sources Entitlements IAM

    Jun 10, 2022

    GitHub is making available a new IAM (Identity and Access Management) tool, dubbed Entitlements, which leverages the company’s own Git framework to parse, track and approve access to a business’ systems.

  8. Tomi Engdahl says:

    David Ahl places all his classic computing publications into the Public Domain

    David H. Ahl provided a generation of programmers with the tools to make cool things. As a writer, he published books and articles in many magazines of the early computer era including Creative Computing. (Ed. Note: I have the above book from the 80s and typed its programs into a number of computers)

    On June 15th, 2022, David issued a statement releasing his works into the public domain! This allows a new generation to enjoy all his publications!!

  9. Tomi Engdahl says:

    pdfcpu is a PDF processing library written in Go supporting encryption. It provides both an API and a CLI. Supported are all versions up to PDF 1.7 (ISO-32000).

  10. Tomi Engdahl says:

    If businesses can’t figure out ways to get more people into the tech sector, upskill existing employees or deploy automation, it will cause software engineers to consider quitting.

    How To Make Software Developers Happy And Avoid Burnout

  11. Tomi Engdahl says:

    How To Make Software Developers Happy And Avoid Burnout

    If businesses can’t figure out ways to get more people into the tech sector, upskill existing employees or deploy automation, it will cause software engineers to consider quitting. What may be worse is that they’ll hang on, but feel burned out, which becomes harmful to the mental well-being of the tech professionals.

    The tech sector has been on fire. Funding announcements from venture capitalists became a daily routine. There was a parade of fast-growing startups reaching billion-dollar unicorn status. The large tech titans, such as Microsoft, Amazon, Apple, Google and Meta, kept growing higher, defying gravity. It felt like every business deemed itself a “tech company.”

    The study’s results indicate that businesses are continually confronting challenges in retaining and attracting skilled developers. Ninety-three percent of respondents reported that the Great Resignation has made it increasingly difficult for their “IT teams to retain skilled developers and 86% say it has become more difficult to recruit them in the last two years.”

    The significant lack of specialized tech talent will lead to a stifling of innovation and advancement. The pandemic accelerated the pivot to a digital era. With the blistering growth, software engineers and tech professionals are inundated with work and are in high demand. The demand versus supply is so unbalanced that companies can’t find enough people to staff the open headcounts.

    Since these professionals are notoriously hard to recruit and hire—as they are highly coveted and have an array of options—the workload is piled on the existing staff. The overworked team members may start looking for other opportunities, creating a downward spiral of attrition.

    Why Software Engineers Are Unhappy

    McLarty points out that there are several major issues that impact these highly skilled professionals. Many organizations have legacy software that the long-time tech team knows how to navigate. When a smart, experienced software engineer starts a new job, they have difficulty trying to figure out all of the quirks and idiosyncrasies in the technologies they now have to master. It can be discouraging when the new hire feels ill-equipped to figure out the new setup. It’s especially difficult when they feel like they were the hotshots at the prior firm. To remedy this challenge, McLarty is a proponent of offering no or low-code software to make this type of change easier.

    He also contends that as tech keeps growing, there will not be enough people to meet demand. The unrelenting work aggravates the engineers and prompts them to look elsewhere. The solution he says is to get more people involved with tech. This could be accomplished through coding boot camps, online coursework and people with motivation and the right inclinations can be self-taught. A fallacy, McLarty points out, is that you don’t have to be a coder to get a job at a tech company. You can start with a non-tech role and work your way up.

    Another often-overlooked challenge is that engineers only code around 10% of the time. The rest of the day is dealing with the business side, engaged in repetitive mundane tasks and activities that take them away from their core coding responsibilities. This leaves many people feeling frustrated, as they become further removed from what they love doing best and prompts people to consider quitting for another opportunity.

    An issue that plagues both techies and professionals across all sectors is that tasks are ordered to be done, but the manager doesn’t clearly articulate why they are doing it and how it fits into the bigger picture. Without having any context or connection to the assignment, it’s easy to feel disenfranchised, which may lead to burnout.

    Over the last month, LinkedIn became populated with stunned tech professionals announcing that they have been laid off and need help finding a new job. A large portion of overall compensation for tech workers is based on stock options. As the stock market plunged and the tech sector entered bear market territory (when stocks are down more than 20%), there was palpable fear and concern. In this type of environment, it’s harder for a person to seek out a new job or demand a raise. This could further alienate workers, as they feel stuck, lacking options and watching the value of their company-stock holding in free fall.

  12. Tomi Engdahl says:

    New Technique Dramatically Accelerates Computer Programs Without Fear of Errors

    Computer scientists developed a new system that can make computer programs run faster, while guaranteeing accuracy.

    Researchers have pioneered a technique that can dramatically accelerate certain types of computer programs automatically, while ensuring program results remain accurate.

    Their system boosts the speeds of programs that run in the Unix shell, a ubiquitous programming environment created 50 years ago that is still widely used today. Their method parallelizes these programs, which means that it splits program components into pieces that can be run simultaneously on multiple computer processors.

    This enables programs to execute tasks like web indexing, natural language processing, or analyzing data in a fraction of their original runtime.

    A decades-old problem
    This new system, known as PaSh, focuses on program, or scripts, that run in the Unix shell. A script is a sequence of commands that instructs a computer to perform a calculation. Correct and automatic parallelization of shell scripts is a thorny problem that researchers have grappled with for decades.

    The Unix shell remains popular, in part, because it is the only programming environment that enables one script to be composed of functions written in multiple programming languages. Different programming languages are better suited for specific tasks or types of data; if a developer uses the right language, solving a problem can be much easier.

    While the Unix shell enables multilanguage scripts, its flexible and dynamic structure makes these scripts difficult to parallelize using traditional methods.

    Parallelizing a program is usually tricky because some parts of the program are dependent on others. This determines the order in which components must run; get the order wrong and the program fails.

    When a program is written in a single language, developers have explicit information about its features and the language that helps them determine which components can be parallelized. But those tools don’t exist for scripts in the Unix shell. Users can’t easily see what is happening inside the components or extract information that would aid in parallelization.

    PaSh uses a preprocessing step that inserts simple annotations onto program components that it thinks could be parallelizable. Then PaSh attempts to parallelize those parts of the script while the program is running, at the exact moment it reaches each component.

    This avoids another problem in shell programming — it is impossible to predict the behavior of a program ahead of time.

    Just-in-time parallelization also ensures the accelerated program still returns accurate results. If PaSh arrives at a program component that cannot be parallelized (perhaps it is dependent on a component that has not run yet), it simply runs the original version and avoids causing an error.

    Users don’t need to make any modifications to use PaSh; they can just add the tool to their existing Unix shell and tell their scripts to use it.

    The researchers tested PaSh on hundreds of scripts, from classical to modern programs, and it did not break a single one. The system was able to run programs six times faster, on average, when compared to unparallelized scripts, and it achieved a maximum speedup of nearly 34 times.

    It also boosted the speeds of scripts that other approaches were not able to parallelize.

    “Unix shell scripts play a key role in data analytics and software engineering tasks. These scripts could run faster by making the diverse programs they invoke utilize the multiple processing units available in modern CPUs. However, the shell’s dynamic nature makes it difficult to
    devise parallel execution plans ahead of time,”

  13. Tomi Engdahl says:

    PHP Sandbox
    Test your PHP code with this code tester

  14. Tomi Engdahl says:

    Google Engineers Lift The Lid On Carbon – A Hopeful Successor To C++

    In addition to Dart, Golang, and being involved with other programming language initiatives over the years, their latest effort that was made public on Tuesday is Carbon. The Carbon programming language hopes to be the gradual successor to C++ and makes for an easy transition path moving forward.

    The hope is that Carbon is a more natural migration path to C++ than the popular Rust programming language. Carbon aims for performance that matches C++, seamless bidirectional interoperability with C++, a easier learning curve for C++ developers, comparable expressivity, and scalable migration.

  15. Tomi Engdahl says:

    Long Live Software Easter Eggs!
    They are as old as software.

  16. Tomi Engdahl says:

    World’s biggest teacher (Havard University Professor) teaching free computer science from scratch no prior experience required

  17. Tomi Engdahl says:

    A non-LTS release due in September, Java 19 will feature structured concurrency, virtual threads, pattern matching for switch expressions, a vector API, and a Linux/RISC-V port.

  18. Tomi Engdahl says:

    OOP or Oops? Not really that far apart. ;)

  19. Tomi Engdahl says:

    Boffins release tool to decrypt Intel microcode. Have at it, x86 giant says
    Peek behind the curtain to see SGX implemented, Spectre mitigated, and more

  20. Tomi Engdahl says:

    Want to find the length of a string in bash or ksh/sh or posix shell on Linux, macOS, and Unix? The stuff is not simple as it seems. Take a look at this example and UTF-8 stuff. I had updated the page from 2007 after getting feedback. Read on


Leave a Comment

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