Language Selection

English French German Italian Portuguese Spanish

Development

Programming: WebRender, Healthcare Design Studio GoInvo, PHP Boost and Google Cloud Platform (GCP)

Filed under
Development
  • Mozilla GFX: WebRender newsletter #30

    Hi! This is the 30th issue of WebRender’s most famous newsletter. At the top of each newsletter I try to dedicate a few paragraphs to some historical/technical details of the project. Today I’ll write about blob images.

    WebRender currently doesn’t support the full set of graphics primitives required to render all web pages. The focus so far has been on doing a good job of rendering the most common elements and providing a fall-back for the rest. We call this fall-back mechanism “blob images”.

    The general idea is that when we encounter unsupported primitives during displaylist building we create an image object and instead of backing it with pixel data or a texture handle, we assign it a serialized list of drawing commands (the blob). For WebRender, blobs are just opaque buffers of bytes and a handler object is provided by the embedder (Gecko in our case) to turn this opaque buffer into actual pixels that can be used as regular images by the rest of the rendering pipeline.

  • Healthcare Design Studio GoInvo Releases Open Source Research on Loneliness [Ed: Very odd if not 'creative' use of the term Open Source]
  • PHP Lands Preload Feature, Boosting Performance In Some Cases 30~50%

    PHP developers unanimously approved and already merged support for the new "preloading" concept for this web server language. PHP preloading basically allows loading PHP code that persists as long as the web server is running and that code will always be ready for each subsequent web request, which in some cases will dramatically speed-up the PHP performance on web servers.

    While PHP has long supported caching to avoid PHP code recompilation on each new web request, with each request PHP has still had to check to see if any of the source file(s) were modified, re-link class dependencies, and similar work. PHP preloading allows for given functions/classes to be "preloaded" that will survive as long as the web server is active. It effectively allows loading of functions or entire/partial frameworks that will then be present for each new web request just as if it were a built-in function.

  • Google Announces a Managed Cron Service: Google Cloud Scheduler

    Google announced a new Service on the Google Cloud Platform (GCP) - Cloud Scheduler, a fully managed cron job service that allows any application to invoke batch, big data and cloud infrastructure operations. The service is currently available in beta.

    With Google Cloud Scheduler customers can use the cron service with no need to manage the underlying infrastructure. There is also no need to manually intervene in the event of transient failure, as the services retries failed jobs. Furthermore, customers will only pay for the operations they run -- GCP takes care of all resource provisioning, replication and scaling required to operate Cloud Scheduler. Also, customers can, according to Vinod Ramachandran, product manager at Google, benefit from:

A "joke" in the glibc manual

Filed under
Development
GNU

A "joke" in the glibc manual—targeting a topic that is, at best, sensitive—has come up for discussion on the glibc-alpha mailing list again. When we looked at the controversy in May, Richard Stallman had put his foot down and a patch removing the joke—though opinions of its amusement value vary—was reverted. Shortly after that article was published, a "cool down period" was requested (and honored), but that time has expired. Other developments in the GNU project have given some reason to believe that the time is ripe to finally purge the joke, but that may not work out any better than the last attempt.

The joke in question refers to a US government "censorship rule" from over two decades ago regarding sharing of information about abortion. It is attached to documentation of the abort() call in glibc and the text of it can be seen in the patch to remove it. One might think that an age-old US-centric joke would be a good candidate for removal regardless of its subject matter. That it touches on a topic that is emotionally fraught for many might also make it unwelcoming—thus unwelcome in documentation. But, according to Stallman, that's not so clear cut.

[...]

When pressed for more information about what these larger issues are, as O'Donell did, Stallman counseled patience. He did not offer any more information than that; perhaps the discussion has moved to a private mailing list or the like.

