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
On day 2 of the 2025 Perl Advent Calendar, @davorg walks us through how Pixie the Elf uses App::BlurFill to change the aspect ratio of an image.
perladvent.org/2025/2025-12-02…
#perl @perl @tag-perl #programming
The Perl Advent Calendar is back for a 26th year. 😅 Let's kick things off with a summary of this year's return of the Perl Developer Survey.
perladvent.org/2025/2025-12-01…
Discussion at news.ycombinator.com/item?id=4…
#perl @perl @tag-perl #programming
perlhacks.com/2025/11/dotcom-s…
#programming #perl #development
Dotcom Survivor Syndrome – How Perl’s Early Success Created the Seeds of Its Downfall - Perl Hacks
If you were building web applications during the first dot-com boom, chances are you wrote Perl. And if you're now a CTO, tech lead, or senior architect, you may instinctively steer teams away from it—even if you can’t quite explain why.Dave Cross (Perl Hacks)
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.
#apue #unix #programming #ed
Advanced Programming in the UNIX Environment: Tool Tip: ed(1) is the standard text editor
In this video, we provide a quick walkthrough of using ed(1), the standard text editor, which helps us understand other tools like vi(1), sed(1), and ultimat...YouTube
"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)
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.
#apue #programming #unix
Advanced Programming in the UNIX Environment: Week 01 - Introduction
In this video lecture, we provide an introduction to the class CS631 "Advanced Programming in the UNIX Environment" and discuss the purpose of the class, the...YouTube
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:
All video lectures are public and available for free on YouTube:
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
🚀 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
Yet Another Perl-Powered Company: Geolytica
Celebrating 20 years of innovation at Geolytica, Ervin Ruci shares his journey with Perl, from building geocoding engines to enhancing OpenStreetMap data.Perl.com
🎵 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
2024 DuckDuckGo Charitable Donations: $1.1M to support digital rights, online privacy, and a better Internet ecosystem
2024 marks DuckDuckGo's 14th year of donations—our annual program to support organizations that share our vision of raising the standard of trust online.Dax the duck (Spread Privacy)
#gamedev #dev #programming #cpp
C++ Is An Absolute Blast
Where I try to explain why I feel like C\+\+ is so much fun, and to correct some misinformation.learncodethehardway.com
Practical Data Oriented Design
youtu.be/IroPQ150F6c?feature=s…
Discussions: discu.eu/q/youtu.be/IroPQ150F6…
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.
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
PPI Signatures Trial Release - Feedback Requested
blogs.perl.org/users/mithaldu/…
#perl @perl @tag-perl #programming
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.
#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).
#apue
Advanced #Programming in the #UNIX Environment
The #UFS File System (from the -- by now old -- "#Solaris Internals" book)
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.)
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).
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
#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.
#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.
#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.
#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.
#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.
#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).
#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. 😂)
#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.
#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.
#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).
#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.
#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.
#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.
#apue
