Language Selection

English French German Italian Portuguese Spanish

Development

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.

Zapcc Liberated, HMM and GPL

Filed under
Development
OSS
Legal
  • Zapcc high-speed C++ compiler now open source

    Zapcc, a caching C++ compiler built for speed, has gone open source.

    Ceemple Software, Zapcc’s builder, claims the compiler offers dramatic improvements in both incremental and full builds compared to building with Clang 4.0 and Clang 5.0. Based on heavily modified code from the Clang compiler project, Zapcc uses an in-memory compilation cache in a client-server architecture. All compilation information is remembered between runs.

  • Heterogeneous memory management meets EXPORT_SYMBOL_GPL()

    One of the many longstanding — though unwritten — rules of kernel development is that infrastructure is not merged until at least one user for that infrastructure exists. That helps developers evaluate potential interfaces and be sure that the proposed addition is truly needed. A big exception to this rule was made when the heterogeneous memory management (HMM) code was merged, though. One of the reasons for the lack of users in this case turns out to be that many of the use cases are proprietary; that has led to some disagreements over the GPL-only status of an exported kernel symbol.

    The HMM subsystem exists to support peripherals that have direct access to system memory through their own memory-management units. It allows the ownership of ranges of memory to be passed back and forth and notifies peripherals of changes in memory mappings to keep everything working well together. HMM is not a small or simple subsystem, and bringing it into the kernel has forced a number of low-level memory-management changes. After a multi-year development process, the core HMM code was merged for the 4.14 kernel, despite the lack of any users.

Programming: Zapcc C++, PHP and Python

Filed under
Development
  • Some Compiler Performance Benchmarks With The Zapcc Caching Compiler

    Here are some quick benchmarks I ran this week of the newly open-sourced Zapcc C++ caching compiler based upon LLVM/Clang and compared to the upstream Clang performance, GCC, and Ccache with the speed on the original compilation of the benchmark code and then again on a subsequent compilation.

  • PHP 7.3.0 alpha 1 Released

    PHP team is glad to announce the release of the first PHP 7.3.0 version, PHP 7.3.0 Alpha 1. This starts the PHP 7.3 release cycle, the rough outline of which is specified in the PHP Wiki.

  • PHP 7.3 Alpha 2 Released With Many Bug Fixes

    Just shy of two weeks since PHP 7.3 went into alpha, the second alpha release of this upcoming annual feature release to the PHP programming language is now available.

    PHP 7.3 has been working on several new functions, WebP support within the image create from string function, improved PHP garbage collection, and a variety of other features and improvements. While PHP 7.3 is still open for new features, PHP 7.3 Alpha 2 comes with just bug fixes. Bug fixes for alpha two range from core fixes to various bugs in its ZIP, EXIF, Date, and CLI code, among other areas. The fixes are outlined here.

  • Python virtual environments

    In a short session at the 2018 Python Language Summit, Steve Dower brought up the shortcomings of Python virtual environments, which are meant to create isolated installations of the language and its modules. He said his presentation was "co-written with Twitter" and, indeed, most of his slides were of tweets. At the end, he also slipped in an announcement of his plans for hosting a core development sprint in September.

  • A Python static typing update

    One of the larger features added to Python over the last few releases is support for static typing in the language. Static type-checking and tools to support it show up frequently as topics at the Python Language Summit (PLS) and this year was no exception. Mypy developers Jukka Lehtosalo and Ivan Levkivskyi gave an update on static typing at PLS 2018.

    Lehtosalo started things off by talking about stub files, which contain type information for libraries and other modules. If you are going to type-check code that uses outside modules, from the standard library or a third-party library, the tool needs to understand the types used in the public interfaces of the library. The type-checking that can be done is limited if there are no stubs for the libraries used.

  • Linux distributions and Python 2

    Python 2.7 will reach its end of life in less than two years—at least for the core development team. Linux distributions need to figure out how to handle the transition given that many of their users are still using that version of the language—and may still be well beyond the end-of-life date. Petr Viktorin and Matthias Klose led a session at the 2018 Python Language Summit to discuss distributions' approaches to deprecating Python 2.

    Viktorin works for Red Hat and focused on the Fedora distribution. He wants to help figure out how to help the Python downstreams so that Python 2 can be fully discontinued. There are two different ways to do that; either make sure that everyone switches to Python 3 or simply deprecate Python 2 and "wash our hands" of the problem. He would prefer the first alternative. He will be working on this transition for Red Hat as part of his day job and would like to do it in the community as well; that will minimize the need to maintain Python 2 going forward.

