Language Selection

English French German Italian Portuguese Spanish

Development

Programming: Python, Rust, PHP, C++ and More

Filed under
Development
  • Python For Loop: Everything You Need to Know

    Loops are one of the essential elements in any programming language, and Python is not an exception to it. Loops are used to repeat a statement or a block of statements multiple times. If there were no concept of loops in programming languages, we have to write each statement again and again for the number of times we want to execute it.

    Python provides two types of loops to handle looping requirements, i.e., the while loop and the for loop. In this tutorial, we will learn everything about the for loop statement in Python.

    Before getting started with this tutorial, It is necessary to have Python installed and set up in your environment path. If you don’t have it installed already, refer to our step by step guide to install Python on Linux. The code presented in this tutorial can be run on the python shell, but it is recommended to run the code in a Python IDE. If you don’t have a python IDE installed in your system or want to know which IDE is a better choice to install, you can refer to our guide Top 10 best python IDE compared.

  • NihAV Is An Experimental Multimedia Framework Written In Rust

    NihAV is an experimental multimedia framework written in the Rust programming language. At the moment it's focused on diving into supporting decoders for different formats that lack open-source support right now / not yet reverse engineered, exploring new approaches for conventional multimedia concepts, and other experiments for advancing audio-video frameworks.

  • rra-c-util 8.3

    n this release of my utility library for my other packages, I finally decided to drop support for platforms without a working snprintf.

    This dates back to the early 2000s and a very early iteration of this package. At the time, there were still some older versions of UNIX without snprintf at all. More commonly, it was buggy. The most common problem was that it would return -1 if the buffer wasn't large enough rather than returning the necessary size of the buffer. Or, in some cases, it wouldn't support a buffer size of 0 and a NULL buffer to get the necessary size.

  • Embedded Programming and Beyond: An Interview with Warren Gay

    Interested in embedded programming? Warren Gay, an Ontario, Canada-based senior programmer, is an excellent resource for professional programmers, students, and makers alike. Here he talks about his new book, FreeRTOS for ESP32-Arduino (Elektor, 2020), and shares insights about FreeRTOS, ESP32, Arduino, embedded technologies, and more. You are sure to find his input informative and inspiring, especially if you plan to work with ESP32 or Arduino in the near future.

  • PHP 7.1 - 8 new features

    In the PHP 7.0 version function declaration accepts a return type, with the release of 7.1 version functions and parameters can return/accept null by prefixing the data type with a question mark(?).

    if the data type passed as parameter or returned by a function is different from the type specified a TypeError exception will be thrown.

  • Senior Developers don’t know Everything

    For about 20 years, I’ve been doing C++ and Qt and KDE development. I suppose that makes me a “senior software engineer”, also in the sense that I’ve hacked, programmed, futzed, designed, architected, tested, proved-correct, and cursed at a lot of software. But don’t let the label fool you: I look up just as much in the documentation as I ever did; senior developers don’t know everything.

Perl Programming: Exercises and DocKnot Release

Filed under
Development
  • The [Perl] Weekly Challenge #072

    I am glad, this week focus was more Array/List related. Technical speaking Array and List aren’t the same in Perl. I must admit until I read the article by brian d foy, I thought they were the same. As the famous saying, you learn something new every day.

  • Perl Weekly Challenge 72: One-Liners for Trailing Zeros and Line Ranges

    These are some answers to the Week 72 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

    Spoiler Alert: This weekly challenge deadline is due in a few hours. This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

  • Russ Allbery: DocKnot 3.05

    I keep telling myself that the next release of DocKnot will be the one where I convert everything to YAML and then feel confident about uploading it to Debian, and then I keep finding one more thing to fix to release another package I'm working on.

    Anyway, this is the package I use to generate software documentation and, in the long run, will subsume my static web site generator and software release workflow. This release tweaks a heuristic for wrapping paragraphs in text documents, fixes the status badge for software with Debian packages to do what I had intended, and updates dependencies based on the advice of Perl::Critic::Freenode.

Python Programming

Filed under
Development

Programming Leftovers

