Language Selection

English French German Italian Portuguese Spanish


Programming: Python, Perl, and the unoptimalities of language specific build systems

Filed under
  • Why Python devs should use Pipenv
  • #17: Dependencies.

    As R users, we are spoiled. Early in the history of R, Kurt Hornik and Friedrich Leisch built support for packages right into R, and started the Comprehensive R Archive Network (CRAN). And R and CRAN had a fantastic run with. Roughly twenty years later, we are looking at over 12,000 packages which can (generally) be installed with absolute ease and no suprises. No other (relevant) open source language has anything of comparable rigour and quality. This is a big deal.

  • On the unoptimalities of language specific build systems

    A fairly big recent trend has been the emergence of new programming languages that are meant to be compiled into machine code. The silent (and sometimes not so silent) goal of these languages has been to replace C and C++ as the dominant systems programming language.

    All of these languages come with their own build system and dependency management optimised for that particular language. This makes sense as having a good developer experience is important and not having 20-30 years of legacy to carry with you means you can design and develop slick systems relatively easily. But, as always, there is a downside. Perhaps the main issue comes up pretty quickly when trying to combine said code with projects in other languages.

    A common approach is for the programming language in question to bundle up all its dependencies as source in a big clump. Then the advocates will say that "it's simple, just call our build system from yours and it gets built". This seems simple but it uses the weasieliest of all weasel words: just. Whenever someone tells you to "just" do something, what they almost always do is trying to trivialise away the hardest part of the entire operation. So it is here as well.

Programming: Qt Automotive Suite 2.0, Conan for C/C++, Ethical Oath for Programmers, Windows Kernel Bug

Filed under
  • Introducing Qt Automotive Suite 2.0

    We are excited to announce the Qt Automotive Suite 2.0, a great leap forward towards a unified HMI toolchain and framework for digital cockpit, available end of February 2018.

  • Qt Automotive Suite 2.0 Released

    Two years after unveiling Qt Automotive Suite 1.0 for designing digital cockpits for the ever increasing number of screens within cars, The Qt Company has today announced Qt Automotive Suite 2.0.

  • Conan package manager brings C and C++ to devops

    Conan, a distributed, open source package and dependency manager, promises to bring C and C++ into devops.

    The multiplatform package manager builds and shares native binaries. Conan’s ability to quickly create builds, port packages, and run them on different operating systems (Windows, Linux, MacOS, and FreeBSD) helps make C and C++ suitable for devops, said Harry Manley, a senior solutions engineer at JFrog, which sponsors the Conan project.

  • An ethical oath for programmers


    Nick Johnstone's "Programmer's Oath" is billed as "An oath for programmers, comparable to the Hippocratic Oath." Naturally, it's on Github and you can create a pull request if you think that Johnstone got something wrong.  

  • Compiler bug? Linker bug? Windows Kernel bug.

    Flaky failures are the worst. In this particular investigation, which spanned twenty months, we suspected hardware failure, compiler bugs, linker bugs, and other possibilities. Jumping too quickly to blaming hardware or build tools is a classic mistake, but in this case the mistake was that we weren’t thinking big enough. Yes, there was a linker bug, but we were also lucky enough to have hit a Windows kernel bug which is triggered by linkers!

    In September of 2016 we started noticing random failures when building Chrome – 3 out of 200 builds of Chrome failed when protoc.exe, one of the executables that is part of the build, crashed with an access violation. That is, we would build protoc.exe, and then run it to generate header files for the next build stage, but it would crash instead.

The npm Bug