Qt Creator 4.7 Beta2 released

Filed under
Development
KDE

We are happy to announce the release of Qt Creator 4.7 Beta2!

It is roughly 2 weeks after the Beta1 release, and 2 weeks before our planned release candidate, so we want to give you the opportunity to fetch an updated work-in-progress snapshot in between.
If you haven’t yet read about the improvements and new features that are coming with 4.7 (or if you have forgotten), I would like to point you to the blog post for the first beta.

Read more

Programming/Development: ISO C++, Rust, FBGraphics and So-called 'DevOps'

Filed under
Development
  • Trip Report: C++ Standards Meeting in Rapperswil, June 2018

    A couple of weeks ago I attended a meeting of the ISO C++ Standards Committee (also known as WG21) in Rapperswil, Switzerland. This was the second committee meeting in 2018; you can find my reports on preceding meetings here (March 2018, Jacksonville) and here (November 2017, Albuquerque), and earlier ones linked from those. These reports, particularly the Jacksonville one, provide useful context for this post.

    At this meeting, the committee was focused full-steam on C++20, including advancing several significant features — such as Ranges, Modules, Coroutines, and Executors — for possible inclusion in C++20, with a secondary focus on in-flight Technical Specifications such as the Parallelism TS v2, and the Reflection TS.

  • Proposal for a staged RFC process

    I consider Rust’s RFC process one of our great accomplishments, but it’s no secret that it has a few flaws. At its best, the RFC offers an opportunity for collaborative design that is really exciting to be a part of. At its worst, it can devolve into bickering without any real motion towards consensus. If you’ve not done so already, I strongly recommend reading aturon’s excellent blog posts on this topic.

    The RFC process has also evolved somewhat organically over time. What began as “just open a pull request on GitHub” has moved into a process with a number of formal and informal stages (described below). I think it’s a good time for us to take a step back and see if we can refine those stages into something that works better for everyone.

    This blog post describes a proposal that arose over some discussions at the Mo

  • C gfx library for the Linux framebuffer with parallelism support

    FBGraphics was made to produce fullscreen pixels effects easily with non-accelerated framebuffer by leveraging multi-core processors, it is a bit like a software GPU (much less complex and featured!), the initial target platform is a Raspberry PI 3B and extend to the NanoPI (and many others embedded devices), the library should just work with many others devices with a Linux framebuffer altough there is at the moment some restrictions on the supported framebuffer format (24 bits).

  • 16 blogs and newsletters to follow for DevOps practitioners

Debian Developers: Mergify, Chrome, DebCamp18, OBS, GSoC and LibrePlanet

Filed under
Development
Debian
  • Stop merging your pull requests manually

    We built Mergify as a free service for open-source projects. The engine powering the service is also open-source.

  • Odd dependency on Google Chrome

    Hmm, so I noticed every time I started a fresh new Chrome, I logged into my Google account. So, once again clearing things I started Chrome, didn’t login and closed and reopened. I had Chrome running the second time! Alas, not with all the stuff synchronised.

    An issue for Mailspring put me onto the right path. installing gnome-keyring (or the dependencies p11-kit and gnome-keyring-pkcs11) fixed Chrome.

    So if Chrome starts but you get no window, especially if you use cinnamon, try that trick.

  • Plans for DebCamp18

    I’m going to DebCamp18!

  • Triggering Debian Builds on OBS

    OBS supports building Debian packages. To do so, one must properly configure a project so OBS knows it is building a .deb package and to have the packages needed to handle and build debian packages installed.

  • Google Summer of Code 2018 with Debian - Week 5

    During week 5, there were 3 merge requests undergoing review process simultaneously. I learned a lot about how code should be written in order to assist the reader since the code is read more times than the time it is written.

  • How markets coopted free software’s most powerful weapon (LibrePlanet 2018 Keynote)

    Several months ago, I gave the closing keynote address at LibrePlanet 2018. The talk was about the thing that scares me most about the future of free culture, free software, and peer production.

HHVM 3.27 Released

Filed under
Development

Programming/Development: C++, 'Agile', and Pronghorn, a Java framework