For many, including me, it is a little hard to understand why there is any opposition to removing the joke at all. It is clearly out of place, not particularly funny, and doesn't really push the GNU anti-censorship philosophy forward in any real way even if you grant that anti-censorship is a goal of the project (which some do not). There are, of course, those who oppose removing it because they are opposed to "political correctness" and do not see how it could be "unwelcoming", but even they might concede that it is an oddity that is poked into a back corner of a entirely unrelated document. And it is not hard for many to see that tying the topic of abortion to a C function might be upsetting to some; why waste a bunch of project time defending it when it has effectively no impact in the direction that Stallman wants, while putting off some (possibly small) percentage of glibc manual readers?

Read more

GNOME Development Updates From Carlos Garnacho and Robert Ancell

Filed under
Development
GNOME
  • Carlos Garnacho: On the track for 3.32

    It happens sneakily, but there’s more things going on in the Tracker front than the occasional fallout. Yesterday 2.2.0-alpha1 was released, containing some notable changes.

    On and off during the last year, I’ve been working on a massive rework of the SPARQL parser. The current parser was fairly solid, but hard to extend for some of the syntax in the SPARQL 1.1 spec. After multiple attempts and failures at implementing property paths, I convinced myself this was the way forward.

  • Robert Ancell: Counting Code in GNOME Settings

    I've been spending a bit of time recently working on GNOME Settings. One part of this has been bringing some of the older panel code up to modern standards, one of which is making use of GtkBuilder templates.

    I wondered if any of these changes would show in the stats, so I wrote a program to analyse each branch in the git repository and break down the code between C and GtkBuilder.

OpenJDK (Java Development Kit) and Java Community Process (JCP)

Filed under
Development
  • Amazon Web Services promises to support OpenJDK through 2023 with release of internal tool as new open source project

    Developers using the popular OpenJDK (Java Development Kit) software tool can breathe a little easier Wednesday after Amazon Web Services announced it would support the tool with bug fixes and enhancements for the next several years with the release of an internally developed implementation of OpenJDK known as Amazon Coretto.

    Announced at Devoxx in Europe Wednesday, Coretto is an open-source distribution of OpenJDK developed for internal use at Amazon to manage Java applications. While Java is widely used to build enterprise applications, the future of OpenJDK has been in doubt thanks to Oracle’s decision to end support for the free version of OpenJDK as of this coming January.

  • One More Reaction to IBM's Acquisition of Red Hat

    Now that the dust has settled around the explosive announcement that IBM will be acquiring open source software provider and longtime Java Community Process (JCP) leader Red Hat, I wanted to share the reaction to the deal of one of the keenest (and most fearless) observers of the Java universe.

Programming: Compilers and Perl

Filed under
Development
  • ARMv8.5 Support Lands In GCC Compiler With Latest Spectre Protection

    Landing just in time with the GCC 9 branching being imminent is ARMv8.5-A support in the GNU Compiler Collection's ARM64/AArch64 back-end.

    This ARMv8.5-A support is an incremental upgrade over the existing ARMv8 support. The ARMv8.5 additions are similar to what we already saw land for LLVM / Clang.

  • Comparing The Quality Of Debug Information Produced By Clang And Gcc

    I've had an intuition that clang produces generally worse debuginfo than gcc for optimized C++ code. It seems that clang builds have more variables "optimized out" — i.e. when stopped inside a function where a variable is in scope, the compiler's generated debuginfo does not describe the value of the variable. This makes debuggers less effective, so I've attempted some qualitative analysis of the issue.

    I chose to measure, for each parameter and local variable, the range of instruction bytes within its function over which the debuginfo can produce a value for this variable, and also the range of instruction bytes over which the debuginfo says the variable is in scope (i.e. the number of instruction bytes in the enclosing lexical block or function). I add those up over all variables, and compute the ratio of variable-defined-bytes to variable-in-scope-bytes. The higher this "definition coverage" ratio, the better.

  • Quo vadis, Perl?

    By losing the sight of the strategies in play, I feel the discussion degenerated very early in personal accusations that certainly leave scars while not resulting in even a hint of progress. We are not unique in this situation, see the recent example of the toll it took on Guido van Rossum. I can only sympathize with Larry is feeling these days.

