Language Selection

English French German Italian Portuguese Spanish

Development

Programming/Development: HHVM 3.24, 'DevOps', RcppMsgPack

Filed under
Development
  • HHVM 3.24

    HHVM 3.24 is released! This release contains new features, bug fixes, performance improvements, and supporting work for future improvements. Packages have been published in the usual places.

  • HHVM 3.24 Released, The Final Supporting PHP5

    The Facebook crew responsible for the HHVM project as a speedy Hack/PHP language implementation is out with its 3.24 release.

    HHVM 3.24 is important as it's the project's last release focusing on PHP5 compatibility. Moving forward, PHP5 compatibility will no longer be a focus and components of it will likely be dropped. As well, Facebook will be focusing on their Hack language rather than PHP7. Now that PHP7 is much faster than PHP5 and all around in a much better state, Facebook developers are focusing on their Hack language rather than just being an alternative PHP implementation.

  • How to get into DevOps

    I've observed a sharp uptick of developers and systems administrators interested in "getting into DevOps" within the past year or so. This pattern makes sense: In an age in which a single developer can spin up a globally distributed infrastructure for an application with a few dollars and a few API calls, the gap between development and systems administration is closer than ever. Although I've seen plenty of blog posts and articles about cool DevOps tools and thoughts to think about, I've seen fewer content on pointers and suggestions for people looking to get into this work.

  • RcppMsgPack 0.2.1

    Am update of RcppMsgPack got onto CRAN today. It contains a number of enhancements Travers had been working on, as well as one thing CRAN asked us to do in making a suggested package optional.

    MessagePack itself is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it is faster and smaller. Small integers are encoded into a single byte, and typical short strings require only one extra byte in addition to the strings themselves. RcppMsgPack brings both the C++ headers of MessagePack as well as clever code (in both R and C++) Travers wrote to access MsgPack-encoded objects directly from R.

Debugging and Compiling

Filed under
Development
GNU
  • How debuggers really work

    A debugger is one of those pieces of software that most, if not every, developer uses at least once during their software engineering career, but how many of you know how they actually work? During my talk at linux.conf.au 2018 in Sydney, I will be talking about writing a debugger from scratch... in Rust!

    In this article, the terms debugger/tracer are interchangeably. "Tracee" refers to the process being traced by the tracer.

  • GCC 8.0 Moves On To Only Regression/Documentation Fixes

    The GCC 8 compiler is on to its last stage of development

Programming: Continuous Integration, JavaScript Frameworks, Visualizing Molecules with Python

Filed under
Development
  • Librsvg gets Continuous Integration

    One nice thing about gitlab.gnome.org is that we can now have Continuous Integration (CI) enabled for projects there. After every commit, the CI machinery can build the project, run the tests, and tell you if something goes wrong.

    Carlos Soriano posted a "tips of the week" mail to desktop-devel-list, and a link to how Nautilus implements CI in Gitlab. It turns out that it's reasonably easy to set up: you just create a .gitlab-ci.yml file in the toplevel of your project, and that has the configuration for what to run on every commit.

  • The Brutal Lifecycle of JavaScript Frameworks

    Using the Stack Overflow Trends tool and some of our internal traffic data, we decided to take a look at some of the more prominent UI frameworks: Angular, React, Vue.js, Backbone, Knockout, and Ember.
     

  • Visualizing Molecules with Python

    The PyMOL Wiki also hosts a script library, and it's a good place to look before you start down the road of creating your own script, as someone else may have run into the same issue and may have found a solution you can use. If nothing else, you may be able to find a script that could serve as a starting point for your own particular problem.

    When you're are done working with PyMOL, there are many different ways to end the session. If there is work you are likely to pick up again and continue with, click File→Save Session to save all of the work you just did, including all of the transitions applied to the view. If the changes you made were actually structural, rather than just superficial changes to the way the molecule looked, you can save those structural changes by selecting File→Save Molecule. This allows you to write out the new molecule to a chemical file format, such as a PDB file.

    If you need output for publications or presentations, a few different options are available. Clicking File→Save Image As allows you to select from saving a regular image file in PNG format or writing out data in a POVRay or VRML 3D file format. If you are doing a fancier presentation, you even can export a movie of your molecule by clicking File→Save Movie As. This lets you generate an MPEG movie file that can be used either on a web-based journal or within a slide deck for a presentation.