Filed under
Development
  • What's all the C Plus Fuss? Bjarne Stroustrup warns of dangerous future plans for his C++

    Earlier this year, Bjarne Stroustrup, creator of C++, managing director in the technology division of Morgan Stanley, and a visiting professor of computer science at Columbia University in the US, wrote a letter inviting those overseeing the evolution of the programming language to “Remember the Vasa!”

    Easy for a Dane to understand no doubt, but perhaps more of a stretch for those with a few gaps in their knowledge of 17th century Scandinavian history. The Vasa was a Swedish warship, commissioned by King Gustavus Adolphus. It was the most powerful warship in the Baltic Sea from its maiden voyage on the August 10, 1628, until a few minutes later when it sank.

  • Has Agile Programming Lost its Way?

    Programmers are passionate about which development methodology is the best. Is it Agile? Waterfall? Feature Driven Development? Scrum? So everyone took notice when one of the 17 authors of the seminal Agile Manifesto wrote a blog post last month headlined “Developers Should Abandon Agile.”

    Further down in his post, Ron Jeffries made a clear distinction between Manifesto Agile — “the core ideas from the Manifesto, in which I still believe” — and its usurping follower, “Faux Agile” (or, in extreme cases, “Dark Agile”). Jeffries ultimately urged developers to learn useful development methods — including but not limited to Extreme Programming — that are true to the Manifesto’s original principles, while also detaching their thinking from particular methodologies with an Agile name.

  • Write fast apps with Pronghorn, a Java framework

    In 1973, Carl Hewitt had an idea inspired by quantum mechanics. He wanted to develop computing machines that were capable of parallel execution of tasks, communicating with each other seamlessly while containing their own local memory and processors.

    Born was the actor model, and with that, a very simple concept: Everything is an actor. This allows for some great benefits: Separating business and other logic is made vastly easier. Security is easily gained because each core component of your application is separate and independent. Prototyping is accelerated due to the nature of actors and their interconnectivity.

  • Systems Languages: An Experience Report

    Recently, there’s been a lot of turmoil in the systems language community. We have the Rust Evangelism Strikeforce nudging us towards rewriting everything in Rust. We have the C++17 folks who promise the safety and ease of use of modern programming languages with the performance and power of C. And then there’s a long tail of other “systems” programming languages, like Nim, Reason / OCaml, Crystal, Go, and Pony.

    Personally, I’m super excited we’re seeing some interesting work in the programming language theory space. This got me excited to learn more about what’s out there. A lot of the problems I solve are usually solved in C. Recently, Go has begun to encroach on C’s territory. I enjoy C and Go as much as the next person — They’re good languages for getting shit done. Often times, they leave a lot to be desired, and leave me envious of other programmers with tools like Flow, Typescript, and Dialyzer. Coming from developing in Erlang, even with its rudimentary type system, functional programming just came far more easily to me.

"Microsoft may find the developers it just paid so much to reach slipping from its grasp."

Filed under
Development
Microsoft
  • Mixed Reaction
  • After Github purchase, Microsoft remains a relatively untrusted open source player to some
  • What is GitHub?

    GitHub is now the de facto home of open-source software. But Microsoft’s acquisition reignited a debate over the platform’s centrality. Microsoft assures users the service is safe under its stewardship, but many are wary. When Mr Ballmer spoke of developers, he had a specific sort in mind: those using Microsoft’s tools to build projects for Microsoft products. He once called open-source Linux a “cancer”, which would spread uncontrollably. In a sense, his words proved prophetic: today, open-source software is everywhere, from websites to financial markets to self-driving cars. Under Mr Nadella’s leadership, Microsoft has embraced open-source development. In buying GitHub it hopes to gain the trust of developers it once spurned. But some wonder if the change is complete, or if Microsoft will use its newly bought dominance of open-source hosting to push its own products. Alternatives to GitHub—some themselves open-source—wait in the wings. If it is not careful, Microsoft may find the developers it just paid so much to reach slipping from its grasp.

Zapcc Caching C++ Compiler Open-Sourced

Filed under
Development

Remember the Zapcc compiler that focused on lightning fast compiler times? It's now been open-sourced.