4 tips for learning Golang

Filed under
Development
Google

My university's freshman programming class was taught using VAX assembler. In data structures class, we used Pascal—loaded via diskette on tired, old PCs in the library's computer center. In one upper-level course, I had a professor that loved to show all examples in ADA. I learned a bit of C via playing with various Unix utilities' source code on our Sun workstations. At IBM we used C—and some x86 assembler—for the OS/2 source code, and we heavily used C++'s object-oriented features for a joint project with Apple. I learned shell scripting soon after, starting with csh, but moving to Bash after finding Linux in the mid-'90s. I was thrust into learning m4 (arguably more of a macro-processor than a programming language) while working on the just-in-time (JIT) compiler in IBM's custom JVM code when porting it to Linux in the late '90s.

Read more

C language update puts backward compatibility first

Filed under
Development

A working draft of the standard for the next revision of the C programming language, referred to for now as “C2x,” is now available for review.

Most of the changes thus far approved for C2x don’t involve adding new features, but instead clarify and refine how C should behave in different implementations and with regard to its bigger brother C++. The emphasis on refinement is in line with how previous revisions to C—C11 and most recently C17—have unfolded.

Read more

Programming: C++, Clang, WebKitGTK+

Filed under
Development
  • Compile any C++ program 10× faster with this one weird trick!

    The main reason that C++ compiles slowly has to do with headers. Merely including a few headers in the standard library brings in tens or hundreds of thousands of lines of code that must be parsed, verified, converted to an AST and codegenerated in every translation unit. This is extremely wasteful especially given that most of that work is not used but is instead thrown away.

    With an Unity build every #include is processed only once regardless of how many times it is used in the component source files.

    Basically this amounts to a caching problem, which is one of the two really hard problems in computer science in addition to naming things and off by one errors.

  • Future Developments in clang-query

    I am not aware of any similar series existing which covers creation of clang-tidy checks, and use of clang-query to inspect the Clang AST and assist in the construction of AST Matcher expressions. I hope the series is useful to anyone attempting to write clang-tidy checks. Several people have reported to me that they have previously tried and failed to create clang-tidy extensions, due to various issues, including lack of information tying it all together.

    Other issues with clang-tidy include the fact that it relies on the “mental model” a compiler has of C++ source code, which might differ from the “mental model” of regular C++ developers. The compiler needs to have a very exact representation of the code, and needs to have a consistent design for the class hierarchy representing each standard-required feature. This leads to many classes and class hierarchies, and a difficulty in discovering what is relevant to a particular problem to be solved.

  • The GNOME (and WebKitGTK+) Networking Stack

    One guess which of those we’re going to be talking about in this post. Yeah, of course, libsoup! If you’re not familiar with libsoup, it’s the GNOME HTTP library. Why is it called libsoup? Because before it was an HTTP library, it was a SOAP library. And apparently somebody thought that when Mexican people say “soap,” it often sounds like “soup,” and also thought that this was somehow both funny and a good basis for naming a software library. You can’t make this stuff up.

    [...]

    Haha no, it uses a dynamically-loadable extension point system to allow you to pick your choice of OpenSSL or GnuTLS! (Support for NSS was started but never finished.) This is OK because embedded systems vendors don’t use GPL applications and have no problems with OpenSSL, while desktop Linux users don’t produce tivoized embedded systems and have no problems with LGPLv3. So if you’re using desktop Linux and point WebKitGTK+ at an HTTPS address, then GLib is going to load a GIO extension point called glib-networking, which implements all of GIO’s TLS APIs — notably GTlsConnection and GTlsCertificate — using GnuTLS. But if you’re building an embedded system, you simply don’t build or install glib-networking, and instead build a different GIO extension point called glib-openssl, and libsoup will create GTlsConnection and GTlsCertificate objects based on OpenSSL instead. Nice! And if you’re Centricular and you’re building GStreamer for Windows, you can use yet another GIO extension point, glib-schannel, for your native Windows TLS goodness, all hidden behind GTlsConnection so that GStreamer (or whatever application you’re writing) doesn’t have to know about SChannel or OpenSSL or GnuTLS or any of that sad complexity.

