Language Selection

English French German Italian Portuguese Spanish

Development

GitHub alternative strives to be all open source, only open source

Filed under
Development

A new software service for hosting and managing open source projects, Sr.ht, aims to be an entirely open source alternative to existing services like GitHub, GitLab, and Bitbucket, recreating many of their features.

Created by Drew DeVault and written in a mixture of Python and Go, Sr.ht is now available for public alpha testing by developers. Users can create an account with the hosted version provided by DeVault, or set up the exact same code on cloud or on-prem hardware.

Read more

Programming: Java EE, Rust, JavaScript, RcppGetconf and More

Filed under
Development
  • Free Online Java EE Development Course From Red Hat Available Now

    The Red Hat Training team is pleased to announce the release of Fundamentals of Java EE Development. This free training is hosted by our partner edX. edX is an open online course provider that now hosts three Red Hat courses, including Fundamentals of Red Hat Enterprise Linux and Fundamentals of Containers, Kubernetes, and Red Hat OpenShift.

    Enterprise Java (Java EE is now known as Jakarta EE) is one of the most in-demand and marketable programming platforms. With Fundamentals of Java EE Development, students learn the foundational skills needed to develop modern applications. Serving as an introduction to enterprise Java development using Red Hat Developer Studio and Red Hat JBoss Enterprise Application Platform, this course builds on students’ Java SE skills to teach the basic concepts behind more advanced topics such as microservices and cloud-native applications.

  • New Rust Course - Building Reuseable Code with Rust

    This course is about the Rust programming language, but it’s not those general introductory course on basic Rust syntax. This course focus on the code reuse aspect of the Rust language. So we won’t be touch every language feature, but we’ll help you understand how a selected set of features will help you achieve code reuse.

    [...]

    snippet is not enough. What comes next naturally is to define a clear interface, or internal API between the modules (in a general sense, not the Rust mod). This is when traits comes in handy. Traits help you define and enforce interfaces. We’ll also discuss the performance impact on static dispatch vs. dynamic dispatch by using generics and trait object.

    Finally we talk about more advanced (i.e. you shouldn’t use it unless necessary) tool like macros, which will help do crazier things by tapping directly into the compiler. You can write function-like macros that can help you reuse code that needs lower level access. You can also create custom derive with macros.

  • What is the MEAN stack? JavaScript web applications

    Most anyone who has developed web applications knows the acronym LAMP, which is used to describe web stacks made with Linux, Apache (web server), MySQL (database server), and PHP, Perl, or Python (programming language).

    Another web-stack acronym has come to prominence in the last few years: MEAN—signifying a stack that uses MongoDB (database server), Express (server-side JavaScript framework), Angular (client-side JavaScript framework), and Node.js (JavaScript runtime).

  • RcppGetconf 0.0.3

    Changes are minor. We avoid an error on a long-dead operating system cherished in one particular corner of the CRAN world. In doing so some files were updated so that dynamically loaded routines are now registered too.

  • The performance impact of zeroing raw memory

    When you create a new variable (in C, C++ and other languages) or allocate a block of memory the value is undefined. That is, whatever bit pattern happened to be in the raw memory location at the time. This is faster than initialising all memory (which languages such as Java do) but it is also unsafe and can lead to bugs, such as use-after-free issues.

    There have been several attempts to change this behaviour and require that compilers would initialize all memory to a known value, usually zero. This is always rejected with a statement like "that would cause a performance degradation fo unknown size" and the issue is dropped. This is not very scientific so let's see if we could get at least some sort of a measurement for this.

Programming Leftovers

