Listing All Installed Programs in Windows XP

I wanted to get a list of all the programs installed on my computer listed in 'Add or Remove Programs' in the Control Panel in Windows XP. Win32::TieRegistry provided a nice way to do this.

CPAN Testers Summary - October 2010 - Nine In A Pond Is Here

Back in January 2008 we were celebrating the one millionth post submitted to CPAN Testers. Although that article proclaimed it to be the one millionth report, many initial posts to the mailing list also included discussions and announcements of uploads. It wasn't until I created the Interesting Stats page that we started to see the true picture. However, we only had to wait until March 2008 for the real one millionth report to be posted. Now some 2 years and 7 months later we've had the nine millionth report submitted. It took 9 years to produce 1 million reports, but only a further 2½ years to produce another 8 million reports. The rate at which CPAN Testers has been able to get people involved in the project has been phenomenal. We are now submitting over 500,000 reports a month, so I have no doubt we will pass the 10 millionth mark before the end of the year .. probably just before Christmas :)

Marpa's Sudden Portability Adventure

I've made bold claims for the portability of Marpa. [ Marpa is a general BNF parser generator -- it parses from any grammar that you can write in BNF. If the grammar is of one of the kinds currently in practical use (yacc, LR(k), LALR, LL, recursive descent, etc.), this parsing is in linear time. ]

The boldness of my claims evinced no ambition to test them under fire. But, when my main development box (a 2-year Dell laptop running Ubuntu) suddenly died, my only other choice for a development platform was a MacBook G4 running Mac OS Tiger. So test my portability claims is what I had to do.

Not that my brags about portability had been without foundation. I upload development versions for cpantesters regularly. (By the way, to all of you at cpantesters: a big "thank you".) As far as the configuration, build and runtime environments went, I had a lot of reason to be confident.

My Programming-Related Todo List

Dave Rolsky posted his Programming-Related Todo List, and here's mine:

  • Make a proper programming-related to-do list
  • Write that new CPAN client I was talking about
  • I've been indexing BackPAN just fine, but I have to figure out a way to make all of the data available to people in a sane way. The plain text uncompressed data for about 140,000 distros is several gigabytes. I have half of a web service written, and even have mycpan.com to host it. I just need the tuits.
  • Get my CPAN stats and trending project going again. It used to be part of The Perl Review, but I just need to set up the cron jobs again and maybe use some prettier charting tools.

There are some modules that I want to write, or fool someone else into writing:

Internal redirects in Dancer

I really like the forward function in Catalyst. It lets you chain actions together and create a clean flow. I decided I want that in Dancer. We now have it.

Some background:
I was working with my brother on a project with Dancer. We wanted a client to be able to go to a personal demo page of the website to be able to try out editing features without destroying the actual website. The original (awful) code did this by copying all the (CGI) code into a different folder and making that available.

Our idea was to have a demo database that starts as a replication of the existing one and then can be mutated and twisted with editing tests. The data is no longer important, just that there's something to play with.

Using Plack to "Like" a Module on Facebook

We've made a couple of fun changes to cpan-mangler. First off, you can now "like" modules on Facebook:

mangler-facebook.png

Now, up and downvoting of modules would be a lot more useful, but this can be fun (and confusing for your friends):

mangler-facebook-like.png

Secondly, Lee Aylward added support for HTML::Highlighter:

mangler-highlighter.png

Thirdly, we've added a tweaked version of Jesse Thompson's CPAN Dependents Greasemonkey script.

mangler-search.png

If you've already got cpan-mangler installed, a "git pull" should get you going (you'll likely need to install some additional modules). If you haven't, you can clone the repo and get yourself started in just a couple of minutes. Have fun with it!

random thoughts on YAPC::Asia

YAPC::Asia 2010 is over. Well, it actually ended more than two weeks ago. It was fabulous as a whole. Larry's keynote was quite interesting. Jesse's was fabulous in many ways (including that nico-nico-ish twitter stream). Miyagawa-san's was moving. This year we also had a special session where Japanese perl mongers group leaders were invited to discuss issues and encourage people to join or start another. As a consequence, a few new perl mongers groups were born and some more may come. I'm really glad at that.

"Works for me!"

For some time that on different situations I have heard programmers answer and close bug reports with a "Works for me!" sentence.

I think that kind of answer is from somebody that doesn't want to bother asking for details on what is going on, and making his/her software better. When a programmer answers this, why is he or she making his code available? Or, if he or she is making the code available `as is', why they create a project page and the ability to submit bug reports? Also, if it works for you and you are not interested why that piece of code is not working elsewhere, I can't understand why we, at Perl community, have CPAN Testers.

Note that there are situations and situations, and I can agree that in some situations this would be a suitable answer.

But what I would like to say here is, please try to reduce that amount of "Works for me!" sentences per square meter.

Perl 6 on FLOSS Weekly

FLOSS Weekly's Randal Schwartz interviews Patrick Michaud about Perl 6

First Grant Report: Perl 6 Tablets

