Language Selection

English French German Italian Portuguese Spanish

Programming Leftovers

Filed under
Development
  • Podcast: COBOL development on the mainframe

    Nic reached out when COBOL hit the news this spring to get some background on what COBOL is good for historically, and where it lives in the modern infrastructure stack. I was able to talk about the basics of COBOL and the COBOL standard, strengths today in concert with the latest mainframes, and how COBOL back-end code is now being integrated into front ends via intermediary databases and data-interchange formats like JSON, which COBOL natively supports.

  • What I learned while teaching C programming on YouTube

    The act of breaking something down in order to teach it to others can be a great way to reacquaint yourself with some old concepts and, in many cases, gain new insights.

    I have a YouTube channel where I demonstrate FreeDOS programs and show off classic DOS applications and games. The channel has a small following, so I tend to explore the topics directly suggested by my audience. When several subscribers asked if I could do more videos about programming, I decided to launch a new video series to teach C programming. I learned a lot from teaching C, and in the process, I came across some meaningful takeaways I think others will appreciate.

    Make a plan

    For my day job, I lead training and workshops to help new and emerging IT leaders develop new skills. Outside of regular work, I also enjoy teaching as an adjunct professor. So I'm very comfortable constructing a course outline and designing a curriculum. That's where I started. If you want to teach a subject effectively, you can't just wing it.

    Start by writing an outline of what topics you want to cover and figure out how each new topic will build on the previous ones. The "building block" method of adding new knowledge is key to an effective training program.

  • Google's Flutter 1.20 framework is out: VS Code extension and mobile autofill support
  • Google Engineers Propose "Machine Function Splitter" For Faster Performance

    Google engineers have been working on the Machine Function Splitter as their means of making binaries up to a few percent faster thanks to this compiler-based approach. They are now seeking to upstream the Machine Function Splitter into LLVM.

    The Machine Function Splitter is a code generation optimization pass for splitting code functions into hot and cold parts. They are doing this stemming from research that in roughly half of code functions that more than 50% of the code bytes are never executed but generally loaded into the CPU's data cache.

  • Modernize network function development with this Rust-based framework

    The world of networking has undergone monumental shifts over the past decade, particularly in the ongoing move from specialized hardware into software defined network functions (NFV) for data plane1 and packet processing. While the transition to software has fashioned the rise of SDN (Software-defined networking) and programmable networks, new challenges have arisen in making these functions flexible, efficient, easier to use, and fast (i.e. little to no performance overhead). Our team at Comcast wanted to both leverage what the network does best, especially with regards to its transport capacity and routing mechanisms, while also being able to develop network programs through a modern software lens—stressing testing, swift iteration, and deployment. So, with these goals in mind, we developed Capsule, a new framework for network function development, written in Rust, inspired by Berkeley's NetBricks research, and built-on Intel's Data Plane Development Kit (DPDK).

  • This Week in Rust 350
  • Firefox extended tracking protection

    This Mozilla Security Blog entry describes the new redirect-tracking protections soon to be provided by the Firefox browser.

  • Karl Dubost: Browser developer tools timeline

    I was reading In a Land Before Dev Tools by Amber, and I thought, Oh here missing in the history the beautifully chiseled Opera Dragonfly and F12 for Internet Explorer. So let's see what are all the things I myself didn't know.

  • Daniel Stenberg: Upcoming Webinar: curl: How to Make Your First Code Contribution

    Abstract: curl is a wildly popular and well-used open source tool and library, and is the result of more than 2,200 named contributors helping out. Over 800 individuals wrote at least one commit so far.

    In this presentation, curl’s lead developer Daniel Stenberg talks about how any developer can proceed in order to get their first code contribution submitted and ultimately landed in the curl git repository. Approach to code and commits, style, editing, pull-requests, using github etc. After you’ve seen this, you’ll know how to easily submit your improvement to curl and potentially end up running in ten billion installations world-wide.

More in Tux Machines

4MLinux 35.0 BETA released.

4MLinux 35.0 BETA is ready for testing. Basically, at this stage of development, 4MLinux BETA has the same features as 4MLinux STABLE, but it provides a huge number of updated packages. Read more

