Language Selection

English French German Italian Portuguese Spanish

Programming/Development: PHP 8.0, WASMtime 0.12, Perl, Python, and java

Filed under
Development
  • Looking At The PHP 8.0 Performance So Far In Early 2020

    With it being a while now since the PHP 7.4 release and the PHP developers continuing to be busy at work on PHP 8.0 as the next major installment of the popular web programming language, here is a fresh look at the performance of PHP 8.0 in its current state -- including when its JIT compiler is enabled -- compared to releases going back to PHP 5.6.

    Most exciting with PHP 8.0 is the JIT compiler that has the ability to provide better performance on top of all the gains already scored during PHP 7.x releases. PHP 8.0 is also bringing support for static return types, weak maps, union types, improved errors and warnings, and more is surely to come -- stay tuned to the PHP RFC page. The latest indications are PHP 8.0 isn't expected for release until the very end of 2020 or early 2021.

  • WASMtime 0.12 Released For The JIT-Style WebAssembly Runtime

    Announced last November was the Bytecode Alliance with a goal of running WebAssembly everywhere. This effort by Intel, Red Hat, Mozilla, and others has resulted in a new release today of wasmtime, their JIT-style runtime for WebAssembly on the desktop.

    The Bytecode Alliance developers from the different organizations continue working heavily on their Wasmtime JIT runtime, Cranelift low-level code generator, the WAMR micro-runtime, and Lucet sandboxing WebAssembly compiler. Wasmtime v0.12 is the new release out today for their optimizing run-time offering for WebAssembly and WASI (WebAssembly System Interface) on desktops and other non-browser use-cases.

  • The Weekly Challenge #049

    This is my second blog for The Weekly Challenge. I am only able to participate, thanks to Ryan Thompson for helping me with the Perl and Raku reviews. I am going for Perl solutions first then will try to translate it into Raku next. I believe in coding to learn the language. With so many Raku experts around, I am not shy throwing questions up. I am now going to share my experience doing “The Weekly Challenge - 049”.

  • EuroPython 2020: Call for Proposals opens on March 9th

    We’re looking for proposals on every aspect of Python: all levels of programming from novice to advanced, applications, frameworks, data science, Python projects, internals or topics which you’re excited about, your experiences with Python and its ecosystem, creative or artistic things you’ve done with Python, to name a few.
    EuroPython is a community conference and we are eager to hear about your use of Python.
    Since feedback shows that our audience is very interested in advanced topics, we’d appreciate more entries in this category for EuroPython 2020.
    Please help spread word about Call for Proposals to anyone who might be interested. Thanks.

  • Using Anaconda Environments with Wing Python IDE

    Wing version 7.2 has been released, and we've been looking at the new features in this version. So far we've covered reformatting with Black and YAPF, Wing 7.2's expanded support for virtualenv, and using python -m with Wing.

    This time we'll take a look at what Wing 7.2 provides for people that are using Anaconda environments created with conda create as an alternative to virtualenv.

  • Easy Provisioning Of Cloud Instances On Oracle Cloud Infrastructure With The OCI CLI

    The OCI CLI requires python version 3.5 or later, running on Mac, Windows, or Linux.
    Installation instructions are provided on the OCI CLI Quickstart page.

  • Python Range

    The Python range type generates a sequence of integers by defining a start and the end point of the range. It is generally used with the for loop to iterate over a sequence of numbers. range() works differently in Python 2 and 3. In Python 2, there are two functions that allow you to generate a sequence of integers, range and xrange. These functions are very similar, with the main difference being that range returns a list, and xrange returns an xrange object.

  • Code Borrowing and Licence Violations [Ed: This study may be deeply flawed because they bothered assessing no projects other than those that Microsoft controls (what about projects that don't use Git and Microsoft's proprietary trap?)]

    The researchers used the Public Git Archive (PGA), a large dataset that was composed in the early 2018. It consists of all GitHub projects with 50 or more stars which can be filtered by language. They extract all projects with at least one line written in Java which resulted in 24,810 projects overall and a final dataset of 23,378 Java repositories.

  • Painless Java with BlueJ

    Whenever you're learning a new programming language, it's easy to criticize all the boilerplate text you need to memorize. Before you can get comfortable starting a project, you have to remember the preambles that, in theory, ought to be easy to remember since they're usually relatively short and repetitive. In practice, though, boilerplate text is too obscure in meaning to become an easy habit, but it's essential for a program to run.

More in Tux Machines

Rolando Blanco: Ubuntu Desktop Makeover

I must confess that since Ubuntu started, there have been a lot of changes that we have experienced on our desktop (each time for the better). However, I have always loved changing its appearance, to one more according to my particular tastes, sometimes up to 3 changes per year. This is one of the features that I like most about GNU / Linux, the freedom to adapt everything to my liking. This time, I wanted to make some slight changes in search of elegant minimalism. This is how I started testing a new icon pack and a tool that works as a widget and that animates my desktop, for this I used Conky. Read more

WiFi Goes Open

For most people, adding WiFi to a project means grabbing something like an ESP8266 or an ESP32. But if you are developing your own design on an FPGA, that means adding another package. If you are targeting Linux, the OpenWifi project has a good start at providing WiFi in Verilog. There are examples for many development boards and advice for porting to your own target on GitHub. You can also see one of the developers, [Xianjun Jiao], demonstrate the whole thing in the video below. The demo uses a Xilinx Zynq, so the Linux backend runs on the Arm processor that is on the same chip as the FPGA doing the software-defined radio. We’ll warn you that this project is not for the faint of heart. If you want to understand the code, you’ll have to dig into a lot of WiFi trivia. Read more

