Language Selection

English French German Italian Portuguese Spanish

Development

Programming Leftovers

Filed under
Development

  • Graphics in Qt 6.0: QRhi, Qt Quick, Qt Quick 3D

    Last year we had a three part blog series about Qt's new approach to working with 3D graphics APIs and shading languages: part 1, part 2, part 3. For Qt Quick, an early, opt-in preview of the new rendering architecture was shipped in Qt 5.14, with some improvements in Qt 5.15. With the release of Qt 6.0 upcoming, let's see what has happened since Qt 5.15. It will not be possible to cover every detail of the graphics stack improvements for Qt Quick here, let alone dive into the vast amount of Qt Quick 3D features, many of which are new or improved in Qt 6.0. Rather, the aim is just to give an overview of what can be expected from the graphics stack perspective when Qt 6.0 ships later this year.

  • Multi-Layer Perceptron & Backpropagation - Implemented from scratch

    Writing a custom implementation of a popular algorithm can be compared to playing a musical standard. For as long as the code reflects upon the equations, the functionality remains unchanged. It is, indeed, just like playing from notes. However, it lets you master your tools and practice your ability to hear and think.

    In this post, we are going to re-play the classic Multi-Layer Perceptron. Most importantly, we will play the solo called backpropagation, which is, indeed, one of the machine-learning standards.

    As usual, we are going to show how the math translates into code. In other words, we will take the notes (equations) and play them using bare-bone numpy.

  •  

  • PyDev of the Week: William Horton

    This week we welcome William Horton (@hortonhearsafoo) as our PyDev of the Week! William is a Backend Engineer at Compass and has spoken at several local Python conferences. He is a contributor to PyTorch and fastai.

    Let’s spend some time getting to know William better!

    Can you tell us a little about yourself (hobbies, education, etc):

    A little about myself: people might be surprised about my educational background–I didn’t study computer science. I have a bachelors in the social sciences. So by the time I finished undergrad, the most programming I had done was probably doing regressions in Stata to finish my thesis. I decided against grad school, and instead signed up for a coding bootcamp (App Academy) in NYC. The day I’m writing this, September 28, is actually 5 years to the day that I started at App Academy.

    Since then I’ve worked at a few different startups in NYC, across various industries: first investment banking, then online pharmacy, and now real estate. I’m currently a senior engineer on the AI Services team at Compass, working on machine learning solutions for our real estate agents and consumers.

    I like to spend my free time on a few different hobbies. I’m a competitive powerlifter, so I like to get into the gym a few times a week (although with the pandemic in NYC I didn’t lift for six months or so). I’ve actually found powerlifting to be a pretty common hobby among software engineers. Every time someone new joined my gym, it seemed like they came from a different startup. I love to play basketball. And I’m passionate about music: I’ve been a singer almost my whole life, and most recently was performing with an a cappella group in NYC. And in the last year I’ve picked up the guitar, after not touching it since I was a teenager, and that has been very fulfilling.

  • Malayalam fonts: Beyond Latin font metrics | Soliloquies

    This year’s annual international conference organized by TeX Users Group — TUG2020 — was held completely online due to the raging pandemic. In TUG2020, I have presented a talk on some important Malayalam typeface design factors and considerations.

    The idea and its articulation of the talk originated with K.H. Hussain, designer of well-known fonts such as Rachana, Meera, Meera Inimai, TNJoy etc. In a number of discussions that ensued, this idea was developed and later presented at TUG2020.

    Opening keynote to TUG2020 was delivered by Steve Matteson, about the design of Noto fonts. He mentioned that Noto was originally envisaged to be developed as a single font containing all Unicode scripts; but that was changed due to a couple of reasons: (1) huge size of resulting font and (2) the design of many South/South-East Asian characters do not fit well within its Latin font metrics.

  • Jérôme Gardou hired full-time to work on the memory manager

    I proudly announce that ReactOS Deutschland e.V. has hired Jérôme Gardou to work full-time on the ReactOS kernel’s memory manager for the next 3 months.

    Jérôme is a ReactOS veteran who has been contributing to the project since 2009. He has deep expertise into nearly all parts of ReactOS, ranging from various user-mode components (mostly related to low-level graphics) over their kernel-mode counterparts and down to bare-metal components like the kernel memory manager.

    During the upcoming months, Jérôme is going to overhaul the Mm (Memory Manager) and Cc (Cache Controller) components of the kernel. Both of them are core parts of the operating system, which are involved in every memory request and file operation. Improving them is expected to have a substantial effect on the overall stability and performance of ReactOS.

  • "Open-Source Windows" ReactOS To See Improved Memory Management - Phoronix

    ReactOS Deutschland e.V. has hired one of their long-time contributors to work full-time on the "open-source Windows" implementation's memory management for the next quarter.

    ReactOS is funding longtime contributor Jérôme Gardou to work full-time for the next three months on the open-source operating system's memory manager and cache controller code within its kernel.

    ReactOS hopes this overhaul to the MM/CS code will yield "a substantial effect on the overall stability and performance of ReactOS."

