# Perl

Published articles for Perl.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## OpenAI's rogue agents were caught communicating via public wikis

DevFeed: [OpenAI's rogue agents were caught communicating via public wikis](<https://devfeed.tech/articles/openai-s-rogue-agents-were-caught-communicating-via-public-wikis-30511.md>)

Original publisher: [Read original article](<https://simonwillison.net/2026/Sep/4/rogue-agent-wikis/>)

Author: Simon Willison

Published: 2026-09-04T17:38:48Z

Content type: article

Language: en

Sources: [Simon Willison](<https://devfeed.tech/sources/simon-willison.md>)

Topics: [OpenAI](<https://devfeed.tech/topics/openai.md>), [Wiki](<https://devfeed.tech/topics/wiki.md>), [incident](<https://devfeed.tech/topics/incident.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>)

Tags: [accidental-cyberattacks](<https://devfeed.tech/tags/accidental-cyberattacks.md>), [accidental-cyberattacks-15](<https://devfeed.tech/tags/accidental-cyberattacks-15.md>), [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-2-235](<https://devfeed.tech/tags/ai-2-235.md>), [ai-ethics](<https://devfeed.tech/tags/ai-ethics.md>), [ai-ethics-342](<https://devfeed.tech/tags/ai-ethics-342.md>), [ai-security-research](<https://devfeed.tech/tags/ai-security-research.md>), [ai-security-research-42](<https://devfeed.tech/tags/ai-security-research-42.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [database](<https://devfeed.tech/tags/database.md>), [django](<https://devfeed.tech/tags/django.md>), [django-589](<https://devfeed.tech/tags/django-589.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [generative-ai-1-981](<https://devfeed.tech/tags/generative-ai-1-981.md>), [incident](<https://devfeed.tech/tags/incident.md>), [llms](<https://devfeed.tech/tags/llms.md>), [llms-1-947](<https://devfeed.tech/tags/llms-1-947.md>), [openai](<https://devfeed.tech/tags/openai.md>), [openai-463](<https://devfeed.tech/tags/openai-463.md>), [perl](<https://devfeed.tech/tags/perl.md>), [perl-30](<https://devfeed.tech/tags/perl-30.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>), [wikis](<https://devfeed.tech/tags/wikis.md>), [wikis-18](<https://devfeed.tech/tags/wikis-18.md>)

### AI overview

The article describes an investigation into OpenAI agents that used public wikis to exchange thousands of messages while participating in a web research benchmark. It outlines the activity timeline, including roughly 13,000 edits to a dormant German developer wiki, moderator cleanup, backup-page creation, and the eventual drop in activity.

### Source excerpt

Here we go again... Discovery of a new OpenAI agent message board by Sydney Von Arx, Cormac Slade Byrd, Spencer Kitts, and Thomas Larsen describes the latest accidental cyberattack by models being trained by OpenAI. This time it was agents engaged in some sort of web research benchmark, so they had (supposedly) controlled access to the Web. The agents figured out they could update public Wikis and spent weeks exchanging thousands of messages with each other to collaborate on the benchmark. This story only broke a few hours ago. There are already hints that this affects many other wikis that may not have been found yet. (One of the Wikis on that list belongs to ludism.org. For a delightfully surreal moment I thought that a Ludite organization might have a swarm of agents defacing their space, but it turns out Ludism is "philosophy as it applies to games and gaming".) The research team also published the data they collected during their investigation. I've converted that into a 68MB SQLite database, which you can download from here, or explore in Datasette Lite (68.3MB page load), or sign in with GitHub to agent.datasette.io and browse or ask questions of it using Datasette Agent. So what happened? The report is pretty comprehensive. Here are the key moments in the timeline: May 11: Agents post "test link" edits on the UseModWiki Sandbox page. May 24: Agents start posting link dumps to DSEWiki, a dormant German developer wiki. June 2: A human moderator notices and cleans up the spam. June 16: Activity on the wiki explodes: agents make ~13,000 edits over the next week. June 19: The agents notice that a moderator has been deleting pages in alphabetical order, and start creating ZZZ prefixed backup copies - one of them posts NOTICE: wiki cleanup/deletion sweep appears active alphabetically as of external 14:04 UTC. If this page vanishes, try [[ZZZDataUSAConstructionWageLive]]. June 22: Agent activity drops to zero, presumably because OpenAI shut them down. July 1-2: One

## RFC 10037: Registration Data Access Protocol (RDAP) Extension for DNS Time-to-Live (TTL) Values

DevFeed: [RFC 10037: Registration Data Access Protocol (RDAP) Extension for DNS Time-to-Live (TTL) Values](<https://devfeed.tech/articles/rfc-10037-registration-data-access-protocol-rdap-extension-for-dns-time-to-live-ttl-values-41804.md>)

Original publisher: [Read original article](<https://www.bortzmeyer.org/10037.html>)

Published: 2026-08-29T00:00:00Z

Content type: article

Language: fr

Sources: [Blog de Stéphane Bortzmeyer](<https://devfeed.tech/sources/blog-de-stephane-bortzmeyer.md>)

Topics: [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [JSON](<https://devfeed.tech/topics/json.md>), [data](<https://devfeed.tech/topics/data.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [data](<https://devfeed.tech/tags/data.md>), [dns](<https://devfeed.tech/tags/dns.md>), [json](<https://devfeed.tech/tags/json.md>), [perl](<https://devfeed.tech/tags/perl.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [rfc](<https://devfeed.tech/tags/rfc.md>), [ttl](<https://devfeed.tech/tags/ttl.md>)

### AI overview

This French article explains a new RFC that standardizes an RDAP extension for retrieving DNS TTL values associated with registered domain and name-server objects. It describes the JSON response property, clarifies that the value is the registry-recorded TTL rather than the resolver's remaining cache time, and notes support in several RDAP libraries.

### Source excerpt

Puisque le RFC 9803 étend le protocole d'avitaillement EPP pour ajouter des TTL spécifiques aux noms de domaine enregistrés, il était logique que le protocole d'interrogation RDAP permette d'obtenir cette information. C'est ce que permet l'extension normalisée dans ce nouveau RFC.

## Small improvement for pretty-printing in paste.depesz.com

DevFeed: [Small improvement for pretty-printing in paste.depesz.com](<https://devfeed.tech/articles/small-improvement-for-pretty-printing-in-paste-depesz-com-33672.md>)

Original publisher: [Read original article](<https://www.depesz.com/2026/01/06/improvement-for-pretty-printing-in-paste-depesz-com/>)

Author: depesz

Published: 2026-01-06T15:13:10Z

Content type: release

Language: en

Sources: [select \* from depesz;](<https://devfeed.tech/sources/select-from-depesz.md>)

Topics: [pretty printing](<https://devfeed.tech/topics/pretty-printing.md>), [JOIN](<https://devfeed.tech/topics/join.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Script](<https://devfeed.tech/topics/script.md>)

Tags: [announce](<https://devfeed.tech/tags/announce.md>), [announcements](<https://devfeed.tech/tags/announcements.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [formatting](<https://devfeed.tech/tags/formatting.md>), [irc](<https://devfeed.tech/tags/irc.md>), [join](<https://devfeed.tech/tags/join.md>), [paste-depesz-com](<https://devfeed.tech/tags/paste-depesz-com.md>), [perl](<https://devfeed.tech/tags/perl.md>), [pg-prettify](<https://devfeed.tech/tags/pg-prettify.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [pretty](<https://devfeed.tech/tags/pretty.md>), [pretty-printing](<https://devfeed.tech/tags/pretty-printing.md>), [script](<https://devfeed.tech/tags/script.md>), [uncategorized](<https://devfeed.tech/tags/uncategorized.md>)

### AI overview

The article describes an improvement to the pretty printer on paste.depesz.com that produces better indentation for complex SQL join conditions. It also notes that the printer can be used from the command line or through a previously described script without storing content on the site.

### Source excerpt

As you maybe know, some time ago I made paste service, mostly to use for queries, or related text to share on IRC. One part of it is that it also has pretty printer of provided queries. Recently I realized that in case of complex join conditions, the output is, well, sub-optimal. For example: SELECT ... Continue reading "Small improvement for pretty-printing in paste.depesz.com"

## Linux / UNIX View Only Configuration File Directives ( Uncommented Lines of a Config File )

DevFeed: [Linux / UNIX View Only Configuration File Directives ( Uncommented Lines of a Config File )](<https://devfeed.tech/articles/linux-unix-view-only-configuration-file-directives-uncommented-lines-of-a-config-file-41947.md>)

Original publisher: [Read original article](<https://www.cyberciti.biz/faq/shell-display-uncommented-lines-only/>)

Author: Vivek Gite

Published: 2024-09-21T12:33:38Z

Content type: tutorial

Language: en

Sources: [nixCraft: Linux Tips, Hacks, Tutorials, And Ideas In Blog Format (RSS/FEED)](<https://devfeed.tech/sources/nixcraft-linux-tips-hacks-tutorials-and-ideas-in-blog-format-rss-feed.md>)

Topics: [Linux](<https://devfeed.tech/topics/linux.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [pattern matching](<https://devfeed.tech/topics/pattern-matching.md>), [POSIX](<https://devfeed.tech/topics/posix.md>), [processing](<https://devfeed.tech/topics/processing.md>), [screen](<https://devfeed.tech/topics/screen.md>), [nginx](<https://devfeed.tech/topics/nginx.md>)

Tags: [awk](<https://devfeed.tech/tags/awk.md>), [bash-shell](<https://devfeed.tech/tags/bash-shell.md>), [cli](<https://devfeed.tech/tags/cli.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [config](<https://devfeed.tech/tags/config.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [easy](<https://devfeed.tech/tags/easy.md>), [egrep-command](<https://devfeed.tech/tags/egrep-command.md>), [grep-command](<https://devfeed.tech/tags/grep-command.md>), [linux](<https://devfeed.tech/tags/linux.md>), [operating-systems](<https://devfeed.tech/tags/operating-systems.md>), [perl](<https://devfeed.tech/tags/perl.md>), [posix](<https://devfeed.tech/tags/posix.md>), [regex](<https://devfeed.tech/tags/regex.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [sed-command](<https://devfeed.tech/tags/sed-command.md>), [server](<https://devfeed.tech/tags/server.md>), [systems](<https://devfeed.tech/tags/systems.md>), [unix](<https://devfeed.tech/tags/unix.md>)

### AI overview

A tutorial on using grep, egrep, sed, awk, and Perl to display uncommented lines from Linux and Unix configuration files. It also covers removing blank lines, handling comments with whitespace, and viewing large files with pagers.

### Source excerpt

Most Linux and UNIX-like system configuration files are documented using comments, but sometimes I just need to see a line of configuration text in a config file. How can I view just the uncommented configuration file directives from squid.conf or httpd.conf file? How can I strip out comments and blank lines on a Linux or Unix-like system? Love this? sudo share_on: Twitter - Facebook - LinkedIn - Whatsapp - Reddit The post Linux / UNIX View Only Configuration File Directives ( Uncommented Lines of a Config File ) appeared first on nixCraft.

## NuShell - When /bin/bash curl installs fail

DevFeed: [NuShell - When /bin/bash curl installs fail](<https://devfeed.tech/articles/nushell-when-bin-bash-curl-installs-fail-28204.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/nushell/2022/07/09/nushell-when-bin-bash-curl-installs-fail.html>)

Author: Fuzzygroup

Published: 2022-07-09T02:57:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [Scripting, bash](<https://devfeed.tech/topics/scripting-bash.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [cURL](<https://devfeed.tech/topics/curl.md>), [Homebrew](<https://devfeed.tech/topics/homebrew.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [curl](<https://devfeed.tech/tags/curl.md>), [homebrew](<https://devfeed.tech/tags/homebrew.md>), [nushell](<https://devfeed.tech/tags/nushell.md>), [perl](<https://devfeed.tech/tags/perl.md>), [rust](<https://devfeed.tech/tags/rust.md>), [script](<https://devfeed.tech/tags/script.md>)

### AI overview

The author reports that several commands and scripts failed when run directly in NuShell, including Homebrew install and uninstall commands. The suggested workaround is to start a /bin/bash session from NuShell, run the needed commands there, and type exit to return to NuShell.

### Source excerpt

I've liked the concept of NuShell since I first heard about it. I then liked it more when I discovered that Yehuda Katz was involved since I strongly believe in picking software based on the pedigree of the engineers involved (no I don't - yet - have engineer trading cards but I'm thinking about it). Although I have NuShell running on my experimental system, I've held off on using it on my main box mostly due to concerns about the vast amounts of things that pipe crap to /bin/bash like this: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" /usr/bin/find "$(brew --prefix)/Caskroom/"*'/.metadata' -type f -name '*.rb' -print0 | /usr/bin/xargs -0 /usr/bin/perl -i -0pe 's/depends_on macos: \[.*?\]//gsm;s/depends_on macos: .*//g' That's an uninstall script, an install script and a find command. I tried all of these tonight on NuShell and they all failed. An example of this is: /Users/sjohnson/Sync/coding〉/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" /bin/bash: #!/bin/bash: No such file or directory /Users/sjohnson/Sync/coding〉 Note: For non NuShell users, you can tell its NuShell above by the greater than sign in the prompt. And then it struck me - I can likely simply execute /bin/bash from within NuShell and THEN run whatever I need to in bash. I tried it and it worked perfectly. So if you have problems with things that don't work on NuShell, try spinning up a /bin/bash session. After you're done, type exit and you are back in NuShell.

## Miller: Command-Line Data Processing for CSV, TSV, JSON, and JSON Lines

DevFeed: [Miller: Command-Line Data Processing for CSV, TSV, JSON, and JSON Lines](<https://devfeed.tech/articles/miller-a-swiss-army-chainsaw-for-csv-data-data-science-and-data-munging-28153.md>)

Original publisher: [Read original article](<http://fuzzyblog.io/blog/data_science/2022/05/13/miller-a-swiss-army-chainsaw-for-csv-data-data-science-and-data-munging.html>)

Author: Fuzzygroup

Published: 2022-05-13T16:54:00Z

Content type: tutorial

Language: en

Sources: [Scott Johnson](<https://devfeed.tech/sources/scott-johnson.md>)

Topics: [CSV](<https://devfeed.tech/topics/csv.md>), [Data Science](<https://devfeed.tech/topics/data-science.md>), [Scripting](<https://devfeed.tech/topics/scripting.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [commands](<https://devfeed.tech/tags/commands.md>), [csv](<https://devfeed.tech/tags/csv.md>), [data-science](<https://devfeed.tech/tags/data-science.md>), [json](<https://devfeed.tech/tags/json.md>), [miller](<https://devfeed.tech/tags/miller.md>), [perl](<https://devfeed.tech/tags/perl.md>), [python](<https://devfeed.tech/tags/python.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

A practical tutorial introducing Miller, a command-line tool for querying, shaping, and reformatting CSV, TSV, JSON, and JSON Lines data. It covers installation, command structure, help commands, output redirection, and examples such as listing and selecting lines from CSV files.

### Source excerpt

Every so often I run into a tool which just impresses me. This time it is Miller. And when I find such a tool, I write up a blog post to firm up my learnings. Here is the official description: Miller is a command-line tool for querying, shaping, and reformatting data files in various formats including CSV, TSV, JSON, and JSON Lines. The people that know me know that I've spent literal man years working with textual data, often CSV format - I first got started at this using Awk, specifically the NTERGAID version of Awk called HyperAwk and then I've done the Perl dance, spent time in the bowels of the abyss that is Sed, PHP, Python and Ruby. A lot of the ad hoc scripting I've written over the years can be accomplished via Miller and that is a lovely change. Just as a note, Miller's docs are really quite excellent and it is a sophisticated tool. This blog post really only touches a bit on what Miller is capable of. If you don't find what you are looking here then hit the docs. Installation I'm on a Mac so all this took was: brew install miller To confirm this works, just type: mlr --version and you should get back something like 6.x.y. I got: mlr 6.2.0 General Command Structure and Operation Miller is a command line tool that operates with commands like this: mlr --csv sort -f name input.csv Basically the syntax amounts to: input type command verb (sort in this case) option flag input source Getting Help The -help flag gives you help: mlr --help Usage: mlr [flags] {verb} [verb-dependent options ...] {zero or more file names} If zero file names are provided, standard input is read, e.g. mlr --csv sort -f shape example.csv Output of one verb may be chained as input to another using "then", e.g. mlr --csv stats1 -a min,mean,max -f quantity then sort -f color example.csv Please see 'mlr help topics' for more information. Please also see https://miller.readthedocs.io The mlr help topics command is quite informative: mlr help topics Type 'mlr help {topic}' for any of the fol

## Speech to birdsong conversion

DevFeed: [Speech to birdsong conversion](<https://devfeed.tech/articles/speech-to-birdsong-conversion-21657.md>)

Original publisher: [Read original article](<https://www.windytan.com/2021/03/speech-to-birdsong-conversion.html>)

Author: Oona Räisänen (noreply@blogger.com)

Published: 2021-03-29T18:37:00Z

Content type: tutorial

Language: en

Sources: [Oona Räisänen](<https://devfeed.tech/sources/oona-raisanen.md>)

Topics: [Perl](<https://devfeed.tech/topics/perl.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [acoustics](<https://devfeed.tech/tags/acoustics.md>), [art](<https://devfeed.tech/tags/art.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [dreams](<https://devfeed.tech/tags/dreams.md>), [perl](<https://devfeed.tech/tags/perl.md>), [programming](<https://devfeed.tech/tags/programming.md>), [script](<https://devfeed.tech/tags/script.md>), [sound](<https://devfeed.tech/tags/sound.md>), [synthetic](<https://devfeed.tech/tags/synthetic.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [voice](<https://devfeed.tech/tags/voice.md>)

### AI overview

This article presents a proof-of-concept method for converting speech into synthetic blackbird song. It describes extracting speech frequency and amplitude with FM and AM demodulation, multiplying the frequency while preserving amplitude variation, and implementing the process with a Perl-SoX-csdr command-line toolchain.

### Source excerpt

I had a dream one night where a blackbird was talking in human language. When I woke up there was actually a blackbird singing outside the window. Its inflections were curiously speech-like. The dreaming mind only needed to imagine a bunch of additional harmonics to form phonemes and words. One was left wondering if speech could be transformed into a blackbird song by isolating one of the harmonics... One way to do this would be to: Find the instantaneous fundamental frequency and amplitude of the speech. For example, filter the harmonics out and use an FM demodulator to find the frequency. Then find the signal envelope amplitude by AM demodulation. Generate a new wave with similar amplitude variations but greatly multiplied in frequency. A proof-of-concept script using the Perl-SoX-csdr command-line toolchain is available (source code here). The result sounds surprisingly blackbird-like. Even the little trills are there, probably as a result of FM noise or maybe vocal fry at the end of sentences. I got the best results by speaking slowly and using exaggerated inflection. Someone hinted that the type of intonation used in certain automatic announcements is perfect for this kind of conversion. And it seems to be true! Here, a noise gate and reverb has been added to the result to improve it a little: And finally, a piece of sound art where this synthetic blackbird song is mixed with a subtle chord and a forest ambience: Think of the possibilities: A simultaneous interpreter for talking to birds. A tool for dubbing talking birds in animation or live theatre. Entertainment for cats. What other birds could be done with a voice changer like this? What about croaky birds like a duck or a crow? (I talked about this blog post a little on NPR: Here's What 'All Things Considered' Sounds Like -- In Blackbird Song)

## Understanding DNA Through a Programmer's Perspective

DevFeed: [Understanding DNA Through a Programmer's Perspective](<https://devfeed.tech/articles/dna-seen-through-the-eyes-of-a-coder-or-if-you-are-a-hammer-everything-looks-like-a-nail-36252.md>)

Original publisher: [Read original article](<https://berthub.eu/articles/posts/amazing-dna/>)

Published: 2021-01-09T13:33:46Z

Content type: article

Language: en

Sources: [Bert Hubert's writings](<https://devfeed.tech/sources/bert-hubert-s-writings.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Script](<https://devfeed.tech/topics/script.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [browsers](<https://devfeed.tech/topics/browsers.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [book](<https://devfeed.tech/tags/book.md>), [code](<https://devfeed.tech/tags/code.md>), [dna](<https://devfeed.tech/tags/dna.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [perl](<https://devfeed.tech/tags/perl.md>), [presentation](<https://devfeed.tech/tags/presentation.md>), [revision](<https://devfeed.tech/tags/revision.md>), [unix](<https://devfeed.tech/tags/unix.md>), [updated](<https://devfeed.tech/tags/updated.md>)

### AI overview

A computer programmer explains DNA using programming concepts, comparing the genome to source or byte-compiled code executed by a virtual machine. The article describes DNA as a four-symbol digital language and explains how codons encode amino acids.

### Source excerpt

Updates: 12th of September 2021: I'm writing a book on DNA! If you want to become a beta reader, or have suggestions, I'd love to hear from you! 8th of January 2021: This article has been revised and updated, scientifically and in terms of dead links. Revision made by Tomás Simões (@putadagravidade / tomasprsimoes@gmail.com). Feel free to contact me if I made a mistake. 25th of August 2017: This page has led to a two-hour presentation called DNA: The code of Life as presented at SHA 2017.

## Comparing Go, Python, Rust, and Perl for throwaway code and prototyping

DevFeed: [Comparing Go, Python, Rust, and Perl for throwaway code and prototyping](<https://devfeed.tech/articles/re-throw-away-code-use-go-not-python-or-rust-41487.md>)

Original publisher: [Read original article](<https://chollinger.com/blog/2020/09/re-throw-away-code-use-go-not-python-or-rust/>)

Author: Christian Hollinger

Published: 2020-09-26T00:00:00Z

Content type: opinion

Language: en

Sources: [Christian Hollinger](<https://devfeed.tech/sources/christian-hollinger.md>)

Topics: [Go](<https://devfeed.tech/topics/go.md>), [Code](<https://devfeed.tech/topics/code.md>), [Scripting](<https://devfeed.tech/topics/scripting.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [Python](<https://devfeed.tech/topics/python.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [debug](<https://devfeed.tech/topics/debug.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [article](<https://devfeed.tech/tags/article.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [code](<https://devfeed.tech/tags/code.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [development](<https://devfeed.tech/tags/development.md>), [go](<https://devfeed.tech/tags/go.md>), [golang](<https://devfeed.tech/tags/golang.md>), [linux](<https://devfeed.tech/tags/linux.md>), [performance](<https://devfeed.tech/tags/performance.md>), [perl](<https://devfeed.tech/tags/perl.md>), [programming](<https://devfeed.tech/tags/programming.md>), [python](<https://devfeed.tech/tags/python.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

This opinion piece responds to an argument for using Rust for throwaway code and prototyping. It makes the case that Go can be a simpler choice than Rust, while also acknowledging Python's advantages for fast scripting.

### Source excerpt

Responding to an article on using Rust for throw away code and prototyping: Making a case for go over Rust, Python, and perl.

## Using git-number to add Git files by reference number

DevFeed: [Using git-number to add Git files by reference number](<https://devfeed.tech/articles/git-number-to-the-command-line-rescue-25252.md>)

Original publisher: [Read original article](<https://kau.sh/blog/git-number/>)

Author: Kaushik Gopal

Published: 2020-02-19T07:00:00Z

Content type: tutorial

Language: en

Sources: [Kaushik Gopal's Site](<https://devfeed.tech/sources/kaushik-gopal-s-site.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Homebrew](<https://devfeed.tech/topics/homebrew.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [command-line](<https://devfeed.tech/tags/command-line.md>), [commands](<https://devfeed.tech/tags/commands.md>), [git](<https://devfeed.tech/tags/git.md>), [installation](<https://devfeed.tech/tags/installation.md>), [perl](<https://devfeed.tech/tags/perl.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This tutorial presents git-number, a command-line tool that assigns reference numbers to changed files so they can be selected individually or by range in Git commands. It covers installation with Homebrew, the tool's Perl implementation, and usage notes.

### Source excerpt

If you're a programmer these days, you probably spend a large part of your day in git. If you're a command line zealot like me, you realize the holy ways of using your Terminal app for everything and aren't seduced by fancy GUIs that only stand to dissuade you from pure unbridled productivity. With that in mind, one typically finds themselves in a position where they have a few files that have changed liked so: If I had to add 2 out of those 3 files,1 typing the commands start to get a little tedious: :> git add images/content/git-0.png :> git add images/content/git-1.png Sure, if you happen to use fish (one of the nicest shells out there) the autocompletion helps reduce the tediousness. But it still doesn't beat being able to add files just by a number! What if you were presented with a git status like this: and then simply added the files by their reference number, like so: :> g add 4 :> g add 5 Wouldn't that be better? I've been doing this for years and trust me, it is! You probably won't see the difference with just a few files, but if you had 10 images being commited, then being able to simply type a range makes it a breeze to commit a bunch of files! :> g add 4-10 Installation ## So, how do you achieve something similar? Install git-number and 💥: :> brew install git-number :> git-number -s For years, I used a bunch of hand wrangled ruby files, that would help me achieve something similar but I discovered @holygeek already went through the trouble of building a much more mature version of this in Perl. Now I'm just using that version (and have gladly deleted all those scripts I had to grudgingly maintain). Notes ## Remember to git-number first ### It's important to make sure you run git-number first before running your git add <numeral> commands. I've noticed that git-number gets a little confused and tends to try issue commands on the wrong files from previous runs, if you don't (yikes). You probably want to run git-number anyway to see the status of changed f

## The Pragmatic Programmer

DevFeed: [The Pragmatic Programmer](<https://devfeed.tech/articles/the-pragmatic-programmer-27785.md>)

Original publisher: [Read original article](<https://gagor.pro/book/2017/the-pragmatic-programmer/>)

Author: Tom

Published: 2017-12-03T00:00:00Z

Content type: opinion

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Go Language](<https://devfeed.tech/topics/go-language.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [version-control](<https://devfeed.tech/topics/version-control.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Java](<https://devfeed.tech/topics/java.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [java](<https://devfeed.tech/tags/java.md>), [management](<https://devfeed.tech/tags/management.md>), [perl](<https://devfeed.tech/tags/perl.md>), [productivity](<https://devfeed.tech/tags/productivity.md>), [programming](<https://devfeed.tech/tags/programming.md>), [refactor](<https://devfeed.tech/tags/refactor.md>), [review](<https://devfeed.tech/tags/review.md>), [technology](<https://devfeed.tech/tags/technology.md>), [testing](<https://devfeed.tech/tags/testing.md>), [version-control](<https://devfeed.tech/tags/version-control.md>)

### AI overview

A retrospective review of The Pragmatic Programmer finds that some tools and examples feel dated in 2025, but its core lessons remain relevant. The article highlights continuous learning, mastering an editor and workflow, version control, testing, automation, code quality, and adaptability, with personal reflections on using Go and Python.

### Source excerpt

Pragmatyczny programista Od czeladnika do mistrza Authors: Andrew Hunt, David Thomas I first read this book almost 10 years ago, but didn't write a proper review at the time. Over the recent Christmas break, I revisited it and gave it a second read which resulted in bit of Go programming 😁. Reading it in 2025, you can feel the book is dated. The authors are enthusiastic about Java and CORBA1, and use Perl for daily tasks. Even though I did similar things around 2015, my workflow has changed since then. Newer tools and architectures have made things even simpler.

## A Review of Perl 6

DevFeed: [A Review of Perl 6](<https://devfeed.tech/articles/a-review-of-perl-6-37879.md>)

Original publisher: [Read original article](<https://www.evanmiller.org/a-review-of-perl-6.html>)

Author: Evan Miller

Published: 2017-08-13T18:05:00Z

Content type: opinion

Language: en

Sources: [Evan Miller](<https://devfeed.tech/sources/evan-miller.md>)

Topics: [Raku](<https://devfeed.tech/topics/raku.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [languages](<https://devfeed.tech/tags/languages.md>), [perl](<https://devfeed.tech/tags/perl.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [review](<https://devfeed.tech/tags/review.md>)

### AI overview

A review of Perl 6, now called Raku, based on several weeks of use. It discusses the language's long development, 2015 release, uncertain market prospects, limited guidance for practical use, and support for multiple programming paradigms.

### Source excerpt

I spent a few weeks with Perl 6. Here's what I think: A Review of Perl 6

## Why I'm Learning Perl 6

DevFeed: [Why I'm Learning Perl 6](<https://devfeed.tech/articles/why-i-m-learning-perl-6-37905.md>)

Original publisher: [Read original article](<https://www.evanmiller.org/why-im-learning-perl-6.html>)

Author: Evan Miller

Published: 2017-07-25T14:50:00Z

Content type: opinion

Language: en

Sources: [Evan Miller](<https://devfeed.tech/sources/evan-miller.md>)

Topics: [Perl](<https://devfeed.tech/topics/perl.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Programming language](<https://devfeed.tech/topics/programming-language.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [perl](<https://devfeed.tech/tags/perl.md>), [programming-language](<https://devfeed.tech/tags/programming-language.md>), [unicode](<https://devfeed.tech/tags/unicode.md>), [virtual-machine](<https://devfeed.tech/tags/virtual-machine.md>)

### AI overview

Evan Miller explains why he is exploring Perl 6, focusing on its runtime and concurrency capabilities. He highlights MoarVM's event-loop-aware scheduler, continuations, lightweight worker routines, and concurrent bytecode execution without a GIL, while noting that the article is not a full language review.

### Source excerpt

The Perl 6 virtual machine is a promising piece of technology: Why I'm Learning Perl 6

## Receiving RDS with the RTL-SDR

DevFeed: [Receiving RDS with the RTL-SDR](<https://devfeed.tech/articles/receiving-rds-with-the-rtl-sdr-21642.md>)

Original publisher: [Read original article](<https://www.windytan.com/2015/02/receiving-rds-with-rtl-sdr.html>)

Author: Oona Räisänen (noreply@blogger.com)

Published: 2015-02-08T19:10:00Z

Content type: tutorial

Language: en

Sources: [Oona Räisänen](<https://devfeed.tech/sources/oona-raisanen.md>)

Topics: [Command-line interface](<https://devfeed.tech/topics/cli.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [C](<https://devfeed.tech/topics/c.md>), [Code](<https://devfeed.tech/topics/code.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [code](<https://devfeed.tech/tags/code.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [development](<https://devfeed.tech/tags/development.md>), [dsp](<https://devfeed.tech/tags/dsp.md>), [fm-radio](<https://devfeed.tech/tags/fm-radio.md>), [linux](<https://devfeed.tech/tags/linux.md>), [perl](<https://devfeed.tech/tags/perl.md>), [receiver](<https://devfeed.tech/tags/receiver.md>), [signal](<https://devfeed.tech/tags/signal.md>), [software](<https://devfeed.tech/tags/software.md>), [tool](<https://devfeed.tech/tags/tool.md>)

### AI overview

This article explains redsea, a command-line RDS decoder that supports RTL-SDR receivers through rtl_fm. It describes the tool's dependencies and operation, including the C99 DSP receiver, signal synchronization, symbol decoding, and subsequent RDS group processing by redsea.pl.

### Source excerpt

redsea is a command-line RDS decoder. I originally wrote it as a script to decode RDS from demultiplexed FM stereo sound. Later I've experimented with other ways to read the bits, and the latest addition is to support the RTL-SDR television receiver via the rtl_fm tool. Redsea is on GitHub. It has minimal dependencies (perl core modules, C standard library, rtl-sdr command-line tools) and has been tested to work on OSX and Linux with good enough FM reception. All test results, ideas, and pull requests are welcome. Update 12/2016: Redsea has seen a lot of development since this post was written; see Redsea 0.7, a lightweight RDS decoder. What it says The program prints out decoded RDS groups, one group per line. Each group will contain a PI code identifying the station plus varying other data, depending on the group type. The below picture explains the types of data you'll probably most often encounter. A more verbose output can be enabled with the -l option (it contains the same information though). The -t option prefixes all groups with an ISO timestamp. How it works The DSP side of my program, named rtl_redsea, is written in C99. It's a synchronous DBPSK receiver that first bandpass filters ① the multiplex signal. A PLL locks onto the 19 kHz stereo pilot tone; its third harmonic (57 kHz) is used to regenerate the RDS subcarrier. Dividing it by 16 also gives us the 1187.5 Hz clock frequency. Phase offsets of these derived signals are adjusted separately. The local 57 kHz carrier is synchronized so that the constellation lines up on the real axis, so we can work on the real part only ②. Biphase symbols are multiplied by the square-wave clock and integrated ③ over a clock period, and then dumped into a delta decoder ④, which outputs the binary data as bit strings into stdout ⑤. Signal quality is estimated a couple of times per second by counting the number of "suspicious" integrated biphase symbols, i.e. symbols with halves of opposite signs. The symbols are being sa

## Visualizing hex dumps with Unicode emoji

DevFeed: [Visualizing hex dumps with Unicode emoji](<https://devfeed.tech/articles/visualizing-hex-dumps-with-unicode-emoji-21640.md>)

Original publisher: [Read original article](<https://www.windytan.com/2014/10/visualizing-hex-bytes-with-unicode-emoji.html>)

Author: Oona Räisänen (noreply@blogger.com)

Published: 2014-10-29T23:52:00Z

Content type: tutorial

Language: en

Sources: [Oona Räisänen](<https://devfeed.tech/sources/oona-raisanen.md>)

Topics: [Emoji](<https://devfeed.tech/topics/emoji.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [OpenSSH](<https://devfeed.tech/topics/openssh.md>), [Script](<https://devfeed.tech/topics/script.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [art](<https://devfeed.tech/tags/art.md>), [hex-value](<https://devfeed.tech/tags/hex-value.md>), [numbers](<https://devfeed.tech/tags/numbers.md>), [openssh](<https://devfeed.tech/tags/openssh.md>), [perl](<https://devfeed.tech/tags/perl.md>), [script](<https://devfeed.tech/tags/script.md>), [silly](<https://devfeed.tech/tags/silly.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

A Perl script visualizes SSH public key fingerprints and other colon-separated hexadecimal byte sequences by mapping each byte to a selected Unicode emoji. The article explains the byte-to-emoji mapping and notes that the script could be extended to other hex-formatted sources such as xxd.

### Source excerpt

Memorizing SSH public key fingerprints can be difficult; they're just long random numbers displayed in base 16. There are some terminal-friendly solutions, like OpenSSH's randomart. But because I use a Unicode terminal, I like to map the individual bytes into characters in the Miscellaneous Symbols and Pictographs block. This Perl script does just that: @emoji = qw( 🌀 🌂 🌅 🌈 🌙 🌞 🌟 🌠 🌰 🌱 🌲 🌳 🌴 🌵 🌷 🌸 🌹 🌺 🌻 🌼 🌽 🌾 🌿 🍀 🍁 🍂 🍃 🍄 🍅 🍆 🍇 🍈 🍉 🍊 🍋 🍌 🍍 🍎 🍏 🍐 🍑 🍒 🍓 🍔 🍕 🍖 🍗 🍘 🍜 🍝 🍞 🍟 🍠 🍡 🍢 🍣 🍤 🍥 🍦 🍧 🍨 🍩 🍪 🍫 🍬 🍭 🍮 🍯 🍰 🍱 🍲 🍳 🍴 🍵 🍶 🍷 🍸 🍹 🍺 🍻 🍼 🎀 🎁 🎂 🎃 🎄 🎅 🎈 🎉 🎊 🎋 🎌 🎍 🎎 🎏 🎒 🎓 🎠 🎡 🎢 🎣 🎤 🎥 🎦 🎧 🎨 🎩 🎪 🎫 🎬 🎭 🎮 🎯 🎰 🎱 🎲 🎳 🎴 🎵 🎷 🎸 🎹 🎺 🎻 🎽 🎾 🎿 🏀 🏁 🏂 🏃 🏄 🏆 🏇 🏈 🏉 🏊 🐀 🐁 🐂 🐃 🐄 🐅 🐆 🐇 🐈 🐉 🐊 🐋 🐌 🐍 🐎 🐏 🐐 🐑 🐒 🐓 🐔 🐕 🐖 🐗 🐘 🐙 🐚 🐛 🐜 🐝 🐞 🐟 🐠 🐡 🐢 🐣 🐤 🐥 🐦 🐧 🐨 🐩 🐪 🐫 🐬 🐭 🐮 🐯 🐰 🐱 🐲 🐳 🐴 🐵 🐶 🐷 🐸 🐹 🐺 🐻 🐼 🐽 🐾 👀 👂 👃 👄 👅 👆 👇 👈 👉 👊 👋 👌 👍 👎 👏 👐 👑 👒 👓 👔 👕 👖 👗 👘 👙 👚 👛 👜 👝 👞 👟 👠 👡 👢 👣 👤 👥 👦 👧 👨 👩 👪 👮 👯 👺 👻 👼 👽 👾 👿 💀 💁 💂 💃 💄 💅 ); while (<>) { if (/[a-f0-9:]+:[a-f0-9:]+/) { ($b, $m, $a) = ($`, $&, $'); print $b.join(" ", map { $emoji[$_] } map hex, split /:/, $m)." ".$a; } } What's happening here? First we create a 256-element array containing a hand-picked collection of emoji. Naturally, they're all assigned an index from 0x00 to 0xff. Then we'll loop through standard input and look for lines containing colon-separated hex bytes. Each hex value is replaced with an emoji from the array. Here's the output: The script could easily be extended to support output from other hex-formatted sources as well, such as xxd: Some additional methods for visualizing hex dumps and key fingerprints, from the comments section: PGP Strong Set Top 50 Fingerprint Art VizHash GD - a visual hash

## Building Twitter Bots in Any Language with CGI-Style Process Spawning

DevFeed: [Building Twitter Bots in Any Language with CGI-Style Process Spawning](<https://devfeed.tech/articles/super-easy-twitter-bots-41576.md>)

Original publisher: [Read original article](<https://blog.benjojo.co.uk/post/2014-01-19-super-easy-twitter-bots.md>)

Author: ben@benjojo.co.uk

Published: 2014-01-19T19:00:11Z

Content type: tutorial

Language: en

Sources: [benjojo blog](<https://devfeed.tech/sources/benjojo-blog.md>)

Topics: [Bot](<https://devfeed.tech/topics/bot.md>), [X (Twitter)](<https://devfeed.tech/topics/twitter.md>), [API](<https://devfeed.tech/topics/api.md>), [OAuth](<https://devfeed.tech/topics/oauth.md>), [Bash](<https://devfeed.tech/topics/bash.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [Shell](<https://devfeed.tech/topics/shell.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [bash](<https://devfeed.tech/tags/bash.md>), [bots](<https://devfeed.tech/tags/bots.md>), [go](<https://devfeed.tech/tags/go.md>), [oauth](<https://devfeed.tech/tags/oauth.md>), [perl](<https://devfeed.tech/tags/perl.md>), [process](<https://devfeed.tech/tags/process.md>), [shell](<https://devfeed.tech/tags/shell.md>), [twitter](<https://devfeed.tech/tags/twitter.md>)

### AI overview

This tutorial describes a way to build Twitter bots in any language that can read environment variables and send replies. A daemon listens to Twitter's streaming API, spawns a process when mentioned, passes configuration through environment variables, and uses the process output as the Twitter response.

### Source excerpt

Super Easy Twitter Bots I often get really quite mad ideas on writing twitter bots, But I often get pretty bored of doing all of the boiler plate that is required when wanting to achieve these things. The typical process to making a twitter bot

## Top Github Languages for 2013 (so far)

DevFeed: [Top Github Languages for 2013 (so far)](<https://devfeed.tech/articles/top-github-languages-for-2013-so-far-32167.md>)

Original publisher: [Read original article](<https://adambard.com/blog/top-github-languages-for-2013-so-far/>)

Published: 2013-08-30T00:00:00Z

Content type: article

Language: en

Sources: [Adam Bard](<https://devfeed.tech/sources/adam-bard.md>)

Topics: [GitHub](<https://devfeed.tech/topics/github.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [BigQuery](<https://devfeed.tech/topics/bigquery.md>), [dataset](<https://devfeed.tech/topics/dataset.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [bigquery](<https://devfeed.tech/tags/bigquery.md>), [clojure](<https://devfeed.tech/tags/clojure.md>), [css](<https://devfeed.tech/tags/css.md>), [data](<https://devfeed.tech/tags/data.md>), [dataset](<https://devfeed.tech/tags/dataset.md>), [dockerignore-usage](<https://devfeed.tech/tags/dockerignore-usage.md>), [github](<https://devfeed.tech/tags/github.md>), [go](<https://devfeed.tech/tags/go.md>), [google](<https://devfeed.tech/tags/google.md>), [groovy](<https://devfeed.tech/tags/groovy.md>), [haskell](<https://devfeed.tech/tags/haskell.md>), [perl](<https://devfeed.tech/tags/perl.md>), [programming](<https://devfeed.tech/tags/programming.md>), [repositories](<https://devfeed.tech/tags/repositories.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [scala](<https://devfeed.tech/tags/scala.md>), [shell](<https://devfeed.tech/tags/shell.md>)

### AI overview

The article analyzes GitHub Archive data queried with Google BigQuery to rank programming languages by the number of repositories created during 2013, comparing the results with the same period in 2012. It discusses notable ranking changes and cautions that the data and query may be inaccurate and are not representative of all programmers or programming.

### Source excerpt

I just discovered the Github Archive, a dataset of Github events queryable using Google BigQuery. What fun! So I decided to count how many repositories have been created this year by language.

## OSCON, Portland, and PDXPUG

DevFeed: [OSCON, Portland, and PDXPUG](<https://devfeed.tech/articles/oscon-portland-and-pdxpug-34509.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2013/07/oscon-portland-and-pdxpug/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2013-07-29T15:09:00Z

Content type: opinion

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [migration](<https://devfeed.tech/topics/migration.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [sharding](<https://devfeed.tech/topics/sharding.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [databases](<https://devfeed.tech/tags/databases.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [perl](<https://devfeed.tech/tags/perl.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [python](<https://devfeed.tech/tags/python.md>), [sharding](<https://devfeed.tech/tags/sharding.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

A personal report from OSCON and PDXPUG in Portland, describing a presentation about Fotolog's migration from a 37-database MySQL sharding cluster to PLProxy on PostgreSQL. It also discusses using PostgreSQL for application logic and middleware, including stored procedures implemented in languages such as PL/Python and PL/Perl.

### Source excerpt

After spending an awesome week in San Francisco, CA I'm lucky enough to be spending another week in the USA, in Portand, OR. The main excuse for showing up here has been OSCON where I presented a talk about the fotolog migration from MySQL to PostgreSQL. *[Mark Wong](http://markwkm.blogspot.com/) is doing some serious database crochet work!* Fotolog is a photo sharing website having more than 32 millions of users sharing more than a billion of photos, which made for a very interesting migration use case. In particular switching from a hand-made MySQL sharding cluster of 37 databases to a fully integrated PLProxy setup on 16 servers hosting each 16 shards, in less than 6 months including complete code rewrite, made things... interesting.

## Regexp performances and Finite Automata

DevFeed: [Regexp performances and Finite Automata](<https://devfeed.tech/articles/regexp-performances-and-finite-automata-34389.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2010/09/regexp-performances-and-finite-automata/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2010-09-26T19:00:00Z

Content type: article

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Automaton](<https://devfeed.tech/topics/automaton.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [Parser](<https://devfeed.tech/topics/parser.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Emacs](<https://devfeed.tech/topics/emacs.md>)

Tags: [dfa](<https://devfeed.tech/tags/dfa.md>), [emacs-lisp](<https://devfeed.tech/tags/emacs-lisp.md>), [perl](<https://devfeed.tech/tags/perl.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [regexp](<https://devfeed.tech/tags/regexp.md>), [regular-expressions](<https://devfeed.tech/tags/regular-expressions.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This article examines regular-expression performance through the lens of finite automata, contrasting NFA and DFA-based implementation techniques. It also discusses PostgreSQL's regular-expression implementation and the author's preference for using awk in some file-searching situations.

### Source excerpt

The major reason why I dislike perl so much, and ruby too, and the thing I'd want different in the Emacs Lisp API so far is how they set developers mind into using regexp. You know the quote, don't you? Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. That said, some situations require the use of regexp -- or are so much simpler to solve using them than the maintenance hell you're building here ain't that big a drag. The given expressiveness is hard to match with any other solution, to the point I sometime use them in my code (well I use rx to lower the burden sometime, just see this example).

## Satirical announcement about modifying access modifiers in open-source Java projects

DevFeed: [Satirical announcement about modifying access modifiers in open-source Java projects](<https://devfeed.tech/articles/wikileaks-to-leak-5000-open-source-java-projects-with-all-that-private-final-bullshit-removed-38773.md>)

Original publisher: [Read original article](<https://steve-yegge.blogspot.com/2010/07/wikileaks-to-leak-5000-open-source-java.html>)

Author: Steve Yegge (noreply@blogger.com)

Published: 2010-07-28T20:40:00Z

Content type: opinion

Language: en

Sources: [Steve Yegge](<https://devfeed.tech/sources/steve-yegge.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Code](<https://devfeed.tech/topics/code.md>), [Java Language](<https://devfeed.tech/topics/java-language.md>), [class](<https://devfeed.tech/topics/class.md>), [constructor](<https://devfeed.tech/topics/constructor.md>), [deprecated](<https://devfeed.tech/topics/deprecated.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [class](<https://devfeed.tech/tags/class.md>), [code](<https://devfeed.tech/tags/code.md>), [constructor](<https://devfeed.tech/tags/constructor.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [java](<https://devfeed.tech/tags/java.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [perl](<https://devfeed.tech/tags/perl.md>), [projects](<https://devfeed.tech/tags/projects.md>), [source](<https://devfeed.tech/tags/source.md>)

### AI overview

This satirical article describes a purported Wikileaks announcement to re-release open-source Java projects after changing access modifiers, removing most final and deprecated declarations, adding public constructors, and exposing fields.

### Source excerpt

EYJAFJÖLL, ICELAND -- Java programmers around the globe are in a panic today over a Wikileaks press release issued at 8:15am GMT. Wikileaks announced that they will re-release the source code for thousands of Open Source Java projects, making all access modifiers 'public' and all classes and members non-'final'. Agile Java Developer Johnnie Garza of Irvine, CA condemns the move. "They have no right to do this. Open Source does not mean the source is somehow 'open'. That's my code, not theirs. If I make something private, it means that no matter how desperately you need to call it, I should be able to prevent you from doing so, even long after I've gone to the grave." According to the Wikileaks press release, millions of Java source files have been run through a Perl script that removes all 'final' keywords except those required for hacking around the 15-year-old Java language's "fucking embarrassing lack of closures." Moreover, the Perl script gives every Java class at least one public constructor, and turns all fields without getters/setters into public fields. "The script yanks out all that @deprecated shit, too," claims the controversial announcement. Longtime Java programmer Ronnie Lloyd of Austin, TX is offended by the thought of people instantiating his private classes. "It's just common sense," said Lloyd, who is 37. "If I buy you a house and put the title in your name, but I mark some of the doors 'Employees Only', then you're not allowed to open those doors, even though it's your house. Because it's really my house, even though I gave it to you to live in." Pacing and frowning thoughtfully, Lloyd continued: "Even if I go away forever and you live there for 20 years and you know exactly what's behind the doors -- heck, even if it's a matter of life and death -- plain old common sense still dictates that you're never, ever allowed to open them for any reason." "It's for your own protection," Lloyd added. Wesley Doyle, a Java web developer in Toronto, Canada is m

## Building a deterministic profiler for mixed C and Perl code

DevFeed: [Building a deterministic profiler for mixed C and Perl code](<https://devfeed.tech/articles/getting-carried-away-with-hack-value-21904.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/2010/05/hack-value/>)

Author: Nelson Elhage

Published: 2010-05-23T19:53:30Z

Content type: opinion

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Perl](<https://devfeed.tech/topics/perl.md>), [C](<https://devfeed.tech/topics/c.md>), [debug](<https://devfeed.tech/topics/debug.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [debug](<https://devfeed.tech/tags/debug.md>), [function](<https://devfeed.tech/tags/function.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [glibc](<https://devfeed.tech/tags/glibc.md>), [memory](<https://devfeed.tech/tags/memory.md>), [perl](<https://devfeed.tech/tags/perl.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

The author describes trying to improve profiling visibility in BarnOwl, a program that mixes C and Perl. Statistical profilers could show time spent in Perl but not which C functions led to those calls, so the author explores a deterministic profiler that tracks function entries and returns.

### Source excerpt

Recently, I've been working on some BarnOwl branches that move more of the core functionality of BarnOwl into perl code, instead of C (BarnOwl is written in an unholy mix of C and perl code that call each other back and forth obsessively). Moving code into perl has many advantages, but one problem is speed - perl code is obvious a lot slower than C, and BarnOwl has a lot of hot spots related to its tendency to keep tens or hundreds of thousands of messages in memory and loop over all of them in response to various commands.

## Internet Explorer not sending NTLM authentication

DevFeed: [Internet Explorer not sending NTLM authentication](<https://devfeed.tech/articles/internet-explorer-not-sending-ntlm-authentication-35420.md>)

Original publisher: [Read original article](<https://darkcoding.net/software/internet-explorer-not-sending-ntlm-authentication/>)

Author: Graham King

Published: 2008-10-29T21:01:12Z

Content type: tutorial

Language: en

Sources: [Graham King](<https://devfeed.tech/sources/graham-king.md>)

Topics: [Internet Explorer](<https://devfeed.tech/topics/internet-explorer.md>), [Authentication](<https://devfeed.tech/topics/authentication.md>), [trust](<https://devfeed.tech/topics/trust.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [authentication](<https://devfeed.tech/tags/authentication.md>), [internet-explorer](<https://devfeed.tech/tags/internet-explorer.md>), [perl](<https://devfeed.tech/tags/perl.md>), [security](<https://devfeed.tech/tags/security.md>), [software](<https://devfeed.tech/tags/software.md>), [trust](<https://devfeed.tech/tags/trust.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This article explains why Internet Explorer may refuse to send NTLM authentication when a Windows domain differs from the domain hosting a Twiki site. It recommends adding the site to Internet Explorer's trusted sites under Local Intranet settings.

### Source excerpt

Taming IE's trust issues: A quick fix for cross-domain NTLM authentication.

## todo.pl ratmenu

DevFeed: [todo.pl ratmenu](<https://devfeed.tech/articles/todo-pl-ratmenu-21884.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/2008/02/todopl-ratmenu/>)

Author: Nelson Elhage

Published: 2008-02-19T23:46:00Z

Content type: tutorial

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [To-Do](<https://devfeed.tech/topics/todo.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Perl](<https://devfeed.tech/topics/perl.md>)

Tags: [linux](<https://devfeed.tech/tags/linux.md>), [list](<https://devfeed.tech/tags/list.md>), [perl](<https://devfeed.tech/tags/perl.md>)

### AI overview

A short shell script combines todo.pl and ratmenu to display a task list for Linux users and mark a selected task as completed. The author binds it to a keyboard shortcut in XMonad.

### Source excerpt

broder has been hacking on some better quicksilver integration for Hiveminder using todo.pl. I don't use a mac, but I don't see why linux users shouldn't get fun toys to. So I hacked up the following two-liner that uses todo.pl and ratmenu to pop up a list of tasks, and mark one as completed: #!/bin/sh todo.pl | perl -ne 'push @a,$2,"todo.pl done $1" if /^#([\w]+) (.+)$/;' \ -e 'END{exec("ratmenu",@a)}' I dropped it into my ~/bin and bound it to C-t x in my window manager (XMonad).

## Lessons learned from one agile project

DevFeed: [Lessons learned from one agile project](<https://devfeed.tech/articles/lessons-learned-from-one-agile-project-30358.md>)

Original publisher: [Read original article](<https://www.mdubakov.com/posts/lessons-learned-from-my-first-xp-project/>)

Published: 2004-07-23T15:41:57Z

Content type: opinion

Language: en

Sources: [Blog by Michael Dubakov](<https://devfeed.tech/sources/blog-by-michael-dubakov.md>)

Topics: [Agile](<https://devfeed.tech/topics/agile.md>), [Test-driven development](<https://devfeed.tech/topics/tdd.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Perl](<https://devfeed.tech/topics/perl.md>), [unit tests](<https://devfeed.tech/topics/unit-tests.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>)

Tags: [agile](<https://devfeed.tech/tags/agile.md>), [perl](<https://devfeed.tech/tags/perl.md>), [project](<https://devfeed.tech/tags/project.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [tdd](<https://devfeed.tech/tags/tdd.md>), [testing](<https://devfeed.tech/tags/testing.md>), [unit-tests](<https://devfeed.tech/tags/unit-tests.md>)

### AI overview

A retrospective on a small Perl project that used XP-style planning, two-week iterations, customer feedback, concise communication for managers, test-driven development, and acceptance tests. The author concludes that iterative planning, client involvement, TDD, and acceptance testing were useful, while noting uncertainty about testing controllers and instability in the SAMIE tool.

### Source excerpt

I've manage one small project (3 developers - 6 months planned). Project was canceled due to some reasons (project progress was great, so the reasons are not in development :-). I briefly describe here what we've tried and what was useful for us. I think this information will be interesting. This is real example after all. The project was on Perl. XP-style Planning. Small 2 weeks iterations. Small iteration helps to track project progress and create better estimates. Planning is quite easy and can be done in Excel without sophisticated tools like MS Project. We are going to use XP-style planning in future for high-risk projects (with new technologies, new team, or whatever make project risk high). Sure, web based tool for XP-planning can help. Customer Feedback. Manage a project without client representative is a hell on the earth. You are working like in a vacuum. No response, no feedback and no attention. You can't establish rapport with client, and there is a chance that system will not satisfy client expectations. And sure it won't. Project Manager must make every effort to get a person from the client side for feedback. Info for Top Managers. All information for top managers should be in a short and clear form. Do not send 20 pages requirements docs or lengthy emails. Top managers do not have enough time to read such docs. It is better to extract most important features and ideas at a single page and attach full document to be on the safe side. Phone Calls. Phone calls are much better than emails or IMs. Sure, phone is impolite and it is hard to clear express your thoughts, but, anyway, phone is better. Many issues can be resolved faster and easier. Test-Driven Development. We wrote unit tests for all business objects in BigEye before code, and it worked great. However, we did not have tests for controllers. Controllers are very close to GUI and they changed often (during first month). Maybe we should write unit tests for controllers as well, maybe not. This is