Filed under
Development
  • Fujitsu Begins Adding A64FX Support To GCC Compiler

    The Fujitsu A64FX ARM processor that has 48 cores per node and 32GB of HBM2 memory that currently powers the fastest supercomputer is beginning to see GCC compiler support.

    Fujitsu months ago upstreamed A64FX support to the LLVM/Clang compiler. It appears this ARMv8.2-based chip with 512-bit SIMD is using LLVM/Clang as its preferred compiler. But now Fujitsu is also upstreaming GCC support for their high performance A64FX.

  • Jussi Pakkanen: The second edition of the Meson manual is out

    I have just uploaded the second edition of the Meson manual to the web store for your purchasing pleasure.

  • Junichi Uekawa: Started writing some golang code.

    Started writing some golang code. Trying to rewrite some of the tools as a daily driver for machine management tool. It's easier than rust in that having a good rust compiler is a hassle though golang preinstalled on systems can build and run. go run is simple enough to invoke on most Debian systems.

  • Url Shortner in Golang

    I decided to write my own URL shortner and the reason for doing that was to dive a little more into golang and to learn more about systems. I have planned to not only document my learning but also find and point our different ways in which this application can be made scalable, resilient and robust.

  • LLVM Clang 11 Has A Nice Build Speed Improvement With New Feature For Pre-Compiled Headers

    There are many improvements in LLVM/Clang 11.0 due out in the weeks ahead though an interesting change merged prior to last month's code branching that slipped under our radar... If using the clang-cl driver for MSVC or when otherwise making use of pre-compiled headers (PCH) functionality, there is a new option that can offer significant build time speed-ups.

    When making use of Clang PCH functionality for leveraging pre-compiled headers, Clang 11.0 is introducing the -fpch-instantiate-templates option separate from the existing PCH options. This -fpch-instantiate-templates option instantiates templates already while generating a precompiled header instead of instantiating every time the pre-compiled header is used. Avoiding the instantiation each time the pre-compiled header is used can provide measurable build time improvements. Aside from the MSVC clang-cl drop-in, this feature though isn't enabled by default since it can result in errors if the source header file is not self-contained.

  • Call for Code Daily: open source projects and answered calls

    The power of Call for Code® is in the global community that we have built around this major #TechforGood initiative. Whether it is the deployments that are underway across pivotal projects, developers leveraging the starter kits in the cloud, or ecosystem partners joining the fight, everyone has a story to tell. Call for Code Daily highlights all the amazing #TechforGood stories taking place around the world. Every day, you can count on us to share these stories with you. Check out the stories from the week of August 3rd:

  • PSF GSoC students blogs: Week 6 Check-in

    Works towards analyzing multistage dockerfile. I combined the draft PR and the review from my mentors, the new commit is the first step of my plan. We split the multistage dockerfile into seperate dockefiles for build. Here are the changes in the new commit.

    1. Modified function check_multistage_dockerfile() to return.

    2. Remove function split_multistage_dockerfile() since we are working on the building stage. split_multistage_dockerfile() can be improved on analyze stage.

  • Weekly Python StackOverflow Report: (ccxxxix) stackoverflow python report
  • Send WhatsApp media/message using Python.

    Though there are many scripts available which are almost free but later on leads to getting blocked by Whatsapp.

    We can use Twilio Library for sending and receiving whatsapp messages even for WhatsApp bussiness.

  • Generate a random number in Java

    Java contains many ways to generate random numbers. The random number can be int, long, float, double, and Boolean. Math.random class and Random class are mostly used to generate random numbers in Java. The uses of these classes are shown in this tutorial by using various examples.

    [...]

    The random class has many methods to generate different types of random numbers, such as nextInt(), nextDouble(), nextLong, etc. So, the integer and fractional numbers can be generated by using the appropriate method of this class. You have to create an object to use in this class.

  • Open Source Jenkins CI/CD Project Graduates From CD Foundation

    Officially launched by the Linux Foundation in March 2019, the CD Foundation includes in its project portfolio some of the most widely used and deployed CI/CD tools, including Jenkins, Spinnaker and Tekton. The open source Jenkins CI/CD project gains more community participation and a roadmap for future improvements.

Perl Programming