Programming: Cutelyst, C/C++, Perl and Python

Filed under
Development
  • Cutelyst 2.13 and ASql 0.19 released – Dantti's Blog

    Cutelyst the C++/Qt Web Framework and ASql the ASync SQL library for Qt applications got new versions.

    Thanks to the work on ASql Cutelyst got some significant performance improvements on async requests, as well as a new class called ASync, which automatically detaches the current request from the processing chain, and attaches later on when it goes out of scope.

    With the ASync class you capture it on your ASql lambda and once the query result arrives and the lambda is freed and the ASync object gets out of scope and continues the processing action chain.

  • LLVM Lands Very Basic Support For AMD Zen 3 CPUs

    While AMD has landed Znver3 support in GNU Binutils, the company hasn't yet sent out patches for either the GCC or LLVM/Clang compilers in setting up the Zen 3 target with its new instructions or optimized scheduling model / cost table. But a basic implementation has been merged to LLVM for allowing "-march=znver3" based on the limited public details thus far.

    Merged to mainline LLVM 12 yesterday was a basic implementation allowing for -march=znver3 targeting that basically flips on the new instructions known to be supported by Zen 3. Beyond Zen 2, it flips on INVPCID, PKU, VAES, and VPCLMULQDQ. There are also a few other instructions supported by Zen 3 as outlined in this earlier article.

  • CY's Take on PWC#083 | Moments on Perl or other Programming Issues [blogs.perl.org]

    I found that I use "and/or" quite frequently in writing. I know, (mathematical-)logically we only need "or". It seems to me to be a language tricky part as the use of gender neutral terms.

  • Warning about Python3 update in latest -current | Alien Pastures

    Warning for people running Slackware-current and have 3rd party packages installed (who doesn’t) that depend on Python3. That includes you who are running KDE Plasma5!

    The “Sun Oct 25 18:05:51 UTC 2020” update in Slackware-current comes with a bump in the Python3 version (to 3.9) which is incompatible with software which already has been compiled against an older version of Python3 (like 3.8).

    I found 26 of my own packages on my laptop that depend on Python3 and they are all probably going to break when upgrading to the latest slackware-current. This includes Plasma5 ‘ktown’ packages but also several of my DAW packages.

Red Hat's Tom Stellard Now Serving As LLVM Release Manager

Filed under
Development
Red Hat

After six years serving as the LLVM release manager and taking over the role from LLVM founder Chris Lattner, Google's Hans Wennborg has stepped down from his position and handed it over to Red Hat's Tom Stellard.

Wennborg announced this week that after six years and twelve major LLVM releases, he is stepping down as LLVM release manager to devote the time to other activities.

Read more

Also: IBM Hopes to Double Sales at Red Hat in Next Three Years

Programming: RISC-V Dev Board, JS, Bash and More

