Programming Leftovers
-
Bozhidar Batsov ☛ State of CIDER Survey (2024)
Last time around we got 545 responses and I hope this time around we’ll do a bit better, as more responses mean that the data we got is more accurate. The new survey is off to a pretty slow start - less than 200 responses in the first week. It will likely stay open till the end of January, so I hope we are going to get 500+ responses in total this around time as well.
-
Rlang ☛ The life changing magic of tidying text files
Our team have been doing some work with the Scotland Census 2022 data. There are several ways to download the information – you can click around on maps or use a table builder to focus on specifics, or there is a large zip download that provides all the data in CSV format. You end up with 71 files, with around 46K rows and a variable number of columns.
-
Rlang ☛ Introducing the {pipeflow} package
Efficiently managing complex data analysis workflows can be a challenge. In standard R programming, chaining functions, tracking intermediate results, and maintaining dependencies between steps often lead to cluttered code that is difficult to scale or modify. Enter {pipeflow} — a beginner-friendly R package designed to simplify and streamline data analysis pipelines by making them modular, intuitive, and adaptable.
-
Marc Brooker ☛ Formal Methods: Just Good Engineering Practice?
At first, this may seem counter-intuitive. Formal methods aren’t cheap, aren’t particularly easy, and don’t fit well into every software engineering approach. Its reasonable to start with the belief that a formal approach would increase costs, especially non-recurring engineering costs. My experience is that this isn’t true, for two reasons. The first is rework. Software engineering is somewhat unique in the engineering fields in that design and construction tend to happen at the same time, and a lot of construction can be started without a advancing much into design. This isn’t true in electrical engineering (designing a PCB or laying cables can’t really be done until design is complete), or civil engineering (starting the earthworks before you know what you’re building is possible, but a reliable way to waste money), or mechanical engineering, and so on. This is a huge strength of software - its mutability has been one of the reasons it has taken over the world - but can also significantly increase the cost of design iterations by turning design iterations into implementation iterations. The second is the cost of change. Once an API or system has customers, changing it becomes many times more expensive and difficult. This is fundamentally related to Hyrum’s Law: [...]
-
Scott Graham ☛ A worked example of copy-and-patch compilation
I’ve been working on-and-off on a toy compiler. It started when I thought it would be a good idea to add extra language features to the C compiler I was working on. I eventually decided that was probably a poor idea, but that writing a completely new language made sense (?). Or was at least more fun!
In any case, I have been grappling on-and-off with that enjoyable black hole of a project, but it’s still deep in the “not working yet” phase.
-
Brad Taunt ☛ Deliver the Bare Minimum
I’m a minimalist at heart, so keeping things as simple as possible tends to be my thing. I love tinkering with an idea or product feature while trying to reduce my reliance on dependencies or purposely constraining personally set limits (maybe this is bandwidth, resource usage, etc.). I almost prefer ugly “hacks” in favour of something slightly less performant, just to win the tiniest of savings. It’s silly, but my brain won’t let me escape it. This doesn’t mean it’s always the “correct” way to approach both design and development, but it’s what works best for me.
-
Qt ☛ What's Happening on Qt Academy - December '24
-
Updates to the Request Index Page
A few months ago, we introduced the Request Index Page feature in OBS. Recently, we added new filters to help users narrow down requests by staging projects and by request creators. The filters have also been improved to consider reviews, which is particularly useful for finding staging project requests.
-
Qt ☛ Building Your Next Industrial Cockpit with Qt
Digitalization is driving radical changes in customer demands and expectations across industries. Industries where software-defined products already represent the norm, like consumer appliances and mobile devices, are now also setting usability standards for areas that have traditionally operated through analogic interfaces.
In the Industrial Vehicles manufacturing sector, the need to increase productivity and reduce costs is pushing companies to examine new ways of building products that leverage software to enhance usability, increase security, automate operations, optimize through AI, and more.
-
Perl / Raku
-
Perl Data Language ☛ Day 24: Perl Data Language reflections - PDL Advent calendar 2024
Making this Advent calendar has been an adventure (ha!). As well as a couple of articles from me, there have been many from Boyd, who also shepherded this thing from inception onwards.
We've also had contributions from users both long-standing and also new. That reflects PDL itself, which from the moment it started had an active, some might say opinionated, community of contributors. Since the originator of PDL, Karl Glazebrook, gets pride of place with an article tomorrow (Xmas day), I won't steal any of his thunder.
-
Rakulang ☛ 2024.52 Connecting the Dots
Brian Duggan will be presenting “Connecting the Geospatial Dots with Raku” at FOSDEM 2025: “This talk explores Raku’s expressive and powerful style as we mesh together…with some of Raku’s unique features such as NativeCall for native libraries, Grammars for parsing, multiple modes of interacting with command line tooling, and plentiful concurrency models”. Looking forward to it already!
-
-
GNOME Desktop/GTK
-
GNOME ☛ Adetoye Anointing: Everybody Struggles: Struggles, Lessons And Growth
Prerequisite
I have been an Outreachy GNOME intern for a while now. GNOME is a free and open-source desktop environment for GNU/Linux and similar systems. It consists of quite a number of projects that make up the entire overall system, and the one I am working on for my internship is Librsvg.
About Librsvg: It is a small library to render Scalable Vector Graphics (SVGs) associated with GNOME projects.
Struggles
Initially, my struggle was with the programming language because Rust wasn’t my primary language before I started the internship. This led to the struggle of understanding the codebase. But let’s be honest, it’s written in Rust, and it takes quite some time to fully onboard. Luckily, my internship is centered around implementations to handle the SVG2 text layout algorithm. Plus, a programming language is just a tool to get the job done and should not be a hindrance if you are willing to learn and put in the work.
-