Zapcc is the LLVM/Clang-based C++ compiler that we have been covering since 2015 when it began promoting itself as a much faster C++ compiler than Clang itself. Zapcc employs aggressive caching and other techniques in an effort to significantly speed up compile times while being a drop-in replacement to GCC or Clang. Last year Zapcc reached the v1.0 milestone, but we haven't heard much since until finding out this weekend that it's been open-sourced.

Read more

Syndicate content

More in Tux Machines

Servers: Kubernetes, Oracle's Cloudwashing and Embrace of ARM

  • Bloomberg Eschews Vendors For Direct Kubernetes Involvement
    Rather than use a managed Kubernetes service or employ an outsourced provider, Bloomberg has chosen to invest in deep Kubernetes expertise and keep the skills in-house. Like many enterprise organizations, Bloomberg originally went looking for an off-the-shelf approach before settling on the decision to get involved more deeply with the open source project directly. "We started looking at Kubernetes a little over two years ago," said Steven Bower, Data and Infrastructure Lead at Bloomberg. ... "It's a great execution environment for data science," says Bower. "The real Aha! moment for us was when we realized that not only does it have all these great base primitives like pods and replica sets, but you can also define your own primitives and custom controllers that use them."
  • Oracle is changing how it reports cloud revenues, what's it hiding? [iophk: "probably Microsoft doing this too" (cloudwashing)]
     

    In short: Oracle no longer reports specific revenue for cloud PaaS, IaaS and SaaS, instead bundling them all into one reporting line which it calls 'cloud services and licence support'. This line pulled in 60% of total revenue for the quarter at $6.8 billion, up 8% year-on-year, for what it's worth.

  • Announcing the general availability of Oracle Linux 7 for ARM
    Oracle is pleased to announce the general availability of Oracle Linux 7 for the ARM architecture.
  • Oracle Linux 7 Now Ready For ARM Servers
    While Red Hat officially launched RHEL7 for ARM servers last November, on Friday Oracle finally announced the general availability of their RHEL7-derived Oracle Linux 7 for ARM. Oracle Linux 7 Update 5 is available for ARM 64-bit (ARMv8 / AArch64), including with their new Unbreakable Enterprise Kernel Release 5 based on Linux 4.14.

Graphics: XWayland, Ozone-GBM, Freedreno, X.Org, RadeonSI

  • The Latest Batch Of XWayland / EGLStream Improvements Merged
    While the initial EGLStreams-based support for using the NVIDIA proprietary driver with XWayland was merged for the recent X.Org Server 1.20 release, the next xorg-server release will feature more improvements.
  • Making Use Of Chrome's Ozone-GBM Intel Graphics Support On The Linux Desktop
    Intel open-source developer Joone Hur has provided a guide about using the Chrome OS graphics stack on Intel-based Linux desktop systems. In particular, using the Chrome OS graphics stack on the Linux desktop is primarily about using the Ozone-GBM back-end to Ozone that allows for direct interaction with Intel DRM/KMS support and evdev for input.
  • Freedreno Reaches OpenGL ES 3.1 Support, Not Far From OpenGL 3.3
    The Freedreno Gallium3D driver now supports all extensions required by OpenGL ES 3.1 and is also quite close to supporting desktop OpenGL 3.3.
  • X.Org Is Looking For A North American Host For XDC2019
    If software development isn't your forte but are looking to help out a leading open-source project while logistics and hospitality are where you excel, the X.Org Foundation is soliciting bids for the XDC2019 conference. The X.Org Foundation is looking for proposals where in North America that the annual X.Org Developers' Conference should be hosted in 2019. This year it's being hosted in Spain and with the usual rotation it means that in 2019 they will jump back over the pond.
  • RadeonSI Compatibility Profile Is Close To OpenGL 4.4 Support
    It was just a few days ago that the OpenGL compatibility profile support in Mesa reached OpenGL 3.3 compliance for RadeonSI while now thanks to the latest batch of patches from one of the Valve Linux developers, it's soon going to hit OpenGL 4.4. Legendary open-source graphics driver contributor Timothy Arceri at Valve has posted 11 more patches for advancing RadeonSI's OpenGL compatibility profile support, the alternative context to the OpenGL core profile that allows mixing in deprecated OpenGL functionality. The GL compatibility profile mode is generally used by long-standing workstation software and also a small subset of Linux games.