Filed under
Development

  • BL602 IoT SDK and $5 DT-BL10 WiFi & BLE RISC-V development board

    Go to Doiting_BL/docs/html folder and then open index.html in your browser to access the documentation. The SDK works both in Windows and Linux and relies on either Eclipse & OpenOCD or Freedom Studio & OpenOCD. A graphical software called Dev Cube is used for flashing the board.

    The documentation is made for a specific board Doit.am DT-BL10 development board powered by BL602 WiSoC that sells for $5 plus shipping on Aliexpress or 19.99 RMB on Taobao (about $3). We’re not at ESP8266 board price level ($2+) yet, but still affordable and interesting for evaluation.

  • Javascript Redirect – Linux Hint

    Javascript is a web-oriented programming language. When using the web, you will often need to navigate through pages. When you click on any button, submit a form, or log in to any website, you get redirected to a different new page. Page redirection is an essential part of any website, but it is not only restricted to page navigation on a website. 

  • JavaScript Sleep Function – Linux Hint

    Javascript is the language of freedom yet is a function-oriented language at the same time. Unlike other languages, javascript does not provide a built-in sleep() function. You can either build a custom sleep() function using the built-in setTimeout() function, or the latest ECMAScript promises an async-await function. This article shows you how to stop or pause the execution of the sleep function for a desired amount of time using promises or async-await functions.

  • 3 Hour Bash Tutorial – Linux Hint

    In this article, you will learn from printing a simple “Hello World” to using conditional statements such as if statements, case statements to using loops such as while, for until loops to awk, grep, sed, and debugging bash scripts. We will cover the following topics in this article:

  •  

  • Dirk Eddelbuettel: digest 0.6.27: Build fix

    Exactly one week after the previous release 0.6.26 of digest, a minor cleanup release 0.6.27 just arrived on CRAN and will go to Debian shortly.

    digest creates hash digests of arbitrary R objects (using the md5, sha-1, sha-256, sha-512, crc32, xxhash32, xxhash64, murmur32, spookyhash, and blake3 algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at one million monthly downloads, 282 direct reverse dependencies and 8068 indirect reverse dependencies, or just under half of CRAN) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.

Python Programming

Filed under
Development

  • Only Python: Friendly-traceback: work in progress

    It's been almost two months since my last blog post and I feel guilty of not haven't taken the time to write more regularly.  I should really tell you about how fantastic Will McGugan's Rich is, and how I have customized it for my projects. I should also tell you how Sylvain Desodt's DidYouMeanPython has been influencing Friendly-traceback latest developments. Also worthy of note is how Alex Hall's FutureCoder project is incorporating so many neat tools that it feels like a real honour that he has incorporated Friendly-traceback in it.

    Alas, while I have been busy making many changes and addition to the code, the documentation is hopelessly behind and no longer gives a correct picture of what Future-traceback is now capable of.

    So much to do, so little time. So, I will just end with a picture, and go back to coding, with a promise of writing more ... soon I hope.

  • Python range() Function – Linux Hint

    Python is a modern, general-purpose, and high-level programming language that comes with powerful features. Python has many built-in modules to support diverse operations. The range() function is a built-in function used to perform specific tasks or actions for a definite number of times. In other words, the range() function is used to perform a task iteratively. This function is used in conjunction with the for loop and the while loop.

  • Python Dictionaries – Linux Hint

    Python is an efficient and versatile programming language. It is one of the most frequently used high-level programming languages to perform data-related tasks due to its many supportive built-in modules and functions. To mention some of its many built-in data structures, it has arrays, lists, tuples, etc.

    Dictionaries are one of the built-in data structures in Python. It holds the data in the form of a key-value pair. The keys are the unique value that acts as a representative of data. The key is also called as “an index value”. Data structures are a very important aspect of any programming language. They are used to store and manipulate the data in a well-organized and efficient way. Therefore, Python dictionaries are more useful when we need to store the data in a form of key-value pair and to access the data faster. The Python dictionaries return the data faster because the key value for every data is unique, therefore the searching time for data is reduced, and we get the result faster. This article explicates the Python dictionaries in detail.

  • Python Classes – Linux Hint

    Python is one of the multiuse high-level programming languages. It is an object-oriented programming language. The main difference between the procedural and object-oriented programming languages is that we cannot create the classes in procedural programming languages. The main focus of procedural languages is on creating functions, and variables for performing the task whereas, in object-oriented programming languages, our main concern is to create objects and use them for performing our tasks. A class is simply a blueprint that contains functions and variables. A class is like a real-life classroom of any institute. It contains some chairs, tables, desks, a projector, walls, etc. base on all these components; we build a classroom. All these components are the variables and functions in a class, and a classroom is an object. The Python classes and objects are explained in this article.

  • FreeBSD process environ and resource limits

    New psutil 5.7.3 is out. This release adds support for 2 functionalities which were not available on BSD platforms: the ability to get the process environment (all BSD) and to get or set process resource limits (FreeBSD only), similarly to what can be done on Linux.

     

Programming Leftovers

