Language Selection

English French German Italian Portuguese Spanish


Programming: NodeJS, Clang, PHP, Perl and Rust

Filed under
  • Simple NodeJS Application

    In the last couple of years, the world has undergone some fascinating technological changes. Each day, something new is developed that offers an improvement over its predecessor and gives us access to a whole new dimension. One certain region that has seen a significant improvement in its features and popularity is the web development sector, particularly NodeJS, which has become many developers’ first choice for back-end development.

  • Facebook Planning To Ramp Up Investment In LLVM, Hire More Compiler Engineers

    Facebook is looking to hire more compiler engineers as they ramp up their investment in LLVM and its sub-projects like the Clang C/C++ compiler and LLD linker.

    Additionally, Facebook is planning to increase their upstream contributions to the LLVM-based Swift programming language.

  • 8 Things You Need To Learn Before Develop a PHP Website

    In this article, you will see 8 things that you need to learn before develop a PHP Website. How many times have you wondered about creating a website? And how many times did you give up on the idea because of lack of skills or inability to pay to a web development or a web design agency? Is it that impossible? We believe not and that is why we have a simple guideline on how to develop your very first PHP code website.

  • source

    Most programming languages permit programmers to specify external files to be included within their programs. This is often used to add "boilerplate" code to programs for such things as defining standard constants and referencing external library function definitions.

    Bash (along with ksh and zsh) has a builtin command, source, that implements this feature. We looked at source briefly when we worked with the .profile and .bashrc files used to establish the shell environment.

    In this adventure, we will look at source again and discover the ways it can make our scripts more powerful and easier to maintain.


    By using source, we can greatly reduce the effort needed to maintain our bash scripts particularly when we are deploying them across multiple machines. It also allows us to effectively reuse code with function libraries that all of our scripts can share. Finally, we can use source to build much more capable shell environments for our day to day command line use.

  • Perl Weekly Challenge 052: Stepping Numbers & Lucky Winner

    The naive approach would be to iterate over all the numbers from 100 to 999 and check the difference between each adjacent digits.

  • Even Apple Is Interested In Migrating Their C Code To Rust

    Even Apple is on the bandwagon of transitioning select C code-bases of theirs over to Rust as well as expanding the code they are writing in Rust.

    This C to Rust transition for Apple appears to be at least initially focused on their server-side Linux-based platforms. Apple recently posted a software engineer job opening for working on such a task and is within the Apple Cloud Traffic Team.

Python: PyCharm vs Sublime, Python vs NodeJS, Twisted 20.3.0 Released and More

Filed under
  • PyCharm vs Sublime Comparison

    With such a rapid increase in the evolution of technology, this has led to the appearance of so many different tools and frameworks that have made development so much easier. However, every software project has demands that differ from each other and hence it is necessary to choose such a tool that meets the needs and requirements of the project and allows the team to develop and manage the project in an efficient manner. This is where Integrated Development Environment (IDE) software and Text Editors come into the picture.
    An IDE is a programming tool that specializes in certain languages and provides several utilities to work with. It is the complete package where you can not only write the program but also compile it and debug it. Text Editors, on the other hand, adapt a broader approach as in, there usually isn’t any restriction in the programming language and let you create and modify the contents of all types of files. With a plethora of options out there, comparisons between these two become inevitable as one needs to be aware of which one might bring the best out of you.

    When it comes to selecting IDEs or text editors from such a huge variety of options, PyCharm and Sublime Text are some of the most popular alternatives. Today we’ll be looking at their strengths and weaknesses and what really sets them apart from one another.

  • Python vs NodeJS Comparison

    With technology evolving at such a fast rate, it has now become necessary to choose the right set of tools to work with. Each software project has multiple demands and specifications that it needs to meet and so in order to meet those requirements, it is important to choose a programming language that allows you to develop and manage the project in an efficient manner.

    With so many programming languages and frameworks to choose from, comparisons between them has become inevitable as you need to be aware which one offers the best services. When it comes to back-end development, Python and NodeJS both are among the most popular alternatives to choose from. Today we’ll be looking at their strengths and weaknesses and what really sets them apart from one another.

  • Twisted Matrix Labs: Twisted 20.3.0 Released

    On behalf of Twisted Matrix Laboratories, I am honoured to announce the release of Twisted 20.3!

  • Weekly Python StackOverflow Report: (ccxx) stackoverflow python report
  • Install Python Packages From GitHub On Linux

    Sometimes, a particular python package or script that you wanted to install may not available in Python Package Index (PyPI). Even if that package is available in PyPI, the new feature of that package may not be available. So, you can’t install it using Pip package manager on your Linux box. In such cases, you can easily install those packages directly from its official GitHub repository. This brief guide explains how to install Python packages from GitHub on Linux and other Unix-like distributions.