GCC 8.0 vs. LLVM Clang 6.0 On AMD EPYC

Filed under
Development
Graphics/Benchmarks

At the beginning of January I posted some early LLVM Clang 6.0 benchmarks on AMD EPYC while in this article is comparing the tentative Clang 6.0 performance to that of the in-development GCC 8.0. Both compilers are now into their feature freeze and this testing looked at the performance of generated binaries both for generic x86_64 as well as being tuned for AMD's Zen "znver1" microarchitecture.

Read more

Programming/Development: JavaScript, Go, Qt, and GitHub

Filed under
Development
  • Exploring Node.js with Mark Hinkle, Executive Director of the Node.js Foundation

    Even though JavaScript has been around for more than 20 years, it’s becoming the first-class citizen for developing enterprise applications. There is a huge developer community behind this technology.

    What makes things even more interesting is that, with Node.js, JavaScript can run on server, so developers can write applications that run end-to-end in JavaScript. Node.js is very well suited for service applications because server applications are increasingly becoming single function event-driven microservices.

  • As Go 2.0 Nears, AWS Launches Developer Preview of Go SDK 2.0
  • PackageKit-Qt Updated With Qt5 Port, Offline Updates & Performance Improvement

    The PackageKit-Qt project that provides Qt bindings for PackageKit has simultaneously released versions v0.10 and v1.0.

  • PackageKitQt 1.0.0 and 0.10.0 released!

    PackageKitQt is a Qt Library to interface with PackageKit

    It’s been a while that I don’t do a proper PackageKitQt release, mostly because I’m focusing on other projects, but PackageKit API itself isn’t evolving as fast as it was, so updating stuff is quite easy.

  • GitHub Knows

    I was reflecting the other day how useful it would be if GitHub, in addition to the lists it has now like Trending and Explore, could also provide me a better view into which projects a) need help; and more, Cool can accept that help when it arrives. Lots of people responded, and I don't think I'm alone in wanting better ways to find things in GitHub.

    Lots of GitHub users might not care about this, since you work on what you work on already, and finding even more work to do is the last thing on your mind. For me, my interest stems from the fact that I constantly need to find good projects, bugs, and communities for undergrads wanting to learn how to do open source, since this is what I teach. Doing it well is an unsolved problem, since what works for one set of students automatically disqualifies the next set: you can't repeat your success, since closed bugs (hopefully!) don't re-open.

    And because I write about this stuff, I hear from lots of students that I don't teach, students from all over the world who, like my own, are struggling to find a way in, a foothold, a path to get started. It's a hard problem, made harder by the size of the group we're discussing. GitHub's published numbers from 2017 indicate that there are over 500K students using its services, and those are just the ones who have self-identified as such--I'm sure it's much higher.

OSS and Programming Leftovers