Filed under
  • ​Show-stopping bug appears in npm Node.js package manager

    Are you a developer who uses npm as the package manager for your JavaScript or Node.js code? If so, do not -- I repeat do not -- upgrade to npm 5.7.0. Nothing good can come of it. As one user reported, "This destroyed 3 production servers after a single deploy!"

    So, what happened here? According to the npm GitHub bug report, "By running sudo npm under a non-root user (root users do not have the same effect), filesystem permissions are being heavily modified. For example, if I run sudo npm --help or sudo npm update -g, both commands cause my filesystem to change ownership of directories such as /etc, /usr, /boot, and other directories needed for running the system. It appears that the ownership is recursively changed to the user currently running npm."

  • Botched npm Update Crashes Linux Systems, Forces Users to Reinstall

    A bug in npm (Node Package Manager), the most widely used JavaScript package manager, will change ownership of crucial Linux system folders, such as /etc, /usr, /boot.

    Changing ownership of these files either crashes the system, various local apps, or prevents the system from booting, according to reports from users who installed npm v5.7.0. —the buggy npm update.

Google Summer of Code 2018 for Qt and Qt Roadmap for 2018

Filed under
  • The Qt Project and Google Summer of Code 2018

    This year, for the first time, the Qt Project will be participating in the Google Summer of Code initiative.

  • Qt Roadmap for 2018

    Qt 5.9 LTS is a solid baseline, which continues to improve still during 2018. Qt 5.10 was released in December, but there is more cooking. We are currently finalizing the Qt 5.11 release for May and looking towards Qt 5.12 LTS in November. In addition to the Qt framework we are actively developing our tooling offering. Tune in for an overview what we have in the works for 2018.

  • Qt Has A Super Busy Year Ahead With A Lot Of Features Planned For 2018

    Tuukka Turunen of The Qt Company has shared some of the company's plans for the Qt toolkit in 2018. There is a lot ahead for this open-source, cross-platform toolkit in 2018 with another long-term support release later this year, new Qt Python bindings, a safety-critical renderer and more.

Programming/Development: Rust, Google Summer Of Code 2018, COBOL, Python

Filed under
  • Oxidizing Fedora: Try Rust and its applications today

    In recent years, it has become increasingly important to develop software that minimizes security vulnerabilities. Memory management bugs are a common cause of these vulnerabilities. To that end, the Mozilla community has spent the last several years building the Rust language and ecosystem which focuses primarily on eliminating those bugs. And Rust is available in Fedora today, along with a few applications in Fedora 27 and higher, as seen below.

  • This Week in Rust 222

    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.

  • Google Summer Of Code 2018 Larger Than Ever

    Google Summer of Code gives students an opportunity to make a substantive contribution to Open Source projects with the motto "Flip bits not burgers" has recruited more mentoring organizations than ever for its 13th year.

  • The Beauty of the COBOL Programming Language

    The first thing I needed in my journey to learn COBOL was an IDE. I am a big supporter of coding in an integrated development environment (IDE). I like being able to write, test and run code all in one place. Also, I find the support features that an IDE provides, such as visual code structure analysis, code completion and inline syntax checking, allow me to program and debug efficiently.

  • Clear Linux Is The Latest Distribution Figuring Out What To Do With Python 2

    While Python 3 has been around now for a decade, most Linux distributions are still working towards moving away from Python 2 and that includes Intel's Clear Linux distribution.

    Like with Ubuntu, Fedora, and others moving away their base packages from any Python 2 dependencies and moving them to Python 3, Clear Linux developers are working on the same. Arjan van de Ven of Intel provided an update on their Python 3 transitioning. By the end of 2018, but hopefully within the next six months, they hope to be at a point where their performance-oriented Linux distribution is "fully and only Python 3."

Programming: Pyenv, GitHub, LLVM

