Language Selection

English French German Italian Portuguese Spanish

Programming: ‘Hack’, Berkeley Packet Filter, Python and More

Filed under
Development
  • Hack Laptop Brings Linux to Desktop for Everyone Learning to Code

    If you have a pre-teen interested in coding, $300 in loose cash and $10/month to spend on a subscription service, the new ‘Hack’ computer might be what you’re looking for.

    Most learn-to-code devices are geared toward a younger crowd, often disguised as toys. The Hack Laptop is simply an ASUS computer. It has a 1920×1080 HD display, 64GB storage, 4GB RAM, and an Intel N5000 processor. It runs Endless OS, which is a version of Linux, and that’s where the real magic begins.

    Instead of some learn-as-you-go app, the Hack Laptop is itself a teaching tool. With that $10/month subscription, students get new challenges that entice them to hack the device itself. The challenges invite them to pick apart code, and a feature dubbed ‘flip to hack’ reverts to the user interface so students can see their user-facing changes in real-time.

  • How to Make Linux Microservice-aware with Cilium and eBPF

    My name is Thomas Graf. Before I start, I would like to know a little bit about what your interests are; who is involved with the upside of things platform, kind of less the dev side, just pure platform? Who is really into kind of development and Dev-ops? So, first of all, I've been asked to stay behind a podium, so whenever you see me walk in front just give me a sign, and push me back. Apparently, the video camera is not able to catch me if I've walked forward too much.

    So what I'm here to talk about is, is BPF, Berkeley Packet Filter, and how BPF can be used to turn and Linux into what we call a Micro Service Operating System. What makes me qualified to talk about this? So I've spent about 15 years working on the Linux kernel. About 10 years of that, I've mostly focused on working and security from a subsystem perspective. So I helped write potentially the biggest monolith ever, 12 million lines of source code by now. I worked on all of the networking subsystem pretty much, a lot of security user space stuff, Netlink, prior to and so on and so on.

  • Clean Architectures in Python: the book

    I'm excited to announce that the success of the post on clean architectures encouraged me to expand the subject and to write a book that I titled "Clean Architectures in Python. A practical approach to better software design".

    The book contains a complete introduction to TDD and clean architectures, two topics that I believe are strictly interconnected. The book is 170 pages long and it is complete, at least for a first edition, but I am already planning to add content that could not fit in this release for several reasons (mostly because still unclear in my mind).

  • pinp 0.0.7: More small YAML options

    One new option was suggested (and implemented) by Ilya Kashnitsky: the bold and small subtitle carrying a default of ‘this version built on …’ with the date is now customisable; motivation was for example stating a post-publication DOI which is indeed useful. In working with DOI I also finally realized that I was blocking displays of DOIs in the references: the PNAS style use \doi{} for a footer display (which we use e.g. for vignette info) shadowing the use via the JSS.cls borrowed from the Journal of Statistical Software setup. So we renamed the YAML header option to doi_footer for clarity, still support the old entries for backwards compatibility (yes, we care), renamed the macro for this use — and with an assist from LaTeX wizard Achim Zeileis added a new \doi{} now displaying DOIs in the references as they should! We also improved some internals as e.g. the Travis CI checks but I should blog about that another time, and documented yet more YAML header options in the vignette.

  • ActiveState Adds Beta Functionality for Open Source Language Automation
  • The New LLVM Repository Is Now Officially Available Via Git On GitHub

    The LLVM project has long been transitioning from Subversion-centered development to using Git around GitHub. The new "LLVM monorepo" Git setup is now considered finalized. 

    A few days ago I wrote about the LLVM transition to Git nearly being finalized while the announcement hit the wire yesterday of its success. James Knight who has been working on this initiative announced, "The new official monorepo is published to LLVM's github organization. At this point, the repository should be considered stable -- there won't be any more rewrites which invalidate commit hashes (barring some _REALLY_ good reason...)."

More in Tux Machines

today's howtos