Filed under
Development
OSS
  • Telecommunications Infrastructure Project looks to apply open source technologies

    The Telecommunications Infrastructure Project is looking to apply open source technologies to next generation fixed and mobile networks.

    The Telecom Infra Project (TIP), conceived by Facebook to light a fire under the traditional telecommunications infrastructure market, continues to expand into new areas.

    Launched at the 2016 Mobile World Congress in Barcelona, the highly disruptive project takes an open ecosystem approach to foster network innovation and improve the cost efficiencies of both equipment suppliers and network operators.“We know from our experience with the Open Compute Project that the best way to accelerate the pace of innovation is for companies to collaborate and work in the open. We helped to found TIP with the same goal - bringing different parties together and strengthen and improve efficiencies in the telecom industry,” according to Aaron Bernstein, Director of Connectivity Ecosystem Programmmes at Facebook.

  • Introducing Ad Inspector: Our open-source ad inspection tool
  • AI and machine learning bias has dangerous implications

    Algorithms are everywhere in our world, and so is bias. From social media news feeds to streaming service recommendations to online shopping, computer algorithms—specifically, machine learning algorithms—have permeated our day-to-day world. As for bias, we need only examine the 2016 American election to understand how deeply—both implicitly and explicitly—it permeates our society as well.

    What’s often overlooked, however, is the intersection between these two: bias in computer algorithms themselves.

    Contrary to what many of us might think, technology is not objective. AI algorithms and their decision-making processes are directly shaped by those who build them—what code they write, what data they use to “train” the machine learning models, and how they stress-test the models after they’re finished. This means that the programmers’ values, biases, and human flaws are reflected in the software. If I fed an image-recognition algorithm the faces of only white researchers in my lab, for instance, it wouldn’t recognize non-white faces as human. Such a conclusion isn’t the result of a “stupid” or “unsophisticated” AI, but to a bias in training data: a lack of diverse faces. This has dangerous consequences.

  • Pineapple Fund Supports Conservancy

    Software Freedom Conservancy thanks the Pineapple Fund and its anonymous backer for its recent donation of over 18 Bitcoin (approximately $250,000). The Pineapple Fund is run by an early Bitcoin adopter to give about $86 million worth of Bitcoin to various charities. Shortly after the fund’s announcement earlier this month, volunteers and Conservancy staff members applied for its support. That application was granted this week.

  • Top Programming Languages That Largest Companies Are Hiring Developers For In 2018

    Learning a programming language involves some important decisions on the part of a professional. Gone are the days when one mastered a single popular programming language and it granted job security. Highlighting these limitations of reliance on a single programming language, Coding Dojo coding school has shared the results of an interesting study.

  • Rust in 2018

    I think 2017 was a great year for Rust. Near the beginning of the year, after custom derive and a bunch of things stabilized, I had a strong feeling that Rust was “complete”. Not really “finished”, there’s still tons of stuff to improve, but this was the first time stable Rust was the language I wanted it to be, and was something I could recommend for most kinds of work without reservations.

    I think this is a good signal to wind down the frightening pace of new features Rust has been getting. And that happened! We had the impl period, which took some time to focus on getting things done before proposing new things. And Rust is feeling more polished than ever.

Programming/Development: QC, Rust, GCC

Filed under
Development
  • [Older] Quantum Computers Barely Exist—Here’s Why We’re Writing Languages for Them Anyway

        

    Quantum computers are still extremely rudimentary, and largely remain intriguing playthings in a few advanced research labs. That hasn’t deterred people from developing new programming languages for them.

  • This Week in Rust 216
  • #Rust2018

    As part of #Rust2018, I thought I would try to writeup my own (current) perspective. I’ll try to keep things brief.

    First and foremost, I think that this year we have to finish what we started and get the “Rust 2018” release out the door. We did good work in 2017: now we have to make sure the world knows it and can use it. This primarily means we have to do stabilization work, both for the recent features added in 2017 as well as some, ahem, longer-running topics, like SIMD. It also means keeping up our focus on tooling, like IDE support, rustfmt, and debugger integration.

  • GCC 8.0.0 Status Report (2018-01-08), Stage 3 ends Jan 14th

    GCC 8 is in development stage 3 currently but that is going to end at the end of Sunday, Jan 14th after which we go into regression and documentation fixes mode similar as if trunk was a release branch.

  • GCC 8 Will Enter Its Last Stage Of Development Next Week

    The GNU Compiler Collection 8 (GCC 8) is currently in "stage three" development whereby general bug fixing can still happen along with allowing new ports to be added. But that is changing next week as it enters its final stage of development prior to release.

    SUSE's Richard Biener announced that on 14 January, they will be going into their strict "regression and documentation fixes mode similar as if trunk was a release branch."

Programming: Forking Bazaar, Qt 5.9 on FreeBSD, Netlify Reaches 1.0