Filed under
Development
  • Introducing rpm-macros-virtualenv 0.0.1

    This is a small set of RPM macros, which can be used by the spec files to build and package any Python application along with a virtualenv. Thus, removing the need of installing all dependencies via dnf/rpm repository. One of the biggest usecase will be to help to install latest application code and all the latest dependencies into a virtualenv and also package the whole virtualenv into the RPM package.

    This will be useful for any third part vendor/ISV, who would want to package their Python application for Fedora/RHEL/CentOS along with the dependencies. But, remember not to use this for any package inside of Fedora land as this does not follow the Fedora packaging guidelines.

  • Program Synthesis is Possible in Rust

    Program synthesis is the act of automatically constructing a program that fulfills a given specification. Perhaps you are interested in sketching a program, leaving parts of it incomplete, and then having a tool fill in those missing bits for you? Or perhaps you are a compiler, and you have some instruction sequence, but you want to find an equivalent-but-better instruction sequence? Program synthesizers promise to help you out in these situations!

    I recently stumbled across Adrian Sampson’s Program Synthesis is Possible blog post. Adrian describes and implements minisynth, a toy program synthesizer that generates constants for holes in a template program when given a specification. What fun! As a way to learn more about program synthesis myself, I ported minisynth to Rust.

  • The devil makes work for idle processes

    TLDR: in Endless OS, we switched the IO scheduler from CFQ to BFQ, and set the IO priority of the threads doing Flatpak downloads, installs and upgrades to “idle”; this makes the interactive performance of the system while doing Flatpak operations indistinguishable from when the system is idle.

    At Endless, we’ve been vaguely aware for a while that trying to use your computer while installing or updating apps is a bit painful, particularly on spinning-disk systems, because of the sheer volume of IO performed by the installation/update process. This was never particularly high priority, since app installations are user-initiated, and until recently, so were app updates.

  • Rcpp now used by 1500 CRAN packages

    Right now Rcpp stands at 1500 reverse-dependencies on CRAN. The graph is on the left depicts the growth of Rcpp usage (as measured by Depends, Imports and LinkingTo, but excluding Suggests) over time. What an amazing few days this has been as we also just marked the tenth anniversary and the big one dot oh release.

  • Python in RHEL 8

    Ten years ago, the developers of the Python programming language decided to clean things up and release a backwards-incompatible version, Python 3. They initially underestimated the impact of the changes, and the popularity of the language. Still, in the last decade, the vast majority of community projects has migrated to the new version, and major projects are now dropping support for Python 2.

    In Red Hat Enterprise Linux 8, Python 3.6 is the default. But Python 2 remains available in RHEL 8.

  • How to stand out, and get hired, at Grace Hopper Celebration

    During the 2018 Grace Hopper Celebration of Women in Computing (GHC), attendees flooded the George Brown Convention Center in Houston Texas to network, learn and share information in celebration of women technologists. For students at GHC, the expo hall also doubled as a career fair. Here’s how to stand out when you’re trying to leave GHC with opportunities to chart your own path in technology.

    Recruiters, engineers, scientists and technologists were stationed at company booths to talk about their workplaces. They screened resumes, interviewed candidates and shared their experiences.

    This year I was able to attend GHC for the first time, not as a student seeking a position but as an employee of Red Hat. At Red Hat we do many things differently, interviewing at GHC is one of those things. Red Hat is seeking associates who possess both a strong technical aptitude as well as a passion for our products and services.

  • Vim in the Future

     

    I have learned Vim as a programming-centric tool, but I use it for other tasks, too. This post assumes a reader isn’t necessarily a programmer but is curious about how tech things get done.

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

Syndicate content

More in Tux Machines

Security Leftovers

Ubuntu Mir's EGMDE Desktop Getting Experimental XWayland

Ubuntu's little known EGMDE example Mir desktop that is mostly a proving grounds for Mir development is now receiving support for XWayland for being able to run X11 applications within this example environment. Lead Mir developer Alan Griffiths posted about initial XWayland support for EGMDE but that it is "highly experimental, and can crash the desktop." This support is available via the "edge" EGMDE Snap. Read more

Devices: Coreboot, Toradex and Digi, Raspberry Pi 3 Model A+

  • Another Micro-ATX Haswell Era Motherboard Working With Coreboot But Needs Tiny Blob
    There are many Sandy Bridge era motherboards that have been freed by Coreboot while if you are looking for more options on something (slightly) newer, a micro-ATX Haswell-era motherboard from ASRock now works under this open-source BIOS implementation. The ASRock H81M-HDS is the latest motherboard port now mainline in Coreboot. The ASRock H81M-HDS supports Haswell Core and Xeon CPUs, supports two DDR3/DDR3L DIMMs, one PCI Express x16 slot, onboard display outputs, four SATA ports, and multiple USB3/USB2 ports. This motherboard can be found refurbished still from some Internet shops for about $70 USD.
  • Toradex and Digi launch i.MX8X-based Colibri and ConnectCore COMs
    Toradex and Digi have released Linux-friendly i.MX8X-based modules via early access programs. The Colibri iMX8X and Digi ConnectCore 8X each provide WiFi-ac and Bluetooth 4.2. NXP’s i.MX8X SoC has made quite a splash this week. Eight months after Phytec announced an i.MX8X-based phyCORE-i.MX 8X module, Variscite unveiled a VAR-SOM-MX8X module and then Congatec followed up with the Qseven form-factor Conga-QMX8X and SMARC 2.0 Conga-SMX8X. Now Toradex and Digi are beginning shipments of i.MX8X based modules for early access customers.
  • New Raspberry Pi 3 Model A+ launched for only $25

