Programming Leftovers
-
Medevel ☛ The Rise and Fall of CodeIgniter and Symfony: Is It Time to Switch to Laravel?
CodeIgniter and Symfony, once titans in the PHP framework landscape, have experienced a notable decline in popularity over recent years. This shift in the development ecosystem warrants a closer examination of their trajectories and the factors contributing to their diminishing prominence.
-
Qt ☛ Streamlined Qt CLI installation
In Qt Online Installer 4.0, an option was introduced to install the Qt framework and tools using a command line interface (CLI). This enables installation of the components without a graphical interface, and also without user interaction. However, knowing the correct installable package names can be challenging, and listing all the required add-ons, sources, tools, etc. requires a lot of effort. That is why we have improved the command line installation by introducing alias installation in Qt Online Installer 4.8.
-
Qt ☛ QtGraphs
This blog post introduces Qt's newest module for visualizing data in both 2D and 3D graphs. Named QtGraphs, it will officially move out of tech preview with the release of Qt 6.8. This module integrates 2D and 3D data visualization into a single package, effectively replacing the older QtCharts and QtDataVisualization modules, which were introduced in the early Qt 5 era. By combining these modules, it becomes more intuitive and convenient for users to locate the appropriate module for all their data visualization requirements.
-
Mitchell Hashimoto ☛ Tagged Union Subsets with Comptime in Zig – Mitchell Hashimoto
Zig supports tagged unions and the Zig compiler will error if you switch on a tagged union without handling all possible cases. This is a great feature because it helps you avoid bugs when new cases are added to the union. Many languages support similar functionality.
However, sometimes you want to work with a subset of the tagged union. You don't want to lose compiler safety by using catch-all cases in your switch statement, but you also don't want to handle every case with a noop.
In this post, I'll illustrate a real world example of this scenario and how Zig's comptime can be used to elegantly solve it. The real world example will come from my terminal project.
-
Augmented Code ☛ How to keep Date’s microseconds precision in Swift – Augmented Code
-
Rakulang ☛ Rakudo Weekly 2024.39 Fun With Raku
Steve Roe asked the question “Can Raku replace PHP?” in a blog post that was somehow missed by yours truly last week.
-
Reviving the devtools support in Servo
Servo has been working on improving our Firefox devtools support as part of the Outreachy internship program since June, and we’re thrilled to share significant progress.
Devtools are a set of browser web developer tools that allows you to examine, edit, and debug HTML, CSS, and JavaScript. Servo leverages existing work from the Firefox devtools to inspect its own websites, employing the same open protocol that is used for connecting to other Firefox instances.
While relying on a third party API allows us to offer this functionality without building it from scratch, it doesn’t come without downsides. Back in June last year, with the release of Firefox 110, changes to the protocol broke our previous implementation. The core issue was that the message structure sent between Servo and Firefox for the devtools functionality had changed.
To address this, we first updated an existing patch to fix the connection and list the webviews running in Servo (@fabricedesre, @eerii, @mrobinson, #32475). We also had to update the structure of some actors (pieces of code that respond to messages sent by Firefox with relevant information), since they changed significantly (@eerii, #32509).
One of the main challenges was figuring out the messages we needed to send back to Firefox. The source code for their devtools implementation is very well commented and proved to be invaluable. However, it was also helpful to see the actual messages being sent. While Servo can show the ones it sends and receives, debugging another instance of Firefox to observe its messages was very useful. To facilitate this, we made a helper script (@eerii, #32684) using Wireshark to inspect the connection between the devtools client and server, allowing us to view the contents of each packet and search through them.
-
R
-
Rlang ☛ How to Switch Two Columns in R: A Beginner’s Guide
Welcome to the world of R programming, where data manipulation is a crucial skill. One common task you may encounter is the need to switch two columns in a data frame.
-
Rlang ☛ Bay Area use R Meetup is Back!!!!
BARUG is back!!! Hope to see you there!
-
Rlang ☛ Unlocking Chemical Volatility: How the volcalc R Package is Streamlining Scientific Research
The R Consortium recently interviewed Kristina Riemer, director of the CCT Data Science Team at the University of Arizona, and Eric Scott, Scientific Programmer and Educator in the CCT Data...
-
Rlang ☛ Dual licensing R packages with code and data
Licenses are an important topic within open source. Without licenses, information or code can be publicly available but not legally available for reuse or redistribution.
-
Rlang ☛ Modeling loss aversion with extended-support beta regression
The recently-proposed extended-support beta regression model in R package betareg is illustrated by simultaneously modeling the occurrence and extent of loss aversion in a behavioral economics experiment.
-
-
Python
-
LWN ☛ Hy 1.0.0 released
Version 1.0.0 of Hy, a Lisp dialect that is embedded in Python, has been released after nearly 12 years in development. This is the first stable release of the project:
Henceforth, breaking changes to documented parts of the language (other than dropping support for versions of Python that are themselves no longer supported by the CPython developers) will increase the major version number, and my intention is for that not to happen often, if at all. -
Loris Cro ☛ The Python Package Index Should Get Rid Of Its Training Wheels
As somebody directly involved with an upcoming programming language, I'm often in discussions about how to model things in the ecosystem like, say, the package manager, and how those decisions impact the project in the long term.
-