Filed under
Development
  • Breezy: Forking Bazaar

    A couple of months ago, Martin and I announced a friendly fork of Bazaar, named Breezy.

    It's been 5 years since I wrote a Bazaar retrospective and around 6 since I seriously contributed to the Bazaar codebase.

  • Bazaar Version Control System Forked As Breezy

    While the developers acknowledge modern open-source projects should be using Git as their distributed revision control system, if you find yourself still using GNU Bazaar there is now a fork known as Breezy.

    With Canonical not doing much to push Bazaar the past several years, Breezy has been quietly in development the past several months by some independent developers. Breezy is cleaning up Bazaar's bugs as well as porting the code-base from Python 2 to Python 3, which is important with Py2 nearing its end-of-life. This is more work than Canonical developers have done the past few years on Bazaar with many of the company's projects now having switched over to Git.

  • Qt 5.9 on FreeBSD

    Tobias and Raphael have spent the past month or so hammering on the Qt 5.9 branch, which has (finally!) landed in the official FreeBSD ports tree. This brings FreeBSD back up-to-date with current Qt releases and, more importantly, up-to-date with the Qt release KDE software is increasingly expecting. With Qt 5.9, the Elisa music player works, for instance (where it has run-time errors with Qt 5.7, even if it compiles). The KDE-FreeBSD CI system has had Qt 5.9 for some time already, but that was hand-compiled and jimmied into the system, rather than being a “proper” ports build.

  • Netlify 1.0 Launched, More Open Source News

    On Dec. 7, 2017, Netlify announced its open source Netlify CMS project had hit version 1.0, boasting a fully-redesigned UI, a new media library and identity management.

    Mathias Biilmann, CEO of Netlify, told CMSWire Netlify 1.0, “provides an open source alternative to the rising number of proprietary headless CMS offerings that enable how developers actually work today — in Git and increasingly decoupling the front and back end.”

Latest of LWN (Paywall Expired)

Filed under
Development
GNU
Linux
  • Python 3, ASCII, and UTF-8

    The dreaded UnicodeDecodeError exception is one of the signature "features" of Python 3. It is raised when the language encounters a byte sequence that it cannot decode into a string; strictly treating strings differently from arrays of byte values was something that came with Python 3. Two Python Enhancement Proposals (PEPs) bound for Python 3.7 look toward reducing those errors (and the related UnicodeEncodeError) for environments where they are prevalent—and often unexpected.

    Two related problems are being addressed by PEP 538 ("Coercing the legacy C locale to a UTF-8 based locale") and PEP 540 ("Add a new UTF-8 Mode"). The problems stem from the fact that locales are often incorrectly specified and that the default locale (the "POSIX" or "C" locale) specifies an ASCII encoding, which is often not what users actually want. Over time, more and more programs and developers are using UTF-8 and are expecting things to "just work".

  • Shrinking the kernel with link-time garbage collection

    One of the keys to fitting the Linux kernel into a small system is to remove any code that is not needed. The kernel's configuration system allows that to be done on a large scale, but it still results in the building of a kernel containing many smaller chunks of unused code and data. With a bit of work, though, the compiler and linker can be made to work together to garbage-collect much of that unused code and recover the wasted space for more important uses.
    This is the first article of a series discussing various methods of reducing the si

  • The current state of kernel page-table isolation

    At the end of October, the KAISER patch set was unveiled; this work separates the page tables used by the kernel from those belonging to user space in an attempt to address x86 processor bugs that can disclose the layout of the kernel to an attacker. Those patches have seen significant work in the weeks since their debut, but they appear to be approaching a final state. It seems like an appropriate time for another look.
    This work has since been renamed to "kernel page-table isolation" or KPTI, but the objective remains the same: split the page tables, which are currently shared between user and kernel space, into two sets of tables, one for each side. This is a fundamental change to how the kernel's memory management works and is the sort of thing that one would ordinarily expect to see debated for years, especially given its associated performance impact. KPTI remains on the fast track, though. A set of preparatory patches was merged into the mainline after the 4.15-rc4 release — when only important fixes would ordinarily be allowed — and the rest seems destined for the 4.16 merge window. Many of the core kernel developers have clearly put a lot of time into this work, and Linus Torvalds is expecting it to be backported to the long-term stable kernels.

    KPTI, in other words, has all the markings of a security patch being readied under pressure from a deadline. Just in case there are any smug ARM-based readers out there, it's worth noting that there is an equivalent patch set for arm64 in the works.

  • Containers without Docker at Red Hat

    The Docker (now Moby) project has done a lot to popularize containers in recent years. Along the way, though, it has generated concerns about its concentration of functionality into a single, monolithic system under the control of a single daemon running with root privileges: dockerd. Those concerns were reflected in a talk by Dan Walsh, head of the container team at Red Hat, at KubeCon + CloudNativeCon. Walsh spoke about the work the container team is doing to replace Docker with a set of smaller, interoperable components. His rallying cry is "no big fat daemons" as he finds them to be contrary to the venerated Unix philosophy.

  • Demystifying container runtimes

    As we briefly mentioned in our overview article about KubeCon + CloudNativeCon, there are multiple container "runtimes", which are programs that can create and execute containers that are typically fetched from online images. That space is slowly reaching maturity both in terms of standards and implementation: Docker's containerd 1.0 was released during KubeCon, CRI-O 1.0 was released a few months ago, and rkt is also still in the game. With all of those runtimes, it may be a confusing time for those looking at deploying their own container-based system or Kubernetes cluster from scratch. This article will try to explain what container runtimes are, what they do, how they compare with each other, and how to choose the right one. It also provides a primer on container specifications and standards.

  • HarfBuzz brings professional typography to the desktop

    By their nature, low-level libraries go mostly unnoticed by users and even some programmers. Usually, they are only noticed when something goes wrong. However, HarfBuzz deserves to be an exception. Not only does the adoption of HarfBuzz mean that free software's ability to convert Unicode characters to a font's specific glyphs is as advanced as any proprietary equivalent, but its increasing use means that professional typography can now be done from the Linux desktop as easily as at a print shop.

    "HarfBuzz" is a transliteration of the Persian for "open type." Partly, the name reflects that it is designed for use with OpenType, the dominant format for font files. Equally, though, it reflects the fact that the library's beginnings lie in the wish of Behdad Esfahbod, HarfBuzz's lead developer, to render Persian texts correctly on a computer.

    "I grew up in a print shop," Esfahbod explained during a telephone interview. "My father was a printer, and his father was a printer. When I was nine, they got a PC, so my brother and I started learning programming on it." In university, Esfahbod tried to add support for Unicode, the industry standard for encoding text, to Microsoft Explorer 5. "We wanted to support Persian on the web," he said. "But the rendering was so bad, and we couldn't fix that, so we started hacking on Mozilla, which back then was Netscape."

    Esfahbod's early interest in rendering Persian was the start of a fifteen-year effort to bring professional typography to every Unicode-supported script (writing system). It was an effort that led through working on the GNOME desktop for Red Hat to working on Firefox development at Mozilla and Chrome development at Google, with Esfahbod always moving on amiably to wherever he could devote the most time to perfecting HarfBuzz. The first general release was reached in 2015, and Esfahbod continues to work on related font technologies to this day.

