2011.08.02 in #2
Event Loops are better than while
fREW Schmidt gives an example how a simple while loop was replaced with an AnyEvent loop for better stability and eventually easier development.
2011.08.24 in #5
Refactoring Dispatch Tables into Objects
fREW Schmidt gives a nice and simple example on how to use simple dispatch tables. Then he goes on and shows how the same idea can be applied to methods of classes.
2012.03.06 in #33
The Rise and Fall of Event Loops (in one very small place of my code)
fREW Schmidt describes his adventure into using POE for event loops just to find out that in his use case he does not really need those event loops. It is nice to see the code snippets for both his original attempt and the solution he ended up using.
2012.05.15 in #43
Using search.cpan.org AND metacpan
fREW Schmidt created a greasemonkey/dotjs script and visit search.cpan.org . Run a search there. The results will link to MetaCPAN.
2012.05.21 in #44
fREW Schmidt has a few relatively new modules he is planning to describe, the first one being Catalyst::Controller::Accessors. First he shows the full version of his code using Catalyst chaining and then shows how using Catalyst::Controller::Accessors can eliminate some of code repetition, turning them into declarations.
2012.05.28 in #45
by fREW Schmidt
2012.05.30 in #45
by fREW Schmidt
2012.06.04 in #46
How do you add primary, unique, and foreign key constraints to an existing database if you don't have direct access to it? As in the case of an application installed at clients. fREW Schmidt has the answer.
2012.06.06 in #46
DBIx::Class::DeploymentHandler + Backups
fREW Schmidt is explaining how they used to do application deployment and database upgrade which promped him to the creation of the module. Then he starts showing use cases of the modules. The first one is backing up the data.
2012.09.03 in #59
Hash your passwords!
fREW Schmidt is back with a new security related article with lots of code examples. If you are running any application in which you need to store passwords, fREW gives you an example how to do it in a way that is a lot more secure than some of the (recently cracked) major web-sites did.
2012.09.10 in #60
When you are not using PostgreSQL, and you still would like to store tree-like data in a table, fREW Schmidt has the solution. Currently, it only works on perl 5.16 as it uses some of the new features there. I am sure it can be worked around, but this might help people understand how upgrades save time and money.
2013.01.05 in #76
How do you decide on the abstraction level when you design your API? fREW Schmidt asked. Do you let people override your methods or do you just create functions? When do you need to allow sub-classing and when is that an overkill?
2013.07.27 in #105
Event Loops: Useful After All
Event-based programming is prone to induce headaches. But in some cases, if used in the right manner it can provide tremendously simple solutions to tricky problems, as fREW Schmidt shows us.
2014.07.17 in #156
A Gentle TLS Intro for Perlers
Security is hard. An absolute requirement in this bold new world, but, yeah, it's hard. Fortunately, fREW Schmidt provides us here a nice, gentle introduction to TLS.
2015.01.25 in #183
Could have been called "Embrassing the Future(s)", as fREW leverages these constructs for asynchronous programming.
2015.01.28 in #184
Docker: first impressions
Frew shares his experiences and thoughts using Docker for deployment, having used it for testing for nearly a year. I've no experience with Docker, ******************************: you'll just have to decide for yourself.
2015.02.19 in #187
Frew shows how his thoughts on handling configuration has evolved via various technologies, to his latest approach.
2015.03.02 in #188
fREW plays with a new Proof::ConfigLoader, which aims at being light on the syntax overhead while allowing overriding via environment variables.
2015.03.04 in #189
Fear and Loathing in SQL-92
A war story used to illustrate a point, with some good tips and thoughts thrown in. For example, do you use, or are you aware of the fc function (introduced in 5.16)? A good rule of thumb: "you should not emulate, imitate, or otherwise do the job of the database".
2015.03.27 in #192
Faster DBIC Schemata
Frew shares some tips on how to get DBIC schema to load faster.
2015.07.30 in #210
CPAN Patch workflow
Patching modules is usually quick and easy. It's the mundane steps of repository cloning, git juggling and Pull Request crafting that usually take longer. fREW uses a mix of git-cpan, git-hub and fugitive.vim to smooth out that overhead.
2015.08.03 in #211
Perl ❤ Kickstarter
Frew wrote a wee script using WWW::Kickstarter to watch a kickstarter project and let him know when an early bird offer came available (because an existing backer had cancelled).
2015.08.11 in #212
CPAN Patch Workflow II
Now that his patches have been accepted into Git-CPAN-Patch, fREW shows how 'git cpan send-email' can be used to send PRs via RT.
2015.11.25 in #227
PID Namespaces in Linux
How to manage all your child processes, when your children kick off processes, and they in turn might kick some off. Frew presents two of the ways you can ensure that all of your descendent processes get cleaned up, and Tim Bunce pointed out another one in the comments.
2016.03.23 in #244
DBI Logging and Profiling
Using a database interface without knowing how to profile it is like knowing how to eat, but without being acquainted to the concept of napkin -- you can only go so far before it becomes socially awkward.
2016.05.18 in #252
Faster DBI Profiling
If you're profiling your DBI queries, perhaps after reading Frew's previous post, then you should read this short post.
2016.05.24 in #253
Iterating over Chunks of a Diff in Vim
Quickfix let's you jump right where an error was found. Here fREW uses that feature for something else.
2016.06.08 in #255
DBI Caller Info
Adding Metadata to DBI Queries
2016.06.09 in #255
Vim Session Workflow
2016.07.25 in #262
Building Secure UserAgents
2016.08.01 in #263
Open Source Infrastructure and DBIx::Class Diagnostics Improvements
fREW & Peter "ribasushi" Rabbitson wrote a very detailed blog post explaining improvements in DBIx::Class. They have also addressed the worrisome state of some OSS projects.
2016.08.12 in #264
Linux Containers and Docker pstree
How to see the state of a container from a bird's eye view.
2016.09.23 in #270
Frew has released Digest::MurmurHash2::Neutral, an implementation of MurmurHash 2, to join the existing MurmurHash, and MurmurHash3.
2016.10.14 in #273
Frew shows how he improved the logging of CPU usage at ZipRecruiter.
2017.02.27 in #293
The fREW Schmidt Interview Experience
Frew shares his thoughts on interviewing developers, based on his experience interviewing candidates for ZipRecruiter. As he says, ultimately interviewing is really hard.
2017.03.07 in #294
MSSQL ODBC Client and Server on Ubuntu
Including example how to run MSSQL in Docker and a bonus Perl script.
2017.03.09 in #294
My Mobile (shell) Home
fressh is EW’s Secure Shell that will make sure his dotfile are up-to-date on the server before he logs in.
2017.05.11 in #303
AWS IAM at ZipRecruiter
Frew describes the way they are now using Amazon Web Services Identity and Access Management with Net::Amazon::Signature::V4 and Paws.
2017.06.14 in #308
CSV Databases in Perl
2017.07.10 in #312
Getting Things Done
2017.07.12 in #312
The Read Write Splitter at ZipRecruiter
A Read Write Splitter is an embedded proxy-like piece of code that can be used for database systems where you have a master server for write operations, and several copies of it for read operations. The Read Write splitter, as part of your Perl process, would automatically execute the write operations (INSERT, UPDATE, DELETE) on the master server and would direct the read operations (SELECT) to one of the copies
2017.07.31 in #315
Supervisors and Init Systems: Part 6 and 7
Frew seems to be really persistent with this series. If you have missed the earlier once and especially if you don't know what is a Supervisor, start with part 1 and the check out the list of episodes.
2018.01.02 in #337
A Love Letter to Plain Text
If you have text files in any text-like format, there are plenty of command line tools to munge them. Even to convert them into an in-memory database to be able to query the data.
2018.02. in #345
Full Disk, What's Next?
A mix of Shell and Perl code to find the big files that take up a lot of disk space.
2018.02.22 in #345
Exponential Backoff in Service Startup
Wait more and more time before trying to launch a service.
2018.05.01 in #354
C, Golang, Perl, and Unix
An excellent look into what fork() and exec() do, What are STDIN, STDOUT, and STDERR. Some exploitation ideas and some bizarre bugs.
2019.01.28 in #393
Full Text Search for ebooks
Frew took all of his eBooks, converted them to plain text files using Calibre, then loaded the text into an SQLite database in just 7 seconds and voila. He has a full-text search of all of his books.
2019.01.30 in #393
Deploying to Kubernetes at ZipRecruiter
Describing a bunch of tools created at ZR and the process for getting an app deployed. There is nothing Perl-specific in this, but it can be very much relevant to anyone doing DevOps related tasks.
2019.02.11 in #395
graphviz describing multi-stage docker builds
An excellent and simple example (aren't those synonyms ?) on how to draw a simple DAG (Directed acyclic graph) to make hierarchy easier to grasp. It is also a 15 line long one-liner.
If you are not yet subscribed, you can do it now. Free of charge:
Just ONE e-mail each Monday. Easy to unsubscribe. No spam. Your e-mail address is safe.
This newsletter is about the Perl Programming languages.