Not that I was too lazy but my time was very compartmentalized. So i just start slowly and since I don't get bucks til its done, you don't have to worry anyway. I just completed Tablet 2. Its a nice and dense overview what Perl 6 is about and whith which mindset Larry is designing Perl 6. (already got very positive feedback from #perl6 people).

On other hand It's small and not part of the official grant, but it belongs to the overall concept of the Perl 6 Tablets which is much more work anyway. It was not the only thing I've done but for now i mention this because its completed and you are invited to write your comment of extentions here or in the wiki.

Thanks.

P.S.

thanks to lue for fixing typos

Multiple packages in one file

I was reading an interesting discussion on python-dev, and it made me think about the analogous situation in Perl. I've long been in the habit of putting each package into its own file, no matter what. Now I'm starting to consider combining related packages into one file, and only breaking things up along lines of reuse.

I initially thought there was consensus in Perl circles to have a single file per package, but on further reflection, I started to doubt myself. I don't actually have much confidence that this is true. I don't usually look at the file structure of distributions I use from CPAN. Maybe there is more combining than I realized. Any thoughts?

Remove a Git Tag From Github When There is Also a Branch of the Same Name

I have been using git and Github off and on for a while now but I’ve never really learned much about it.

Today, I mistakenly added a tag with the same name as a branch and pushed it to Github. I was able to get rid of it locally but I was pulling my hair out trying to figure out to remove it from Github. I finally stumbled on the solution so here is what I learned.

Removing a git tag:

git tag -d <tag>

Removing a git branch:

git branch -d <branch>

Deleting a tag or branch from Github:

git push origin :<tag or branch>

Deleting a tag (with the same name as a branch) from Github:

git push origin :refs/tags/<tag>

Deleting a branch (with the same name as a tag) from Github:

git push origin :refs/heads/<branch>

9 Million Test Reports!

As the Statistics site wasn't being regularly updated for the past couple of weeks, the latest milestone on the Interesting Stats page of the CPAN Testers Statistics site was way down the watch list. So I was surprised to see that we now have over 9 million test reports in the CPAN Testers eco-system. Many thanks to all the testers who have help to contribute to the milestone.

Congratulations once again go to Andreas for posting the 9 millionth report. It was a PASS for Log-Report-0.28.

App::Office::CMS - Close to release

Over the last couple of months, a startling array of events have transpired, and hence conspired to delay progress, but finally I have App::Office::CMS working at home.

I’ll shortly release a dev version (V < 1.00), so you can check the installation instructions, if you wish, and the docs.

I just have to finish off the POD, which is mostly written.

The dev versions will start by using textareas for input, not TinyMCE, the editor I’ll activate for V 1.00. After all, these versions are just for playing with.

Also, I have not yet integrated revision history, so there is no roll-back capability. I’m looking at Git::Repository for that. Only 1 copy of the data is stored, in a database via DBI.

Perl101: finding words in words

Recently a friend of mine back in the US mentioned an art project she was working on. She was looking for words which are composites of two words. She didn't necessarily want obvious composites like "bluebird", but less obvious composites that can be worked into her art project. For example, "homeless" could be "home less", or "garbage" to "garb age". A few people struggled to come up with examples. I came up with /usr/share/dict/words and a few lines of Perl. I use a few nifty idioms that every Perler should be familiar with.

Chat::Envolve

Several people have asked about the chat system in The Lacuna Expanse and whether it is something they could use in their own sites. Indeed it is, though until today it was anonymous only. Read on for the details.

Leaving Android

I originally wrote a very long post about this but somehow it wasn't probably saved while restarting so you'll have the benefit of a shorter version.

I've decided to stop focusing on Perl for Android for now. This is not to say I'll never get back to it, but that I definitely won't be involved with it in the near future.

I assume many are wondering about the current status of Perl on Android. Starting with "there is Perl for Android already" and ending with "it probably isn't the Perl you wish you had" seems like a good summarize. There is a patched-but-not-documented Perl 5.10.1 cross-compiled for Android. It might be relatively old and missing some very useful core modules, but it works for most uses. Also, you could hack around what's missing.

Amazon wishlists API

Until a few days ago I have a lovely tool, which I wrote in perl (of course), which would visit several of Amazon's websites and download my wishlists. But it stopped working. Apparently, Amazon decided to just turn that particular part of their API off. Does anyone know of an alternative to Net::Amazon::Request::Wishlist that still works?

Doesn't particularly have to be in perl.

Large Hadron Collider - data crunching in Nebraska

Last week The Linux Journal published this excellent article written by Carl Lundstedt of the University of Nebraska, Lincoln which details many ways Linux / open source is used around the world by scientists working on cutting edge physics.

The computer cluster he details is the same cluster I ran large stacks of Perl on for my "mutation grid" project whose name I stole when I formed Mutation Grid, Inc. A little trip down memory lane for me, and a good read for curious minds. :)

A restructured perlvar

I've been working on a restructured perlvar and I think I've mostly got it right, but at the moment I'm almost wishing that I never have to see it again. Have a look for yourself. It's in the perl git repo in the briandfoy/perlvar branch (if you're looking at the github mirror, realize it's several hours behind).

The new version notes when each variable appeared in the Perl 5 series of releases if it wasn't there at the start.

I still have to ensure that nothing breaks the perldoc -v stuff. I've tried it on several variables without problems but I don't know if some of the restructuring affected the odd variable.

I expect to merge this for the next development release, so I have a couple works to sort out whatever is left.

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.