Filed under
Development
  • On Perl 7 and the Perl Steering Committee

    For those who are wondering about the state of the proposed Perl 7 fork and the role of the newly formed Perl Steering Committee, Ricardo Signes has put together a detailed explanation that is worth a read. "You should not expect to see a stream of unjustified dictates issuing forth from some secret body on high. You should expect to see perl5-porters operating as it generally did: with proposals coming to the list, getting discussion, and then being thumbed up or down by the project manager. This is what has been happening for years, already. Some proposals were already discussed by the project manager and some were not. If you eliminated any named mailing list for doing this, it would still happen. The PSC is a means to say that there is a default group for such discussions. If you were wondering, its initial membership was formed from 'the people who came to or were invited to the Perl Core Summit' over the last few years."

  • LWN: On Perl 7 and the Perl Steering Committee

    LWN has covered an email from Rjb's to perl5-porters

  • The Perl Ambassador: Curtis 'Ovid' Poe

    This month’s interview is Curtis ‘Ovid’ Poe, one of the most-respected and well-known leaders in the Perl community.

    Curtis has been building software for decades. He specializes in building database-driven websites through his global development and consulting firm, All Around The World. He’s the main developer behind Tau Station, a text-based Massive Multiplayer Online Browser Game (MMOBG) set in a vibrant, far-future universe.

  • Mohammad S Anwar: Thank you for the support

    Inspired by the blog by Gabor Szabo, I am writing this blog to thank all the supporters on Patreon. I would also like to thank Gabor Szabo for the support and guidance. I wouldn't have come this far without your support.

Programming Leftovers

Filed under
Development
  • Intel Compute Runtime Preparing For The Upcoming oneAPI Level Zero 1.0

    At the end of last year Intel published the oneAPI Level Zero specification as a low-level API for direct-to-metal interfaces for offload accelerators like FPGAs and GPUs. In the months since they have continued advancing the Level Zero interface and implementation within the Intel software stack (along with the other oneAPI components at large) while it's looking like Level Zero v1.0 is around the corner.

  • nanotime 0.3.0: Yuge New Features!

    A fresh major release of the nanotime package for working with nanosecond timestamps is hitting CRAN mirrors right now.

    nanotime relies on the RcppCCTZ package for (efficient) high(er) resolution time parsing and formatting up to nanosecond resolution, and the bit64 package for the actual integer64 arithmetic. Initially implemented using the S3 system, it has benefitted greatly from work by Leonardo Silvestri who rejigged internals in S4—and now added new types for periods, intervals and durations. This is what is commonly called a big fucking deal!! So a really REALLY big thank you to my coauthor Leonardo for all these contributions.

    With all these Yuge changes patiently chisseled in by Leonardo, it took some time since the last release and a few more things piled up. Matt Dowle corrected something we borked for integration with the lovely and irreplacable data.table. We also switched to the awesome yet minimal tinytest package by Mark van der Loo, and last but not least we added the beginnings of a proper vignette—currently at nine pages but far from complete.

  • Lockless algorithms for mere mortals

    Time, as some have said, is nature's way of keeping everything from happening at once. In today's highly concurrent computers, though, time turns out not to be enough to keep events in order; that task falls to an extensive set of locking primitives and, below those, the formalized view of memory known as the Linux kernel memory model. It takes a special kind of mind to really understand the memory model, though; kernel developers lacking that particular superpower are likely to make mistakes when working in areas where the memory model comes into play. Working at that level is increasingly necessary for performance purposes, though; a recent conversation points out ways in which the kernel could make that kind of work easier for ordinary kernel developers.

    Concurrency comes into play when multiple threads of execution are accessing the same data at the same time. Even in a simple world, keeping everything coherent in a situation like this can be a challenging task. The kernel prevents the wrong things from happening at the same time with the use of spinlocks, mutexes, and other locking primitives that can control concurrency. Locks at this level can be thought of as being similar to traffic lights in cities: they prevent accidents as long as they are properly observed, but at the cost of stopping a lot of traffic. Time spent waiting for locks hurts; even the time bouncing lock data between memory caches can wreck scalability, so developers often look for ways to avoid locking.

  • A look at Dart

    Dart is a BSD-licensed programming language from Google with a mature open-source community supporting the project. It works with multiple architectures, is capable of producing native machine-code binaries, and can also produce JavaScript versions of its applications. Dart version 1.0 was released in 2013, with the most recent version, 2.8, released on June 3 (2.9 is currently in public beta). Among the open-source projects using Dart is the cross-device user-interface (UI) toolkit Flutter. We recently covered the Canonical investment in Flutter to help drive more applications to the Linux desktop, and Dart is central to that story.

    Dart's syntax is a mix of concepts from multiple well-established languages including JavaScript, PHP, and C++. Further, Dart is a strongly-typed, object-oriented language, with primitive types that are implemented as classes. While Dart does have quirks, it is likely that a programmer familiar with the aforementioned languages will find getting started with Dart to be relatively easy. Included in the language are useful constructs like Lists (arrays), Sets (unordered collections), and Maps (key/value pairs).

    Beyond the language constructs, the Dart core libraries provide additional support for features like asynchronous programming, HTML manipulation, and converters to work with UTF-8 and JSON.

  • Reactive Quarkus: A Java Mutiny

    DevNation Tech Talks are hosted by the Red Hat technologists who create our products. These sessions include real solutions plus code and sample projects to help you get started. In this talk, you’ll learn about reactive Quarkus and Mutiny from Clement Escoffier and Edson Yanaga.

    First things first: How much confusion has been caused by the word reactive? Are we talking about reactive systems? Reactive programming? Reactive streams? Also, how many headaches have been caused by non-seasoned reactive developers trying to read reactive code?

    Let’s make some sense out of this issue. In this talk, we introduce Mutiny, a new reactive programming library. After several years of observing developers using reactive APIs, we designed this library to be more event-driven, navigable, and to avoid the common pitfalls of reactive programming. This talk explores the reason behind Mutiny and how it simplifies the development of reactive applications. We also explain how Mutiny is integrated into Quarkus to build supersonic, subatomic, and reactive applications.

  • Integrating H2 with Python and Flask

    H2 is a lightweight database server written in Java. It can be embedded in Java applications, or run as a standalone server.

    In this tutorial, we'll review why H2 can be a good option for your projects. We'll also learn how to integrate H2 with Python by building a simple Flask API.