Filed under
Development

     

  • RcppSpdlog 0.0.3: New features and much more docs

    A good month after the initial two releases, we are thrilled to announce relase 0.0.3 of RcppSpdlog. This brings us release 1.8.1 of spdlog as well as a few local changes (more below).

    RcppSpdlog bundles spdlog, a wonderful header-only C++ logging library with all the bells and whistles you would want that was written by Gabi Melman, and also includes fmt by Victor Zverovic.

    This version of RcppSpdlog brings a new top-level function setLogLevel to control what events get logged, updates the main example to show this and to also make the R-aware logger the default logger, and adds both an extended vignette showing several key features and a new (external) package documentation site.

  •  

  • Hacktoberfest Mauritius 2020

    Saamiyah pinged me a few days ago about the Hacktoberfest event that she was organising and asked whether I would be free to present a topic. Sure, why not?

    As many tech meetups at the moment, the Hacktoberfest event also was virtual. It was hosted on the Jitsi instance of the Mauritius Software Craftsmanship Community. The event was scheduled to start at 19h30 on Friday, i.e last evening. I was late to join but "luckily" so was everybody.

  •                

  • Meet the 24-year-old who’s tracking every broken McDonald’s ice-cream machine in the US

                     

                       

    It turned out to be harder than he’d thought. Initially, he created an API that attempted to add a McSundae from every McDonald’s location to its cart once every minute. The app figured out what he was up to and blocked him — “It was like, you can’t do this, you look like a bot,” he recalled.

                       

    After a night of trial and error, Zahid figured out the magic time frame. Now, his bot attempts to add a McSundae every 30 minutes. If the bot successfully adds the item, it lets McBroken know that the location’s machine is working. If it can’t, the location gets a red dot. (A Twitter user claiming to be a McDonald’s employee has confirmed that the method works.)

  • Robbi Nespu: Fedora - KDE development journey (Qt5X11Extras)
  • Robbi Nespu: Fedora - KDE development journey (Qt5UiPlugin)
  • Perl Weekly Challenge 83: Words Length and Flip Array

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

  • Four Features That Justify a New Unix Shell

    This post elaborates on these points. I've condensed the rationale into four critical features for the OSH language.

    I give examples of each feature, link to docs (in progress), and comment on the future of the project.

  • Node.js 15.0 Is Released - LinuxReviews

    Support for the QUIC protocol, a new AbortController class, a updated N-API with new methods for managing ArrayBuffers, V8 updated to version 8.6 and NPM updated to version 7.0 are among the highlights in the latest Node.js framework for creating JavaScript-based network services like web servers, chat servers and all kinds of real-time applications.

    [...]

    Node.js 15.0 is a "regular" support release with support throughout June 2021. Node.js uses even numbers for LTS releases. The Node.js 14.x branch is the corrent "Long Term Support" branch with support throughout April 2023 and the older Node.js 12.x will be supported until April 2022. The 10.x branch will go EOL in April 2021.

  • The 20 Best Java Courses for Beginners and Experienced Programmers

    When it comes to creating computer applications that can also be run in a network among distributed servers and clients, Java is still the most powerful programming language available. You can also build a small scale application module commonly known as an applet with Java.

  • OpenJ9 0.23 Released As Latest Eclipse Java Virtual Machine

    Version 0.23 of the Eclipse OpenJ9 Java Virtual Machine was released this week in continuing to focus on being a high performance, open-source JVM.

Python Programming

Filed under
Development

  • 4 Best Free Python-Based Content Management Systems - LinuxLinks

    A web content management system (WCMS) is software designed to simplify the publication of Web content. In particular, it enables content creators to submit content without requiring technical knowledge of HTML or the uploading of files. A CMS is most commonly used in creating an intranet or in establishing a presence on the Web.

    This type of software that keeps track of every piece of content on a Web site. Content can be simple text, photos, music, video, documents, or just about anything you can think of. A major advantage of using a CMS is that it requires almost no technical skill or knowledge to manage.

    Not only do content management systems help website users with content editing, they also take care of a lot of “behind the scenes” work such as automatically generating navigation elements, making content searchable and indexable, keeping track of users, their permissions and security setting, and much more.

    To provide an insight into the quality of software that is available, we have compiled a list of the best Python-based WCMS. They are all free and open source software. Here’s our recommendations.

  • 3 Open Source Python Shells - LinuxLinks

    Python is a high-level, general-purpose, structured, powerful, open source programming language that is used for a wide variety of programming tasks. It features a fully dynamic type system and automatic memory management, similar to that of Scheme, Ruby, Perl, and Tcl, avoiding many of the complexities and overheads of compiled languages. The language was created by Guido van Rossum in 1991, and continues to grow in popularity.

    Python is a very useful and popular computer language. One of the benefits of using an interpreted language such as Python is exploratory programming with its interactive shell. You can try out code without having to write a script. But there are limitations with the Python shell.

    Fortunately, there are some excellent alternative Python shells that extend on the basic shell. They each offer a good interactive Python experience.

  •  

  • NumFOCUS Earns Transparency Recognition from GuideStar - NumFOCUS

    NumFOCUS recently earned a Silver Seal of Transparency from GuideStar in recognition of our accountability and transparency efforts.

  • Translating Web Page while Scraping

    Suppose you need to translate web page while scraping data from the website in R and Python. In google chrome, there is an option (or functionality) to translate any foreign language. If you are an english speaker and don't know any other foreign language and you want to extract data from the website which does not have option to convert language to English, this article would help you how to perform translation of a webpage.

  • Getting Started With Python Package Managers
  • Weekly Python StackOverflow Report: (ccxlvii) stackoverflow python report
  •   