Software, KDE and GNOME Leftovers

  • Drawing Feynman Diagrams for Fun and Profit with JaxoDraw
    When first developed, theoretical physics was mostly done either with pen and paper or on a chalkboard. Not much thought was given as to how you could render these drawings within a document being written on a computer. JaxoDraw is meant to help fill in that gap in document layout and provide the ability to render these drawings correctly and give output you can use in your own documents. JaxoDraw is written in Java, so it should run under almost any operating system. Unfortunately, it isn't likely to be in the package repository for most distributions, so you'll need to download it from the project's website. But, because it's packaged as a jar file, it's relatively easy to run.
  • Kodi v18 Leia - Alpha 2
    We have been relatively quiet for a while and several months have past since the first pre-release Alpha build. Today we present you the second official Alpha build in this pre-release trilogy. It is a continuation of the first one which was released beginning of March and contains our continous battle against the dark side that consist of bugs and usability problems.
  • Kodi 18 Alpha 2 Released With Stability & Usability Improvements + New Wayland Code
    It's been a few months since the Kodi 18 Alpha while available today is the second alpha release of this major update to the open-source, cross-platform HTPC software. Kodi developers have been spending the past few months working on a range of stability and usability enhancements to this software formerly known as XBMC. Kodi 18's latest additions include live TV viewing improvements, Windows support improvements, continued Android integration enhancements, re-introducing Wayland protocol support, video player enhancements, and more.
  • LibreOffice color selector as GTK widgets
    Here's what the native GTK widget mode for the color picker looks like at the moment under Wayland. A GtkMenuButton displaying a color preview of the currently selected color and a GtkPopover containing the color selection widgetry.
  • TenFourFox FPR8 available
    TenFourFox Feature Parity Release 8 final is now available (downloads, hashes, release notes). There are no changes from the beta except for outstanding security patches. As usual, it will go live Monday night, assuming no changes.
KDE:
  • Latte Dock, Beta 1 for v0.8 (v0.7.95)
    Hello everyone Latte Dock v0.7.95 which is the first beta of v0.8 is here. Latte v0.8 is a huge release and one of its main goals is to make the user feel with it very natural and comfortable. [...] Important for contributors: Beta1 will last 10 days, during these days translators will be able to report string improvements at bugs.kde.org. English isnt my native language, (proof reading / simpler expanations) might be necessary. When Beta2 is released around 3 to 5 July the string freeze will take place. Beta2 period will last 10 more days. So v0.8 is scheduled for 13 to 15 Jully. During all these days improvements and fixes can be landed through review process at kde phabricator.
  • Musing About Communities Size And Activity
    If you remember my previous installment I raised a couple more questions which I pointed out as tougher to address and I'd keep on the side for a while. Well, I decided to look at something simpler in the meantime... which unexpectedly took more time than expected. First I thought I'd try to reproduce the cohesion graph from Paul's Akademy 2014 talk... but it looks like we have a reproducibility issue on that one. However hard I try I don't manage to reproduce it. What I get is very different, so either there's a bug in my tentative script or there was a bug in Paul's script or somehow the input data is different. So one more mysteries to explore, I'm at a loss about what's going on with that one so far.
  • Second Post and First Weekly
    Because of the last one, I have been refactoring related code in the last month. The refactoring is generally completed, with KisDlgInternalColorSelector being the last dependency that haven’t been moved to enable KisPaletteView to be used everywhere needed.
GNOME:
  • Ubuntu Developers Working On Improvements To GNOME Software Store
    Canonical/Ubuntu developers are working on improvements to the GNOME Software "app store" and recently held an in-person design sprint along with one upstream GNOME developer for coming up with improvements. The Ubuntu developers working on improvements to GNOME Software were joined by prolific GNOME contributor Richard Hughes for brainstorming improvements to better GNOME Software over the months to come.
  • App Launching From GNOME Shell Now More Robust Under Memory Pressure & Faster
    Right now on systems with low amounts of available system memory, GNOME Shell can sometimes fail to launch applications due to an error over not being able to allocate memory in the fork process. With the latest rounds of Glib optimizations, this should no longer be the case.
  • GNOME Web Browser is Adding a Reader Mode
    An experimental reader mode will ship in the next version of GNOME Web, aka Epiphany. The feature is already available to try in the latest development builds of the GTK Webkit-based web browser, released this week as part of the GNOME 3.29.3 milestone.

today's howtos