Screencasts and Audiocasts: GeckoLinux, Linux Headlines and Python

Filed under
Development
GNU
Linux

  • GeckoLinux 999.200729.0 "Rolling" overview | Linux for Detail Oriented Geckos

    In this video, I am going to show an overview of GeckoLinux 999.200729.0 and some of the applications pre-installed.

  • 2020-08-07 | Linux Headlines

    The Free Software Foundation elects a new president, security researchers warn of an attack related to Spectre and Meltdown that affects even more processor types, Ubuntu 20.04.1 is out, a new tool aims to automatically optimize laptop power without sacrificing battery life, and just two candidates are running for the vacant openSUSE board seat.

  • Test and Code: 125: pytest 6 - Anthony Sottile

    pytest 6 is out. Specifically, 6.0.1, as of July 31.

    And there's lots to be excited about.
    Anthony Sottile joins the show to discuss features, improvements, documentation updates and more.

  • Real Python: The Real Python Podcast – Episode #21: Exploring K-means Clustering and Building a Gradebook With Pandas

    Do you want to learn the how and when of implementing K-means clustering in Python? Would you like to practice your pandas skills with a real-world project? This week on the show, David Amos is back with another batch of PyCoder’s Weekly articles and projects.

    David talks about a Real Python article about how to perform K-means clustering in Python. We also talk about a new project based article on the site about how to create a gradebook using pandas, practicing the skills of importing, merging, and calculating across groups of data. We cover several other articles and projects from the Python community including: JPEG image decoding, object-oriented development with interfaces and mixins, sparking joy with Python, five package picks from Real Python authors, and more.

PHP 8.0.0 Beta 1 and RPMs of PHP 7.x

Filed under
Development
  • PHP 8.0.0 Beta 1 available for testing

    The PHP team is pleased to announce the fourth testing release of PHP 8.0.0, Beta 1. This continues the PHP 8.0 release cycle, the rough outline of which is specified in the PHP Wiki.

    For source downloads of PHP 8.0.0 Beta 1 please visit the download page.

    Please carefully test this version and report any issues found in the bug reporting system.

  • PHP 8.0 Beta Released, Now Under Feature Freeze

    The release of PHP 8.0 is now one step closer to reality with the first beta being issued today and this also marking the feature freeze for this version due out later in the year.

    PHP 8.0 is a big step forward for this widely used programming language with PHP JIT and other performance optimizations, JSON at long last brought into PHP core, improvements to the PHP GD imaging library, cryptographic message syntax support within PHP OpenSSL, PHP Zip improvements, and a variety of other enhancements. PHP JIT and the never-ending speed optimizations are what I am most excited about with PHP 8.0 and the performance has indeed been great in my testing and I'll have some results of PHP 8.0 Beta 1 out soon.

  • PHP version 7.2.33, 7.3.21 and 7.4.9

    RPMs of PHP version 7.4.9 are available in remi repository for Fedora 32 and remi-php74 repository for Fedora 30-31 and Enterprise Linux ≥ 7 (RHEL, CentOS).

    RPMs of PHP version 7.3.21 are available in remi repository for Fedora 30-31 and remi-php73 repository for Enterprise Linux ≥ 6 (RHEL, CentOS).

    RPMs of PHP version 7.2.33 are available in remi-php72 repository for Enterprise Linux ≥ 6 (RHEL, CentOS).