GDB 10.1 released

Filed under
Development
GNU

            GDB 10.1 released!

Release 10.1 of GDB, the GNU Debugger, is now available.  GDB is
a source-level debugger for Ada, C, C++, Fortran, Go, Rust, and many
other languages.  GDB can target (i.e., debug programs running on)
more than a dozen different processor architectures, and GDB itself
can run on most popular GNU/Linux, Unix and Microsoft Windows variants.
GDB is free (libre) software.

You can download GDB from the GNU FTP server in the directory:

        ftp://ftp.gnu.org/gnu/gdb

The vital stats:

  Size   md5sum                            Name
  21MiB  1822a7dd45e7813f4408407eec1a6af1  gdb-10.1.tar.xz
  39MiB  67b01c95c88ab8e05a08680904bd6c92  gdb-10.1.tar.gz

There is a web page for GDB at:

        http://www.gnu.org/software/gdb/

That page includes information about GDB mailing lists (an announcement
mailing list, developers discussion lists, etc.), details on how to
access GDB's source repository, locations for development snapshots,
preformatted documentation, and links to related information around
the net.  We will put errata notes and host-specific tips for this release
on-line as any problems come up.  All mailing lists archives are also
browsable via the web.

GDB 10.1 includes the following changes and enhancements:

* Support for debugging new targets:

  - BPF  (bpf-unknown-none)

* GDBserver support for the following targets:

  - ARC GNU/Linux
  - RISC-V GNU/Linux

* Multi-target debugging support (experimental)

* Support for debuginfod, an HTTP server for distributing ELF/DWARF
  debugging information as well as source code.

* Support for debugging a 32-bit Windows program using a 64-bit Windows GDB.

* Support for building GDB with GNU Guile 3.0 and 2.2 (in addition to 2.0)

* Improved performance during startup through the use of threading
  during symbol table loading (an optional feature in GDB 9, now
  enabled by default in GDB 10).

* Various enhancements to the Python and Guile APIs

* Various TUI Mode fixes and enhancements.

* Other miscellaneous enhancements:

  - Detection when attaching to a process of a mismatch between
    this process and the executable previously loaded into GDB.

  - Support for default arguments for "alias" commands.

* GDBserver support for the following host triplets has been removed:

    i[34567]86-*-lynxos*
    powerpc-*-lynxos*
    i[34567]86-*-nto*
    bfin-*-*linux*
    crisv32-*-linux*
    cris-*-linux*
    m32r*-*-linux*
    tilegx-*-linux*
    arm*-*-mingw32ce*
    i[34567]86-*-mingw32ce*

For a complete list and more details on each item, please see the gdb/NEWS
file, available at:
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;...

-- 
Joel Brobecker

Read more

Single Points of Failure and Proprietary Entrapment (Microsoft GitHub)

