2011.08.14 in #4Use a Task distribution to specify groups of modules
brian d foy writes: A Task distribution is like a normal Perl distribution in structure, but it doesn't actually provide any code. It lists as pre-requisites all of the modules or distributions that you want to install...
2011.09.01 in #6Logging wide characters with Log4perl
The wide characters warning is a very annoying thing. Especially when it comes from a third party module. In many cases you don't have control over how that module handles and prints data. In this article brian d foy shows how you can tell Log4perl to use utf8 when printing to the screen or to some other channel.
2011.09.18 in #9Enchant closures for better debugging output
On the Effective Perl Programming site, brian d foy develops the MagicalCodeRef module to allow you to see, well, more or less, what is in a code-ref without execution the code.
2011.11.11 in #16What I learned from YAPC::Brasil
brian d foy describes his experience at a conference where most of the talks are in a language he does not understand and also finds time to introduce Data::Printer. Nice pictures too.
2011.11.27 in #18Know split's special cases
brian d foy explains 3 special cases of split: the empty pattern, the single space and splitting lines. You can always learn new things and become a more effective Perl programmer.
2011.12.08 in #20YAPC::NA has a suggestion box that you can vote on
Usually I don't link to the small blog entries regarding next years YAPC::NA but this one I liked very much. 'Mob Rater' lets you suggest ideas for YAPC::NA and vote on the other ideas already listed. I think this is a nice idea and the results could be used by any YAPC or Perl workshop. So go ahead, put in your suggestions and vote on the other ones.
2011.12.11 in #20Create your own dualvars
In Perl, every scalar variable has both a string value and a numerical value. Usually they are related. brian d foy shows how to create such variables using Scalar::Util.
2012.02.18 in #30The Perl Learning Environment
brian d foy is thinking on some new tools to teach Perl to beginners and he is asking your opinion. Having a Virtual-Box image of Linux already filled with all the necessary tools is a good idea, I have been doing that with my test automation classes. I hope, for people who prefer Windows he will pick DWIM Perl for Windows and Padre. They were built with the idea that they can be a smoother entry for people in the Windows world.
2012.02.20 in #31Learning Perl Challenge: rhich
brian d foy started a new series of Newbie Perl Challenges that publishes on Monday. Unfortunately a few hours after I send out the Perl Weekly. So I am a week late announcing it.
2012.02.29 in #32Fold cases properly
brian d foy explains way more than I ever wanted to know about lower and upper case. OTOH if you deal a lot with many different languages you might need to understand this.
2012.03.10 in #34Get one of my 8 free copies of Programming Perl
brian d foy wants you to tell him why should *you* be the one? Out of the 8 lucky ones to get a FREE copy of the 4th edition of the Programming Perl book. As for me? I had the 3rd edition but a camel ate it. I should find a picture of that to prove it.
2012.03.12 in #34Look up Unicode properties with an inversion map
Perl v5.15.7 adds a way to create an inverted map based on the Unicode property that you want to access. Using the prop_invmap function of Unicode::UCD. See the detailed example by brian d foy on The Effective Perler.
2012.03.17 in #36Can you learn Perl from an old Learning Perl?
brian d foy is wondering why people would want to use and old and outdated version of this book and analyzes which edition is still useful today.
2012.03.19 in #35Should I buy that Perl book?
Another well written article by brian d foy, this time helping to figure out how to spend your limited resources on any of the alternatives to reach your goal?
2012.03.20 in #35Learning Perl Challenge: Find duplicates
This time, brian d foy asks you to find duplicate files. Spoiler alert: there are several solutions in the comments.
2012.05.21 in #44Start Planning Your YAPC Strategy
Though brian d foy wrote this for YAPC::NA, I think this is relevant for ever Perl event and even for every non-Perl event. It can be fun to just show up at the conference and go with the flow, but it might be a lot better to plan ahead. Not only picking the talks you'd like to hear but trying to figure out what other social events would you like to attend and who you would like to talk to. You can even send e-mail or contact using other means people you would like to meet.
2012.06.17 in #47Lunch++
Originally suggested by brian d foy, MDK wants to take the idea of 'Lunch with a celebrity' one step further and get it more organized. I personally had ambivalent feelings about the Lunch project when brian asked if I'd like to participate. I don't think I am a 'celebrity' though I certainly make a lot of noise so relatively many people heard my name. OTOH, I like to have lunch with and talk to new people. OT3H I am so bad at names and faces, I'd be embarrassed the next day when I don't recognize the same person.
2012.06.20 in #48Learning Perl Challenge: finding duplicates (Answer)
brian d foy shows and explains his solution, and then goes over the solutions people sent to him. He takes the task apart and analyzes how each part was solved in different ways by different people.
2012.06.21 in #48More Programming Perls to give away
brian d foy got a few more copies of the Programming Perl book he wants to give away. This time, instead of asking for a post-card he asks for a donation to a charity of his choice.
2012.07.07 in #50Finding Unused Subroutines, but with PPI
In response to the shell script Ovid posted a few days earlier, brian d foy implemented a longer, but more robust way locating all the sub that are never called.
2012.07.12 in #51Most popular shell commands using Perl 6
A few weeks ago brian d foy posted a challenge to create a list of most popular shell commands. This is my solution in Perl 6.
2012.08.09 in #55Should my Perl release process be yours?
brian d foy goes philosophical on why you should use the exact same process as he does. Or why should you not do that. In any case, it is up to you to decide.
2012.08.16 in #56Ricardo is pushing for smart match changes
The smart match ~~ opeartor has been changed already once, but it is still broken. What should happen? This is a discussion that started in the Perl 5 Porters list and spilled over to blogs.perl.org. It is certainly important that people who don't follow the development of perl itself, but are using the smart match operator would read this and voice their opinion.
2012.10.04 in #63Endorsing Perl skills
I think LinkedIN provides a great platform to find potential employees, employers, clients or service providers. For a long time it had a feature where you could recommend people by writing a few lines of, well, recommendation. Now they have a new feature that makes it much easier to endorese people. It is only a click away. brian d foy explains the new feature and recommends that you use it. I am not sure how to really encourage people to do that, but I do think it can be an important factor in finding good Perl developers. I'd also recommend to watch the linked presentation of Rachel Botsman.
2012.12.27 in #75The indirection benefits for Perl on LinkedIN
People who read my stuff know that I think having a profile on LinkedIN (and building up your connections, and joining relevant groups), is a very good way to prepare for the day when - maybe a year or two from now - you will look for a new job. Or, just sit back and wait for a recruiter to find you.
2013-04-22 in #93Diagnosing module installation problems in Heroku
brian d foy has been playing with Heroku and Mojolicious. When things go well,they go very well. But what about when they go not as well? brian offers some tricks to debug things effectively.
2013.02.11 in #82Benchmarking HTML entity encoding
brian d foy is on a benchmarking mission. Showcasing his new Surveyor::App, he confirms that for the task of html encoding, HTML::Escape really lets HTML::Entities eat its dust.
2013.03.23 in #87My Catincan funded cpan(1) fastest mirror enhancement
A few weeks ago brian d foy posted about the new crowd-founding site Catincan and how he wanted to try. This is the result. I hope more people will jump on the idea and start experimenting to getting funded for projects. At first I can imagine you'd try with relatively small projects, and if those are successful, then you can try with bigger ones.
2013.03.25 in #87Mobrater and White Camel Nominations
brian d foy is looking for your recommendations for the three White Camel awardees for outstanding (non-code) contribution to the Perl community.
2013.04.03 in #89Another strike against AUTOLOAD
Curtis 'Ovid' Poe got tripped by the use of AUTOLOAD in the Redis module, but brian d foy think you should not throw out the baby with the bathwater. Is this a question of power vs. learnability of Perl?
2013.04.10 in #90Crowd-funding Pinto
brian d foy launched a Crowdtilt campaign to fund the development of Pinto (and by ricochet Stratopan). We could probably wax poetically about the usefulness of Pinto, the shininess of Stratopan and the awesomeness of Jeff Thalhammer but, really, I think it could all be summarized by "shut up and take my money!".
2013.04.10 in #91Crowd funding Pinto
Pinto makes it easy for you to manage your own private CPAN frozen to specific versions of modules that you have tested you application with. brian d foy is running the campaign on behalf of Jeffrey Ryan Thalhammer, the author of Pinto and Perl::Critic. Your contribution counts. Literally.
2013.05.19 in #95Advice to a new Perl user
Perl and Windows? Is it long-term skills? How to carve a niche for yourself? A new Perl user has questions, brian d foy answers them, Dear Abby-style.
2013.05.26 in #96Reverse installing CPAN, at the Polish Perl Workshop
brian d foy was at the Polish Perl Workshop and gave a presentation on how to find out which CPAN packages (name and version number) were installed in a certain environment.
2013.06.07 in #98The vertical tab is part of \s in Perl 5.18
Did you know that, up to perl v5.18, the vertical tab wasn't part of the \s character class. Or, let's be honest: did you even remember that there is such a thing as a vertical tab? brian d foy reviews for us how the space classes changed between perl v5.10 and v5.18.
2013.06.07 in #98Perl 5.18 new features
Want to know, bullet-point-style, what's new in perl v5.18. brian d foy gives it to you, unadorned.
2013.06.08 in #98Experimental features now warn (reaching back to v5.10)
Perl v5.18 has this new experimental feature that warns if your code use things that are not totally set in stone yet. brian d foy goes over the features that trigger experimental warnings and, just as important, shows us how to hush those warnings.
2013.10.23 in #118Parsing JSON with a single Regex
brian d foy explains the crazy regex written by Randal Schwartz to the Houston Perl Mongers and to all of us.
2013.12.07 in #124Programming Perl in popular culture
Most people are looking for Waldo. brian d foy, however, prefers to be on the look-out for appearances of those books with the funny animals on the covers...
2013.12.07 in #124Visualizing a CPAN install plan
Aaah, those devious webs of dependencies we spin... Well, now we can have a visual idea of how tangled they are, thanks to brian d foy'd work at the patch -p1 Perl hackaton.
2013.12.14 in #125More WordPress grepping
This is the second post by brian d foy about WordPress::Grep, his new module and command line tool.
2013.12.18 in #126The 2013 White Camels
The White Camel Awards recognize outstanding, non-technical achievement in Perl. Every year it is awarded to 3 individuals or teams. This year the recipients are Thiago "maluco" Rondon, Fred Moyer, and the Dijkmat team: Wendy and Liz. Reading the 'reasoning' behind the awards is always very inspirational.
2014.01.25 in #131Learning Perl Challenge: March Madness
If you want to get people to notice Perl, or if you want to become a millionaire (or both), brian d foy has a challenge for you.
2014.04.15 in #144CPAN {Spring|Autumn} cleaning time again
It's Spring! Which means it's cleaning season. So, as brian d foy proposes, why not take the opportunity to remove some of the cruft accumulated in your PAUSE directory?
2014.07.22 in #157Formats
I remember when I first started to teach Perl using a slide-deck provided by the training company. It taught all kinds of thing people hardly used. Including format. It is probably not very useful today, but if you are interested, brian d foy has just published the part of the 'Learning Perl' book that covered this feature of perl.
2014.07.31 in #158pack's C0 and U0
brian d foy shares way to much knowledge about the pack()/unpack() function pair of Perl.
2014.08.04 in #159How should conference speakers be compensated?
brian d foy explains how the Master Classes he started to run at YAPC::Chicago in 2006 helped financing some of the speakers. IMHO, as I also wrote already this is a win-win and such training classes can even help sponsoring other parts of the conference.
2014.08.07 in #159Rescue legacy code with modulinos
Modulino is a Perl module that can be also used as a script. brian d foy explains how this feature can be used to convert scripts into modules and make it easier to start testing them.
2014.08.11 in #159Kickstarting Mastering Perl Course at the Swiss Perl Workshop
brian d foy offers various options from getting an e-book version of the book 'Mastering Perl' through participating in his training class in Zürich till having him consult for your for a full day.
2014.08.29 in #162Facing the music with Perl
Collecting meta-data from music files after making sure they are unique. Code with explanation by brian d foy.
2014.09 in #163The Whitespace in the Perl Community
As I understand from other sources, the 'whitespaces' meant by brian d foy in his talk are the places where the Perl community has some kind of a hole to be filled. For example a module implementing the API of a public service. Though I am not sure. I wish I also heard the talk, not just seen the slides.
2014.09.12 in #1642014 Swiss Perl Workshop redux
brian d foy writes about his experience, and the human aspect that needs to go into any project if we want it to be successful.
2014.09.15 in #165Revitalizing the Perl Power Tools
The Perl Power Tools that is also known as the Unix Reconstruction Project has not been maintained for quite some time. Now brian d foy takes it into his hands.
2014.09.22 in #166Test::More has lots of crazy new development that's breaking my modules
The new maintainers of Test::More have released some new trial version of the ubiquitous testing module. brian d foy asks: should cpan testers be testing, and reporting failures, of modules using these versions? A fair question, and it turns out that there are pretty good arguments for and against reporting against the bleeding edge.
2014.09.26 in #166CPAN Testers & pre-requisite reporting
"Reporting test failures of alpha releases: good or bad?" The discussion sparked by brian d foy continues here.
2014.09.29 in #167Use postfix dereferencing
Perl 5.20 introduced a new, experimental syntax to dereference, well, references. brian d foy shows how to use those. What do you thin about the feature? Do you like it or think it creates further confusion? See also this reddit discussion.
2014.10.10 in #177Controlling Firefox from Perl
It's possible, with the help of a Perl module and a Firefox add-on, to have those two pieces of software talk to each other like best buddies. Web testing, browsing automation, javascript shenanigans, think of the possibilities...
2014.10.23 in #170White camel awards 2014
brian d foy has called for nominations for this year's White Camel Awards, which are given for non-technical achievement in Perl and the Perl community. Add comments to the blog post, email brian, or tweet under #whitecamelaward.
2014.12.15 in #178My Perl recruitment thoughts
brian posted his thoughts on perl and recruitment, in response to Dave's post last week. Hard to distil down to a pithy one-liner, but here's one good soundbite: "Pay doesn't matter if you suck".
2014.12.17 in #178The 2014 White Camel Awards
The Perl Foundation has announced the recipients for the 15th year of the White Camel Awards: Amalia Pomian for Perl community, VM Brasseur for Perl user groups, and Neil Bowers for Perl advocacy. Congratulations to Amalia and VM!
2014.12.19 in #178CPAN Testers from Github?
brian would like to see the love child of Travis and CPAN Testers: getting CPAN Testers results when you push a new version of your distribution to github.
2015.01.01 in #180A use for the scalar reverse (maybe)
The 'reverse' function of perl can easily trick people as it behaves differently in scalar and list context. In this article brian discusses some use cases when the scalar version of this function might be useful.
2015.01.01 in #180My CPAN Cleaning, Day 2457023.500000
As you upload newer and newer versions of your module to PAUSE and thus to CPAN, the old onese linger around taking up space and possibly confusing people. brian has this annual (or is that bi-annual?) ritual cleaning up his directory, removing the old versions. This time he goes further and makes sure modules he has on CPAN have their proper GitHub repository and other useful features.
2015.01.03 in #180Makefile.PL as a modulino
A modulino is a program that can act like a module, or a module that can be directly executed. While doing his CPAN Archeology brian turned his Makefile.PL into a modulino and shows how you could do that too.
2015.01.07 in #181Extracting from HTML with Mojo::DOM
Mojolicious comes with a lot of snazzy tools to retrieve and manipulate web content. brian demonstrates.
2015.01.12 in #182What should be in a CPAN distro README?
brian wonders whether README files are still needed these days, and if so, what should be in them? There are several conventions on CPAN, some dists just have a copy of the main module's doc, others have a summary, and yet others have installation instructions. Add your thoughts in the comments (if you can!).
2015.01.15 in #182Don't use named lexical subroutines
brian walks through the concepts of lexical and package variables, and then for subs. All this is a lead-in to him presenting a number of problems with named lexical subs (aka 'my subs').
2015.01.25 in #183CPAN Cleaning Day 2457044: Compiler::Lexer
Using the postfix deferences that came with Perl 5.20? If you do, you might notice that Perl::MinimumVersion and Perl::MinimumVersion::Fast are a bit sloppy and think your code is respectively vintage 5.004 or 5.008. This irks brian, so he rolled up his sleeves and dove into the C++-fueled heart of darkness.
2015.02.02 in #185Time::Moment can save time
DateTime is perfect, but huge and slow. Time::Moment has certain limitations, but it small and blazing fast.
2015.05.19 in #200Defend your code with Guard
A whole new meaning of defensive programming? The example is how to localize system-wide changes. If you put 'local $_ = undef;' in a block that will ensure '$_' gets its original value back when the block ends. Could you write 'local unlink $file;' and have the file delete for the duration of the function call? Could you do this with something less destructive like 'local chdir $other_dir;'? (Reddit)
2015.05.20 in #200Computing excellent numbers
Brian shows his actual path through a problem rather than hiding all his failed experiments. The negative results are just as valuable. - Agreed!
2015.05.20 in #200Perl 5.22 new features
The first Perl 5.22 release candidate is out and there are some new operators and many enhancements to regular expressions that look interesting.
2015.05.25 in #200Use Perl 5.22's <<>> operator for safe command line handling
The 3-argument form of 'open' was added to Perl 5.6 to protect our code from attacks. This is quite well known. The question remained though: How does Perl open filenames when we use the diamond operator in a while loop? That was still vulnerable to the same kind of attacks. Using the new operator you can make your code safer.
2015.05.31 in #201Perl's special not a numbers
Some rally crazy stuff probably you have not heard about Perl either. Introducing NaN and Infinity, two 'numerical' values in Perl that probably no one uses.
2015.06.04 in #202Learning Perl Challenge: Be better than Quorum
brian sets a simple challenge, which you have to write a Perl solution for in 5 minutes. Then a day later, write another solution from scratch, and see how your two solutions differ.
2015.08.19 in #213Turn capture groups into cluster groups
Instead of using (?:...) many times, you can just use the /n flag and turn every capture group into a cluster group. Or, you can use (?n...) to turn off capturing in part of the regex. Of course there are a lot more details in the article.
2015.10.06 in #220Display real-time data with Curses
brian shows how you can use the Curses module to interactively display information to the terminal, for example as some process is running.
2015.11.12 in #225Nominate Perl heroes for the 2015 White Camel Awards
The White Camel award recognizes and celebrates the non-technical achievements of a member of the Perl community. Know somebody who's deserving of that monochromatic humped Thank You this year? Submit their name to brian d foy!
2015.11.18 in #226Should we call it "Learning Perl 5"
Now that Perl 6 is going to be release within a few weeks brian d foy is wondering if the next edition of the "Learning Perl" book that deals with the Perl 5 syntax should say so in the title. Not surprisingly the Reddit discussion got quite long. People have strong opinions.
2015.12.27 in #231We’re starting Learning Perl, 7th edition
Work is starting on the next edition of Learning Perl. If there are changes you'd like to see, this is the time to let brian know.
2016.02.27 in #240The Lyon Compromise on Perl version formats
brian tries his hand at convincing Google to point to this page and this explanation when someone looks for the Lyon Compromise of Perl version formats. Can you help giving that page some relevant Google juice by sharing it, tweeting it, linking to it?
2016.10.02 in #271Hacktoberfest is here
What is it and how to label all of your GitHub projects for Hacktoberfest? It is easy. brian provides the Perl script for it.
2016.11.24 in #279Nominate Perl heroes for the 2016 White Camel Awards
The gates are open for nominations for the White Camel Awards. Know somebody who made the Perl Community a better place and deserves props for it? Then go forth, go forth and nominate!
2017.01.09 in #287v5.26 removes dot from @INC
Up till 5.26 perl used to find modules in the current working directory of the user, that could have been anything. Starting from 5.26 that won't be the case.
2017.04.25 in #301Thinking about Perl 6
brian d foy interviews Laurent Rosenfeld, whose new book Think Perl 6 from O'Reilly Media, comes out this summer.
2017.04.26 in #301You must escape the left brace in a regex
I used to fight against escaping special characters that are not (yet) special in Perl 5 regexes. I might need to revisit my position. At least for "{".
2017.07.06 in #311PrettyDump's European Tour
brian d foy reports on his recent travel grant, and the presentation he gave (repeatedly) while he was in Europe.
2017.07.25 in #320PrettyDump for Perl 6
brian d foy presented at London.PM on his new PrettyDump module for Perl 6.
2018.08.14 in #369Perl v5.28 can delete key-value slices
Perl v5.20 introduced key-value slices that worked on hashes and arrays. You could extract values by their keys or indices as well as assigning to those. The key-value slice delete is a way to extract the keys and values you want and delete them at the same time.
2018.08.27 in #371Use Unicode 10 in Perl v5.28
Perl has been on the forefront of Unicode adoption for a very long time. See how to use the newly added characters in the recently released version of Perl.
2018.12.03 in #385Perl v5.30 lets you match more with the general quantifier
I never thought about this but apparently you cannot write a regex with {N,} where N is larger than 32,766. Try it! This will throw en exception 'x' =~ /b{32767,}/ but don't worry Perl 5.30 will double the limit. I don't think I ever needed such regex with N greater than 17 and even that was just to show an example to my students. If you ever needed more, I'd love to hear your story! If you needed more than 32,766 brian d foy also wants to hear your story! I don't know what brian writes in the article is fun or scary. Or both.
2019.01.27 in #393Surprising output for the descending range '01'..'-1'
Because of the flexibility of Perl and the automatic type conversion the range operator has some edge-cases that are probabaly unintended and might go away. brian d foy shows them to us.
2019.04.22 in #405We don't need no stinkin' hosting
Andrew Shitov asked for 10,000 USD to 'Create a complete course of the Perl 6 programming language.' In a close vote it was rejected, partially due to the lack of specifics about deployment and hosting options. brian d foy that the hosting question should not be important as the expense is negliable. I tend to agee. One could run a decent system on a 5-10 USD/month box on Digital Ocean that would probably server the Perl 6 users if their number 10 and probably even 100 times more than the current number. If that happens I am sure there will be individuals or companies who will be happy to pay the bill. On the other hand I think the plan for deployment should be part of the grant and the system needs to be deployed from day 1.
2019.06.17 in #413Quoting the Shell
It isn't easy. First you encounter spaces. Then other special characters. Then quotes. Is there an end to this?
2019.09.26 in #427Hacktoberfest 2019
Hacktoberfest starts tomorrow. brian d foy gives you some directions what to hack on if you'd like to participate. It is fun even if you don't want the T-shirt.
2020.01.31 in #445Use a temporary file instead of clobbering data
What happens if there is an error mid-way while you are updating a file. Oups. You don't have the new data yet, but you have already lost the old data. Here is how brian solves this.
2020.03.11 in #451Who makes it into @INC first?
To quote brian: 'Perl finds modules by looking through the list of directories in @INC. There are many ways to add paths to that array, and although I’ve used all of them at some point, I’ve never quite thought about what happens when I use all of them together.'
2020.09.25 in #479Migrate the perldoc.perl.org domain to perldoc.pl
http://perldoc.perl.org has many broken parts, but there is already an alternative. brian d foy wants us to migrate to the new site. Go, express your opinion on the GitHub issue or on reddit.
2020.10.05 in #481Stupid DATA Tricks
Do you know about __DATA__ and __END__ ? Well, you should.
2022.06.27 in #571CPAN::Audit
brian d foy writes: We've revitalized CPAN::Audit. It's a tool that can scan your installed modules for known security issues. It's all at cpan-audit. Along with that, I'm soliciting people to sign the keys that I use to sign the data that we distribute. Since this is security software, we want people to trust the data that we are giving them. Just follow the instructions
2023.08.03 in #6282023 Perl Advent Calendar
It's time to start thinking about how you are going to contribute to the 2023 Perl Advent Calendar.