Software: Relational Databases, Low Footprint Web Browsers and Top 5 Linux Apps For Writing

  • 10 Excellent Free Linux Relational Databases
    A relational database matches data using common characteristics found within the data set. The resulting groups of data are organized and are much easier for people to understand. In such a database the data and relations between them are organized in tables. A table is a collection of records and each record in a table contains the same fields. Certain fields may be designated as keys, which means that searches for specific values of that field will use indexing to speed them up. The term relational database was originally defined by Edgar Codd, a British computer scientist, whilst working at IBM Almaden Research Center. He recognized that the concept of a relational database could be derived from the principles of relational algebra and relational calculus. A Relational Database Management System (RDBMS) is a Database Management System (DBMS) that is based on the relational model. Most database systems today are based on this type of system. A database is a vital system for any organization that stores mission critical information. The continual failure of a company’s database system can only lead to the demise of the organization – companies cannot do business without a working database system. To provide an insight into the quality of software that is available, we have compiled a list of 10 open source RDBMS. Hopefully, there will be something of interest here for anyone who wants to store data in an efficient way.
  • 10 Best lightweight browsers for Linux or Ubuntu
    Web Browsers, the day when they started making our lives easier by allowing us to crawl the internet to today’s world; they have been gone through numerous technological advancements. Browsers are quite advance to handle high-end graphics, online videos, apps and more without the help of third-party software. But this also has made them heavy in terms of consuming hardware resources, means more RAM and storage space. Such kind of browsers works well on good system configuration machines, however, Linux operating systems those are running on old PC or laptops or low configuration systems require light browsers with a minimal approach to work fast. Mainstream browser or shall I say the dominated one: Google Chrome that Linux users refrain themselves from instaling it on their machines is rather resourced consuming browser. This is the main reason why most of the Linux OS like Ubuntu, Linux Mint, Centos and more come with Firefox Mozilla but somewhere it still not that much lightweight as we need it to be. So, I have done some research and gathered some lightweight Linux browsers.
  • TenFourFox FPR13 SPR1 available
    TenFourFox Feature Parity Release 13 Security Parity Release 1 ("FPR13.1") is now available and live (downloads, hashes, release notes). The Pwn2Own vulnerabilities do not work on TenFourFox in their present form (not only because we're PowerPC but also because of our hybrid-endian typed arrays and other differences), but I have determined that TenFourFox-specific variant attacks could be exploitable, so we are patched as well. This should also reduce the risk of crashes from attempts to exploit mainline x86 Firefox. Meanwhile, H.264 support for TenFourFox FPR14 appears to be sticking. Yes, folks: for the first time you can now play Vimeo and other H.264-only videos from within TenFourFox using sidecar ffmpeg libraries, and it actually works pretty well! Kudos to Olga for the integration code! That said, however, it comes with a couple significant caveats. The first is that while WebM video tends not to occur in large numbers on a given page, H.264 videos nowadays are studded everywhere (Vimeo's front page, Twitter threads, Imgur galleries, etc.) and sometimes try to autoplay simultaneously. In its first iteration this would cause the browser to run out of memory if a large number of higher resolution videos tried to play at once, and sometimes crash when an infallible memory allocation fallibled. Right now there is a lockout in the browser to immediately halt all H.264 decoding if any instance runs out of memory so that the browser can save itself, but this needs a lot more testing to make sure it's solid, and is clearly a suboptimal solution. Remember that we are under unusual memory constraints because of the large amount of stack required for our JIT.
  • Top 5 Linux Apps For Writing
    Top 5 Linux Apps For Writing. Keeping in mind that not all Linux apps for writing are created equal nor do they each provide the same functionality. Today I’ll provide you with my top five Linux app picks for writing.

End of LibrePlanet 2019

  • Questioning and Finding Purpose
    This is copied over from my spiritual blog. I'm nervous doing that, especially at a point when I'm more vulnerable than usual in the Debian community. Still, this is who I am, and I want to be proud of that rather than hide it. And Debian and the free software community are about far more than just the programs we write. So hear goes: The Libreplanet opening keynote had me in tears. It was a talk by Dr. Tarek Loubani. He described his work as an emergency physician in Gaza and how 3d printers and open hardware are helping save lives. They didn't have enough stethoscopes; that was one of the critical needs. So, they imported a 3d printer, used that to print another 3d printer, and then began iterative designs of 3d-printable stethoscopes. By the time they were done, they had a device that performed as well or better than than a commercially available model. What was amazing is that the residents of Gaza could print their own; this didn't introduce dependencies on some external organization. Instead, open/free hardware was used to help give people a sense of dignity, control of some part of their lives, and the ability to better save those who depended on them. Even more basic supplies were unavailable. The lack of tourniquets caused the death of some significant fraction of casualties in the 2014 war. The same solution—3d-printed tourniquets had an even more dramatic result. Dr. Loubani talked about how he felt powerless to change the world around him. He talked about how he felt like an insignificant ant.
  • LibrePlanet Day 2: Welcoming everyone to the world of free software
    One of the most important questions that free software is facing in the year 2019 is: how do we make the world of free software accessible to broader audiences? Vast numbers of people are using software every day -- how do we relate our message to something that is important to them, and then welcome them into our community? In order to achieve our mission, we need to invite people and get them to use, create, and proliferate ethical software, until it replaces until all technology is free. Many of the best talks at LibrePlanet 2019 echoed a message for the free software community to focus on building a culture that's respectful and encouraging for new people, respecting a wide variety of personalities and values. The first way to get people invested in the culture of free software is to make it fun, and that was the focus of the morning keynote, "Freedom is fun!", delivered by free software veteran Bdale Garbee. A prominent name in the free software world for decades, Bdale talked about how he has a habit of turning all of his hobbies into free software projects, starting with model rockets.

Python Programming: PyPy 7.1 and More

  • PyPy v7.1 released; now uses utf-8 internally for unicode strings
    The interpreters are based on much the same codebase, thus the double release. This release, coming fast on the heels of 7.0 in February, finally merges the internal refactoring of unicode representation as UTF-8. Removing the conversions from strings to unicode internally lead to a nice speed bump. We merged the utf-8 changes to the py3.5 branch (Python3.5.3) but will concentrate on 3.6 going forward. We also improved the ability to use the buffer protocol with ctype structures and arrays.
  • PyPy 7.1 As The Well Known Alternative Python Implementation
    Last month brought the release of PyPy 7.0 as the JIT-ed performance-optimized Python implementation. PyPy 7.0 brought alpha Python 3.6 support, an updated CFFI module, and other enhancements. Out now is PyPy 7.1 as its successor.
  • Python’s “else” clause for loops
  • EuroPython 2019: Presenting our conference logo for Basel
    The logo is inspired by graphical elements from the Basel Jean Tinguely Museum and Basel Rhine Swimming. It was again created by our designer Jessica Peña Moro from Simétriko, who had already helped us in previous years with the conference design.