Filed under
Development
Microsoft
  • Ahmad Haghighi: GitLab blocked Iranians’ access.

    On 3rd Oct. 2020 GitLab blocked Iranians’ access (based on IP) without any prior notice! and five days later (8th Oct.) my friend’s account blocked and still he doesn’t have any access to his projects! even after creating a ticket and asks for a temporary access to only export his projects! GitLab refused to unblock him! (screenshot in appendix). My friend is not the only one who blocked by GitLab, with a simple search on the web you can find a growing list of blocked accounts.
    So I decided to move from GtiLab and EVERY Free Software based/hosted/managed on/in USA.

    When it comes to USA policies, Free Software is a Joke Smile

    GitLab is not the only actor in this discrimination against Persian/Iranian people, we also blocked by GitHub, Docker, NPM, Google Developer, Android, AWS, Go, Kubernetes and etc.

  • ‘youtube-dl’ downloading software removed from GitHub by RIAA takedown notice

    This takedown notice does not necessarily spell the permanent end of youtube-dl. GitHub always immediately takes down any source code project that receives a DMCA notice like this, but the project’s creators will have an opportunity to file a counterclaim in the hopes of restoring youtube-dl’s status on GitHub. We’ll be keeping an eye on the situation as it develops.

  • RIAA DMCAs GitHub into nuking popular YouTube video download tool, says it can be used to slurp music

    YouTube-DL is pretty simple to use: you give the command-line program the URL of any YouTube video, and it will fetch the material and save it to your computer for future playback.

  • Recording Industry Association of America Gets Youtube-dl Kicked Off GitHub

    Microsoft GitHub has removed all traces of the very useful youtube-dl utility for downloading videos from YouTube and other websites, including this one, following a questionable DMCA request from the Recording Industry Association of America.

    youtube-dl is a simple command-line utility that lets you easily download audio adn videos from just about any website with a file file embedded in it. It works on sites like this one. A lot of software, including the popular video player mpv, can use it to download video fragments on the fly so videos embedded in web pages can be opened and played as if they were local files.

    The Recording Industry Association of America submitted a DMCA request to Microsoft GitHub demanding that youtube-dl gets removed from the Internet on October 23rd, 2020. The complaint contains this rather misleading claim: [...]

Programming Leftovers