Linus Torvalds Makes Big Optimisations

Filed under
  • Linus Torvalds Just Made A Big Optimization To Help Code Compilation Times On Big CPUs

    For those using GNU Make in particular as their build system, the parallel build times are about to be a lot faster beginning with Linux 5.6 for large core count systems. This landing just after the AMD Threadripper 3990X 64-core / 128-thread CPU launch is one example of systems to benefit from this kernel change when compiling a lot of code and making use of many GNU Make jobs.

    Linus Torvalds himself changed around the kernel's pipe code to use exclusive waits when reading or writing. While this doesn't mean much for traditional/common piping of data, the GNU Make job-server is a big benefactor as it relies upon a pipe for limiting the parallelism. This technique though employed by the GNU Make job server is inefficient with today's high core count CPUs as all of the spawned processes are woken up rather than a single reader to be woken upon a writer's release.

  • GNU Make 4.3 Speeds Up Linux Kernel Builds, Debugger/Profiler Fork Released

    Linus Torvalds himself "changed around the kernel's pipe code to use exclusive waits when reading or writing," reports Phoronix.

    "While this doesn't mean much for traditional/common piping of data, the GNU Make job-server is a big benefactor as it relies upon a pipe for limiting the parallelism" -- especially on high-core-count CPUs.

Programming Leftovers

Filed under
  • Reducing memory consumption in librsvg, part 2: SpecifiedValues

    To continue with last time's topic, let's see how to make librsvg's DOM nodes smaller in memory. Since that time, there have been some changes to the code; that is why in this post some of the type names are different from last time's.

  • CMake 3.17.0 Released Today! & Available for Download!

    CMake 3.17.0 Released: CMake is an open-source and cross-platform application. CMake application is mainly used to develop programs using Independent Compiler method. The core developers behind this CMake application are “Andy Cedilnik, Bill Hoffman, Brad King, Ken Martin, Alexander Neundorf“.

  • RProtoBuf 0.4.16: Now with JSON

    A new release 0.4.16 of RProtoBuf is now on CRAN. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol.

    This release contains a PR contributed by Siddhartha Bagaria which adds JSON support for messages, which had been an open wishlist item. I also appeased a clang deprecation warning that had come up on one of the CRAN test machines.

  • CY's Take on Perl Weekly Challenge #052

    Do tell me if I am wrong or you strongly oppose my statements!

    I register a free account on . The process is surprisingly easy but I am a bit nervous that my posts are put along experienced coders on the frontpage of .

    Back to the main topic.

    The first challenge is typical for PWC. Integers in base-10 with some properties on or among their digits, and the perl script needs to list it out. A very useful code slice is split //, $num . (For beginners: On other programming languages, usually we need to have a line of code which can the type of our variable; or more commonly seen, make a new variable of different type of that variable. An example is to_string in C++. )

    The second challenge is game theoretical. I think there are no shortcuts for this problem. I dug out a textbook on game theory #1, got back on the Coursera Course "Combinatorial Game Theory". #2 ... Finally, I find the challenge does not require advanced understanding of Prisoners' Dilemma or Nim. All we need to know is how to draw a game tree, how to count the payoff properly and how to code in Perl!

    The procedure is: go forward for calculating the payoff function for every end node, and then having a backward induction. Then we get who the winner is while the game is played optimally. (Along process, the information gained can provide a method to allow the computer play against a human optimally.)

  • Writing Programs! That Write Other Programs!!

    The talk was a short, friendly introduction to the same stuff I wrote about in Synthesizing Loop-Free Programs with Rust and Z3.

    The recording of the talk is embedded below. The presentation slides are available here.

    Also make sure to also check out all the other talks from !!Con West 2020! !!Con West (and !!Con East) is a really special conference about the joy, surprise, and excitement of programming. It’s the anti-burnout conference: remembering all the fun and playfulness of programming, and embracing absurdist side projects because why not?! I love it, and I highly encourage you to come next year.

