This post explains how to use the new sidecar feature, which enables restartable init containers and is available in alpha in Kubernetes 1.28. We want your feedback so that we can graduate this feature as soon as possible.
The concept of a “sidecar” has been part of Kubernetes since nearly the very beginning. In 2015, sidecars were described in a blog post about composite containers as additional containers that “extend and enhance the ‘main’ container”. Sidecar containers have become a common Kubernetes deployment pattern and are often used for network proxies or as part of a logging system. Until now, sidecars were a concept that Kubernetes users applied without native support. The lack of native support has caused some usage friction, which this enhancement aims to resolve.
The 1.22 release introduced Alpha support for configuring swap memory usage for Kubernetes workloads running on Linux on a per-node basis. Now, in release 1.28, support for swap on Linux nodes has graduated to Beta, along with many new improvements.
Prior to version 1.22, Kubernetes did not provide support for swap memory on Linux systems. This was due to the inherent difficulty in guaranteeing and accounting for pod memory utilization when swap memory was involved. As a result, swap support was deemed out of scope in the initial design of Kubernetes, and the default behavior of a kubelet was to fail to start if swap memory was detected on a node.
In version 1.22, the swap feature for Linux was initially introduced in its Alpha stage. This represented a significant advancement, providing Linux users with the opportunity to experiment with the swap feature for the first time. However, as an Alpha version, it was not fully developed and had several issues, including inadequate support for cgroup v2, insufficient metrics and summary API statistics, inadequate testing, and more.
On August 25th, 1991, the 21-year-old Finnish student Linus Benedict Torvalds made his now-famous announcement on the comp.os.minix newsgroup that he’s working on a free operating system for 386(486) AT clones, just as a “hobby.”
It’s been 32 years since he made that announcement and he probably never dreamed that the so-called “hobby” would turn into something so huge and used by millions of computer users around the globe.
The call for topics for the Linux Kernel Maintainers Summit went out on August 15; one proposed topic has generated some interesting discussion about security-bug reporting for the kernel. A recent patch to the kernel's documentation about how to report security bugs recommends avoiding posting to the linux-distros mailing list because its goals and rules do not mesh well with kernel security practices. That led Jiri Kosina to suggest a discussion on security reporting, especially with regard to Linux distributions.
The linux-distros mailing list is a closed list for reporting security bugs that affect Linux systems; as might be guessed, the participants are representatives of various distributions. It has some fairly stringent requirements regarding the maximum embargo period (14 days) after a bug is reported before it must be publicly disclosed; it also places requirements on the reporter to post the full details to the oss-security mailing list once the embargo has run its course. These policies have clashed with kernel bug reporting along the way. Examples include a 2018 embargo that went awry, an even longer embargo botch in 2021, and a 2022 discussion of the problems.
It is the kernel's business to know when a process's memory has been written to; among other things, this knowledge is needed to determine which pages can be immediately reclaimed or to properly write dirty pages to backing store. Sometimes, though, user space also needs access to this information in a reliable and fast manner. This patch series from Muhammad Usama Anjum adds a new ioctl() call for this purpose; using it requires repurposing an existing system call in an unusual way, though.
The driving purpose for this feature, it seems, is to enable an efficient emulation of the Windows GetWriteWatch() system call, which is evidently useful for game developers who want to defend against certain kinds of cheating. A game player who is able to access (and modify) a game's memory can enhance that game's functionality in ways that are not welcomed by the developers — or by other players. Using GetWriteWatch(), the game is able to detect when crucial data structures have been modified by an external actor, put up the modern equivalent of a "Tilt" indicator, and bring the gaming session to a halt.
Linux actually provides this functionality now by way of the pagemap file in /proc. The current dirty state of a range of pages can be read from this file, and writing the associated clear_refs file will reset the dirty state (useful, for example, after the game itself has written to the memory of interest). Accessing this file from user space is slow, though, which runs counter to the needs of most games. The new ioctl() call is meant to implement this feature more efficiently. The Checkpoint/Restore In Userspace (CRIU) project would also be able to make use of a more efficient mechanism to detect writes; in this case, the purpose is to identify pages that have been modified after the checkpoint process has begun.
LWN recently covered a discussion on file-position locking that demonstrated the hazards that can result from unexpected concurrency. It turns out that this discussion had not yet fully run its course. Since that article was written, additional changes intended to address a performance regression evolved into a core virtual filesystem (VFS) layer API change to carry out some much-delayed housecleaning.
At the end of the previous article, a change had been merged into the mainline to unconditionally take the file-position lock (which ensures that only one thread is manipulating the current file read/write position at any given time). The article noted that the performance impact of this change had not been measured. That changed on August 3, when Mateusz Guzik reported that there was indeed a performance change — specifically, a 5% regression on a test he had run. VFS layer maintainer Christian Brauner initially discounted the report, but also said that the problem, if it truly existed, could be mitigated by only taking the position lock for directories (and not for regular files). The original locking problem had only affected directory reads, so the fix is only needed there as well.
The Linux fast user-space mutex ("futex") subsystem debuted with the 2.6.0 kernel; it provides a mechanism that can be used to implement user-space locking. Since futexes avoid calling into the kernel whenever possible, they can indeed be fast, especially in the uncontended case. The API used to access futexes has never been seen as one of Linux's strongest points, though, so there has long been a desire to improve it. This patch series from Peter Zijlstra shows what the future of futexes may look like.
A futex is a 32-bit value stored in user-space memory that is, presumably, shared between at least two threads or processes. When used as a lock, a futex can be acquired with a single compare-and-swap instruction, without kernel involvement. The kernel comes into the picture, though, in the contended case, where a thread must block until a futex becomes available. Waiting for a futex and waking threads that are waiting are some of the features provided by the futex() system call.
Stéphane Graber has been running mainline Linux kernels on his Ubuntu systems for a while (having found the quality of Ubuntu’s generic kernel lacking of late) and says they are “working surprisingly well”.
Thus, he’s put in the effort needed to “scale” up building the latest stable bug fix release of the mainline Linux kernel, applying select changes not yet upstream, and making them available for other Ubuntu users to install on their machines.
“The general goal behind those kernel builds is to provide a recent stable mainline kernel with wide hardware support and a configuration that’s optimal for running Incus containers and VMs”, Graber says.
The Asahi Linux project is a collaborative effort aimed at bringing the Linux operating system to Macs that contain M1 or M2 chips. The OpenGL ES 3.1 drivers represent the first time that conformant GPU drivers have been made available for Apple's newest hardware running on the Linux platform.
Conformant drivers meet specific industry standards, ensuring that they function correctly with various applications. The OpenGL ES 3.1 drivers have apparently undergone extensive testing, including tens of thousands of individual tests, to ensure that they meet the necessary criteria. The drivers are recognized as conformant by Khronos, the organization responsible for overseeing the standards related to OpenGL.
Progress
Managed to squeeze some time between holidaying to hack on the NPU driver and got something out of it.
Since the last update I have: [...]
Exploring the world of audio editing on Linux can be a bit overwhelming, especially if you are new to the scene. But do not worry, as there are several audio editing software options that you can consider for your Linux system.
These applications offer a user-friendly way to manipulate sound, create music, and enhance audio projects, which makes them perfect for beginners and experienced users. So whether you are looking to edit podcasts, compose tunes, or simply fine-tune audio recordings, these Linux audio editors have got you covered.
A new version of Tokodon, a Qt-based Mastodon app for KDE Plasma, features in the latest KDE Gear release. And what an update it is!
Image Capture lets you transfer images and video clips to a Mac from a camera, iPhone, iPad, iPod touch or other device that has a camera. We recommend the best free and open source alternatives.
DiskImageMounter is a utility that takes care of disk volume images. We recommend the best free and open source alternatives.
We spotlight alternative tools to ftp, a network protocol used for transferring files from one computer system to another.
Cue is a command line music player written in the C programming language. It's free and open source software.
I’m happy to announce that€ Netplan€ version 0.107 is now available on€ GitHub€ and is soon to be deployed into a Linux installation near you! Six months and more than 200 commits after the previous version (including a .1 stable release), this release is brought to you by 8 free software contributors from around the globe.
Upscayl is an open-source AI image upscaler that effortlessly enhances low-resolution or compressed images using advanced algorithms, all while preserving perfect quality.
Monitoring and managing the health of your IT infrastructure is paramount in today’s fast-paced technological landscape. Nagios, a widely-used open-source monitoring tool, offers two main editions: Nagios Core and Nagios XI. Each edition comes with its own set of features and capabilities, catering to different requirements and environments.
LightDM is one of the login screens that you can use on your Linux machine. It’s a robust and reliable program, and while it does a great job of getting you from login to the desktop, one could argue the visuals are a little bland. The following will show you how to customize LightDM with themes and backgrounds to dress up that dull look.
Effortlessly sharing files among different systems over a network is a fundamental part of network management.
A contingent from DomainTools decided to tackle a more down-to-earth competition. When we saw the Recon-Aacharya Challenge to find subdomains, we couldn’t resist—this is the stuff we eat, sleep, and breathe around here! This contest was part of Recon Village (“An Open Space with Talks, Live Demos, Workshops, Discussions, and CTFs with a common focus on Reconnaissance.”) which makes sense, since enumerating infrastructure such as subdomains is a common form of both red and blue team reconnaissance. Other Recon Village items of note this year included a Jeopardy-style open source intelligence (OSINT) CTF with challenges around harvesting information and credentials from target organizations, finding password dumps, etc; and there were also a variety of fascinating talks and live demos.
When working in a Linux terminal, you often encounter situations where you need to monitor the execution time of a command or limit its runtime. The
time
andtimeout
commands are powerful tools that can help you achieve these tasks. In this tutorial, we'll explore how to use both commands effectively, along with practical examples.
Back in March, the Chrome team said that they wanted to reduce the maximum TLS certificate duration down to 90 days (because I'm not always completely in touch with the TLS ecology, I only found out about this recently). In general I'm in favour of short TLS certificate lifetimes and in automation for TLS certificate renewals and deployment, so you might expect me to be all in favour of this. But I actually think that this proposal would cause real problems and get significant pushback from people.
Today, we will delve into the contents of the /proc directory to develop a better understanding of its functionalities. It’s important to note that the /proc directory is a common feature across all Linux distributions, irrespective of their flavor or architecture.
One misconception that we must immediately clarify is that the /proc directory is NOT a conventional file system in the traditional sense of the term.
The command-line interface is a powerful tool for interacting with your Linux system to perform various tasks efficiently. The default shell in many Linux distributions, including Fedora, is Bash (Bourne Again Shell).
There are alternative Linux shells that offer enhanced features, improved customization, and a more user-friendly experience. One such shell is Zsh, also known as the Z Shell.Table of ContentsToggleWhat is Zsh?Installing Zsh in Fedora SystemMaking Zsh as Default Shell in FedoraInstall Oh-My-Zsh in FedoraChoosing an Oh-My-Zsh Theme for FedoraAdding an Oh-My-Zsh Plugin for Fedora
Filesystem quota is a standard built-in feature found in Linux Kernel. Quotas determine the amount of space a file should have to support user activities. The disk quotas also limit the number of files a user can create on the system.
Filesystems that support the quota system include xfs, ext2, ext4, and ext3 to mention a few. The assignment of quotas is specific to the filesystem and for each user. This article bears all you need to know about working with the quota filesystem in a multi-user Ubuntu environment.
Spotify is one of the most popular music streaming sites that you can play different kind of music.
Browser is not the only option that you can use when it comes to listening music on Spotify on your Linux distro.
Wireguard is an open-source VPN protocol alternative to IPSec, IKEv2, and OpenVPN. Wiruguard is designed for Linux and Unix operating systems.
Nagios is a powerful open-source monitoring system that helps IT professionals monitor their network infrastructure, servers, applications, and services. Its extensible nature and robust features make it a popular choice for maintaining the health and performance of various components in a networked environment.
In this tutorial, we will show you how to install Netdata on Debian 12. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS.
In this tutorial, we will show you how to install OBS Studio on Fedora 38. For those of you who didn’t know, OBS Studio, short for Open Broadcaster Software Studio, is a powerful open-source software designed for video recording and live streaming.
FreeIPA is an open-source identity management solution for Linux/Unix operating systems. In this guide, you will install and set up the FreeIPA server on Debian 12 machine via Docker.
Sudo is an application that allows you to get root or administrator privileges on Linux and Unix operating systems. In this tutorial, you will learn how to integrate Sudoers and FreeIPA with two scenarios.
In this guide, you’ll setup and install Docker, run a test Dockerfile to create a test container, run the ESP32-S3 Linux Dockerfile, upload the compiled files to the ESP32-S3 and then perform the ultimate skateboard trick: boot Linux on an ESP32-S3!
Kentucky Route Zero: PC Edition has seen it's first major update since the release of Act V in 2020, and now it should be a better experience on the Steam Deck.
Taking the rail shooter goodness inspired by Star Fox, making it a bit more rogue-lite and blending in the Vampire Survivors styled gems to pick up and choose a random power-up, Whisker Squadron: Survivor is ace. Note: key provided for me.
Well this is quite an expected update, No Man's Sky - Echoes is live as another free upgrade for players and it's a pretty big update for the game full of new content. No Man's Sky is Steam Deck Verified and playable on Linux desktop with Proton.
What do beekeeping and ocean exploration have in common? Well they will both be in the APICO 3.0 update that's planned to arrive this "fall".
Around five days ago I reported on Apex Legends doing a ban wave which for the second time hit a bunch of players on Linux and Steam Deck playing it with Proton. Now at least the developer Respawn is looking into it.
Love a bit of music, comedy and absurdity? Deathbulge: Battle of the Bands has plenty and it's officially out now with full Linux support and it's Steam Deck Verified too. Seems players on Steam are liking it too with a Very Positive rating.
Roblox is making a comeback to Linux!
Just a few months prior, we reported that Roblox's new anti-cheat software, 'Hyperion' was all set to block Wine usage by default, a bummer indeed.
However, that is all set to change in light of recent developments. Allow me to take you through the situation.
What's Happening: You see, back in May, Roblox introduced a new anti-cheat software that blocked Wine usage by default, and the change was not a mistake but intentional.
On Monday morning, tech giant Microsoft announced that it has acquired Persson's indie gaming company, Mojang, maker of Minecraft, the hit game that lets you build your own virtual worlds, and Persson took to his blog to explain his part in this highly contentious move. Rumors of such a deal first emerged last week, leaving many of Minecraft's loyal fans wondering why Persson, who has been a vocal critic of Facebook's acquisition of Oculus VR, would sell to a corporate giant like Microsoft.
The word Open Source can be attributed to the Linux community which brought it into existence along with the introduction of Linux (successor of then-existing Unix Operating System).
Although ‘Linux‘ in itself came into existence as only a base Kernel, its open-source nature attracted a huge society of developers worldwide to contribute to its development.
Kali Linux 2023.3, the third version of 2023, is now available for download, with nine new tools and internal optimizations.
Kali Linux is a Linux distribution created for ethical hackers and cybersecurity professionals to perform penetration testing, security audits, and research against networks.
With this release, the Kali Team says there are not many new features, with most of the changes done internally to increase the overall reliability and optimization of the project.
Kali Linux is the go-to option for pen testers worldwide, being a penetration-testing-focused distro, it offers a sizeable library of tools that cover a variety of use cases.
Just a few months prior, we had covered the 2023.2 release of Kali Linux that offered some neat improvements.
And now, we have yet another release in the form of Kali Linux 2023.3 that focuses more on the back-end.
Let's dive in and see what's on offer.
OpenMandriva is a desktop-centric distribution that often stays out of the spotlight – completely undeserved. With roots traced back to the once legendary Mandrake, it has much to offer even to the most discerning Linux users.
In recent years, OpenMandriva has relied on the established point release model. However, at the beginning of 2023, the project decided to bet also on the rolling release approach with its ROME releases.
Taking control of your costs in the Cloud Making the right spending choice is essential in moving to Google Cloud. In any cloud migration journey, cost is central to the business case discussion. In a previous webinar, we reviewed the advantages of purchasing SUSE through the marketplace.
As we all know, application containerization is prevalent and the preferred application deployment architecture of the day. However, with increased container adoption comes the crucial responsibility of securing these dynamic environments.
The variability of server OS, especially if speaking about open-source variants, is rather big. Among all these differences the most used are considered to be Red Hat, Debian, and CentOS.
[...]
For firms and organizations which are searching for functional and reliable distribution, AlmaLinux can be a fantastic choice for enterprise OS. It is accessible and free and will fantastically suit those companies that aren’t planning to overpay for any additional services.
Alma functions perfectly as a base for creating an app-focused, secure, and user-friendly system architect. It will work flawlessly in any system whether it is virtual, cloud-based, or physical.
Continuous improvement is at the core of our mission at Red Hat, and input from you, our learners, has been instrumental in helping us understand needs and expectations as we evolve our offerings. As part of Red Hat’s commitment to delivering flexible, hands-on and relevant training on our open source technology, we are introducing an extension to the access period for lab environments accompanying most of our training courses that include a virtual environment. This initiative is a direct response to the valuable insights you have provided, and we designed it to help reinforce your knowledge and improve expertise after completing a Red Hat Training course.
You now benefit from an additional 45 days of lab access following the end of your instructor-led Red Hat training course, providing a practical opportunity to review course topics at your own pace without feeling rushed. By spending more time on exercises and revisiting concepts, you can solidify your understanding and continue to apply your newfound knowledge to real-world use cases, even after the training course has officially concluded.
"I was the 2nd Debian project leader. These days, I prefer to run Devuan, a true Debian derivative engineered the way I would probably have decided to make it. It's efficient and trouble-free. Thanks to the Devuan developers for all of the work!"
Bruce Perens
Open Source Champion
As we all know, this year is a very special year for the Debian project, the project turns 30!
The Brazilian Community joined in and during the anniversary week, organized some online activities through the Debian Brasil YouTube channel.
Information about talks given can be seen on the commemoration website.
Talks are also have been published individually on the Debian social Peertube and Youtube.
In a recent development, Mixtile has announced that after various evaluations, the Ubuntu 22.04 version has been optimised for the Mixtile Blade 3, ensuring top-tier performance, reliability, and compatibility. Customers can now expect every Mixtile Blade 3 unit to come pre-installed with the Ubuntu desktop right out of the box. But for those looking for alternatives, Mixtile has got you covered, offering both Armbian and Debian as viable options.
It emerges as an economical, power-efficient Single Board Computer (SBC). It’s powered by the state-of-the-art 8 nm Rockchip RK3588 CPU. Tailored for fast-paced development, artificial intelligence (AI) -application prototyping, and edge computing challenges, its architecture allows scalability by seamlessly clustering several units. With a 4-lane peripheral component interconnect express(PCIe) Gen3 port, it promises swift communication with other processing nodes, positioning it as a beacon of high-performance computing with an eco-friendly stance.
Wind River Linux, which includes a comprehensive suite of tools and lifecycle services for building and supporting intelligent edge solutions, will be embedded in the future ZEEKR Electronic and Electrical Architecture (ZEEA) platform.
“The role of software is increasingly important for the automobile industry. Software can unlock new possibilities to grow value for both car makers and consumers,” said Avijit Sinha, chief product officer, Wind River. “Wind River Linux can help automotive innovators like ZEEKR implement modernized development frameworks that leverage AI in the cloud and at the edge, combined with software lifecycle management capabilities, to enable them to accelerate their innovations and drive the realization of software-defined vehicles forward.”
Excellent dive into Amiga boot/utility disks, how they crammed so much onto one floppy, and the cool menus designed for them.
In this case, the Arduino can speak any number, from zero to nine, out loud through the speaker. This is possible because those are very short words (most only a single syllable) that are recognizable when the quality is very low. This audio quality wouldn’t be suitable for music or even general language, but it is enough for a sequence of numbers. By reducing the audio quality as much as possible and making the clips short, Harden was able to create audio files small enough to fit in the 32KB flash memory of the UNO‘s ATmega328 microcontroller with room to spare for the sketch.
You can simply continue sending data using the GAP, however, it only allows one-way communication, and each payload can only contain 31 bytes of data. You can send data both ways, gain more security, and generally get more features by connecting with a Generic Attribute Profile (GATT). The GATT defines the services and characteristics. In BLE terminology, a characteristic is a piece of data, and a service is a collection of characteristics. To use services, a device has to have a GATT that defines which services and characteristics they offer. These GATTs are predefined – here’s a list of them.
If you want to create a Bluetooth peripheral, the first thing you need to do is decide what GATT you want to use.
Over the past year or so, I've been working with other BlueSCSI developers to add Wi-Fi functionality to their open-hardware SCSI device, enabling Wi-Fi support for old Macs and other vintage computers going back some 36 years.
This article was originally supposed to be titled "Adding Wi-Fi to a PowerBook 100" since that laptop is much more reasonable to lug around, but its logic board died while working on this and I'm in the process of bringing it back to life.
The Ubo Pod by [Mehrdad Majzoobi] is a very highly polished extension pack and enclosure for the Raspberry Pi 4, which shows you how far you can go to turn a bare PCB into something that rivals the hardware offerings from Google and others. Gadgets like the Sonos speakers and Amazon or Google’s covert listening devices (aka Echo, Alexa, or whatever they’re branded as) are fun to play with. Still, the difficulty of hacking custom applications into them and god-forbid adding one’s own extension hardware, makes them fairly closed ecosystems. Add in the concerns of privacy and data security; they look less and less attractive the closer you look. Luckily the Raspberry Pi and its friends have improved the accessibility to the point where it’s positively easy to create whatever you want with whatever hardware you need, and to that end we think [Mehrdad] has done a splendid job.
Youyeetoo has sent us a review sample of their YY3568 “Bundle 5” devkit with the Rockchip RK3568-powered YY3568 SBC, an 11.6-inch touchscreen display, a MIPI camera module, and all accessories required to get started. We were especially interested in using it to play with the 1 TOPS NPU in the Rockchip RK3568 in Linux, but we’ll start the Youyeetoo YY3568 review with an unboxing, some specifications, and a quick review with Android 11 before switching to Debian 10 in the second part of the review.
ActivityPub August rolls on. Now with more (some) ActivityPub support in flak.
Hello from PostgreSQL Europe!
We are glad to announce that registration for PGConf.EU 2023 is now open.
This year, PGConf.EU comes to Prague, Czechia, and takes place on December 12–15.
Please see our registration page for details:
Early bird discount registration is available until September 23rd or as long as supplies last using the discount code
EARLYBIRD
.
Ohio LinuxFest (or OLF these days) is returning to Columbus, Ohio on September 8th and 9th. Happy to announce that I’m going to be doing the Friday keynote, “Open Source Can’t Win.” Wait, you might say, hasn’t open source already won? It’s popular to say that open source has won – but the truth is that open source can never win. Not permanently, at least.
Open source is mainstream, and a popular choice with developers, users, admins, companies, and government. But as open source has grown in popularity, complacency has crept in. Many people have forgotten, or never knew, the “why” of open source and open computing.
What seems to have happened is that they patched support for ffmpeg 4 out of Firefox and BACKPORTED it to 102 ESR for no reason, meanwhile they also didn’t add support for ffmpeg 6.
(Even though ffmpeg 4 is a currently supported stable branch upstream.)
Tor Browser 13.0a3 is now available from the Tor Browser download page and also from our distribution directory.
This release updates Firefox to 115.2.0esr, including bug fixes, stability improvements and important security updates. Android-specific security updates from Firefox 117 are not yet available, but will be part of the next alpha release scheduled in two weeks.
It’s amazingly worse than a non-Free set of binaries on your computer. It’s even worse than non-Free binaries with “product activation”. If you told me 20 years ago that there was going to be something worse than proprietary binaries with a leash, I would have not believed it. But it’s here.
The ports-and-adapters architecture should be the standard architecture for HMI applications. Its parts are loosely coupled, cohesive, easy to test and easy to extend. We can apply the reverse Conway manoeuvre to create self-dependent teams with minimal dependencies on other teams. I’ll motivate the ports-and-adapters or hexagonal architecture with USB ports and adapters and look at the architecture pattern from the production, testing and team perspective. I’ll apply the architecture to the HMI terminal of a harvester.
Suppose I want to implement an interactive language - one where code is often run immediately after writing. Think scientific computing, database queries, system shells etc. So we care about both compile-time and run-time performance because we'll usually experience their sum.
Icon is a high-level programming language with extensive facilities for processing strings and structures. Icon has several novel features, including expressions that may produce sequences of results, goal-directed evaluation that automatically searches for a successful result, and string scanning that allows operations on strings to be formulated at a high conceptual level. Icon also provides high-level graphics facilities.
Icon emphasizes high-level string processing and a design philosophy that allows ease of programming and short, concise programs. Storage allocation and garbage collection are automatic in Icon, and there are few restrictions on the sizes of objects. Strings, lists, and other structures are created during program execution and their size does not need to be known when a program is written. Values are converted to expected types automatically; for example, numeral strings read in as input can be used in numerical computations without explicit conversion. Icon has an expression-based syntax with reserved words; in appearance, Icon programs resemble those of Pascal and C.
Icon is a very high-level imperative language with a rich repertoire of string and structure processing facilities. It is available on a wide range of computers and is in wide use.
In Icon, values, not variables, are typed. Built-in data types include numerics, character sets, strings, sets, lists, associative tables, records, and procedures. The aggregate types - sets, lists, tables, and records - can hold values of any type. Tables can be indexed by values of any type. Numerics, character sets, and strings are atomic values; operations on them produce new values. Aggregates use pointer semantics; operations on them can change existing values as well as produce new ones. Strings and aggregates can be of arbitrary size, and their sizes can change during execution. Memory management is automatic.
Icon has an expression-oriented syntax; even control structures are expressions. Procedures consist of zero or more expressions separated by newlines or semicolons. Icon programs consist of one or more procedure definitions, and execution begins by calling the procedure named main.
The Turkish central bank president has changed, and she has started to execute new economic policies. Regarding that, the Turkish Lira-related currency rates have risen. Therefore, I wonder how the Euro to Turkish lira exchange rates will look by the end of the year.
While we will model the exchange rates, we will benefit from multiple model screening techniques via the tidymodels and modeltime packages. The models we will use to compare: [...]
Graphs are powerful visual tools for analyzing and presenting data. In this blog post, we will explore how to plot multiple lines on a graph using base R. We will cover two methods: matplot() and lines(). These functions provide flexibility and control over the appearance of the lines, allowing you to create informative and visually appealing plots. So, let’s dive in and learn how to plot multiple lines on a graph in R!
I spent quite a bit of time trying to work out how to get a Swift LSP working in Neovim the other day. Enough time that I wanted to share it here.
I won’t go into too much detail about what an LSP is, how it works, or its benefits. There are a lot of other people who can do a much better job of that than me.
However, I would like to say that this is just how I have it working myself. There are bound to be many other ways you can get a Swift LSP working in Neovim. It just happens that this is a pretty simple configuration, that I will likely also improve in the future.
"Subinterpreters", which are separate Python interpreters running in the same process that can be created using the C API, have been a part of Python since the previous century (version 1.5 in 1997), but they are largely unknown and unused. Eric Snow has been on something of a quest, since 2015 or so, to bring better multicore processing to Python by way of subinterpreters (or "multiple interpreters"). He has made it part of the way there, with the adoption of a separate global interpreter lock (GIL) for each subinterpreter, which was added for Python 3.12. Back in April, Snow gave a talk (YouTube video) at PyCon about multiple interpreters, their status, and his plans for the feature in the future.
We have looked in on the subinterpreter work a few times along the way; beyond the article when Snow started his quest, he presented a status update at the 2018 Python Language Summit and there were some further discussions back in 2020. On April 7, 2023, two weeks before Snow gave his talk, the steering council accepted PEP 684 ("A Per-Interpreter GIL") for inclusion into Python 3.12.
The Rust team is happy to announce a new version of Rust, 1.72.0. Rust is a programming language empowering everyone to build reliable and efficient software.
Version 1.72.0 of the Rust compiler has been released. Changes include improved diagnostics and the removal of a limit on const evaluation...
Windows 10 Devices Will Not Be Able To Use Wi-Fi 7, Only Supported By Latest Windows 11, Linux & ChromeOS Operating Systems