Filed under
Development

  • LLVM Clang 12 Adds Support For Vectorization Using Glibc's Vector Math Library - Phoronix

    Upstream LLVM/Clang now supports making use of the vector math library found within the GNU C Library.

    Clang 12 will allow for vectorization using libmvec via the -fvec-lib=libmvec compiler option.

  • Notes to self on frama-c | Richard WM Jones

    Frama-C is a giant modular system for writing formal proofs of C code. For months I’ve been on-and-off trying to see if we could use it to do useful proofs for any parts of the projects we write, like qemu, libvirt, libguestfs, nbdkit etc. I got side-tracked at first with this frama-c tutorial which is fine, but I got stuck trying to make the GUI work.

  • Why I Dislike Switch Statements

    Of course this is a contrived example, but readers will hopefully agree it's representative of the construct.

  • Setup - Full Stack Tracing Part 2 - KDAB

    If you’ve read the first article in this series, you’ll know what full stack tracing is and why you definitely want it. This time, we’ll show you how to setup full stack tracing on your Linux system. There are two steps – first get everything configured to capture a trace, and then view and interpret the trace.

    Setup full stack tracing with a bit of kernel help

    To capture a trace, we’ll be using LTTng (Linux tracing toolkit next generation) in our examples. LTTng captures tracepoints with minimal overhead. This is something you definitely want, as too much extra CPU introduced by tracing can change the system’s behavior, even causing it to fail unpredictably. Another factor in LTTng’s favor is that it’s well supported by the open source community.

    LTTng was designed to record kernel level events. However, you’ll also want to use its user space tracepoints to capture application level events. That will give you consistent visibility, regardless of where execution moves throughout the software stack. User space tracepoints is critical to the setup of full stack tracing as it lets you integrate application, Qt, and kernel tracepoints together in a single view.

  • Mariuz's Blog: Firebird 3.0.7 sub-release is available

    Firebird Project is happy to announce general availability of Firebird 3.0.7 — the latest point release in the Firebird 3.0 series.This sub-release offers many bug fixes and also adds a few improvements, please refer to the Release Notes for the full list of changes.Binary kits for Windows, Linux, Mac OS and Android platforms are immediately available for download.All users of Firebird v3.0.6 are

  • Use of self or $this in PHP – Linux Hint

    In PHP object-oriented programming, we have the self keyword and $this variable that is used for different purposes. The self keyword represents current and static members of the class. While the $this variable represents current object and non-static members of the class. More about these are discussed in this article.

  • 4 C programming courses for every skill level

    Even with so many other system-level languages to choose from, C remains the popular choice. Many key projects—such as the Linux kernel and the Python runtime—still use C, and they will likely do so indefinitely. For some fields of computing, like embedded programming, C is a must.
    And there has never been a better time to learn C. Resources abound, from books to guided courses. Here we’ll look at four major online course offerings for learning C programming, each aimed at different levels of user and offering different approaches. For instance, one combines learning C with learning Linux, while another teaches C and C++ together.

  • rand() Function in C Language – Linux Hint

    In the C language, the rand() function is used for Pseudo Number Generator(PRNG). The random numbers generated by the rand() function are not truly random. It is a sequence that repeats periodically, but the period is so large that we can ignore it. The rand() function works by remembering a seed value that is used to compute the next random number and the next new seed. In this article, we are going to discuss in detail how random numbers can be generated using the rand() function. So, let’s get started!

  • A bug by any other name – Open Source Security

    This tweet from Jim Manico really has me thinking about why we like to consider security bugs special. There are a lot of tools on the market today to scan your github repos, containers, operating systems, web pages … pick something, for security vulnerabilities. I’ve written a very very long series about these scanners and why they’re generally terrible today but will get better, but only if we demand it. I’m now wondering why we want to consider security special. Why do we have an entire industry focused just on security bugs?

    Let’s change the conversation a little bit. Rather than focus on security bugs, let’s ask the question: Which bugs in a given project should we care about?

    There are of course bugs an attacker could use to compromise your system. There are also bugs that could result in data loss. Or bugs that could bring everything down. What about a bug that uses 10% more CPU? Every piece of software has bugs. All bugs are equal, but some bugs are more equal than others.

    We are at a time in software history where we have decided security bugs are more equal than other bugs. This has created entire industries around scanning just for security problems. Unfortunately the end goal isn’t always to fix problems, the goal is often to find problems, so problems are found (a LOT of problems). I think this is a pretty typical case of perverse incentives. You will always find what you measure. The pendulum will swing back in time, maybe we can help it swing a little faster.

  • Why you should use ppport.h in your XS code modules | Karl Williamson [blogs.perl.org]
    
    
    
    
    The answer comes down to two words: Security and Reliability.
    As a bonus, less work on your part.
    
    
    
    
    It's surprising to find that there are modules on CPAN that aren't using
    ppport.h that could stand to benefit from it.
    
    
    
    
    ppport.h is a file that is part of the Devel::PPPort distribution. As you
    know, Perl has evolved over the years, adding new features, and new API for XS
    writers to use. Some of that is to support the new features, and some to make
    tasks easier to accomplish. ppport.h implements portions of the API that
    people have found desirable to have when a module gets installed in a Perl that
    was released before that API element was created. You can write your module
    using the latest API, and have it automatically work on old Perls, simply by
    #including ppport.h in your XS code. ppport.h generally provides support for
    an API element as is reasonably practicable, with many supported to 5.03007.
    
    
    
    
    Importantly, but often overlooked, ppport.h can override buggy early Perl
    implementations of an API element. By using it, you get fixed, proper
    behavior. That sure beats trying to reproduce a reported problem in your
    module that only happens in some ancient Perl, and then try to come up with a
    workaround in an area you aren't familiar with.
    
    
    
    
    This is especially important if your XS code interacts with Unicode in any way.
    Early versions of the Unicode standard and early Perls allowed things that we
    now know are potential attack vectors. Right now, someone could be using your
    module to hack into systems, so you are actually being negligent if you don't
    use ppport.h.
    
    
    
    
    If your XS code has preprocessor #if statements that check for the existence of
    functions, macros, etc, that are only in later perls, you can generally avoid
    that by simply using ppport.h
    
Syndicate content

More in Tux Machines

Vote for the Debian GNU/Linux 11 “Bullseye” Desktop Artwork Now

Opened to submissions since early August, the artwork proposals for Debian GNU/Linux 11 “Bullseye,” the next major release of the popular Debian GNU/Linux operating system, has reached its deadline last week on October 15th, and now the community can vote for the winner. Jonathan Carter announced today that it’s time for the Debian community to choose the desktop artwork to be used in Debian GNU/Linux 11 “Bullseye.” The review period for the final proposals starts today, October 26th, until November 9th, and winners will be unveiled in mid-November. Read more

Games: AntiMicroX in Linux, GOG, Life of Delta, 9 Monkeys of Shaolin, Gravity Ace

