Language Selection

English French German Italian Portuguese Spanish

The evolution of a Linux sysadmin

Filed under

We've all got a story, right? I don't know if anyone would read mine, but, to the right audience, it might sound familiar, or at least relatable. My life is sort of fractured between two things I'm passionate about. One is the off-road industry, and the other is open source software. Some time ago, I was involved in a YouTube "challenge" where a bunch of us off-road enthusiasts were asked to share our story, and I told the tale of how I got involved in "Jeeping" and why we do what we do in that space. Here, I am about to tell the other side of my story, where I’m a computer guy with a bunch of nerd cred. So hang on while I tell you the story of a broke high-school kid who stumbled into a career.

Read more

More in Tux Machines

Getting Things GNOME To-Do App Is Back with a New Major Release, Here’s What’s New

Probably not many of you reading this remember Getting Things GNOME, especially because it’s been more than six years since it received an update. Getting Things GNOME is a personal taks and to-do list items organizer for the GNOME desktop environment, inspired by the “Getting Things Done” methodology. The new release, Getting Things GNOME 0.4, is here to prove that the app isn’t dead and that it is here to stay for a long time to come, helping you getting your everyday stuff done and be more productive. Read more

IBM/Red Hat/Fedora Leftovers

  • Top tips for making your Call for Code submission stand out

    With the deadline for the 2020 Call for Code Global Challenge rapidly approaching (it’s Friday, July 31st at 11:59pm PDT), I have three last-minute tips and a checklist to review before you submit your entry.

  • IBM Cloud Pak for Applications in 2 minutes
  • Fedora Community Blog monthly summary: June 2020

    In May, we published 13 posts. The site had 3,753 visits from 1,736 unique viewers. Readers wrote 1 comment. 119 visits came from Fedora Planet, while 553 came from search engines. The most read post last month was Fedora 32 election results available, which published at the end of April.

  • Madeline Peck: Finished Storyboards!

    I also attended an executive talk this week which was really interesting to listen to. I believe it was by DeLisa Alexander (Executive Vice President and Chief People Officer) and hearing about her career track and how she encouraged working for cool places who actually took listened to your demands was an important thing to remember.

What’s the Difference Between Linux and Unix?

Linux is a free and open-source operating system. Unix is a commercial product, offered by a variety of vendors each with its own variant, usually dedicated to its own hardware. It’s expensive and closed source. But Linux and Unix do more or less the same thing in the same way, right? More or less, yes. The subtleties are slightly more complicated. There are differences beyond the technical and architectural. To understand some of the influences that have shaped Unix and Linux, we need to understand their backstories. Read more

Programming: Python, Perl/Raku and More

  • Understanding Virtual Environments in Python

    Most often than not, as a programmer, you will be required to work on different projects. These projects would also have different dependencies. Let's say you're building two Python application simultaneously. Each of these applications have their own set of dependencies of Python version and packages. One of them is a To-Do list app written in Python3 version and uses Django Rest Framework and another one is a Music Library written in Python2 version using Requests library and different/older version of Django to fetch music information from SoundCloud API.

  • CircuitPython Game Development (PewPew M4)

    Check out this open source CircuitPython game development platform based on the ARM M4 microcontroller. If you're looking to do some homebrew game development on a handheld platform, this is a great option. In this video I give an overview of the hardware itself and show how the CircuitPython programming environment works on it along with some basic programming examples.

  • PSF GSoC students blogs: Blog post for week 5: Polishing

    Last week was another week of code and documentation polishing. Originally I planned to implement duplicate filtering with external data sources, however, I already did that in week 2 when I evaluated the possibility of disk-less external queues (see pull request #2).

  • 2020.27 Advanced Beginning

    Vadim Belman has kicked off a series of blog posts about advanced Raku subjects, but for beginners! And what a kick off it was! With already three blog posts to savour:

  • Let's make a Teeny Tiny compiler, part 3

    We are finally here. It is time to create the emitter for our Teeny Tiny compiler, which will give us a the foundation to a working compiler. The fame and fortune is so close! Previously, we implemented the lexer (part 1) and the parser (part 2). The source code from this tutorial can be found in the GitHub repo.

    The emitter is the component that will produce the compiled code. In this case, our compiler will be producing C code. Luckily, we designed our parser in such a way that will make emitting C code quite easy! Since C is so ubiquitous, we will rely on your favorite C compiler (e.g., GCC or LLVM) to produce the executable for us. This means our compiler will be platform independent without dealing with assembly code or complex compiler frameworks.

    Back before I started coding this compiler, I wrote several fictitious examples of Teeny Tiny code and the corresponding C code that I think the compiler should generate. This was a good exercise to see which things translate nicely (i.e., one line of Teeny Tiny equals one line of C) and what doesn't.

  • A Go lesson learned: sometimes I don't want to use goroutines if possible

    One very simple metric is how long it takes to read a little file from every NFS filesystem we have mounted on a machine. As it happens, we already have the little files (they're used for another system management purpose), so all I need is a program to open and read each one while timing how long it takes. There's an obvious issue with doing this sequentially, which is that if there's a single slow filesystem, it could delay everything else.

  • [Old] How to fix the broken web as a site owner and web developer

    The web is broken. Behavioral tracking without consent, abuse of personal data, annoying walls, prompts and popups and a lot of disrespect to the web user in general.

    More technically savvy people use browser extensions and better browsers to avoid most of the noise and have a clean and distraction-free web experience. The “average” internet user on Chrome without extensions is browsing a very broken web and is regularly being taken advantage of.

    Here’s how you as a website owner and web developer can help fix this broken web so we don’t require hacks and extensions to make it usable and everyone can have a great experience.

  • Data Prep Still Dominates Data Scientists’ Time, Survey Finds

    Data cleansing – fixing or discarding anomalous or wrong numbers and otherwise ensuring the data is an accurate representation of the phenomenon it is meant to measure — accounts for more than a quarter of average day for data scientists, followed by 19% for data loading (the “L” in ETL), according to Anaconda’s annual survey.

    Data visualization tasks occupied for about 21% of their time, while model selection, model training and scoring, and model deployment each consume 11% to 12% of the day, the survey found.

  • Rcpp 1.0.5: Several Updates

    Right on the heels of the news of 2000 CRAN packages using Rcpp (and also hitting 12.5 of CRAN package, or one in eight), we are happy to announce release 1.0.5 of Rcpp. Since the ten-year anniversary and the 1.0.0 release release in November 2018, we have been sticking to a four-month release cycle. The last release has, however, left us with a particularly bad taste due to some rather peculiar interactions with a very small (but ever so vocal) portion of the user base. So going forward, we will change two things. First off, we reiterate that we have already made rolling releases. Each minor snapshot of the main git branch gets a point releases. Between release 1.0.4 and this 1.0.5 release, there were in fact twelve of those. Each and every one of these was made available via the drat repo, and we will continue to do so going forward. Releases to CRAN, however, are real work. If they then end up with as much nonsense as the last release 1.0.4, we think it is appropriate to slow things down some more so we intend to now switch to a six-months cycle. As mentioned, interim releases are always just one install.packages() call with a properly set repos argument away.