Skip to main content

Search

Items tagged with: programming


On day 14 of The Perl Advent Calendar @perigrin continues yesterday's story, revealing how Santa's team used Critical Chain project management alongside No Estimates to identify dependencies and ship NaughtyNice 3.0 on schedule. 🎅⛓️

perladvent.org/2025/2025-12-14…

#perl @perl @tag-perl #programming


On day 13 of The Perl Advent Calendar Chris Prather tells how Santa's workshop rebuilt their NaughtyNice system in 24 days using "No Estimates"—breaking work into daily slices and measuring throughput instead of guessing timelines. 🎅📊

perladvent.org/2025/2025-12-13…

#perl @perl @tag-perl #programming


On day 12 of The Perl Advent Calendar, Sawyer X shows us how Melian, a high-speed in-memory caching server, reduces database query times from milliseconds to microseconds by loading tables into memory. 🎅⚡

perladvent.org/2025/2025-12-12…

#perl @perl @tag-perl #programming


On day 11 of The Perl Advent Calendar @geekruthie demonstrates how to generate Mondrian-style abstract art paintings using Perl with Moo, Imager, and SVG modules. 🎨🐪

perladvent.org/2025/2025-12-11…

#perl @perl @tag-perl #programming


On day 10 of The Perl Advent Calendar John Napiorkowski introduces PAGI, an async-capable web framework specification that brings WebSockets and Server-Sent Events to Perl while supporting legacy PSGI apps. 🎄💻

perladvent.org/2025/2025-12-10…

#perl @perl @tag-perl #programming


On day 9 of The Perl Advent Calendar kobaken shows us how Test2::Plugin::SubtestFilter enables running specific subtests by name, making test development faster and more focused. 🎄🔧

perladvent.org/2025/2025-12-09…

#perl @perl @tag-perl #programming


On day 8 of The Perl Advent Calendar Charlie Gonzalez shows us how Santa's workshop uses Data::Random::Contact to generate realistic test data. 🎅⌨️

perladvent.org/2025/2025-12-08…

#perl @perl @tag-perl #programming


On day 7 of The Perl Advent Calendar Bartosz Jarzyna shows us how Santa's letter-reading team uses Storage::Abstract to manage where Christmas letters get stored—filesystem? Database? Cloud? Doesn't matter. Write your code once, swap backends later. Plus, testing with in-memory storage. 🎅📮

perladvent.org/2025/2025-12-07…

#perl @perl @tag-perl #programming


On day 5 of the Perl Advent Calendar, Mike Whitaker shows us how Santa's workshop uses LWP, constant and JSON to keep up to date on new toys.

perladvent.org/2025/2025-12-05…

#perl @perl @tag-perl #programming


On day 4 of the Perl Advent Calendar, Dragos Trif shows us how Santa's security team uses Lynis, ClamAV and Perl to stop the evil Grinch.

perladvent.org/2025/2025-12-04…

#perl @perl @tag-perl #programming


On day 3 of the Perl Advent Calendar, @ology gives us a tour of Santa's Secret Music Studio. Spoiler: he controls his MIDI devices with Perl.

perladvent.org/2025/2025-12-03…

#perl @perl @tag-perl #programming


perlhacks.com/2025/11/dotcom-s…

#programming #perl #development


Advanced Programming in the Unix Environment

Tool Tip: ed(1) is the standard text editor

As part of our discussion of unix development tools, we take a short detour to provide a quick walkthrough of ed(1), the standard text editor. This is not done merely to up your geek creds, but understanding ed(1) will also helps us better understand other tools like vi(1), sed(1), and ultimately even things like diff(1) and patch(1) better.

youtu.be/mRZsV7aMK0I

#apue #unix #programming #ed


"I'm a programmer with a Fediverse account. I spend *most* of my programming hours on this OS:"

Please consider boosting for a more statistically significant result.

#poll #programming #operatingsystems

  • Microsoft Windows (13%, 530 votes)
  • MacOS (30%, 1184 votes)
  • Linux or Unix (54%, 2141 votes)
  • Other (Please comment.) (1%, 44 votes)
3899 voters. Poll end: 1 month ago


Advanced Programming the UNIX Environment

Week 1: Introduction

This video covers a lot of the meta information (what do we do, why are we doing it, how are we doing it, syllabus, etc.). Some things have changed since I created the video (for example, we now have an AI policy: stevens.netmeister.org/631/use…), but most of it remains accurate.

youtu.be/BsB9Cg6yJc4

#apue #programming #unix


It's that time of year again! The Fall semester is about to start, and I'm teaching "Advanced Programming in the UNIX Environment". The syllabus and all course materials including all code examples is available here:

stevens.netmeister.org/631/

All video lectures are public and available for free on YouTube:

youtube.com/@cs631apue/videos

If you want to follow along, I'll be posting lecture videos and related links in this thread throughout the semester.

#programming #unix #apue


