Language Selection

English French German Italian Portuguese Spanish


Mozilla Development

Filed under
  • Feasibility of low-level GPU access on the Web

    As the talks within WebGPU community group progress, it becomes apparent that the disagreements lie in more domains than simply technical. It’s about what the Web is today, and what we want it to become tomorrow.

  • Alternatives to vertical tabs

    For the longest time I've used vertical tabs in Firefox and I still find it odd that people don't use it more. It's a simple fact that a horizontal tab strip doesn't scale too well when you get lots of tabs.

  • Asking Questions

    Will posted a great article a couple weeks ago, Giving and Receiving Help at Mozilla. I have been meaning to write a similar article for a while now. His post finally pushed me over the edge.

    Be sure to read Will's post first. The rest of this article is an addendum to his post.

Programming/Development: AmplitudeJS, Python, and Buzzword 'DevOps'

Filed under

Programming: Shell Scripting, Pair Programming, How Programmers Learn to Code, New RPMs of PHP

Filed under
  • Shell Scripting: Dungeons, Dragons and Dice

    In my last article, I talked about a really simple shell script for a game called Bunco, which is a dice game played in rounds where you roll three dice and compare your values to the round number. Match all three and match the round number, and you just got a bunco for 25 points. Otherwise, any die that match the round are worth one point each. It's simple—a game designed for people who are getting tipsy at the local pub, and it also is easy to program.

  • Pair programming with git

    Git is great. It took the crown of version control systems in just a few years. Baked into the git model is that each commit has a committer and one author. Ofen this is the same person. What if there is more than one author for a commit? This is the case with pair programming or with mob programming or with any other way of collaboration where code is produced by more than one person. I talked about this at the git-merge conference last year. There are some workarounds but there is no native support in git yet.

    It seems that the predominant convention to express multi-authorship in git commits is to add a Co-authored-by entry in the commit message as a so-called trailer. This adds more flexibility than trying to tweak the author and committer fields and is quite widely accepted, especially by the git community.

  • How programmers learn to code

    In terms of how programmers learnt to code, self-teaching is the norm for developers of all ages, stated the report.

    “Even though 67% of developers have computer science degrees, roughly 74% said they were at least partially self-taught.”

    On average, developers know four languages, but they want to learn four more.

  • PHP version 7.1.14 and 7.2.2

    RPM of PHP version 7.2.2 are available in the remi-php72 repository for Fedora 25-27 and Enterprise Linux ≥ 6 (RHEL, CentOS) and as Software Collection in the remi-safe repository.

    RPM of PHP version 7.1.14 are available in remi repository for Fedora 26-27 and in remi-php71 repository for Fedora 24-25 and Enterprise Linux (RHEL, CentOS).

Alleviating the Stress Induced by Maintaining a Popular Free and Open Source Software Project

Filed under

It started out as this fun, little hack, tickling your own fancies. You chipped away at it on weekends and in the evenings. Eventually, you sculpted it into a respectable shape. You were rightfully proud of it, so you did a kind deed and shared your creation with the world.

Now, your curiosity has taken you elsewhere, or you’re busy with other facets of your life. But concurrently, your Free / Open Source project has become popular. It’s a hit! The canonical solution to frondubling within the Marnostacean community. And users are filing issues. And sending pull requests that require your review. And building Serious Software that depends critically on your project.

Read more

Also: The Git community mourns Shawn Pearce

Programming: ncurses, RLlib, and Languages

Filed under
  • Announcing ncurses 6.1

    The ncurses (new curses) library is a free software emulation of curses in System V Release 4.0 (SVr4), and more. It uses terminfo format, supports pads and color and multiple highlights and forms characters and function-key mapping, and has all the other SVr4-curses enhancements over BSD curses. SVr4 curses became the basis of X/Open Curses.

  • Ncurses 6.1 Released With A Variety Of Improvements & Other Changes

    Ncurses 6.1 retains compatibility support for Ncurses 5.0/6.0, but adds in a variety of new features and improvements. There is now extended numeric capabilities, various internal code changes to enhance Ncurses' performance, some new functions introduced, and a variety of corrections to existing features.

  • Introducing RLlib: A composable and scalable reinforcement learning library

    In a previous post, I outlined emerging applications of reinforcement learning (RL) in industry. I began by listing a few challenges facing anyone wanting to apply RL, including the need for large amounts of data, and the difficulty of reproducing research results and deriving the error estimates needed for mission-critical applications. Nevertheless, the success of RL in certain domains has been the subject of much media coverage. This has sparked interest, and companies are beginning to explore some of the use cases and applications I described in my earlier post. Many tasks and professions, including software development, are poised to incorporate some forms of AI-powered automation. In this post, I’ll describe how RISE Lab’s Ray platform continues to mature and evolve just as companies are examining use cases for RL.

  • Employers want JavaScript, but developers want Python

    When it comes to which programming languages are in demand by employers, JavaScript, Java, Python, C++, and C—in that order—came out on top in a recent developer survey. Developers, however, want to learn languages like Python, Go, and Kotlin.

    A survey of developers by technical recruiter HackerRank, conducted in October, found no gap between languages employers want and what developers actually know, with JavaScript barely edging out Java. But as far as which languages developers prefer, Python is the language developers most want to learn—and many already know it, HackerRank found.