Sourcegraph: An Open-Source Source Code Search Engine

Filed under
Development

In a recent announcement, a Code Search and Navigation tool named Sourcegraph was declared Open Source. As it makes navigating through Source Code much more convenient, the tool itself going Open Source is definitely a big plus for developers!

Read more

Programming: py3status, Debian LTS Work, RcppArmadillo and Programmers

Filed under
Development
  • py3status v3.14

    I’m happy to announce this release as it contains some very interesting developments in the project.

  • Holger Levsen: 20181110-lts-201810

    Today while writing this I also noticed that https://lists.debian.org/debian-lts-announce/2018/10/threads.html currently misses DLAs 1532 until DLA 1541, which I have just reported to the #debian-lists IRC channel and as #913426. Update: as that bug was closed quickly, I guess instead we need to focus on #859123 and #859122, so that DLAs are accessable to everyone in future.

  • RcppArmadillo 0.9.200.4.0

    A new RcppArmadillo release, now at 0.9.200.4.0, based on the new Armadillo release 9.200.4 from earlier this week, is now on CRAN, and should get to Debian very soon.

    Armadillo is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 532 (or 31 more since just the last release!) other packages on CRAN.

  • Just a techie? – Techies, Devs, Boffins and Geeks

    What’s the solution? We could start by giving up on the dream of developers all being equal in ability, who can then be traded as commodities. Developers have different strengths - some are fantastic systems thinkers, some are drawn towards architecture, and others possess a laser focus on delivery. Some are better at communicating, whilst some just want to think deeply about the problem and to ponder every edge case.

    If developers are recognised as individuals and emboldened with trust and freedom, then they will play to their strengths to give an overall multiplying effect. We can embrace individualism rather than chasing it away, by celebrating and raising up the role of the software developer.

    I want my boffins and techies to be seen as surgeons. They know what they’re doing and you’re in safe hands. We’ve got junior doctors in there also to learn, but the junior doesn’t become the senior overnight. When we’ve got top surgeons the results will speak for themselves, and the good news is that the top surgeons aren’t required in such large quantities. This can make everyone happy.

Syndicate content

More in Tux Machines