Python Programming

Filed under
Development

           

  • Sam Hartman: Good Job Debian: Compatibility back to 1999

    So, I needed a container of Debian Slink (2.1), released back in 1999. I expected this was going to be a long and involved process. 

  • An advanced guide to NLP analysis with Python and NLTK

    In my previous article, I introduced natural language processing (NLP) and the Natural Language Toolkit (NLTK), the NLP toolkit created at the University of Pennsylvania. I demonstrated how to parse text and define stopwords in Python and introduced the concept of a corpus, a dataset of text that aids in text processing with out-of-the-box data. In this article, I'll continue utilizing datasets to compare and analyze natural language.

  • Delete Instagram posts with python

    Not owning a smartphone at the moment, I am not able to delete or upload any post in my Instagram account as the Web version does not support such features at the moment. Being a heavy computer nerd, I decided to hack through the Instagram requests myself and figure out a way to fully purge my account directly from my computer.

  • Designing with and for developers

    Open source is notorious for lack of design presence, enough so that my search to prove this fact has turned up nearly nothing. There’s many ways that such a gap in community might manifest, but one that I never anticipated was working with developers that had never interacted with a designer before.

    A quick note for context: I’m writing this as a UX/UI designer working with open source projects for a little over a year. Because there are so many ways design processes can happen (enough to warrant its own blog post), this post is not intended to discuss design process deeply. My goal here is to pass on some of what I’ve learned that helps me design in this unusual space in hopes that it can help someone else. This post might seem most relevant for designers, but I think this experience could be helpful for developers as well.

    After a few years at more conventional design jobs where the workflow never allowed me to communicate with our team’s developers, I started working with Project Jupyter on JupyterLab. This was my first experience working collaboratively with developers. I was feeling lost enough trying to comprehend the scope of the software I was helping design, and the enigma of the near-silent developer I began working with was not helping my nerves.

  • Debugging Python server memory leaks with the Fil profiler

    Your server is running just fine, handling requests and sending responses. But then, ever so slowly, memory usage creeps up, and up, and up–until eventually your process runs out of memory and crashes. And then it restarts, and the leaking starts all over again.

    In order to fix memory leaks, you need to figure out where that memory is being allocated. And that can be tricky, unless you use the right tools.

    Let’s see how you can identify the exact lines of code that are leaking by using the Fil memory profiler.

  • PyCharm: Webinar: “Django Database Performance Tips” with Andrew Brookins

    Django is one of the most popular Python Web Frameworks. However, optimizing django performance can often be difficult. Most performance problems boil down to one thing: the database. According to our guest speaker, Andrew Brookins, the only way to master Django performance is to master database performance.

    In this Webinar, Andrew is going to take us on a journey through an app that he created to demonstrate all the bottlenecks that arise when trying to optimize your Django app.

  • Python: Sort vs Sorted

    In Python, you can use sort or sorted to sort a list.

    But what is the difference between the two? This is what I will discuss in this article.

  •        

  • How to use DLLs/COM objects from Python or - How to send a fax with Python [Ed: How to turn Python code into Microsoft Windows mess with vendor lock-in and security issues]

    As engineers, we know that we should avoid reinventing the wheel. When we can, we want to use libraries written by other people to do some heavy-lifting for us. In this post, I'm going to share with you some things I learned on how to leverage existing libraries from DLLs (or any other files with COM type information like TLB or OCX files). Specifically, I'll share some things I learned on my journey to figure out how to use Python to send a fax. So we'll eventually show how you could use a Windows DLL that is behind the functionality in the Windows Fax and Scan utility.

  •        

  • 9 Useful Tips Working with Operating System using Python

    There are several situations when we want to work with the operating system using Python. We may want to see the user details or wish to do some tasks with the files and directories. If you are a system administrator, you will find it useful to work with Operating System as one can easily automate some repeating tasks of the Operating System using Python.

    Although the same tasks can be performed using basic shell scripting, it has limited capabilities and will not give you so much power as in Python. Additionally, the same python script can be used anywhere and also integrate the codes to other python projects. There are a vast number of modules to work with the Operating System in Python. Some of the modules which are included in Python’s standard library and work well with Operating Systems are os/path, pwd, glob, shutil, and subprocess.

    Before getting started with this tutorial, you need to have Python installed. If you don’t have it installed already, refer our step by step guide to install Python on Linux.

  • Python: How to Convert a List into a String? (The Right Way)

    Converting a list of strings into a string is a very common operation.

  • [Video] How to Learn Python? (From Zero to Hero)
  • Talk Python to Me: #276 Geekout: Life in the solar system and beyond

    We're back with another GeekOut episode. Richard Campbell, a developer and podcaster who also dives deep into science and tech topics, is back for our second GeekOut episode. Last time we geeked out about the real science and progress around a moon base. This time it's why is there life on Earth, where could it be or have been in the solar system, and beyond. 

    In case you didn't catch the first GeekOut, episode 253, this one is more of a general science and tech episode. I love digging into the deep internals of all the tools of the Python space, but given all that is going on in the world, I thought it'd be fun to take a step back and just enjoy some fun geekery and give you all something to just sit back and let your mind dream.

  • Python Bytes: #193 Break out the Django testing toolbox
  • Matt Layman: Give Me A Break... Day - Building SaaS #67

    In this episode, we did some Django model development. I created a new model to track break days in a school year. This model will be critical to fill in vacations and holidays so that the scheduling functionality works properly. I added the model, the tests, the admin page, and the create view to create break days in the app. We started by picking a model name and discussing naming in programming.

  • PSF GSoC students blogs: Week 10 Blog

    So, just as I mentioned, I was able to complete the documentation part in one week. The documentation includes documentation for both python and c++, the languages supported by panda3d for game development. The appropriate code snippets have been included along with the screenshots of the corresponding output.

  • PSF GSoC students blogs: GSoC Week 10: Print

    From my last work there were few minor things that need to be changed in my triage PR. I'll be working on adding a new format that is PDF. I need some time to figure out what is the best case to add this feature that is either using a different output format or providing a new template so the users can directly print from the HTML.  

  • PSF GSoC students blogs: Weekly Check In - 9

    Last week I completed the ScrapyH2ProxyAgent implementation and added the required tests. I was going through the codebase for hyper-h2 library to get insight on how they implemented CONNECT method for HTTP/2. 

  • Weekly Blog Post #5

    Hi everyone  a little late on this blog as I have to go back to college to get my stuff back. I passed the second evaluation, yay,. Till now I have been able to get the module metadata except the licenses. The licenses can be collected in 2 ways one is through making bash scripts to find and collect licenses from the module directory. Since licenses files dont have a set structure or a convention that's why its getting difficult and a foolproof  guarantee cant be given. Another way is through making an in house copyright to License parser. For debian licenses we have debut  used in tern I have to come up with similar kind of parser. I also have one idea of training a model from data collected by using github's api but thats just overkill.

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.