Development: Languages and GNU

Filed under
  • About "dnf repomanage" performance regression

    Warning: this article can be a troll, but php is faster than python.

  • SD Times news digest: Webpack 4 beta, Android Wear SDK 2.2.0, and GCC 7.3 released

    The GNU Project and GCC developers have announced the release of GCC 7.3. GCC is the GNU Compiler Collection. This is a bug fix release as it has important fixes for regressions and bugs in GCC 7.2. It has more than 99 bugs fixed since the previous release of GCC.

  • Linux distros: love, openwashing & the thousand yard stare

    The Linux operating system (OS) will turn 30 in the year 2021.

    We know that Linus Torvalds first penned (typed) his work plans for what turned out to be Linux on a Usenet posting as follows:

    “I’m doing a (free) operating system (just a hobby, won’t be big and professional like GNU) for 386(486) AT clones,” wrote Torvalds.

    No brief history of Linux is needed here, there are plenty of write ups detailing the origins of UNIX, MINIX, the birth of GNU and Richard Stallman’s creation of the GNU General Public License.

  • Glibc 2.27 Is Being Released Soon With Numerous Performance Optimizations

    Glibc 2.27 will be released as soon as next week as the latest half-year update to the GNU C Library.

    The Glibc 2.27 cycle has been very heavy on performance optimizations. As covered recently, there's been AVX2/FMA optimizations, other optimized functions, numerous FMA optimizations, and more. Long story short, if you're running a recent AMD/Intel x86_64 CPU, there are chances you could see good performance improvements out of Glibc 2.27.

GCC 7.3 Released

Filed under
  • GCC 7.3 Released

    The GNU Compiler Collection version 7.3 has been released.

    GCC 7.3 is a bug-fix release from the GCC 7 branch containing important fixes for regressions and serious bugs in GCC 7.2 with more than 99 bugs fixed since the previous release.

    This release includes code generation options to mitigate Spectre Variant 2 (CVE 2017-5715) for the x86 and powerpc targets.

  • GCC 7.3 Released With Spectre V2 Mitigation Support

    GNU Compiler Collection 7.3 is now available as the latest GCC7 point release and the prominent changes being support for helping mitigate Spectre variant two using some new compiler switches.

    GCC 7.3 has backported Retpoline support after GCC 8.0 development code initially received the support earlier this month. This GCC support building out a patched kernel can lead to "full" retpoline protection for the system.

    The Retpoline support adds a few new compiler switches, namely -mindirect-branch= for dealing with indirect branches to avoid speculative execution.

Development: ActiveState, Python, Rust

Filed under
  • ActiveState Announces Plans for SaaS Platform, Leads with Open Source Solution for DevSecOps

    ActiveState, a leader in providing commercial open source language distributions, announced today its plans for a SaaS Platform. The platform will fulfill enterprises’ unaddressed need for open source language solutions. The company leads the offering with the ability to verify open source Python applications at runtime; Python distros have security built into the language runtime. IT Security & DevSecOps teams benefit from automatic runtime verification.

  • Threading in Python

    The basic idea behind threading is a simple one: just as the computer can run more than one process at a time, so too can your process run more than one thread at a time. When you want your program to do something in the background, you can launch a new thread. The main thread continues to run in the foreground, allowing the program to do two (or more) things at once.

    What's the difference between launching a new process and a new thread? A new process is completely independent of your existing process, giving you more stability (in that the processes cannot affect or corrupt one another) but also less flexibility (in that data cannot easily flow from one thread to another). Because multiple threads within a process share data, they can work with one another more closely and easily.

  • This Week in Rust 218

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.

Programming: Perl, JavaScript, Ick, PowerFake, pylint-django, nbdkit filters