Microsoft's Attack on the Free Software Supply Chain

Filed under

Java 14 and OpenJDK 14 Benchmarks

Filed under
  • Java 14 Improves Runtime Visibility, Overall Performance

    A key part of the Java Development Kit is the Java Flight Recorder (JFR) feature, which provides a tool to help profile Java applications for diagnostic purposes. In Java 14, Java Flight Recorder gains a new streaming data capability.

    "JFR Event Streaming (JEP 349) is a new feature in Java 14 that I think people will be able to use right away," Georges Saab, vice president of development for the Java Platform at Oracle, told ITPro Today. "That changes the historical way that Java Flight Recorder data has been consumed, which is kind of in batch format, to now being available as sort of a stream of events that you can deal with in real time."

  • OpenJDK 14 Has Some Performance Improvements But OpenJDK 8 Still Strong

    Given this week's general availability release of OpenJDK 14, here are some fresh benchmarks looking at all the major releases from OpenJDK 8 through 14 while looking at the JVM performance across multiple workloads.

    Curious to see how OpenJDK 14 is performing in relation to previous releases for the JVM performance, I ran some fresh benchmarks on an AMD Ryzen 9 3950X system with Ubuntu 19.10 + Linux 5.6 for seeing how the performance is comparing to previous releases. In particular, how OpenJDK 14 is performing in relation to OpenJDK 8 that for most workloads is still the fastest release in recent years.

    This testing is just looking at the JVM performance with using the same Java bytecode compiled Java programs on each of the releases tested, using the reference/upstream compiled versions of the software packages under test. The same options were used each time and no other changes were made besides swapping out the OpenJDK x86_64 Linux builds used for testing each release.

Python Programming Leftovers