Mozilla Firefox and Google Chrome: Net Neutrality Stance, Mozilla, a VR Work, Firefox Monitor and 5 Best Chrome Extensions For Productivity

  • Mozilla Fights On For Net Neutrality
    Mozilla took the next step today in the fight to defend the web and consumers from the FCC’s attack on an open internet. Together with other petitioners, Mozilla filed our reply brief in our case challenging the FCC’s elimination of critical net neutrality protections that require internet providers to treat all online traffic equally. The fight for net neutrality, while not a new one, is an important one. We filed this case because we believe that the internet works best when people control for themselves what they see and do online. The FCC’s removal of net neutrality rules is not only bad for consumers, it is also unlawful. The protections in place were the product of years of deliberation and careful fact-finding that proved the need to protect consumers, who often have little or no choice of internet provider. The FCC is simply not permitted to arbitrarily change its mind about those protections based on little or no evidence. It is also not permitted to ignore its duty to promote competition and protect the public interest. And yet, the FCC’s dismantling of the net neutrality rules unlawfully removes long standing rules that have ensured the internet provides a voice for everyone. Meanwhile, the FCC’s defenses of its actions and the supporting arguments of large cable and telco company ISPs, who have come to the FCC’s aid, are misguided at best. They mischaracterize the internet’s technical structure as well as the FCC’s mandate to advance internet access, and they ignore clear evidence that there is little competition among ISPs. They repeatedly contradict themselves and have even introduced new justifications not outlined in the FCC’s original decision to repeal net neutrality protections.
  • Virtual meeting rooms don’t have to be boring. We challenge you to design better ones!
    Mozilla’s mission is to make the Internet a global public resource, open and accessible to all, including innovators, content creators, and builders on the web. VR is changing the very future of web interaction, so advancing it is crucial to Mozilla’s mission. That was the initial idea behind Hubs by Mozilla, a VR interaction platform launched in April 2018 that lets you meet and talk to your friends, colleagues, partners, and customers in a shared 360-environment using just a browser, on any device from head-mounted displays like HTC Vive to 2D devices like laptops and mobile phones. Since then, the Mozilla VR team has kept integrating new and exciting features to the Hubs experience: the ability bring videos, images, documents, and even 3D models into Hubs by simply pasting a link. In early October, two more useful features were added: drawing and photo uploads.
  • New Raspbian Update, Qt Creator 4.8 Beta2 Released, Firefox Monitor Now Available in More Than 26 Languages, Chrome OS Linux Soon Will Have Access to Downloads Folder and Canonical Extends Ubuntu 18.04 Long-Term Support
    Firefox Monitor, the free services that tells you whether your email has been part of a security breach, is now available in more than 26 languages: "Albanian, Traditional and Simplified Chinese, Czech, Dutch, English (Canadian), French, Frisian, German, Hungarian, Indonesian, Italian, Japanese, Malay, Portuguese (Brazil), Portuguese (Portugal), Russian, Slovak, Slovenian, Spanish (Argentina, Mexico, and Spain), Swedish, Turkish, Ukranian and Welsh." Along with this, Mozilla also announced that it has added "a notification to our Firefox Quantum browser that alerts desktop users when they visit a site that has had a recently reported data breach". See the Mozilla blog for details.
  • 5 Best Chrome Extensions For Productivity That You Should Use In 2019
    Google is the most popular browser around and supports a vast number of extensions as well. Since there are a lot of Chrome addons available in the Chrome Web Store, picking the best Google Chrome extension can be quite a task. Also, it is quite easy to get distracted on the web and lose track of time. Thankfully, several good extensions for productivity are available that can help you focus on your tasks, save time by prioritizing them and skillfully manage your to-do list. So here is a list of excellent Google Chrome extensions for productivity for the year 2019 that will assist you in your work in.