Language Selection

English French German Italian Portuguese Spanish

Programming: CRuby, C++, R, Qt, LSP/Python, and C

Filed under
Development
  • Register Transfer Language for CRuby

    For the last two years, I have been trying to improve CRuby performance. I have been working simultaneously on two major fronts: introducing register transfer language (RTL) for the CRuby virtual machine (VM) and just-in-time (JIT) compilation. For background on the goal of having Ruby 3 be 3 times faster than version 2 (3X3), see my previous article, “Towards the Ruby 3×3 Performance Goal“.

    The JIT project (MJIT) is advancing successfully. The JIT approach and engine I proposed and implemented has been adopted by the CRuby community. Takashi Kokubun hardened the code and adapted it to the current CRuby stack machine and recently MJIT became an experimental feature of the CRuby 2.6 release.

    Introducing a Register Transfer Language (RTL) to the CRuby VM turned out to be an even harder task than introducing the initial JIT compiler. The required changes to the VM are far more invasive than the ones needed for the JIT compiler.

  • Template meta-programming: Some testing and debugging tricks

    There are only a few things more fun in this world than doing template meta-programming (TMP) and reading all those long poems that the compiler writes out when we make even the smallest mistake.

    While we don’t usually welcome these messages, there are ways to make them useful.

    One of the main causes of errors in TMP code are unexpected types – types that the compiler is deducing instead of the types that we expect it to deduce.

    This results in error messages occurring in seemingly random places in our code.

  • Open Science, Open Source and R

    Psychology changed forever on the August 27, 2015. For the previous four years, the 270 psychologists of the Open Science Collaboration had been quietly re-running 100 published psychology experiments. Now, finally, they were ready to share their findings. The results were shocking. Less than half of the re-run experiments had worked.

    When someone tries to re-run an experiment, and it doesn't work, we call this a failure to replicate. Scientists had known about failures to replicate for a while, but it was only quite recently that the extent of the problem became apparent. Now, an almost existential crisis loomed. That crisis even gained a name: the Replication Crisis. Soon, people started asking the same questions about other areas of science. Often, they got similar answers. Only half of results in economics replicated. In pre-clinical cancer studies, it was worse; only 11% replicated.

  • Qt Design Studio 1.1 released

    We are happy to announce the release of Qt Design Studio 1.1 !

    Qt Design Studio is a UI design and development tool that enables designers and developers to rapidly prototype and develop complex UIs. Both designers and developers use Qt Design Studio and this makes collaboration between the two a lot simpler and more streamlined. To get an impression, you should watch this video.

    Since the Qt Design Studio 1.0 release last year we worked hard on bug fixes and new features.

  • Sublime Text and Language Server Protocol

    LSP - protocol for interactions between IDE and language server. The latter provides such means like autocompletion, goto implementation and etc. When IDE needs to show autocomplete choices on, for example, python language - it sends a request to the special server. And it responds with the necessary data. The cool part here is that it is an initiative of a big company - Microsoft.

  • C Programming Tutorial Part 5 - Character variables

More in Tux Machines

Sad News - Martin Schwidefsky

We are devastated by the tragic death of Martin Schwidefsky who died in an accident last Saturday. Martin was the most significant contributor to the initial s390 port of the Linux Kernel and later the maintainer of the s390 architecture backend. His technical expertise as well as his mentoring skills were outstanding. Martin was well known for his positive mindset and his willingness to help. He will be greatly missed. Read more

