Programming Leftovers
-
Errors and Zig
At TigerBeetle these last few weeks I've been doing a mix of documenting client libraries, writing sample code for client libraries, and writing integration tests against the sample code.
The client library documentation is generated with a Zig script. The sample code is integration tested with a Zig script. A bunch of Zig scripts.
It's not the same rigorous sort of Zig as the main database. (We're generally more lax about scripts and test code.)
And I'm specifically writing this post on my personal blog since my script code is not under incredible scrutiny.
-
Lessons from a Pessimist: Make Your Pessimism Productive
I am absolutely convinced that it's important to recognize the difference between a pragmatic form of pessimism and destructive pessimism. And as cheesy as it sounds, try to surround yourself with supportive individuals who can help you maintain a positive outlook and try to be that person for others. You don't have to be an optimist for wanting to succeed!
-
Accessing Private Git Repositories from Docker Containers
We keep the source code of our applications and libraries in private repositories. Quite a few SoM and terminal makers do the same with their Yocto layers and their additional software. We typically use a Docker container to build the whole embedded Linux system with Yocto. Hence, we must be able to clone and update private repositories from the container.
-
Scaling Rust builds with Bazel
As of March 2023, the Internet Computer repository contains about six hundred thousand lines of Rust code. Last year, we started using Bazel as our primary build system, and we couldn't have been happier with the switch. This article explains the motivation behind this move and the migration process details.
-
Visually hidden content is a hack that needs to be resolved, not enshrined
Often, one will need a skip to main content link on their website or web application in order to adhere to WCAG’s 2.4.1 Bypass Block. The most common way of implementing this instance of a skip link is to visually hide it until it receives keyboard focus. Because a skip link is a navigational mechanism for a sighted keyboard user, after all. So one needs to be able to see what they’ve focused to know whether or not to try and interact with it.
-
Preloading Lua modules, part III
I received an email from Andy Weidenbaum today, thanking me for writing a post about embedding Lua code into an executable which helped him in his project. On the plus side, it's nice that a post of mine was able to help him. On the non-plus side, I wrote that post ten years ago tomorrow!
-
PHP Arrays: A Beginner’s Guide
PHP is a server-side scripting language that is used to develop dynamic web applications. Arrays are an essential part of PHP, and they allow developers to store and manipulate multiple values in a single variable.
-
How to Run Angular Apps Using Angular CLI and PM2
Angular CLI is a command-line interface for the Angular framework, which is used to create, build and run your application locally while developing.
-
Shaping the Future of Digital Experience - UI Framework Performance
After discussing the UI framework's foundational elements, namely the set of ready-made solutions enabling rapid cross-platform development and efficient time-to-market of UI apps, we look here at what is needed to achieve the kind of smooth, seamless performance that defines the most engaging applications on the market. But let's start with a clarification of what is a "UI app" and how it differs from other types of visual software, like video games or design authoring tools.
-
Introducing the WordPress Developer Blog
With much activity happening in the WordPress development space every day, keeping up-to-date with the latest updates can be challenging. The new WordPress Developer Blog is a developer-focused resource to help you stay on top of the latest software features, tutorials, and learning materials relevant to the open source project.
-
How to Convert a String to JSON in Python
In the world of programming, data transfer, and storage are crucial elements to consider. When working with data in Python, you may often need to convert strings to JSON format for easier processing and management.
-
How to Create and Read List in Python
Python is a popular programming language with a vast range of applications, including data science, web development, and automation. One of the most basic and essential data structures in Python is the list.
-
Pneumonia Detection Using CNN in Python
In this article, we will learn how to build a classifier using a simple Convolution Neural Network which can classify the images of patient's xray…
-
Hidden Beauties of Java Enums
Enums are the preferred way to define fixed values you want to use in your code. They are a special type of Java class and contain a group of unchangeable variables.
-
Maira Canal: Adding a Timeout feature to Rustgem
After my last blogpost, I kept developing the Rust version of the VGEM driver, also known as rustgem for now. Previously, I had developed two important features of the driver: the ability to attach a fence and the ability to signal a fence. Still one important feature is still missing: the ability to prevent hangs. Currently, if the fence is not signaled, the driver will simply hang. So, we can create a callback that signals the fence when the fence is not signaled by the user for more than 10 seconds.
In order to create this callback, we need to have a Timer that will trigger it after the specified amount of time. Gladly, the Linux kernel provides us with a Timer that can be set with a callback and a timeout. But, to use it in the Rust code, we need to have a safe abstraction, that will ensure that the code is safe under some assumptions.