Language Selection

English French German Italian Portuguese Spanish

Programming Leftovers

Filed under
Development
  • Go filesystems and file embedding

    The Go team has recently published several draft designs that propose changes to the language, standard library, and tooling: we covered the one on generics back in June. Last week, the Go team published two draft designs related to files: one for a new read-only filesystem interface, which specifies a minimal interface for filesystems, and a second design that proposes a standard way to embed files into Go binaries (by building on the filesystem interface). Embedding files into Go binaries is intended to simplify deployments by including all of a program's resources in a single binary; the filesystem interface design was drafted primarily as a building block for that. There has been a lot of discussion on the draft designs, which has been generally positive, but there are some significant concerns.

    Russ Cox, technical lead of the Go team, and Rob Pike, one of the creators of Go, are the authors of the design for the filesystem interface. Cox is also an author of the design for file embedding along with longtime Go contributor Brad Fitzpatrick. Additionally, Cox created YouTube video presentations of each design for those who prefer that format (the filesystem interface video and the file-embedding video).

  • a Piece of Note on Unicode Encoding for CJK characters (with my simple Caesar encoding script)
  • Plasmoid with C++

    So the goal is pretty simple, and all I have to do is to find a way to share information from KClock to the plasmoid. However the solution isn’t that trivia. As it turned out, DBus is perferred for IPC(Inter-process communication). Before start working on plasmoid, I need to expose some of the class of KClock to DBus first. Since KClock is built upon Qt, I choose to using Q-DBus as it will save a lot of effort than using low level interface. Now the problem is - I don’t know how to use Q-DBus. As usual, I went to the Qt documentation and to my surprise, it spent most content to describe the concept of DBus and compared to Qt’s signal/slot machinism. Although useful as it is, lack of examples meaning I still didn’t know how I can use it in my code. Thankfully, KDE has its own tutorial about DBus and it provides multiple examples. You can find it here.

  • How to use printf to format output

    When I started learning Unix, I was introduced to the echo command pretty early in the process. Likewise, my initial Python lesson involved the print function. Picking up C++ and Java introduced me to cout and systemout. It seemed every language proudly had a convenient one-line method of producing output and advertised it like it was going out of style.

  • Ceph – the practical storage solution for companies of all sizes

    Ceph was conceived by Sage A. Weil, who developed it while writing his dissertation and published it in 2006. He then led the project with his company Intank Storage. In 2014, the company was acquired by RedHat, with Weil staying on as the chief architect, in charge of the software’s development.

    Ceph only works on Linux systems, for example CentOS, Debian, Fedora, RedHat/RHEL, OpenSUSE, and Ubuntu. Accessing the software through Windows systems cannot be done directly, but is possible through the use of iSCSI (Internet Small Computer System Interface). As such, Ceph is particularly suitable for use in data centers that make their storage space available over servers, and for cloud solutions of any kind that use software to provide storage.

    We have complied a list of the most important features of Ceph: [...]

  • "Structural pattern matching" for Python, part 1

    We last looked at the idea of a Python "match" or "switch" statement back in 2016, but it is something that has been circulating in the Python community both before and since that coverage. In June it was raised again, with a Python Enhancement Proposal (PEP) supporting it: PEP 622 ("Structural Pattern Matching"). As that title would imply, the match statement proposed in the PEP is actually a pattern-matching construct with many uses. While it may superficially resemble the C switch statement, a Python match would do far more than simply choose a chunk of code to execute based on the value of an expression.

  • Federico Mena-Quintero: "Rust does not have a stable ABI"

    These are extremely valid concerns to be addressed by people like myself who propose that chunks of infrastructural libraries should be done in Rust.

    So, let's begin.

    The first part of this article is a super-quick introduction to shared libraries and how Linux distributions use them. If you already know those things, feel free to skip to the "Rust does not have a stable ABI" section.

More in Tux Machines

Today in Techrights

today's leftovers

Programming Leftovers

  • Joachim Breitner: Learn Haskell on CodeWorld writing Sokoban

    Two years ago, I held the CIS194 minicourse on Haskell at the University of Pennsylvania. In that installment of the course, I changed the first four weeks to teach the basics of Haskell using the online Haskell environment CodeWorld, and lead the students towards implementing the game Sokoban. As it is customary for CIS194, I put my lecture notes and exercises online, and this has been used as a learning resources by people from all over the world. But since I have left the University of Pennsylvania, I lost the ability to update the text, and as the CodeWorld API has evolved, some of the examples and exercises no longer work.

  • SiFive Begins Adding RISC-V "Bullet" Microarchitecture Code To LLVM

    On Friday night patches began to appear for "RISC-V Bullet" in the LLVM compiler code-base. The initial work is on the scheduler being added for the RISC-V Bullet. The initial scheduler is in place for the RISC-V Bullet microarchitecture and bullet-rv32 / bullet-rv64 naming.

  • Pho 1.0, Belated Release

    I was doing some disk housekeeping and noticed that my venerable image viewer, Pho, was at version 1.0pre1, and had been since 2017. It's had only very minimal changes since that time. I guess maybe it's been long enough that it's time to remove that -pre1 moniker, huh?

  • GammaRay 2.11.2

    We have released version 2.11.2 of our Qt application introspection tool GammaRay, bringing support for Qt 5.15 and improved Qt Quick item picking. GammaRay is a software introspection tool for Qt applications developed by KDAB. Leveraging the QObject introspection mechanism it allows you to observe and manipulate your application at runtime. This works both locally on your workstation and remotely on an embedded target.

  • A meta issue for modules: bug tracking

    I was reading a module on meta::cpan when I spied a small issue. I went up to the Issues link, clicked, and was sent to rt.cpan. I know that many module authors now have their modules on sites like GitHub, GitLab, or Bitbucket. Before I posted the issue on rt.cpan, I checked the author's profile for a linked account to one of the other sites. I found the module on GitHub and read the CONTRIBUTING.md to find the author does want issues reported there and not rt.cpan. I did not report my original issue, I reported the link issue instead as it seemed more important. Today is not the first time I noticed this issue with a module's bug tracking. Before continuing, I have not released a module to CPAN and am still learning all that goes into releasing one. Please be gentle if I am wrong or stating an obvious well known fact.

  • Gisle Aas's CPAN distributions are available for adoption

    Gisle Aas (GAAS on CPAN) is a well-known CPAN author, who made his first releases back in 1995. Over the years he has developed and maintained a number of keystone modules that most of us have relied on, whether we realised it or not. Gisle has informed the PAUSE admins that he will no longer be maintaining his CPAN distributions, and is open to responsible adoption. In this blog post we'll summarise what distributions are available, and our interpretation of responsible adoption. If you're interested, please read this post, and if you still would like to adopt a distribution, contact the PAUSE admins (modules at perl dot org) and not Gisle.

  • Firefox Nightly Flips On New JIT "Warp" Code For Greater JavaScript Performance

    Mozilla's SpiderMonkey JavaScript engine team have been working on a big update to their just-in-time compiler code. This big update called "Warp" is now enabled in the latest Firefox Nightly builds for offering big speed-ups. Warp aims to improve the Firefox JavaScript performance by reducing the amount of internal type information that is tracked along with other optimizations. Warp can lead to greater responsiveness and faster page load speed. Numbers cited by Warm developers are normally in the 5~15% range.

Hardware: Linux on Snapdragon and Raspberry Pi 4