Filed under
  • An Open Letter to the Perl Community

    Some consider Perl 6 to be a sister language to Perl 5. Personally, I consider Perl 6 more of a genetically engineered daughter language with the best genes from many parents. A daughter with a difficult childhood, in which she alienated many, who is now getting out of puberty into early adulthood. But I digress.

  • Long Live Perl 5!

    While not mentioned in the original Letter, a frequent theme in the comments was that Perl 6 should be renamed, as the name is inaccurate or is damaging.

    This is the topic on which I wrote more than once and those who have been following closely know that, yes, many (but by no means all) in the Perl 6 community acknowledge the name is detrimental to both Perl 6 and Perl 5 projects.

    This is why with a nod of approval from Larry we're moving to create an alias to Perl 6 name during 6.d language release, to be available for marketing in areas where "Perl 6" is not a desirable name.

  • JavaScript Trends for 2018

    Trying to bet on how many new JavaScript frameworks will be released each month, is, the best software engineer’s game in the past 5 years.

  • Ick: a continuous integration system

    TL;DR: Ick is a continuous integration or CI system. See for more information.

  • Introducing PowerFake for C++

    PowerFake is a new mini-framework/tool to make it possible to fake/mock free functions and static & non-virtual member functions in C++. It requires no change to the code under test, but it might need some structural changes, like moving some parts of the code to a different .cpp file; or making inline functions non-inline when built for testing.

    It is useful for writing unit tests and faking/mocking functions which should not/cannot be run during a test case. Some say that such a feature is useful for existing code, but should not be needed for a code which is written testable from the beginning. But, personally I don’t agree that it is always appropriate to inject such dependencies using virtual interfaces or templates.

    Currently, it is not supposed to become a mocking framework on its own. I hope that I can integrate PowerFake into at least one existing C++ mocking framework. Therefore, currently it doesn’t provide anything beyond faking existing functions.

  • Introducing pylint-django 0.8.0

    Since my previous post was about writing pylint plugins I figured I'd let you know that I've released pylint-django version 0.8.0 over the weekend. This release merges all pull requests which were pending till now so make sure to read the change log.

  • nbdkit filters

    nbdkit is our toolkit for creating Network Block Device (NBD) servers from “unusual” data sources. nbdkit was already configurable by writing simple plugins in several programming languages. Last week Eric Blake and I added a nice new feature: You can now modify existing plugins by placing “filters” in front of them.

Compilers and CLI: LLVM, GCC and Bash

Filed under
Syndicate content

More in Tux Machines

Here’s GNOME 3.28 – See What’s New

The latest version of GNOME 3 has been released today. Version 3.28 contains six months of work and new features by the GNOME community and comes with many improvements and new features. One major new feature for this release is automatic downloading of operating systems in Boxes, which takes the work out of creating and running virtual machines – just pick the operating system that you want to create a virtual machine of, and Boxes will now download and install it for you. Other highlights include improvements to the Calendar and Contacts applications, the ability to star files and folders in the Files application, and improved support for Thunderbolt 3 and Bluetooth LE devices. GNOME’s default UI font has also been overhauled to be more attractive and easy to read, and the on-screen keyboard has been rewritten to be more reliable and has layouts for a number of different locales. Read more Also: textures and paintables

Android Leftovers

LG releases webOS Open Source Edition, looks to expand webOS usage

LG’s smart TVs ship with an operating system called webOS, which is the latest version of an operating system that was developed by Palm to run on phones, acquired by HP to use with tablets, and eventually sold to LG, which is still using it today. But now LG wants to expand the adoption of webOS and the company is working with the South Korean government to solicit business proposals from other companies interested in using webOS. LG has also released a webOS Open Source Edition version of the operating system. Read more

Test driving 4 open source music players and more

In my last article, I described my latest music problem: I need an additional stage of amplification to make proper use of my new phono cartridge. While my pre-amplifier contains a phono stage, its gain is only suitable for cartridges that output about 5mV, whereas my new cartridge has a nominal output of 0.4mV. Based on my investigation, I liked the looks of the Muffsy phono kits, so I ordered the head amplifier, the power supply, and the back panel. I also needed to obtain a case to hold the boards and the back panel, available online from many vendors. Muffsy does not sell the “wall wart” necessary to power the unit, so I ordered one of those from a supplier in California. Finally, inspecting my soldering iron, solder “sucker,” and solder, I’ve realized I need to do better—so a bit more shopping, online or local, is in order there. Finally, for those, like me, whose soldering skills may be rusty and perhaps were not all that great to begin with, Muffsy kindly offers links to two instructional videos. Read more