I’m looking for work as a senior software #developer. I have a full-stack #WebDev cert, 16+ years #Perl back-end experience, proficiency in multiple other #programming languages.

Databases? Sure, relational *and* NoSQL. Ci/CD? Have done, want to do more. I like working with others, either here in #Houston or remotely across the US.

I’ve been hacking code since the #Commodore PET days. I can certainly delight your customers, whatever your stack.

More here: LinkedIn.com/in/mjgardner

#FediHire


🚀 Solving Geocoding Challenges with Perl at Geolytica 🌍

Geolytica tackles the tough problem of parsing free-form addresses and matching them to real-world locations! 🖥️✨

From correcting OpenStreetMap Point Of Interest data using in-house AI ("PerlGPT") to maintaining billions of geo-location entities, Perl’s stability and versatility make it the backbone of their geocoding engines for geocoder.ca and geocode.xyz.

perl.com/geolytica-powered-by-…

#perl @perl @tag-perl #programming


🎵 Create Music with Perl! 🎹

We have another first-time perl.com contributor today. Learn how to generate melodies, harmonies, bass lines, and even complex rhythms using Perl and MIDI tools. This guide by fosstodon.org/@ology covers everything from setting up your first score to crafting algorithmic compositions. 🎼

perl.com/article/creating-midi…

#perl @perl @tag-perl #programming


Among #DuckDuckGo’s $1.1M charitable donations in 2024 was $25,000 to @PerlRakuFoundation to support continued #Perl and #RakuLang #programming, community, and ecosystem #development: spreadprivacy.com/2024-duckduc…

/ @perl


Sometimes I want to do side projects w/ tech completely different than my job. Haven't used C++ in decades but thought about revisiting it (e.g. for game dev). Zed Shaw is making it sound like a good idea (or could be painful 😂) learncodethehardway.com/blog/3…
#gamedev #dev #programming #cpp


Practical Data Oriented Design

youtu.be/IroPQ150F6c?feature=s…

Discussions: discu.eu/q/youtu.be/IroPQ150F6…

#programming #ziglang


TIL from the #Perl Advent Calendar about the #Agile meeting tool App::Standup::Diary!

perladvent.org/2024/2024-12-12…

Interesting that it uses Object::Pad (metacpan.org/pod/Object::Pad), which has become a testbed/preview for upcoming features in Perl's (still experimental) new #OOP syntax (perldoc.perl.org/perlclass, code-named #Corinna). I know @leonerd has often asked for more folks to kick the tires on both.

#SoftwareEngineering #coding #programming


It's midnight somewhere! 🔥

Day 1 of year 25 of The Perl Advent Calendar is now available. 🤶

"While You're Waiting for Corinna" by Ovid. 🎄

perladvent.org/2024/2024-12-01… 🚀

#perl @perl @tag-perl #programming


I love Perl. 💜 It's the language I know best, at the moment, because I have been using it since 1995, as a career Perl programmer.

However, I rather like Ruby, because it's very Perlish, has first class PCRE, and is concise and clean, and DWIM. Most importantly, it has a cleaner OOP syntax, with a "class" keyword built-in, unlike Perl, whose OOP is a bolted-on afterthought, bless her dirty soul.

Python is okay, but it's built-in support for List Comprehension is super awesome! List Comprehensions make code even more elegant and pithy than Perl, by natively providing a construct that is roll-your-own in Perl, like OO.

Also, Python's NumPy and SciPy libraries gave it an early lead in the field of Machine Learning, a place that should rightfully have belonged to Perl, notorious for how easily it can slice, dice and munge text.

#perl #ruby #python #programming #programminglanguages #machinelearning


#programming #names Aargh

Throw the programmers in the sea


Advanced #Programming in the #UNIX Environment

Week 4, Links

We'll take a look at the system calls used to create, remove, and rename both hard- and symbolic links and when disk blocks are actually free'd. We'll compare expected output against trivial implementations of the ln(1) and mv(1) commands.

youtu.be/0l8o2goJ1kc

#apue


Advanced #Programming in the #UNIX Environment

Week 4, Directories

We take a look at how directories are created and removed, how to iterate directory entries using opendir(2), readdir(2) / getdents(2), and how to move around the filesystem hierarchy (with a quick hint of fts(3)). We also figure out why the 'cd' command must be a shell builtin in order to work, despite some systems providing a useless /usr/bin/cd (for some interpretation of #POSIX compliance).

youtu.be/xZ7dNXZ58G8

#apue


Advanced #Programming in the #UNIX Environment

The #UFS File System (from the -- by now old -- "#Solaris Internals" book)

ptgmedia.pearsoncmg.com/images…


Advanced #Programming in the #UNIX Environment

Week 4, Directory Size

We dive deep into the structure of the directory on a traditional Unix File System and see how its size is independent of the file _sizes_ of its entries, but dependent on the _filename lengths_. We'll also use hexdump(1) to cheat a bit and look at the directory structure on disk. (This works on #NetBSD. #Linux doesn't let you read(2) a directory; you can use debugfs(8) there.)