Syndicate content

More in Tux Machines

Devices: RaspAnd, Raspberry Pi and More

  • RaspAnd Project Now Lets You Run Android 10 on Your Raspberry Pi

    Arne Exton released today a new version of his RaspAnd project that lets you run the latest Android 10 mobile operating system on your tiny Raspberry Pi computer. For $9 USD, RaspAnd 10 promises to make it easier to install Google’s latest Android 10 mobile operating system on your Raspberry Pi computer, but let’s take a look at the new features and improvements it brings over previous versions. First and foremost, RaspAnd 10 is compatible with several recent Raspberry Pi models, including the recent Raspberry Pi 4 with 8GB RAM, but also older models, such as the Raspberry Pi 3 Model B and Raspberry Pi 3 Model B+.

  •      
  • Create a stop motion film with Digital Making at Home
             
  •        
  • The people problem

    Systems used to be designed by groups of engineers. Integration and test engineers waited on the developers and toes tended to get trodden on, with hidden code picked apart and untouchable historic designs questioned - all for product development. There was certainly no room for ego! Today, favourite tools may be replaced by those common to the technologies inside a device. Xilinx Zynq devices have two debug ports to allow individual debugging of the Processor Section or Programmable Logic. On Zynq you can chain these ports into one, so tools that are aware of both worlds deliver greater insight. Other devices may only offer specific insight. Vendors will offer a toolset to work with this, but it may be different to what people are used to. Suddenly, this new wonder-device to solve everyone’s design problems is upsetting the engineering apple cart across all engineering disciplines. [...] Silicon vendors offer a step-up in trying to build Linux for their device, and may offer a pre-built image to boot from. This will need modifying for your needs. It’s amazing how many common command-line tools don’t show up by default. Don’t be fooled into thinking moving from a Raspberry Pi to another platform will be straightforward.