today's leftovers

  • This Week Twitter Taught Me: Thunderbird is Go, But Windows Text Editors are Not!
    Although it’s proving difficult to stay on (Linux related) topic, this series has proven a great success in only 3 weeks — so much so that I’m planning to launch three separate spin-offs! I mean, I might as well milk the franchise for all I can while the udders drip with goodwill, right? Keep an eye out for “This Week My Spam Folder Taught Me“, “This Fortnight a Disqus Bot Taught Me” (spoiler: bit repetitive that one) and, to serve the overlooked people-who-read-this-site-whilst-diving niche, “This Month Diving Taught Me”. I wouldn’t get your hopes up for the latter, though. I can’t swim, let alone dive…
  • Timetable Scheduler App For Linux
    Timetable is a scheduling app available on flathub repositories. The app is maintained by the Elementary OS team and thus it’s User Interface looks like its own native OS. Might look a bit out of place on GNOME, KDE, Cinnamon, etc but still yet the app works like a charm. Read on below to get more done with Timetable.
  • Juan Luis Baptiste : New docker images for upcoming mageia 7
    I have added new docker images for the upcoming mageia 7 release. Thanks to the latest work on our image build tools, the images are available in all architectures mageia 7 supports: x86_64 armv7hl aarch64
  • Manas and Marek: Improving Fedora release process
    Manas Mangaonkar (pac23) is working on the Change Management Tool, a tool for the Fedora Program Managers and contributors to propose, edit, and approve changes per Fedora’s change process. He was selected for Google Summer of Code 2019. We asked Manas a few questions as he prepares for his next three months working with Ben Cotton, his mentor for the summer.
  • Candy Tsai: Outreachy 2019 March-August Internship – The Application Process
    Really excited to be accepted for the project “Debian Continuous Integration: user experience improvements” (referred to as debci in this post) of the 2019 March-August round of the Outreachy internship! A huge thanks to my company and my manager Frank for letting me do this since I mentioned it out of the blue. Thanks to the Women Techmakers community for letting me know this program exists.
  • Ubuntu Weekly Newsletter Issue 579
  • Sony's Deal With Microsoft Blindsided Its Own PlayStation Team [iophk: "RIP Playstation"]

    Last week, the companies announced a strategic partnership to co-develop game streaming technology and host some of PlayStation’s online services on the Redmond-based company’s Azure cloud platform. It comes after PlayStation spent seven years developing its own cloud gaming offering, with limited success.

    Negotiations with Microsoft began last year and were handled directly by Sony’s senior management in Tokyo, largely without the involvement of the PlayStation unit, according to people familiar with the matter. Staff at the gaming division were caught off-guard by the news. Managers had to calm workers and assure them that plans for the company’s next-generation console weren’t affected, said the people, asking not to be identified discussing private matters.

Kernel: Guix and Logitech

  • Creating and using a custom Linux kernel on Guix System
    Guix is, at its core, a source based distribution with substitutes, and as such building packages from their source code is an expected part of regular package installations and upgrades. Given this starting point, it makes sense that efforts are made to reduce the amount of time spent compiling packages, and recent changes and upgrades to the building and distribution of substitutes continues to be a topic of discussion within Guix. One of the packages which I prefer to not build myself is the Linux-Libre kernel. The kernel, while not requiring an overabundance of RAM to build, does take a very long time on my build machine (which my children argue is actually their Kodi computer), and I will often delay reconfiguring my laptop while I want for a substitute to be prepared by the official build farm. The official kernel configuration, as is the case with many GNU/Linux distributions, errs on the side of inclusiveness, and this is really what causes the build to take such a long time when I build the package for myself. The Linux kernel, however, can also just be described as a package installed on my machine, and as such can be customized just like any other package. The procedure is a little bit different, although this is primarily due to the nature of how the package definition is written.
  • Improved Logitech wireless device support in kernel 5.2
    The just released 5.2-rc1 kernel includes improved support for Logitech wireless keyboards and mice. Until now we were relying on the generic HID keyboard and mouse emulation for 27 MHz and non-unifying 2.4 GHz wireless receivers. Starting with the 5.2 kernel instead we actually look at the devices behind the receiver. This allows us to provide battery monitoring support and to have per device quirks, like device specific HID-code to evdev-code mappings where necessary. Until now device specific quirks where not possible because the receivers have a generic product-id which is the same independent of the device behind the receiver. The per device key-mapping is especially important for 27MHz wireless devices, these use the same HID-code for Fn + F1 to Fn + F12 for all devices, but the markings on the keys differ per model. Sofar it was impossible for Linux to get the mapping for this right, but now that we have per device product-ids for the devices behind the receiver we can finally fix this. As is the case with other devices with vendor specific mappings, the actual mapping is done in userspace through hwdb.
  • The Better Logitech Wireless Device Support In The Linux 5.2 Kernel
    Red Hat's Hans de Goede who was involved in this latest Logitech support improvement work for the Linux 5.2 kernel has now blogged to share additional background information on the effort.

Top 20 best Tizen apps and games for April 2019

We are into May 2019, and it’s time for our monthly roundup of most downloaded Tizen apps and games for the previous month. The month of April 2019 did not see many new entrants making their way into that coveted Top 20 list, just three to be precise. An action game named Zombie Derby made the biggest jump to find itself on the fourth spot, whereas another action game, Mountain Sniper Jungle, enters the Top 20 list in the sixteenth position. A train simulator game named Euro Train Driving is the last new entrant on the list at seventeenth. The list is led by the usual trio of WhatsApp, Facebook and Facebook Messenger. The rest of the story is also pretty much the same: Hancom Office Viewer, Opera Mini web browser, HERE Maps, Instagram, Smart Tutor, Xender etc. Read more