Filed under
  • BreadcrumbsCollector: mypy: how to use it in my project?

    Type annotations are a great addition to Python. Thanks to them, finally our IDEs are able to provide good quality autocompletion. They did not turn Python into statically typed language, though. If you put a wrong annotation (or forget to update it after code change), Python will still happily try to execute your program. It just may fail miserably. Type annotations are like comments – they do not really have any influence on the way how your program works. They have also the same disadvantage – once they become obsolete, they start leading developers astray. Type annotations advantage is that they have a very specific format (unlike comments) so can be used to build tools that will make your life easier and code better. In this article, you will learn how to start using mypy, even if you like to add it to your existing project.

  • Gocept Weblog: Zope May sprint goes remote

    Earl Zope was inviting to the Zope May sprint, from 13th till 15th of May, 2020. He was hoping for many volunteers to come. Due to restrictions to prevent spreading of COVID-19 (Corona) this sprint is going to be remote-only. – By now all of the organizers and their families are fine, so you do not have to worry about us.

  • Zope May Sprint

    Earl Zope has settled down for a good while in Python 3 wonderland. He made friends with the inhabitants and other immigrants. He enjoys his new live.

    The sunset of his original homelands took place as predicted by the beginning of January 2020. As Earl Zope was well prepared this was no longer a frightening date for him.

    But even living in Python 3 wonderland is not only joy and relaxing. The Python 3 wonderland changes in a more rapid speed than the Python 2 land ever had before: Each year a new policy has to be fulfilled (aka new Python version release). Additionally it is time to drop the last connections to the old Python 2 land to ease the transformation in Python 3 wonderland to make developers and consumers happy.


    You are invited to the “Zope May sprint” located in Halle/Saale...

  • DjangoCon Europe 2020 postponed to September

    It is with a sincere heart that we have decided to postpone DjangoCon Europe 2020 to September 16-20.

    As you might be aware, conferences are being cancelled worldwide. We still have hope, and before throwing the towel, we have decided to postpone. We took particular care to choose safe dates, far enough from the current outbreak peek estimates, but also far from the next fall/winter. Some experts state this is here to stay, and if they are correct, we should have troubles next fall/winter, let's just hope to a smaller degree.

    Many of you have already bought tickets, and to those, we kindly ask to hope with us.

  • PyCon US 2020 in Pittsburgh, Pennsylvania is cancelled

    The PSF’s priority is the health and safety of the community and the COVID-19 (Coronavirus) pandemic has made it unsafe to hold PyCon US this year.
    Recently, the United States and the State of Pennsylvania have asked that large gatherings be postponed or cancelled until further notice. With that in mind, the PSF has worked to reduce financial exposure and develop a plan to provide content remotely.

  • Python 4 Kids: Python is No Good for Mortality Rates

    Here we are at the uptick in the Covid 19 pandemic. There are many sources of data which list infections and deaths as a result of the virus. It’s very tempting to want to put your Python skills to use and crunch some numbers on the infection. By and large, go for it, but one thing I’d ask you not to do is to try to calculate a “mortality rate”. This is not because Python can’t do division but, rather, working this number out is conceptually pretty tricky. It’s something that epidemiologists need to get a lot of training in to do correctly. You can’t just take the deaths column and divided it by the infected column because the two numbers are not properly related.

  • Python Anywhere: COVID-19 update: PythonAnywhere is now all-remote

    Scary times. We hope everyone reading this is well and keeping safe!

    We thought it would be a good idea to tell you how we're managing the current crisis at PythonAnywhere. We switched over to remote working last Thursday, 12 March; there are obviously private and public health reasons why that was a good idea, but there's a reason specific to us, which we thought would be worth sharing.

    Most of the team here are lucky enough to be in low risk categories, but we pair-program -- that is, we have two people working together at the same computer, all day and every day. Each day we rotate the pairs around, so that the same two people are never working together on two consecutive days. This makes sure that we spread knowledge around the team.

  • MooseAche

    Simple web-browser in Python, using PyQt

    MooseAche is the latest revolution in web browsing! Go back and forward! Save files! Get help! (you'll need it). Any similarity to other browsers is entirely coincidental.

  • How to read data from Kafka with Python

    Kafka is an open-source distributed messaging system to send the message in partitioned and different topics. Real-time data streaming can be implemented by using Kafka to receive data between the applications. It has three major parts. These are producer, consumer, and topics. The producer is used to send a message to a particular topic and each message is attached with a key. The consumer is used to read a message on a particular topic from the set of partitions. The data received from the producer and stored on the partitions based on a particular topic. Many libraries exist in python to create producer and consumer to build a messaging system using Kafka. How the data from Kafka can be read using python is shown in this tutorial.

Audiocasts/Shows: Jupiter and Python Podcasts

Filed under
  • Ryzen Gets Real | TechSNAP 425

    We take a look at AMD’s upcoming line of Ryzen 4000 mobile CPUs, and share our first impressions of Ubuntu 20.04’s approach to ZFS on root.

    Plus Let’s Encrypt’s certificate validation mix-up, Intel’s questionable new power supply design, and more.

  • Brunch with Brent: Stuart Langridge | Jupiter Extras 65

    Brent sits down with Stuart Langridge, co-host of Bad Voltage, for an exploration of open source's "final mile", the text and language interface as a UX opportunity, terminals vs. search engines, Darwinian processes and crab-bucketism in software development, and more.

  • 2020-03-20 | Linux Headlines

    Linux Mint Debian Edition version 4 is out, Google releases tools for embedded developers, a socially isolated Pwn2Own still manages to hack multiple targets, and GPU owners from around the world pitch in to fight the novel coronavirus.

  • 'Let's Get Linux-y' Live Stream Event - Saturday, Mar 21

    What: Two hour live-streamed event. With a live chat room, and some of your favorite Linux-y & Nerdy personalities – taking your Linux, Open Source, and generally nerdy questions. When: This Saturday, March 21st, at 9pm Pacific. The line-up: Linux-y YouTuber, Gardiner “The Linux Gamer” Bryant. Veteran Linux Journalist & Podcaster, Matt Hartley. And me, Bryan Lunduke. Where: The Lunduke Journal YouTube Channel.

  • The Real Python Podcast Is Here!

    The Real Python Podcast is finally live! Tune in for interesting guests, interviews with expert Pythonistas, and lots of behind-the-scenes with the Real Python Team.

    Today we’re officially launching the Real Python Podcast, a new (and freely accessible) podcast for Pythonistas like you.

    This has been in the making for a while, and both Christopher and I are super proud to finally release the first episode to you this week.

    We’ll have a roster of interesting guests for you, interviews with expert Pythonistas, and lots of behind-the-scenes with the Real Python Team.

  • Test and Code: 106: Visual Testing : How IDEs can make software testing easier - Paul Everitt

    In this episode, Paul Everitt and Brian discuss ways IDEs can encourage testing and make it easier for everyone, including beginners. We discuss features that exist and are great, as well as what is missing.

    The conversation also includes topics around being welcoming to new contributors for both open source and professional projects.

  • Talk Python to Me: #256 Click to run your notebook with Binder

    Have you come across a GitHub repo with a Jupyter notebook that has a "Run in Binder" button? It seems magical. How does it know what dependencies and external libraries you might need? Where does it run anyway?

    Like all technology, it's not magic. It's the result of hard work by the people behind On this episode, you'll meet Tim Head, who has been working to bring Binder to us all. Take a look inside, how it works, and the history of the project.

Debian Social Announced! Developers can Collaborate and Contribute.

Filed under

Debian Social: The Debian Social aims to run a few services under the domain ““. They said that their aim is to provide a safe place for Debian contributors. Debian.Social will help the contributor to showcase their work and share their work with other debian contributors. Users can collaborate with other users and help them to develop their contributions through the platform.

Read more

Programming: Java, Rust, Bash, Perl, LLVM and More

Filed under
  • 12 Best Udemy Java Courses for Beginners in 2020

    I’ve covered at least 3 articles on the best Udemy courses since this year began where I covered beginner courses for PHP and Python as well as a list of Python courses for advanced users, among other online courses.

    Today’s focus is on one of the most popular programming languages of all time, Java – a high-level object-oriented programming language used for building multi-platform applications, and I am certain that there’s at least one course that will spark your interest.

  • This Week in Rust 330
  • Using Bash scripts in Linux to delete the history, cookies and cache files of Firefox, Google Chrome and Thunderbird

    The browsing data stored by Firefox, Google Chrome and Thunderbird can be deleted using the respective application’s GUI. But you can also do that using a Bash script, which could be useful if you want to delete unnecessary/unwanted files before e.g. backing up your home directory, or if you want a quick and easy way to clear-out browsing data. In this post I list the scripts and Desktop Configuration files I have created in Gentoo Linux and in Lubuntu 18.04 to remove browsing data.

  • Enter the Matrix ... with PDL

    We interrupt this k-Means broadcast to bring you an important message about threading (the PDL kind, not the Perl kind - darn those overloaded terms!)

  • PTS 2020 Cancelled

    The Perl Toolchain Summit (PTS) won't be happening this year. It had been planned for Vienna, so we're hoping that PTS 2021 will be held in Vienna.

    We had wondered about delaying it, or seeing whether there's interest in a virtual PTS, but right now we all have much more important things to worry about. When the time is right, we'll see what makes sense.

  • LLVM Lands Build System Changes To Make It Easier For Out-Of-Tree Projects To Use MLIR

    Since being released by Google engineers last year and subsequently integrated into the LLVM ecosystem, the MLIR intermediate representation has quickly been gaining interest both among LLVM projects and other external users.

    MLIR is designed with heterogeneous hardware and machine learning in mind. TensorFlow and others have been re-tooled to support MLIR among other out-of-tree 'users' and more certainly being on the way with this IR designed by Chris Lattner and others.

  • LLVM 10.0 Release Pushed Back By Another Week Over Last Minute Bugs

    LLVM 10.0 along with the likes of Clang 10.0 were supposed to be out nearly one month ago but instead a fifth release candidate arrived today.

    The LLVM 10.0 release cycle has gone on several weeks longer than anticipated due to having to deal with last-minute bugs. LLVM 10.0-RC4 came out last week and was already two release candidates past what they anticipated, but rather than going for the final release today, a fifth release candidate was decided upon.

  • Jeff Geerling's Ansible Books Free until April

    Hi everyone, think by now most of us are settling into long-term working from home routine as part of COVID-19 social distancing. Hope you and your familiy are healthy and safe.

    If you're looking for a technical book or two to read, Jeff Geerling just made his two books on Ansible free on Leanpub until April.

  • The Remote Journey: references to start

    I started my professional career in an archipelago and I have been involved in Open Source for years so managing remote software related teams, departments and even organizations has been the default for me. I have been also working as consultant in a remote-friendly environment and now I am working at MBition remotely. I believe I am familiar with many aspect of the The Remote Journey, which is a topic I am interested on beyond my work, since it is tightly related to the way of life I want to live.

    Remote work is a fairly mature topic at individual (software development), team and department level. It is maturing at company level too which means that there are already resources in internet that will cover most of the basic questions and topics that most of the companies struggling today with moving from colocated directly to remote-only environments might have.


    It is my belief that in general, habits change mindsets instead of the other way around. When walking through The Journey together with teams and organizations, I put emphasis in the ceremonies as a way to drive the needed change at every level: personal, team, department and organization. If you successfully adapt the ceremonies, your are in a great position to modify people’s habits.

    Personal ceremonies are that, personal. I will not get into them. There is plenty of literature in internet about how to face remote work, the advantages, the challenges and how to approach them. I have my own routines. They are not static although some of them have been with me for some time now. Some have been affected due to the confinament state we are in right now in Spain so I am adapting them to evaluate how they work. My advice in this regard is that you read about other people routines, identify yours, track them and experiement to find the right combination. Again, assume they will evolve over time.

Syndicate content

More in Tux Machines

LibreOffice 6.4.3 Release Candidate Version 1 Released Today!

LibreOffice 6.4.3 RC1 Released: LibreOffice is one of the best open-source text editors. LibreOffice comes as default application release of Linux OS. LibreOffice is developed by Team Document Foundation. Today they announced that the LibreOffice 6.4.3 RC1 version has been released. As per their calendar, LibreOffice 6.4.3 RC1 has been released exactly on today!. This RC1 version has many bugs fixes and tweaks in essential features. Read more

Unifont 13.0.01 Released

Unifont 13.0.01 is now available. This is a major release. Significant changes in this version include the addition of these new scripts in Unicode 13.0.0: U+10E80..U+10EBF: Yezidi, by Johnnie Weaver U+10FB0..U+10FDF: Chorasmian, by Johnnie Weaver U+11900..U+1195F: Dives Akuru, by David Corbett U+18B00..U+18CFF: Khitan Small Script, by Johnnie Weaver U+1FB00..U+1FBFF: Symbols for Legacy Computing, by Rebecca Bettencourt Read more

Programming: micro.sth, RProtoBuf, Perl and Python

  • Introducing micro.sth

    Many developers turn their noses up at PHP, but I have a soft spot for it. For me, it's the most approachable programming language by far. It feels intuitive in a way no other languages do, and it makes it possible to cobble together a working application with just a handful of lines of code. So whenever I can't find a tool for a specific job, I try to build one myself. The latest project of mine is a case in point. I was looking for a simple application for keeping a photographic diary, and I was sure that I'd be able to find an open-source tool for that. I searched high and low, but I came back empty-handed. Sure, there are plenty of static website generators, but I'd prefer something that doesn't require me to perform the write-generate-upload dance every time I want to post a quick update. And I need something that I can use not only to maintain a simple diary, but also store notes, manage tasks, and draft articles -- all this without getting bogged down by configuring templates, defining categories, and tweaking settings. And because I want most of my content to be private, I should be able to protect access to it with a password.

  • Dirk Eddelbuettel: RProtoBuf 0.4.17: Robustified

    A new release 0.4.17 of RProtoBuf is now on CRAN. RProtoBuf provides R with bindings for the Google Protocol Buffers (“ProtoBuf”) data encoding and serialization library used and released by Google, and deployed very widely in numerous projects as a language and operating-system agnostic protocol. This release contains small polishes related to the release 0.4.16 which added JSON support for messages, and switched to ByteSizeLong. This release now makes sure JSON functionality is only tested where available (on version 3 of the Protocol Buffers library), and that ByteSizeLong is only called where available (version 3.6.0 or later). Of course, older versions build as before and remain fully supported.

  • Perl Weekly Challenge 53: Rotate Matrix and Vowel Strings

    These are some answers to the Week 53 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

  • Weekly Python StackOverflow Report: (ccxxi) stackoverflow python report
  • Python: Is And ==

    In Python, == compares the value of two variables and returns True as long as the values are equal.

today's howtos