today's howtos

  • Installing Anbox on Linux to Run Android Apps – Linux Hint

    Anbox is an Android emulator that is available for any GNU/Linux operating system. An android emulator offers the environment necessary for installing and running Android apps. Such emulators do not offer the portability of an Android smartphone, but in exchange, more powerful hardware can be used.In this article, we will show you how to install Anbox on Linux.

  • How to set Timers, Alarms, and Stopwatches on CentOS 8

    In this article, I will show you how to set timers, alarms, and stopwatches on your CentOS 8 system. We will perform these actions using two different ways.

  • How to Install Docker on Raspberry Pi 4 – Linux Hint

    In this article, learn everything you need to know to get started with Docker and Docker Compose on Raspberry Pi 4.

  • How to Create Two Panel Layout in GNOME Shell Us – Linux Hint

    “Dash to Panel” is a GNOME Shell extension that can be installed in Ubuntu, Fedora and other GNOME Shell based Linux distributions. It aims to provide an alternative and much more customizable application dock / taskbar for managing pinned and running apps. Until recently, Dash to Panel was limited to a single panel that combined application menus, taskbar and system tray. However, a new update for Dash to Panel was released a couple of months back, allowing users to create two panels. Using this new option, you can now emulate the classic GNOME2 layout, featuring a two panel setup for managing system tray and taskbar. This article will explain how to create this two panel layout using Dash to Panel GNOME Shell extension.

  • How to Install LinuxFX Windowsfx 10 on VMware Workstation - SysAdmin

    This video tutorial shows how to install LinuxFX Windowsfx 10 on VMware Workstation step by step. This tutorial is also helpful to install LinuxFX Windowsfx 10 on physical computer or laptop hardware.

  • How to Install Heat Sinks on the Raspberry Pi – Linux Hint

    There is a relation between temperature and performance in every electronic device. The lower the temperature, the better the performance. The higher the temperature, the lower the performance. Within a certain boundary, this effect is visible in electronic devices like a Raspberry Pi. So, it is essential to keep the temperature of the Raspberry Pi within a certain boundary. Heat sinks are metal objects that are usually placed over the chips and processor of Raspberry Pi. The heat sinks help transfer the heat generated on the processors and other chips to the air. That way, the temperature of the processors and chips remain within a certain boundary that won’t hamper the productivity of the device. In this article, I am going to show you how to install heat sinks on the Raspberry Pi. So, let’s get started.

  • How to Create Hard Link and Soft Link in Linux? – Linux Hint

    In the Linux operating system, all the information about a file is stored in its respective inode. These inodes allow you to know all the metadata of a file. There is a concept of creating links to a file in Linux, just like we create pointers to the files in most of the popular programming languages. These links are basically of two types: the hard and the soft links. A hard link to a file is essentially an exact copy of the file, which means that a hard link to a file and the actual file will share the same inode. The biggest advantage of creating a hard link is that even if you accidentally delete the actual file, you will still be able to access its contents via its hard link. On the other hand, a soft link or a symbolic link works exactly like a pointer or a shortcut to a file. It is not an accurate copy of the file but only points to the original file. A soft link to a file and the actual file will have different inode values. Moreover, if you delete the actual file at any time, you will not be able to access its contents via its soft link. Today, we will share with you the methods of creating a hard link and soft link to a file in Linux. Note: We have used Linux Mint 20 for walking you through the methods shown below.

  • How to install VirtualBox on Ubuntu 20.04 Linux LTS - nixCraft

    Explains how to install the VirtualBox app on Ubuntu 20.04 LTS Linux for trying out new guest operating (Virtual Machines).

  • How to fix: Connection refused by port 22 Debian/Ubuntu – Linux Hint

    SSH provides a secure way to access and manage Linux servers. Sometimes while connecting to SSH servers, users often encounter “Connection refused” error by port 22. It happens because of several reasons like SSH service is not running, the port is blocked by the firewall, or the server is using a different port. It can also occur because of the IP conflict issue. In this article, we will discuss some of the solutions that you should try in order to fix the error.

  • How to clone an object in PHP – Linux Hint

    Object cloning can be very useful for object-oriented programming. In this tutorial, we show you how to clone an object in PHP.

  • How to clear command history in Linux – Linux Hint

    The bash history stores the records of all terminal commands which are executed by a user on the command-line Linux system. Using the history feature, you can easily locate the previously executed commands on your Linux system through the arrow keys navigation. In this article, how to clear command history in Linux is explained.

It’s Official: Linux Kernel 5.10 Will Be an LTS Release

According to a recent tweet from renowned Linux kernel developer Greg Kroah-Hartman, the next LTS (Long Term Support) kernel release will be Linux 5.10, which recently entered development with a first Release Candidate (RC) milestone already available for public testing. This means that Linux kernel 5.10, which will probably see the light of day near the Christmas 2020 holidays, will receive updates for at least two years. But, as it happened with previous LTS kernel series, support could be extended to up to six years, probably until December 2026. Read more