Programming: Python, Rust, PHP, C++ and More

  • Python For Loop: Everything You Need to Know

    Loops are one of the essential elements in any programming language, and Python is not an exception to it. Loops are used to repeat a statement or a block of statements multiple times. If there were no concept of loops in programming languages, we have to write each statement again and again for the number of times we want to execute it. Python provides two types of loops to handle looping requirements, i.e., the while loop and the for loop. In this tutorial, we will learn everything about the for loop statement in Python. Before getting started with this tutorial, It is necessary to have Python installed and set up in your environment path. If you don’t have it installed already, refer to our step by step guide to install Python on Linux. The code presented in this tutorial can be run on the python shell, but it is recommended to run the code in a Python IDE. If you don’t have a python IDE installed in your system or want to know which IDE is a better choice to install, you can refer to our guide Top 10 best python IDE compared.

  • NihAV Is An Experimental Multimedia Framework Written In Rust

    NihAV is an experimental multimedia framework written in the Rust programming language. At the moment it's focused on diving into supporting decoders for different formats that lack open-source support right now / not yet reverse engineered, exploring new approaches for conventional multimedia concepts, and other experiments for advancing audio-video frameworks.

  • rra-c-util 8.3

    n this release of my utility library for my other packages, I finally decided to drop support for platforms without a working snprintf. This dates back to the early 2000s and a very early iteration of this package. At the time, there were still some older versions of UNIX without snprintf at all. More commonly, it was buggy. The most common problem was that it would return -1 if the buffer wasn't large enough rather than returning the necessary size of the buffer. Or, in some cases, it wouldn't support a buffer size of 0 and a NULL buffer to get the necessary size.

  • Embedded Programming and Beyond: An Interview with Warren Gay

    Interested in embedded programming? Warren Gay, an Ontario, Canada-based senior programmer, is an excellent resource for professional programmers, students, and makers alike. Here he talks about his new book, FreeRTOS for ESP32-Arduino (Elektor, 2020), and shares insights about FreeRTOS, ESP32, Arduino, embedded technologies, and more. You are sure to find his input informative and inspiring, especially if you plan to work with ESP32 or Arduino in the near future.

  • PHP 7.1 - 8 new features

    In the PHP 7.0 version function declaration accepts a return type, with the release of 7.1 version functions and parameters can return/accept null by prefixing the data type with a question mark(?). if the data type passed as parameter or returned by a function is different from the type specified a TypeError exception will be thrown.

  • Senior Developers don’t know Everything

    For about 20 years, I’ve been doing C++ and Qt and KDE development. I suppose that makes me a “senior software engineer”, also in the sense that I’ve hacked, programmed, futzed, designed, architected, tested, proved-correct, and cursed at a lot of software. But don’t let the label fool you: I look up just as much in the documentation as I ever did; senior developers don’t know everything.