Graphics: WayVNC, MoltenVK, Mir, Navi and Mali

  • wayvnc 0.3.1
    New features since v0.2.0:
    
     * Copy & paste, thanks to Scott Moreau.
     * wayvnc now has a man page.
     * wayvnc now exits if authentication is enabled but fails.
    
    Git commit history since v0.2.0:
    
    Alexander Graul (1):
          Add openSUSE Tumbleweed installation instruction
    
    Andri Yngvason (15):
          buffer: Fix buffer attribute comparison
          README: Use "yay" in archlinux installation instructions
          Exit if enabling auth fails
          Clean up config on exit
          Clean up aml on nvnc init failure
          data-control: Make offer handling asynchronous
          data-control: Don't free data-control-manager twice
          data-control: Clean up whole receive context in aml_free_fn
          data-control: Destroy data device on exit
          Don't init data_control if it's not supported by compositor
          Write a man page
          Generate and install a man page
          man-page: Fix wording
          FAQ: Remove outdated Q
          Release v3.0.0
          Fix man page path
    
    Jan Beich (1):
          shm: guard fallback on FreeBSD < 13 as well
    
    Jony (1):
          add Void Linux install command to README.md
    
    Scott Moreau (1):
          Add basic clipboard support
    
  • WayVNC 0.3 Released - The Wayland VNC Server Now Supports Copy & Paste

    WayVNC 0.3 released today as the Wayland VNC server built atop the WLROOTS library. The headline feature of WayVNC is... clipboard support! Yep, this popular Wayland VNC server can finally support copy and paste functionality. This clipboard support landed just last week and allows copy/paste of text to/from the host clipboard. On the Wayland side this clipboard support is making use of the wlr-data-control-unstable-v1 protocol. This WayVNC clipboard support was written by longtime Wayland contributor Scott Moreau.

  • MoltenVK 1.1 Update Brings Big Improvements For Vulkan On macOS

    MoltenVK 1.1 is out as a big update for this graphics translation layer for getting the Vulkan API running on macOS and iOS devices by translating calls to Apple's Metal API. MoltenVK 1.1 is out with Vulkan 1.1 support by exposing all core Vulkan 1.1 extensions and other relevant changes. There are also a number of other new Vulkan extensions supported by this release like KHR_multiview, KHR_external_semaphore, KHR_external_fence, and others.

  • Mir 2.1 Released With Some New Protocol Support, Many Fixes

    Mir 2.1 has been released as Canonical's project around offering a set of libraries for constructing Wayland shells particularly with Snap confinement support and other Ubuntu-focused features. With the Mir 2.1 release comes a --show-splash command line option, reduced locking within the KeyRepeatDispatcher code, support for the zwp_linux_dmabuf_unstable_v1 protocol within the GBM-KMS back-end, and support for the Wayland zwlr_layer_shell_v1 v3 and wlr_foreign_toplevel_management_unstable_v1 protocols. There are also X11 handling improvements too.

  • Linux 5.9 Gets More Fixes For AMD RDNA2 GPUs, Promotes Navi 12

    A batch of fixes to the AMDGPU kernel graphics driver were sent in today for Linux 5.9. While AMDGPU fixes this late in the kernel cycle tend to not be too notable, this time around there are some prominent items worth covering. When it comes to the next-generation "Sienna Cichlid" and "Navy Flounder" Navi 2x graphics (RDNA2) support, there are continued updates in making the support in good shape for Linux 5.9 stable. This work includes additional Sienna Cichlid PCI IDs being added, fixing for building DCN 3.0 code with older versions of GCC, temporarily disabling GFXOFF capabilities for Navy Flounder until issues are resolved, and the kernel side bits for AV1 decode with these GPUs.

  • Mali G72 Now Supported By Open-Source Panfrost Gallium3D Driver

    The open-source Panfrost graphics driver, which is now backed/supported by Arm after starting as a reverse-engineering effort, has picked up support for the Mali G72 GPU. Adding to the many Panfrost open-source driver accomplishments this year is now support for the G72 as their latest support addition. The Mali G72 has been around since late 2017 and is making use of the second-generation Bifrost architecture. The Mali G72 is used by the likes of the Kirin 970, Samsung Exynos 9 9810, Exynos 7 9610, and Helio P60/P70 SoCs.

Intel: DG1, Media Driver 2020.3 and Key Locker Support

  • Intel Sends Out Latest DG1 Linux Patches But Won't Hit Until At Least The 5.11 Kernel

    The sixth spin of Intel DG1 discrete graphics card patches have now been sent out for review, amounting to just about 700 lines of new driver code due to building off the existing DG1 work and more broadly the Gen12/Xe support that's been refined in mainline for months. With these patches it would appear the Intel DG1 is then in good shape under Linux but due to the timing is unlikely to be mainlined until a stable kernel release in early 2021. Intel's Gen12 / Xe Graphics as found in Tiger Lake appears to be in good shape with the latest mainline code (soon to be tested at Phoronix) but for the DG1 discrete graphics card there have been patches lingering.

  • Intel Media Driver 2020.3 Released With Gen12 AV1 Decode, Other Improvements

    Just in time for the end of the quarter Intel's open-source multimedia team has released the Media Driver 2020.3 package for the Intel graphics accelerated media encode/decode component on Linux platforms. The Intel Media Decode Driver 2020.3 is notable in that it rounds out the Gen12/Xe support. This support is not only for the Tiger Lake support now beginning to appear in shipping notebooks but also for DG1 and upcoming Rocket Lake and SG1 solutions as well.

  • Intel Key Locker Support Added To LLVM - Confirms Presence With Tiger Lake

    Last week on the GNU toolchain side was initial work on supporting Intel Key Locker while this week Key Locker support has come to LLVM. Intel Key Locker is a means of encrypting/decrypting data with an AES key without having access to the raw key. Key Locker relies on converting AES keys into handles that are then used in place of the actual key, until revoked by the system. The goal with this feature is for preventing any rogue attackers from obtaining the actual AES keys on the system.

today's howtos