Language Selection

English French German Italian Portuguese Spanish

Programming Leftovers

Filed under
Development
  • It's not what programming languages do, it's what they shepherd you to

    How many of you have listened, read or taken part in a discussion about programming languages that goes like the following:

    Person A: "Programming language X is bad, code written in it is unreadable and horrible."

    Person B: "No it's not. You can write good code in X, you just have to be disciplined."

    Person A: "It does not work, if you look at existing code it is all awful."

    Person B: "No! Wrong! Those are just people doing it badly. You can write readable code just fine."

    After this the discussion repeats from the beginning until either one gets fed up and just leaves.

    I'm guessing more than 99% of you readers have seen this, often multiple times. The sad part of this is that even though this thing happens all the time, nobody learns anything and the discussion begins anew all the time. Let's see if we can do something about this. A good way to go about it is to try to come up with a name and a description for the underlying issue.

  • Ideas to help working from home

    When I came to KDAB to work, working at home was a bit of a culture shock for me – I’d previously only ever worked in an open-plan office and had sworn that home working was not for me – I’d never manage to get anything done! However, I’ve found that home working suits me quite well, and given the current situation I thought I’d write a little about it as some people might be experiencing home working for the first time.

    The first concern I had when starting to work from home was the loneliness. This is particularly relevant now, however there are still ways to ensure that you don’t get completely isolated. One thing would be to have meetings via video call – and not to forget that you can also do this with friends in the evening! Having social contact is important, even if you can’t meet up face to face.

    The other main concern I had was how to separate working time from non-working time – both the physical and mental aspects. As a physical space, I use my PC desk for gaming which is not ideal, but I make sure after I work I move to another room to differentiate ‘work’ and ‘play’. A better way would be to have two different spaces set up, however with limited space – I live in a flat – I make sure that I at least have a break in between the two uses. Mentally, at the end of each day I like to plan what I’ll do first in the morning, so that it’s part of my wind down for a working day – which allows me to start the next day without getting distracted. At the end of the week I upload my timesheet to say to myself ‘that’s it’ – a very definite point where I’m done for the week.

  • Static analysis in GCC 10

    I work at Red Hat on GCC, the GNU Compiler Collection. For the next major release of GCC, GCC 10, I’ve been implementing a new -fanalyzer option: A static analysis pass to identify various problems at compile-time, rather than at runtime.

    My thinking here is that it’s best to catch problems as early as possible as the code is written, using the compiler the code is written in as part of the compile-edit-debug cycle, rather than having static analysis as an extra tool “on the side” (perhaps proprietary). Hence, it seems worthwhile to have a static analyzer built into the compiler that can see exactly the same code as the compiler sees—because it is the compiler.

    This issue is, of course, a huge problem to tackle. For this release, I’ve focused on the kinds of problems seen in C code—and, in particular double-free bugs—but with a view toward creating a framework that we can expand on in subsequent releases (when we can add more checks and support languages other than C).

  • Malcolm: Static analysis in GCC 10

    David Malcolm writes about the static-analysis features that he is working on adding to the GCC compiler.

  •      

  • Ashley’s top five projects for Raspberry Pi first-timers

             

  •       
                   

  • How to manage a business without a headquarters

                     

                       

    Distributed organisations are as old as the [Internet]. Its first users 50 years ago realised how much can be done by swapping emails and digital files. These exchanges led to the development of “open source” software, jointly written by groups of strangers often geographically distant.

                       

    Today most distributed startups have open-source roots. Gatsby is one. Nearly all 1,200 employees of another, Automattic, best known for WordPress, software to build websites, work from home. GitHub, which hosts millions of open-source projects (and was acquired by Microsoft in 2018), may be the world’s biggest distributed enterprise. Two-thirds of its 2,000 staff work remotely. Most firms that build blockchains, a type of distributed database, are by their nature dispersed.

  •                

  • 10 Most(ly dead) Influential Programming Languages

                     

                       

    The other day I read 20 most significant programming languages in history, a “preposterous table I just made up.” He certainly got preposterous right: he lists Go as “most significant” but not ALGOL, Smalltalk, or ML. He also leaves off Pascal because it’s “mostly dead”. Preposterous! That defeats the whole point of what “significant in history” means.

                       

    So let’s talk about some “mostly dead” languages and why they matter so much.

                       

    Disclaimer: Yeah not all of these are dead and not all of these are forgotten. Like most people have heard of Smalltalk, right? Also there’s probably like a billion mistakes in this, because when you’re doing a survey of 60 years of computing history you’re gonna get some things wrong. Feel free to yell at me if you see anything!

                       

    Disclaimer 2: Yeah I know some of these are “first to invent” and others are “first to popularize”. History is complicated!

  •                

  • Megvii makes deep learning AI framework open-source as China moves to reduce reliance on US platforms

                     

                       

    Initially developed in 2014, MegEngine is part of Megvii’s proprietary AI platform, Brain++

  • Excellent Free Tutorials to Learn Awk

    Awk is a versatile programming language designed for pattern scanning and processing language and often used as a data extraction and reporting tool. It’s an excellent filter and report writer. It’s a standard feature of most Unix-like operating systems.

    Awk is small, fast, simple, and has a clean comprehensible C-like input language. It has robust programming constructs including if/else, while, do/while and for C-style and array iteration.

    The name awk comes from the initials of its designers: Alfred V. Aho, Peter J. Weinberger, and Brian W. Kernighan. The original version of awk was written in 1977 at AT&T Bell Laboratories.

  • This Week in Rust 331