Software and Games: Cloud Hypervisor, Joplin, Kodi, MuseScore, Bashtop, Grounded

  • Intel Cloud-Hypervisor 0.9 Brings io_uring Block Device Support For Faster Performance

    Intel's Cloud Hypervisor focused on being a Rustlang-based hypervisor focused for cloud workloads is closing in on the 1.0 milestone. With this week's release of Cloud-Hypervisor 0.9 there is one very exciting feature in particular but also a lot of other interesting changes. 

  • Joplin

    Joplin is a free, open source note taking and to-do application, which can handle a large number of notes organised into notebooks. The notes are searchable, can be copied, tagged and modified either from the applications directly or from your own text editor. The notes are in Markdown format. Notes exported from Evernote via .enex files can be imported into Joplin, including the formatted content (which is converted to Markdown), resources (images, attachments, etc.) and complete metadata (geolocation, updated time, created time, etc.). Plain Markdown files can also be imported. The notes can be synchronized with various cloud services including Nextcloud, Dropbox, OneDrive, WebDAV or the file system (for example with a network directory). When synchronizing the notes, notebooks, tags and other metadata are saved to plain text files which can be easily inspected, backed up and moved around.

  •          
  • Kodi 19 Alpha 1 Released With AV1 Decoding, Many Other HTPC Improvements

    Kodi 19 "Matrix" Alpha 1 has been released for this very popular, cross-platform open-source HTPC software.  Kodi 19 is bringing many exciting improvements as a major update to this open-source home theater software. 

  •        
  • Scorewriter MuseScore 3.5 Released with Chord Symbol Playback

    MuseScore, free music composition and notation software, released version 3.5 with long list of new features, bug fixes, and other improvements. MuseScore 3.5 contains one of the most requested features: Chord Symbol Playback. The feature is disabled by default so far. You can enable it by going to Edit > Preferences > Note Input.

  •        
  • Bashtop: An Htop Like System Monitor But Much More Useful

    As cool as Htop there is one thing that it's seriously lacking in and that is system monitoring tools, this may not be a problem for you but if you want a system monitor than bashtop is a much better option to choose, it let's you do most of the process management stuff that you want from htop but it comes with things like hard drive usage, network usage and cpu usage statistics. 

  • An Early Look at Grounded

    You’re in control of a child, who looks like he/she hasn’t entered the teenager years just yet. Among four different children — two boys and two girls — they’ve got a big problem: they’ve been shrunk to the size of an insect. Join them in their adventure — either by yourself or with a group of online friends — as they fight to survive in someone’s backyard, trying to build shelters whilst defending against bugs, and figure out why they’ve shrunk in the first place. Enter Grounded, developed by Obsidian Entertainment — the studio that brought us such titles as Pillars of Eternity, The Outer Worlds, and Star Wars: KOTOR2.

Fedora: LTO, Nest and More

  • Fedora 33 Moving Closer To LTO-Optimizing Packages

    Going back to last year Fedora has been working to enable link-time optimizations by default for their packages. That goal wasn't achieved for Fedora 32 but for Fedora 33 this autumn they still have chances of marking that feature off their TODO list.  LTO'ing the Fedora package set can offer not only performance advantages but in some cases smaller binaries as well. This is all about applying the compiler optimizations at link-time on the binary as a whole for yielding often sizable performance benefits and other optimizations not otherwise possible. LTO is great as we often show in benchmarks, especially in the latest GCC and LLVM Clang compilers. 

  • Zamir SUN: Report for session 1 of FZUG @ Nest with Fedora

    Last month, Alick suggested the Fedora Zhongwen User Group (FZUG) can do a online meetup during Nest with Fedora. And based on the survey, people registered for two time slots, the first one is 9:00 PM Saturday evening UTC+8 which is not a good time for Alick, so I take up the coordinating role for this session. As for the tool, we decided to use Jitsi, as it should work fine for most of us and do not have any limitations. What’s more, it’s totally open source. During the meeting, I firstly introduced Nest with Fedora and it’s previous offline version, Flock to Fedora, to the attendees. It’s interesting to see that during the past years, we not only have new users in China, but also new contributors. One attendee shares that his motivation of being a packager is that deploying packages for their research in the lab is cumbersome before. So he decided to package all into Fedora and then he can just simply install them on every machine. It is good to know that people contribute back because they want to solve their own problems. Maybe this can be a talking point to attract more contributors in the future. After the self introduction, we continue by sharing our interesting stores with Linux. That is a lot of fun.

  • Jon Chiappetta: Last piece of relay software needed for my home bridged network

    If you are running a bridged/relayd network with macs on it you may need to also forward the multicast broadcasts (mDNS related) that allow the devices to automatically discover each other. On the WRT wifi client side, there is a pkg called avahi-daemon and you can configure to operate in “reflector” mode to forward these broadcasts across the specified interfaces. Running this service along with the dhcprb C program which takes care of layer 2 arp requests & dhcp gateway forwarding has been pretty smooth so far!