Language Selection

English French German Italian Portuguese Spanish

Development

New Python Release and LWN Coverage

Filed under
Development
  • Python 3.7.0

    Python 3.7.0 is the newest major release of the Python language, and it contains many new features and optimizations.

  • Python 3.7 Released With C API For Thread-Local Storage, Data Classes, Context Variables

    Python 3.7 is now available as the latest major release to Python 3 with new features, performance optimizations, and other enhancements.

  • Mentoring and diversity for Python

    A two-part session at the 2018 Python Language Summit tackled the core developer diversity problem from two different angles. Victor Stinner outlined some work he has been doing to mentor new developers on their path toward joining the core development ranks; he has also been trying to document that path. Mariatta Wijaya gave a very personal talk that described the diversity problem while also providing some concrete action items that the project and individuals could take to help make Python more welcoming to minorities.

  • Getting along in the Python community

    In a session with a title that used a common misquote of Rodney King ("can't we all just get along?"), several Python developers wanted to discuss an incident that had recently occurred on the python-dev mailing list. A rude posting to the list led to a thread that got somewhat out of control. Some short tempers among the members of the Python developer community likely escalated things unnecessarily. The incident in question was brought up as something of an object lesson; people should take some time to simmer down before firing off that quick, but perhaps needlessly confrontational, reply.

    The post by Ivan Pozdeev was never directly cited in the discussion (though a response in the thread by Steven D'Aprano was put up as a slide). As Guido van Rossum put it, the original poster was "being a jerk". Pozdeev complained about the tkinter module in the standard library being broken for his use case. Beyond that, he claimed that almost no one uses it and that "no-one gives a damn". He suggested that it should be removed from the standard library since it could not be maintained.

  • PEP 572 and decision-making in Python

    The "PEP 572 mess" was the topic of a 2018 Python Language Summit session led by benevolent dictator for life (BDFL) Guido van Rossum. PEP 572 seeks to add assignment expressions (or "inline assignments") to the language, but it has seen a prolonged discussion over multiple huge threads on the python-dev mailing list—even after multiple rounds on python-ideas. Those threads were often contentious and were clearly voluminous to the point where many probably just tuned them out. At the summit, Van Rossum gave an overview of the feature proposal, which he seems inclined toward accepting, but he also wanted to discuss how to avoid this kind of thread explosion in the future.

Goodbye, Microsoft: Deleting Github and Azure

Filed under
Development
Server
Microsoft
  • Why GitLab Is Moving From Azure to Google Cloud Platform

    To old timers in the open source game, it might come as a surprise that a company like GitLab that's proud of it's open source roots would be using Azure to begin with. After all, wasn't distrust of Microsoft's ownership of GitHub the reason behind the mass exodus to GitLab earlier this month? While a "new" and more open source friendly Microsoft was undoubtedly one of the reasons why GitLab would even consider the move to Redmond's cloud -- the motivating factor was money.

  • postmarketOS is #movingtogitlab

    After learning that Microsoft will buy GitHub at the end of 2018, for a lot of people trust in GitHub was shattered like the glass of @opendata26's Sony Xperia Z2 Tablet. But independent of that, GitHub has always had a vendor lock-in with the user's issues and pull requests hidden behind a rate limited API instead of a proper export feature. And even if you managed to export it through that API, you can not host your own GitHub instance and modify it as you like because there is not even a partially open source version of it.

    We want to be in control of our own data. While we can't maintain a self-hosted solution at this point, at least we want to be able to create a public backup of all our > 1500 issues and pull requests once a week. After some discussion we ended up with gitlab.com as alternative, because its API allows to create a whole backups at once and we can import them into our own instance if we want to do that in the future. The workflow is similar to GitHub, so we expect a rather smooth transition compared to using something entirely different.

Programming: Flutter, Pusher and Clojure

Filed under
Development
  • 4 ways Flutter makes mobile app development delightful

    I'm going to let you in on a secret: For years I hated mobile development. I wanted to like it—mobile was the future! It was cool! It was low-power! It was a way to connect with users whose first exposure to computers did not come from traditional desktop platforms! And yet… development was a slow, frustrating experience for me. Instead, I sequestered myself over in the entirely problem-free area of web development and mourned the disappearance of the HTML blink tag (kidding).

    Then, I discovered Flutter, an open source mobile app SDK developed by Google that enables developers to use the same codebase to create mobile apps for iOS and Android.

  • Pusher: treat developers ‘as customers’

    Pusher is a developer tools company that makes communication and collaboration APIs for web and mobile applications.

    The company’s core product is called Channels, developers use it to create features such as in-app notifications, activity streams, chat, real-time dashboards and multi-user collaborative apps.

  • How I finally learned what a "monad" is

    I wrote Clojure, a functional programming language where monads are (implicitly) everywhere, for 3+ years. I learned Haskell for 6+ months, enough time to put together some trivial programs. I knew Common Lisp and Scheme, Python and Ruby. I watched videos and read tutorials and books. I even worked through most of SICP in Shen.

    Despite all of this, I still could not understand what a monad was or why it would be useful. What finally made me understand monads was the frustration that came from writing the same code over and over again in Elm.

Programming: Python Object-Oriented Programming (OOP) and Mastering C Pointers

Filed under
Development
  • 8 great pytest plugins

    We are big fans of pytest and use it as our default Python testing tool for work and open source projects. For this month's Python column, we're sharing why we love pytest and some of the plugins that make testing with pytest so much fun.

  • Python 3: Sometimes Immutable Is Mutable and Everything Is an Object

    Python is a multi-paradigm programming language. Meaning, it supports different programming approach. One of the popular approach to solve a programming problem is by creating objects. This is known as Object-Oriented Programming (OOP).

  • Massacring C Pointers

    I'm taking a break from debugging books to talk about a calamitous shitshow of textbook writing: Mastering C Pointers: Tools for Programming Power, by Robert J. Traister.

    I learned of the book through a talk by Brian Kernighan where he refers to the book as probably “the worst C programming textbook ever written.”[1] He doesn't name it but with some help I was able to track down his obliquely accurate reference.

    This book has become my white whale. Since I started reading debugging books, and especially now that I'm digging through older ones, I find bits of advice that simply don't work today. While some of it could be construed as useless or idiotic, I've always found the authors come from a position of earnestness, attempting to draw the best conclusions based on decent principles and what they knew at the time they wrote it. In some cases they may not have known much, but they're honestly and humbly trying to impart some wisdom.

Programming Languages

Filed under
Development
  • Perl Version 5.28.0 Now Available, Linus Torvalds' "Small Rant" on rc2 Release Statement, Ubuntu's First User Data Report and More

    Perl version 5.28.0 has been released. According to LWN.net, highlights of this release, which was 13 months in the making with approximately 730,000 lines of changes, include "Unicode 10.0 support, string- and number-specific bitwise operators, a change to more secure hash functions, and safer in-place editing." See the full list of changes here.

  • TIOBE Index for June 2018

    This month TypeScript debuts at position 93 in the TIOBE index top 100. The Microsoft language has been tracked for a couple of years now, but although its popularity in industry seems high, it never made it to the top 100. So finally it has got sufficient traction to be noticed. TypeScript is a strict superset of JavaScript, which means you can use it together with your existing JavaScript. But it adds a lot of extra type safety to the JavaScript language thanks to type annotations. In this sense it is an improved version of JavaScript. The fact that Google adopted TypeScript next to its own JavaScript variant language Dart is proof that TypeScript has a bright future.

  • 10 Most Popular Programming Languages In 2018: Learn To Code

    For beginners in the world of programming, the biggest dilemma is to decide where to begin or which language one should master for career benefits. At times, professional coders also face a situation where learning a new language seems more fruitful.

    Whatever may be the reason, here is a list of the most popular programming languages across the world to know which languages are ruling the charts. This list is based on the data sourced from TIOBE Programming Community Index, which is a popular indicator of the popularity of programming languages.

Programming: Go, Bugs and LLVM

Filed under
Development
  • 3 ways to copy files in Go

    This article will show you how to copy a file in the Go programming language. Although there are more than three ways to copy a file in Go, this article will present the three most common ways: using the io.Copy() function call from the Go library; reading the input file all at once and writing it to another file; and copying the file in small chunks using a buffer.

  • The life cycle of a software bug

    During the process of testing, bugs are reported to the development team. Quality assurance testers describe the bug in as much detail as possible, reporting on their system state, the processes they were undertaking, and how the bug manifested itself.

    Despite this, some bugs are never confirmed; they may be reported in testing but can never be reproduced in a controlled environment. In such cases they may not be resolved but are instead closed.

    It can be difficult to confirm a computer bug due to the wide array of platforms in use and the many different types of user behavior. Some bugs only occur intermittently or under very specific situations, and others may occur seemingly at random.

    Many people use and interact with open source software, and many bugs and issues may be non-repeatable or may not be adequately described. Still, because every user and developer also plays the role of quality assurance tester, at least in part, there is a good chance that bugs will be revealed.

  • LLVM's OpenMP Offloads Liboffload Into Oblivion

    The liboffload library has been dropped from LLVM's OpenMP repository.

    Liboffload is/was the Intel runtime library for offloading and geared for supporting the Xeon Phi co-processors. But liboffload within LLVM hasn't been receiving updates, it wasn't properly integrated within the LLVM build system, and unfortunately Xeon Phi co-processors appear to be discontinued. The liboffload library has also confused some with LLVM's libomptarget library for OpenMP support that is in much better shape.

Programming/Development: Math Libraries for Python, Compiler Fuzzing With Prog-Fuzz, Intel MKL and Flutter

Filed under
Development
  • 10 Best Math Libraries for Python

    Many times, when you write programs you need to use special functions that others have used before you. When this happens, open source comes to the rescue and gives you a library that covers that need. Python calls theirs modules, to use modules you need to import them.Modules for mathematics are especially useful when you have the theory ready but need to use standard math for your particular problem.  The Mathematics module in the Python standard library has many features. It is useful to check if you can solve your problem easily with these functions. If you need to know what functions exist you need to go through the list. However, first realize that the module implements all the C standard functions.

    The simplest use of Python for math is as a calculator. To do this, start Python on the terminal and use the print function.

  • Compiler Fuzzing With Prog-Fuzz Is Turning Up Bugs In GCC, Clang

    Vegard Nossum of Oracle has been working on fuzzing different open-source compilers for turning up bugs within these code compiler likes GCC and Clang.

    Vegard ended up writing a new compiler fuzzer from scratch making use of AFL instrumentation. This new fuzzer is dubbed simply Prog-Fuzz and is available on GitHub.

  • Intel MKL in Debian / Ubuntu follow-up

    About two months ago, in the most recent post in the series, #18, we provided a short tutorial about how to add the Intel Math Kernel Library to a Debian or Ubuntu system thanks to the wonderful apt tool -- and the prepackaged binaries by Intel. This made for a simple, reproducible, scriptable, and even reversible (!!) solution---which a few people seem to have appreciated. Good.

  • Fedora 28 : Starting develop with Flutter .

Perl 5.28.0 released

Filed under
Development

Version 5.28.0 of the Perl language has been released. "Perl 5.28.0 represents approximately 13 months of development since Perl 5.26.0 and contains approximately 730,000 lines of changes across 2,200 files from 77 authors". The full list of changes can be found over here; some highlights include Unicode 10.0 support, string- and number-specific bitwise operators, a change to more secure hash functions, and safer in-place editing.

Read more

Programming: Python Maths Tools and Java SE

Filed under
Development
  • Essential Free Python Maths Tools

    Python is a very popular general purpose programming language — with good reason. It’s object oriented, semantically structured, extremely versatile, and well supported. Scientists favour Python because it’s easy to use and learn, offers a good set of built-in features, and is highly extensible. Python’s readability makes it an excellent first programming language.

    The Python Standard Library (PSL) is the the standard library that’s distributed with Python. The library comes with, among other things, modules that carry out many mathematical operations.

    The math module is one of the core modules in PSL which performs mathematical operations. The module gives access to the underlying C library functions for floating point math.

  • Oracle's new Java SE subs: Code and support for $25/processor/month

    Oracle’s put a price on Java SE and support: $25 per processor per month, and $2.50 per user per month on the desktop, or less if you buy lots for a long time.

    Big Red’s called this a Java SE Subscription and pitched it as “a commonly used model, popular with Linux distributions”. The company also reckons the new deal is better than a perpetual licence, because they involve “an up-front cost plus additional annual support and maintenance fees.”

Programming: 5 Pillars of Learning Programming, New Releases of Rust and Git

Filed under
Development
  • 5 Pillars of Learning Programming

    Learning how to program is hard. I often find that university courses and boot camps miss important aspects of programming and take poor approaches to teaching rookies.

    I want to share the 5 basic pillars I believe a successful programming course should build upon. As always, I am addressing the context of mainstream web applications.

    A rookie’s goal is to master the fundamentals of programming and to understand the importance of libraries and frameworks.

    Advanced topics such as the cloud, operations in general, or build tools should not be part of the curriculum. I am also skeptical when it comes to Design Patterns. They presume experience that beginners never have.

  • The Rust Programming Language Blog: Announcing Rust 1.27

    The Rust team is happy to announce a new version of Rust, 1.27.0. Rust is a systems programming language focused on safety, speed, and concurrency.

  • Rust 1.27 Released With SIMD Improvements

    Most notable to Rust 1.27 is SIMD support via the std::arch module to make use of SIMD (Single Instruction, Multiple Data) instructions directly. Up to now Rust could already make use of LLVM's auto-vectorization support, but this lets Rust developers write SIMD instructions on their own and to allow for the proper Rust code to be executed based upon the CPU at run-time.

  • Git 2.18 Released With Initial Version Of Its New Wire Protocol

    Version 2.18 of the Git distributed revision control system is now available.

    Arguably most notable about Git 2.18 is the introduction of its new wire protocol "protocol_v2" that is designed to offer much greater performance. This new protocol is designed to be much faster and is already being used at Google and elsewhere due to the significant performance benefits.

  • Git v2.18.0

    The latest feature release Git v2.18.0 is now available at the usual places. It is comprised of 903 non-merge commits since v2.17.0, contributed by 80 people, 24 of which are new faces.

Syndicate content

More in Tux Machines

Kate/KTextEditor Picks Up Many Improvements To Enhance KDE Text Editing

Even with KDE's annual Akademy conference happening this past week in Vienna, KDE development has been going strong especially on the usability front. The Kate text editor and the KTextEditor component within KDE Frameworks 5 have been the largest benefactors of recent improvements. This KDE text editing code now has support for disabling syntax highlighting entirely if preferred. When using syntax highlighting, there have been many KTextEditor enhancements to improve the experience as well as improvements to the highlighting for a variety of languages from JavaScript to YAML to AppArmor files. Read more

KStars v2.9.8 released

KStars 2.9.8 is released for Windows, MacOS, and Linux. It is a hotfix release that contains bug fixes and stability improvements over the last release. Read more Also: KDE Itinerary - How did we get here?

today's leftovers and howtos

  • Project curl governance
    Over time, we've slowly been adjusting the curl project and its documentation so that we might at some point actually qualify to the CII open source Best Practices at silver level. We qualified at the base level a while ago as one of the first projects which did that. Recently, one of those issues we fixed was documenting the governance of the curl project. How exactly the curl project is run, what the key roles are and how decisions are made. That document is now in our git repo.
  • How to install OwnCloud 10 on CentOS 7 and RHEL 7
  • How to Get Google Camera Port for Asus ZenFone Max Pro M1
  • How to check your CentOS Version
  • 5 Practical Examples of chgrp command in Linux
  • Trinity Desktop R14.0.5 Brings Modern Compiler Support and Security Fixes
    Trinity Desktop, the Linux desktop environment which is forked from KDE 3, has just released an update bringing Trinity Desktop to version R14.0.5. Because Trinity Desktop is a “traditional desktop” based on KDE 3 and focuses on function rather than a lot of special effects, its benefits are typically things like increased battery life on laptops, and just overall efficiency for the user.
  • This week in Usability & Productivity, part 32
    I’m back from Akademy, and I can’t wait to share some of the cool stuff that happened there over the past week. I’m going to post the video of my talk as soon as it’s up. But first, I know what you’re all really waiting for: this week’s Usability & Productivity update. Though we were all quite busy, somehow everyone managed to accomplish an enormous amount of work, too!
  • Reminder: Shotwell Facebook publishing no longer working
    As announced earlier, since August 1st, 2018 Shotwell cannot publish to Facebook any more. The API that Shotwell used for that was removed and it is currently not clear to me how developers that do not use Android, iOS or Facebook’s web SDKs should provide similar functionality.
  • Gentoo on Integricloud
    Integricloud gave me access to their infrastructure to track some issues on ppc64 and ppc64le. Since some of the issues are related to the compilers, I obviously installed Gentoo on it and in the process I started to fix some issues with catalyst to get a working install media, but that’s for another blogpost. Today I’m just giving a walk-through on how to get a ppc64le (and ppc64 soon) VM up and running.
  • Industrial Mini-ITX board pumps up with Coffee Lake
    Commell’s “LV-67X” Mini-ITX board runs on 8th Gen “Coffee Lake” processors, with up to 32GB DDR4, 3x SATA, triple 4K displays, USB 3.1, and PCIe x16 and mini-PCIe expansion. The LV-67X, which shares some of the layout and feature set of its Intel Apollo Lake based LV-67U board, is the first industrial Mini-ITX board we’ve seen with Intel’s 8th Gen Coffee Lake CPUs. (Going forward, we’ll likely use the caffeinated nickname rather than “8th Gen” because Intel also applies the 8th Gen tag to the transitional and similarly 14nm Kaby Lake-G chips as well as the new, 10nm Cannon Lake processors.)
  • Unofficial OpenGApps for Android Pie 9.0 Released for ARM and ARM64 Platforms

Red Hat and Fedora News