Kernel: Linux 5.8, Linux 5.7, FSGSBASE and HWMON

  • Improved EXT4 + XFS DAX Implementation Appears Ready To Go For Linux 5.8

    Adding to the expected changes for Linux 5.8 is improved EXT4 and XFS file-system direct access "DAX" support. DAX is the means of direct access to files backed by persistent memory (such as Intel Optane DC Persistent Memory) without needing to be copied via the page cache. Thus DAX bypasses that extra copy for reads/writes to the storage device and mapping the storage device directly into user-space.

  • The Top Linux 5.7 Features From Apple Fast Charge To Official Tiger Lake Graphics

    Assuming no last minute concerns, the Linux 5.7 kernel is set to debut as stable this weekend. Given all the weeks since the merge window and our many articles covering all the feature activity at that point (and not to be confused with our activity of new work being queued for the upcoming Linux 5.8 cycle), here is a look back at some of the top features of the Linux 5.7 kernel. Among the most interesting new features and improvements for Linux 5.7 include: - Intel Tiger Lake "Gen12" graphics are now enabled by default in being deemed stable enough for out-of-the-box support where as on prior kernels the support at the time was hidden behind a kernel module parameter.

  • Performance-Helping FSGSBASE Patches Spun For Linux A 13th Time

    The FSGSBASE Linux kernel patches that have the potential of helping performance going back to Intel Ivy Bridge era CPUs in select workloads have now hit their 13th revision to the series in the long-running effort to getting this support mainlined.

  • Linux's Hardware Monitoring "HWMON" Picking Up Notification Support

    In addition to the AMD Zen "amd_energy" driver coming for Linux 5.8, another late change now queued into hwmon staging is introducing notification support for the hardware monitoring subsystem. HWMON subsystem maintainer and Google employee Guenter Roeck has queued up notification support for this subsystem. This serves as a generic notification mechanism not only to notify user-space but also the thermal subsystem for any HWMON driver events. In the HWMON context, these events could be important like warnings/critical alarms over detected temperatures or voltages for different components.

Linux on Devices and Open Hardware/Modding

  • Developing Qt5 applications natively on Wind River Linux

    Wind River Linux provides the technologies essential to building a flexible, stable, and secure platform for your embedded devices. Based on OpenEmbedded releases from the Yocto Project, it is designed to let you customize your platform to include only the packages and features you need. Powered by bitbake, it provides the ability to build an entire Linux distribution from source by following repeatable recipes. This is really powerful, but can be foreign to application developers that already have a workflow they are comfortable with. Developers building graphical user interfaces (GUI) have their own set of tools that they rely on. Often they prefer to use an Integrated Development Environment (IDE) tailored to the language and frameworks they are working with. Typically this IDE and the tools it uses are running natively on the same platform they are building for. Fortunately, these developers can still do this on Wind River Linux. This tutorial describes building Wind River Linux with the GCC toolchain and Qt Creator included to enable native application development.

  • Udoo Bolt Gear mini-PC launches with Ryzen V1000 Udoo Bolt SBC

    Seco has launched a $399 “Udoo Bolt Gear” mini-PC kit built around its Ryzen Embedded V1000 based Udoo Bolt SBC. The $399 kit includes a metal case, 65W adapter, and a WiFi/BT M.2 card. A growing number of open-spec, community-backed SBCs ship with optional. and in some cases, standard enclosures, but most of these are simple plastic cases. Seco’s new Udoo Bolt Gear mini-PC, which is based on its Udoo Bolt SBC, provides a metal case, a power adapter, US and EU cables, a VESA mount, and a WiFi/BT kit. There are also plenty of vents to help the SBC’s standard fan cool AMD’s Ryzen Embedded V1000 SoC. [...] The Bolt and the Bolt Gear are further equipped with an Arduino Leonardo compatible Microchip Atmega32U4 MCU. The MCU can be used for robotics and other real-time applications. It can also be configured to run while the system is turned off and then turn on the computer based on trigger input.

  • Ultra-narrow DipDuino Arduino Compatible Board is a Perfect Breadboard Companion

    We previously wrote about a uChip DIP-sized Arduino Zero compatible board with 0.3″ spacing between the two rows of pins making it perfect for breadboards as it left four rows on each side of the breadboard. There’s now another similar option with the appropriately named DipDuino board equipped with a Microchip Atmega328P MCU compatible with Arduino Pro or Pro Mini boards.

  • Using Photoresistor From Raspberry PI To Detect Light

    Photoresistor (also known as photocell) is a Light Dependent Resistor (LDR). As the name suggests, this components act just like a resistor, changing its resistance in response to how much light is falling on it. Ususally, photoresistors have a very high resistance in near darkness and a very low resistance in bright ligh. This component is used to manage electronic or electric devices to answer light conditions enabling or disabling functions. Photoresistors are analogic components. So it can be used with microcontrollers having analogic inputs (like Arduino) to read light level. Unfortunately, Raspberry PI has only digital inputs (with threshold between High and Low being around 1V). This means that, without specific analogic-to-digital hardware, we’ll be able only to read if light is high or low.