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