Games: Metropolisim, Monster Prom, Kingdom Two Crowns and Lots More

  • Metropolisim aims to be the deepest city-building simulation experience ever, will have Linux support
    Metropolisim from developer Halfway Decent Games is releasing next year, with a pretty bold aim to be the deepest city-building simulation experience ever.
  • Monster Prom, the dating sim that won me over is now available on GOG
    Visual novels and dating sims aren't something I'm usually into, however Monster Prom is actually funny and worth playing and it's now available on GOG. I know we have a number of GOG fans here, so hopefully this will be interesting for you. As always, we try to treat all stores equally with release info.
  • Kingdom Two Crowns will be coming to Linux after all with the Quality of Life update
    Kingdom Two Crowns, the third in the Kingdom series released recently for Windows and Mac. It looked like we weren't getting it, but it's now confirmed to be coming. In their new roadmap post on Reddit and Steam, under the "QoL #01 Update" (Quality of Life Update) they noted that they will add "Add SteamOS (Linux) Support". This update is due out sometime early next year. This is really nice news, it's good to know they didn't give up on supporting Linux after all.
  • Steam Link for the Raspberry Pi is now officially available
    After a rather short beta period, the Steam Link application for the Raspberry Pi is now officially out.
  • Valve in it for the 'long haul' with Artifact, first update out and a progression system due soon
    Artifact, the big new card game from Valve isn't doing so well but Valve won't be giving up any time soon. The first major update is out, with a progression system due soon. At release, it had around sixty thousand people playing and that very quickly dropped down hard. Harder than I expected, a lot worse than Valve probably thought it would too.
  • Bearded Giant Games open their own store with a 'Linux First Initiative'
    Bearded Giant Games, developer of Ebony Spire Heresy have announced their new online store along with a 'Linux First Initiative'. I know what you're thinking already "not another store", but fear not. For now, it's mainly going to be a place for them to sell their games directly. Speaking about it in a blog post, they mentioned how they hate having to check over multiple forums, channels, emails and so on to stay up to date and they wish "to spend more time giving love to my projects instead of updating 4 different distribution channels, translating pages, writing different press releases and making separate builds"—can't argue against that.
  • The Forgotten Sanctum, the final DLC for Pillars of Eternity II is out along with a patch
    Pillars of Eternity II: Deadfire expansions come to a close with the release of The Forgotten Sanctum along with a major update now out.
  • Pre-order Meeple Station for instant beta access, what the developers say is like Rimworld in space
    Meeple Station, the space station building sim that the developers say is like Rimworld in space can now be pre-ordered with instant beta access. While we don't like the idea of pre-orders, getting access to the beta right away is a decent way to do it. Sadly, their Kickstarter campaign actually failed which I didn't notice. Making sure that wasn't the end of it, the developer Vox Games decided to go the Early Access route. They weren't left out in the cold of space though, as they also recently announced that Indie DB will be publishing their game. Under the label of Modularity, this will be the first title published by Indie DB.
  • Heroes of Newerth drops support for Linux and Mac
    Heroes of Newerth, the MOBA originally from S2 Games which is now handled by Frostburn Studios has dropped Linux and Mac support. [...] I'll be honest here, I couldn't care less about it personally. The last time i tried it, it was the single most toxic experience I've ever had in an online game. I've played a lot of online games and even so it was still at a level I had not seen before. I tried to go back to it a few times, never with a happy ending. Still, sad for any remaining Linux (and Mac) fans of the game. Looking over some statistics, it's not popular with viewers either. Around 180 on Twitch compared with nearly 100K for League of Legends and over 50K for Dota 2.
  • Unity 2018.3 With HDR Render Pipeline Preview, Updated PhysX & More
    Unity Tech is ending out the year with their Unity 2018.3 game engine update that brings a number of new features and improvements to its many supported platforms.

Wine 4.0 Release Candidate 2

  • Wine Announcement
    The Wine development release 4.0-rc2 is now available. What's new in this release (see below for details): - Bug fixes only, we are in code freeze.
  • Just when you think you can stop drinking, Wine 4.0 has another release candidate available
    Just before the weekend hits you in the face like a bad hangover when you realise it's Monday already, there's another bottle of Wine ready for you. Of course, we're not talking about the tasty liquid! Put down the glass, it's the other kind of Wine. The one used to run your fancy Windows programs and games on Linux. Doing their usual thing, developer Alexandre Julliard announced that the Wine 4.0 Release Candidate 2 is officially out the door today. While this release is nothing spectacular it is an important one, the more bugs they're able to tick off the list the better the 4.0 release will be for more people to use it.

Android Leftovers

A Look At The Clear Linux Performance Over The Course Of 2018

With the end of the year quickly approaching, it's time for our annual look at how the Linux performance has evolved over the past year from graphics drivers to distributions. This year was a particularly volatile year for Linux performance due to Spectre and Meltdown mitigations, some of which have at least partially recovered thanks to continued optimizations landing in subsequent kernel releases. But on the plus side, new releases of Python, PHP, GCC 8, and other new software releases have helped out the performance. For kicking off our year-end benchmark comparisons, first up is a look at how Intel's performance-optimized Clear Linux distribution evolved this year. For getting a look at the performance, on four different systems (two Xeon boxes, a Core i5, and Core i7 systems), the performance was compared from Clear Linux at the end of 2017 to the current rolling-release state as of this week. Read more