Filed under
  • Pyenv – Python Version Management Made Easier

    You’re a programmer who wants to test your python code on multiple different Python environments. What would you do? Install a specific python version and test your code and then uninstall that version and again install another different version and test code? No, wait! It is completely unnecessary. Say hello to Pyenv , an useful utility to manage multiple Python versions, simultaneously. It made the python version management easier than ever. It is used to install, uninstall and switch to multiple different versions of Python.

  • GitHub Predicts Hottest 2018 Open Source Trends

    As the world’s largest repository of open source projects, GitHub is in a unique position to witness what developers are up to. GitHub staff recently sifted through the site’s 2017’s data in order to identify top open source trends they predict will thrive in 2018.

  • What is LLVM? The power behind Swift, Rust, Clang, and more

    New languages, and improvements on existing ones, are mushrooming throughout the develoment landscape. Mozilla’s Rust, Apple’s Swift, Jetbrains’s Kotlin, and many other languages provide developers with a new range of choices for speed, safety, convenience, portability, and power.

    Why now? One big reason is new tools for building languages—specifically, compilers. And chief among them is LLVM (Low-Level Virtual Machine), an open source project originally developed by Swift language creator Chris Lattner as a research project at the University of Illinois.

Rust things I miss in C and learning to program is getting harder

Filed under
  • Rust things I miss in C

    Librsvg feels like it is reaching a tipping point, where suddenly it seems like it would be easier to just port some major parts from C to Rust than to just add accessors for them. Also, more and more of the meat of the library is in Rust now.

    I'm switching back and forth a lot between C and Rust these days, and C feels very, very primitive these days.

  • Learning to program is getting harder

    I have written several books that use Python to explain topics like Bayesian Statistics and Digital Signal Processing. Along with the books, I provide code that readers can download from GitHub. In order to work with this code, readers have to know some Python, but that's not enough. They also need a computer with Python and its supporting libraries, they have to know how to download code from GitHub, and then they have to know how to run the code they downloaded.

    And that's where a lot of readers get into trouble.

Go 1.10 and New PHP Builds for Fedora/Red Hat

Filed under
  • Go 1.10 is released

    Happy Friday, happy weekend! Today the Go team is happy to announce the release of Go 1.10. You can get it from the download page.

    See the Go 1.10 release notes for all the details.

  • Golang 1.10 Offers Many Smaller Changes, Restores NetBSD Support

    Not only is there a new Rust release this week but the Google developers have put out the Go 1.10 update.

    Go 1.10 ships with many minor feature additions and improvements with no big overhauls. Among the changes with Go 1.10 are automatic caching of build and test results, many other go tooling improvements, minor enhancements to the Gofmt formatting utility, and compiler toolchain updates.

  • PHP version 7.1.15RC1 and 7.2.3RC1

Jupyter and Junior Developers

Filed under
  • Jupyter: notebooks for education and collaboration

    The popular interpreted language Python shares a mode of interaction with many other languages, from Lisp to APL to Julia: the REPL (read-eval-print-loop) allows the user to experiment with and explore their code, while maintaining a workspace of global variables and functions. This is in contrast with languages such as Fortran and C, which must be compiled and run as complete programs (a mode of operation available to the REPL-enabled languages as well). But using a REPL is a solitary task; one can write a program to share based on their explorations, but the REPL session itself not easily shareable. So REPLs have gotten more sophisticated over time, evolving into shareable notebooks, such as what IPython, and its more recent descendant, Jupyter, have. Here we look at Jupyter: its history, notebooks, and how it enables better collaboration in languages well beyond its Python roots.

  • Who Killed The Junior Developer?

    I’m not sure what the industry-wide solution is. I’m not sure whether companies that lack junior devs are unbalanced or smart. The reality is that most software developers don’t stay one place very long, so maybe it doesn’t make sense to invest a lot in training someone? Or maybe the industry should ask itself why people keep hopping jobs? Maybe it’s because a lot of them suck, or for a lot of us it’s the only way to advance our salary. I can either wait for a stupid, meaningless yearly “performance review” to bump me up 1% or take my resume and interview elsewhere and get 10% or more.

    It’s not just a sign that an individual company is broken, it’s a sign the entire industry is broken.

Programming/Development: BH 1.66.0-1, Data scientists, vi, Emacs and Compilers