Programming: MicroProfile, GCC,GitHub, C++

Filed under
Development
  • An introduction to Eclipse MicroProfile

    Enterprise Java has been defined by two players: Spring on one side and Java Enterprise Edition on the other. The Java EE set of specifications was developed in the Java Community Process under the stewardship of Oracle. The current Java EE 8 was released in September 2017; the prior version came out in 2013.

    Between those releases, the industry saw a lot of change, most notably containers, the ubiquitous use of JSON, HTTP/2, and microservices architectures. Unfortunately there was not much related activity around Java EE; but users of the many Java EE-compliant servers demanded adoption of those new technologies and paradigms.

  • ARM Preps ARMv8.4-A Support For GCC Compiler

    ARM Holdings has submitted patches implementing support for the ARMv8.4-A instruction set update for the GNU Compiler Collection (GCC).

    ARMv8.4-A adds a new Secure EL2 state, more cryptographic hashing algorithms are supported by the instruction set, support for Activity Monitors, improved virtualization support, and Memory Partitioning and Monitoring (MPAM) capabilities.

  • GitHub Issue Notifications on Open Source Projects

    Many Open Source Project maintainers suffer from a significant overdose of GitHub notifications. Many have turned them off completely for that.

    We (GitMate.io) are constantly researching about how people handle a flood of incoming issues in our aim to improve the situation by applying modern technologies to the problem. (Oh and we love free software!)

  • Computer Science Pioneer Bjarne Stroustrup to Receive the 2018 Charles Stark Draper Prize for Engineering

    C++’s combination of expressiveness and efficiency surpasses that of other programming languages, making it a popular choice for complex tasks with resource constraints such as game engines, database implementations, control systems, financial services, graphics, networking, and web servers. C++ is now used by approximately 4.5 million programmers around the world and has revolutionized numerous applications — from web services like Google and Facebook to medical systems such as CAT scanners and blood analyses.

Syndicate content