More in Tux Machines

today's howtos

Games: Debian-Based SteamOS, Lutris 0.5.5 and Critters for Sale

  • SteamOS Isn’t Dead, Just Sidelined; Valve Has Plans To Go Back To Their Linux-Based OS

    It’s big news for any PC gamer that has been frustrated with Microsoft’s erroneous-laden grip on operating systems for as far back as 1995; with it comes a monumental blow to privacy, not to mention mere control of your PC; updates have a tendency to start when they want to, new OS licenses must be purchased if you change hardware configurations, and applications that Microsoft doesn’t want you using are notoriously finicky to get working. Of course, users can simply switch over to Linux if they have had their fill of Microsoft. That switch comes with a slew of changes, however, and dropping reliable applications is a part of the grieving process that must take place when attempting to switch over your OS. Linux does host a plethora of open-source tools that can take the place of past applications; GIMP in lieu of Photoshop, for example. Yet the old applications are never truly replaced 1 for 1; it’s more of a bandage than anything else. Even with WINE and other techniques developed over the years to help users with Linux use Windows software, there are plenty of pitfalls and inconveniences that stymie any attempts to maintain Linux over Windows.

  • Lutris 0.5.5 Linux Game Manager Adds Humble Bundle Support, Initial VKD3D Support

    Lutris 0.5.5 is out today as the newest version of this Linux game manager to assist in installing both native and emulated games on Linux. Lutris continues to expand the scope of its "runners" for improving the Linux gaming experience. While the version 0.5.5 number may not seem like a big deal, there is actually a lot to find with the Lutris 0.5.5 update. Among the changes with Lutris 0.5.5 are: - Initial support for Humble Bundle integration.

  • Try out 'Critters for Sale', an exhilarating short horror visual novel with two episodes out now

    The absolutely exhilarating short horror visual novel Critters for Sale, which was originally released the first day of 2019, had its second chapter ("Goat") available for some time (Jun 2019, actually). Considering how such a hidden gem it is I was going to write about it, but Liam ended up doing it first in this GOL article. [...] It still maintains the same fever-dream like visuals, game mechanics and layout, consisting on a left HUD with some key information, a central upper section where all the images and animations are displayed, along with some point and click elements, and finally a center lower section where you see the dialogues and options to advance the story in the available directions. However, regarding the premise, now it features other characters and a different setting, but since this is one of those games where the less you know the better, I will only say that although we're only grasping the surface of the whole mystery, and while the tone of the story still keeps a personal scope, at this point it's clear that those responsible for the plot's main threat not only have enough power to influence the entire world, but also directly encompass the whole history of mankind...

Linux Kernel: Linux 5.7, Linux Security and Intel Gen9 Graphics On Linux

  • AMD Sensor Fusion Hub Laptop Driver Unlikely To Land For Linux 5.7

    While we were hoping to see the AMD Sensor Fusion Hub driver introduced in Linux 5.7 for improving the AMD Ryzen Linux laptop experience, that now looks quite unlikely. This driver has been sought after by AMD Linux laptop customers since 2018 for supporting the accelerometer, gyroscopic sensors, and other functionality on modern AMD laptops, similar to the Intel Sensor Hub. Patches for the AMD Sensor Fusion Hub (AMD-SFH) driver for Linux were posted in January and underwent a few rounds of review.

  • Amazon Engineer's Patch For Flushing L1 Cache On Context Switching Revved

    Earlier this month there was the proposal by a Linux kernel engineer for Amazon to flush the L1 data cache on context switches as another safeguard against the ever increasing CPU vulnerabilities. The motivation for flushing the L1d cache on context switches is driven as a result of Intel's data sampling vulnerabilities and this safeguard would be an opt-in feature for those paranoid about system security. Flushing the L1 cache would ensure the data is not being snooped or leaked following a context switch but with all of the cache flushing could significantly hamper the system performance.

  • HDR Display Support Coming To Some Intel Gen9 Graphics On Linux

    For the very common Intel "Gen9" graphics found on pretty much all current pre-Icelake hardware that is available through retail channels, high dynamic range (HDR) display support could soon be enabled under Linux for a subset of devices.

Android Leftovers