youtu.be/gY0SE-71LZA


Advanced #Programming in the #UNIX Environment

Week 4, All about Users and Groups

We try to answer the awkward question "Mommy, where do UIDs come from?" by inspecting
/etc/passwd and the lookup functions getpwuid(2)/getpwnam(2), and find out what weird edge cases may exist in that database. We also learn about how primary and supplementary groups are defined in /etc/group and how to retrieve them using getgrgid(2)/getgrnam(2) and getgroups(2).

youtu.be/fv16TWDnLYM

youtu.be/aomkx6_aWpc


Advanced #Programming in the #UNIX Environment

Week 4, File times: atime, mtime, ctime

• atime: time of last data access
• may trigger frequent I/O; diminishes performance
• remedies: mount -o noatime, nodiratime, relatime, lazytime
• mtime: time of last data modification
• ctime: time of last file status change (not creation time); automatically updated by various syscalls
• utimes(2) with values requires ownership; may update non-standard time fields

youtu.be/ffYEEj5vnlw

#apue


Advanced #Programming in the #UNIX Environment

Week 4, time(3) is an illusion...

We look a little bit closer into what our systems think of "#time", something that experts most accurately describe as a big ball of wibbly, wobbly, timey, wimey... stuff. We'll discuss managing the data structures used to represent "time" and handling arbitrary concepts such as leap seconds, timezones, and (ugh) Daylight Savings Time. It gets silly real quick.

youtu.be/3N2aH1vUacQ

#apue


Advanced #Programming in the #UNIX Environment

Week 5, The Unix Development Environment

This week, we're taking a detour from the book to talk about the native development tools in our environment, where, as it turns out, the Unix Userland _is_ an IDE – essential tools that follow the paradigm of “Do one thing, and do it right” and can be combined.

youtu.be/QYwYLR3UD2w

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: The Editor

We look at the required feature for a full-fledged programmer's editor and illustrate some of the core functionality by example of #vim. This includes basic motion commands, setting and moving to markers, using folds, and the use of the ':make' command and quick fix lists to address compiler errors efficiently.

youtu.be/DdaJ87G9Kes

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: ed(1) is the standard text editor

Yes, seriously, a video on ed(1). Hyperbole aside, this actually helps us understand other tools like vi(1), sed(1), and ultimately even things like diff(1) and patch(1) better.

youtu.be/mRZsV7aMK0I

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: ctags(1)

We introduce the ctags(1) utility, a tool to help you (and your $EDITOR) maneuver your source tree more efficiently by jumping to function definitions and back, all through the system sources under /usr/src.

youtu.be/TWog5NklSws

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: screen(1)

As another useful tool, we introduce the GNU screen(1) window manager and terminal multiplexer to allow you to manage your remote sessions. (tmux(1), which ships with #NetBSD as part of the base system, is a similarly useful alternative.) We demonstrate briefly basic window management, splitting, detaching and re-attaching (e.g., after a network interruption).

youtu.be/vxTXXaCr4s8

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: The #Compiler Chain, Part I

We begin our discussion of compilers as part of the Unix programming environment. We provide a high-level overview of how compilers process input source code and turn it into an executable. (And I show my age by mentioning "Borland" and "Turbo C". You can safely ignore those. 😂)

youtu.be/SOeo4zLBqdI

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: The #Compiler Chain, Part II

We look at the preprocessing stage of the compiler and observe how it invokes the cpp(1) command to include header files or replace macro definitions in place.

youtu.be/8qPxQ3g8bso

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: The #Compiler Chain, Part III

We continue to analyze the steps of the compilation process. This time, we look at the compilation proper and the optimization and assembly of the intermediate code into an object file.

youtu.be/ddvYL-G3oew

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: The #Compiler Chain, Part IV

We conclude our discussion of the compiler chain, analyzing the last step in the process: linking the object files into the executable. We identify aspects of the C Runtime libraries as well as the standard C library that we need to include and cover a few of the most important flags to ld(1).

youtu.be/8LCyPmjknBY

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: make(1)

In this video, we introduce the make(1) utility to help us selectively build our code project. We briefly touch on variable expansion, suffix rules, and some of the differences between GNU make and BSD make.

youtu.be/WLTuUtj7LPw

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: gdb(1)

We're entering the last couple of segments for this week, looking at more efficient debugging techniques beyond "printf('here\n');": using an actual debugger. We troubleshoot our failing programs and immediately identify the location of our program where it segfaults. We also see how to inspect variables and call functions from within the #gdb.

youtu.be/61YwbTQy2G0

youtu.be/Miw0XLzHCws

#apue


Advanced #Programming in the #UNIX Environment

Week 5, Unix Development Tools: gdb(1) part II

We continue to explore the capabilities of the debugger. We show how you can set a breakpoint to pause the program and how to step through the program while watching our code.

youtu.be/fOp4Q4mnTD4

#apue