Filed under
  • BH 1.66.0-1

    A new release of the BH package arrived on CRAN a little earlier: now at release 1.66.0-1. BH provides a sizeable portion of the Boost C++ libraries as a set of template headers for use by R, possibly with Rcpp as well as other packages.

    This release upgrades the version of Boost to the Boost 1.66.0 version released recently, and also adds one exciting new library: Boost compute which provides a C++ interface to multi-core CPU and GPGPU computing platforms based on OpenCL.

  • Data scientist wanted: Must have Python, spontaneity not required

    The average salary offered to data scientists in the past year was £47,000, with Python being the most desirable programming language, according to an analysis of job ads.

    The assessment, carried out by listings site Joblift, looked at 8,672 data scientist vacancies posted in the UK over the last 12 months.

    It found that data science salaries have increased at 3 per cent a month, which is a percentage point higher than the UK job market as a whole.

  • Top 11 vi tips and tricks

    The vi editor is one of the most popular text editors on Unix and Unix-like systems, such as Linux. Whether you're new to vi or just looking for a refresher, these 11 tips will enhance how you use it.

  • How to create slides with Emacs Org mode and Reveal.js

    You've crafted each slide in your presentation. Now what? You'll want to generate the HTML version of your slide deck. To do that, press Ctrl+c Ctrl+e on your keyboard. This opens the Org mode export buffer. Next, type R+R. Emacs creates a single HTML file in the folder where you saved your slide file.

    Open that HTML file in a web browser. You can move through the slides by pressing the arrow keys on your keyboard.

  • Renesas Synergy Platform Boosts IoT Performance With IAR Systems Advanced Compiler Technology
Syndicate content

More in Tux Machines

Software: Corebird, RawTherapee, LVFS and More

Red Hat and Fedora: Red Hat Enterprise Linux 8 Alpha, Results Imminent, Fedora Atomic Workstation and More

Ubuntu and Mint Leftovers

  • Ubuntu 18.04's Automatic Suspend Shows Linux Suspend Can Still Be An Issue In 2018
    One of the subtle changes that seemed to have been made during the Ubuntu 18.04 development cycle is automatic suspend now being enabled by default on desktop systems. Automatic suspend is flipped on with Ubuntu 18.04 desktop after a twenty minute delay of being idle, at least on several systems I've been running the daily Bionic Beaver with this month.
  • Bid “bonjour” to our Bionic Beaver!
    Along with a sneak preview of our official Bionic mascot, it’s a short update this week as we’re all heads-down in bug fixing mode. There are a couple of links to check out if you’re interested in what sort of data we want to collect about hardware and setup, with links to the source.
  • MintBox Mini 2
    Based on the Compulab Fitlet2, the new Mini is just as small as the original MintBox Mini and the MintBox Mini Pro but with much better specifications, better performance and a few more features.

Android Leftovers

  • Android tips and tricks: 10 great ways to boost your phone experience
  • About the privacy of the unlocking procedure for Xiaomi’s Mi 5s plus
    First, you got to register on Xiaomi’s website, and request for the permission to unlock the device. That’s already bad enough: why should I ask for the permission to use the device I own as I am pleased to? Anyway, I did that. The procedure includes receiving an SMS. Again, more bad: why should I give-up such a privacy thing as my phone number? Anyway, I did it, and received the code to activate my website account. Then I started the unlock program in a virtualbox Windows XP VM (yeah right… I wasn’t expecting something better anyway…), and then, the program tells me that I need to add my Xiaomi’s account in the phone. Of course, it then sends a web request to Xiaomi’s server. I’m already not happy with all of this, but that’s not it. After all of these privacy breaches, the unlock APP tells me that I need to wait 72 hours to get my phone to account association to be activated. Since I wont be available in the middle of the week, for me, that means waiting until next week-end to do that. Silly…
  • You Can Now Try Android Games Without Downloading Them
    Tired of downloading games only to realize they suck? Google Play Instant might mean never doing that again.
  • Plex for Android Will Soon Let You Cast Your Own Videos to Chromecast