Duplicate Post Filter 1.5 released

I just tagged version 1.5 of the duplicate post filter. It’s important to realize that virtually no solution is going to detect and remove all duplicates. The same is true here. This filter will stop some, perhaps many but not all duplicates from being posted.

That being said, I hope you find it useful.

No Comments

New FeedWordPress Duplicate Post Filter

I’m testing a new version of the FeedWordPress Duplicate Post Filter.  It uses a new strategy for detecting duplicates which I hope will be better than previous attempts.  If you’d like to test it, you can get it here. Install it by clicking the right-clicking the link, choosing “Save As…” (or whatever your browser supports for link downloading), save it to your local disk and put it in your plugins directory. Then activate it. Let me know how it goes. If I hear some positive feedback, I’ll release it in a week or two.

Important:  You need to have FeedWordPress active before the duplicate filter.  This is because the filter hooks some functions in FeedWordPress and if it isn’t active, this filter can’t properly install itself.

4 Comments

DistZilla from one newb to another

I’m giving a talk at Houston.pm Thursday night about DistZilla, a tool for automating Perl releases. This post is intended to gather several web links to tutorials and other informative sources about this tool.

You can find the slides from my talk here.

No Comments

Gett APIs

Over the past couple of weeks, I’ve written two bindings for the Ge.tt REST APIs.  One is in Perl, of course: Net::API::Gett and the other is written in Python: pygett.  It was a good exercise in learning python and how to put together a complete package for distribution through the package index (PyPI).  I’m lucky that I had a lot of help on the python side of things from my coworker, Glen Zangirolami (aka glenbot).

Anyway, check either one out. I have some refactoring work to do on the Perl side of things now. Writing in python really made me clarify how I wanted the object structure to work and I like the way things were organized on the python side of the implementation.

It’s not that Perl can’t do objects well, or intelligently – more that the Perl implementation was kind of a “first draft.” Now that I’ve had a lot of time to think about the object design, it’s time to update the Perl implementation.

1 Comment

Using Windows 7 themepacks in Mac OS X or Linux

Autumn in Japan ThemepackHere are a few of the desktop backgrounds in a recent Windows 7 themepack.  If you don’t use Windows 7 you might not know about all of the amazing images that Microsoft has provided from a host of different interest areas – everything from nature scenes like this pack to recent movies and video games to architecture.

Anyway, the themes come packaged as a binary file with a .themepack extension.  But it’s really just a Microsoft CAB style archive file. On Unix you can unpack CABs with the exceptionally useful cabextract program. Most Linuxes should have binary packages available in your package manager. Something as simple as

sudo yum install cabextract (or)
sudo apt-get install cabextract

should get the program installed.  On Mac OS X, there are prebuilt binaries in .pkg format which offers quick and convenient installation.

Once you have unpacked the themepack file, you’ll see there is a directory called “Desktop Backgrounds” and one or more jpgs inside of that directory.  That would be the pictures included in the themepack for your desktop.  The easiest way to display your new backgrounds is by opening the “Desktop” or “Background” area in the system settings.  On Mac OS X, you can hit the + button at the bottom of the left-side scroll area and then browse to the location of your unpacked pictures.  Then if you individually select the pictures and choose “Change photo” on each picture, they will rotate amongst themselves.  Many Linux distros support a similar type of picture rotation functionality – in Fedora, for example, you can check out the

fedora-wallpapers-extra

package which demonstrates how it works.

No Comments

Speaking at OSCON 2011

I am very excited that I will be speaking at OSCON 2011 on Dancer.  I plan to revise my current slide deck to be “OSCON worthy.”  I think this is going to include a new tutorial application.

No Comments

Frozen Perl 2011

I was excited and gratified to see that my talk on Dancer was well received by many participants at the Frozen Perl workshop at the University of Minnesota today.  I hope I can do the talk again at some other venues later in 2011.

If you missed the slides on the wiki site, you can find them here.

No Comments

Perl Shared Hosting on BlueHost

This blog (and several other websites that I run) are hosted on Bluehost which has been a pretty decent, fair and inexpensive hosting provider to me. They offer SSH/shell access, too, which is definitely a plus.

Recently there’s been a bit of a movement to explore Perl support on shared hosting providers like Bluehost led by the website perlsharedhosting.com. The site is a clearing house of information about hosting providers which support Perl web frameworks (like Dancer, Mojolicious, CGI::Application, Web::Simple) – and providing instructions to set up live demos.

Well, I’ve got a live demo of the Dancer and Titanium frameworks running on my account on bluehost. You can find them here:

http://byte-me.org/dancertest/dispatch.cgi/ (yes, you need the trailing slash)
http://byte-me.org/titanium/test.cgi/

It’s pretty awesome to think you can write a webapp in Perl and host it using modern Perl frameworks like Dancer and Plack on account that costs under $10 a month.

No Comments

Testing new version of Feedwordpress Duplicate Post Filter

UPDATE: I checked in a new revision of 1.3 in rev 187105. This one readds some diagnostic logging and checks the num_rows class scalar to see if any rows were returned in the DB query which is probably the Right Way To Do It(tm).

I’ve recently gotten a couple of emails from people that my Duplicate Post Filter was broken or not working properly. This came as a surprise to me because I haven’t regularly been running the site I originally created the plugin for since around January of 2009. I originally thought maybe my plugin was using deprecated calls or actions, but that’s not it at all.

When I reviewed the code for the first time in over a year, sure enough, there was a really dumb typo in the SQL query which would have caused it to return a false negative every time it was executed, meaning that every post would come back as “not a duplicate” even if it really was. And since I had the opportunity, I refactored the SQL query to more safely and better use the wpdb class methods.

I’ve updated my SVN trunk to 1.3 and I’m going to email the filter to the people who emailed error reports so they can test it. My own limited smoke testing shows that it seems to be functioning. If the other testers report back with success, I’ll tag the 1.3 release on/around Christmas as a little gift. At that point, the WordPress plugin website will do its magic and people will be able to auto-update if they like (which they will I’m sure!)

7 Comments

DIY Mac Book Pro RAM upgrade

I have an early 2007 vintage MacBook Pro. I bought it when the local CompUSA store was having its going out of business sale – got it for 5% off list which I felt was a pretty good deal considering that Macs (non-refurb ones) never go on sale.

It came with 2 GB of RAM from the factory and because Apple memory always cost an arm and a leg, I hesitated to upgrade it – besides it wasn’t broken. Since RAM has gotten so cheap, I finally decided I’d take the plunge and upgrade.

There’s even a YouTube video (go on – it’s only 2 minutes long. I’ll wait…) that shows exactly how to do it yourself.

One helpful tip that was omitted from the video, though: you need a #00 philips screwdriver to take the cover off after you remove the battery. After searching around teh Interwebs, I found this screwdriver set at Radio Shack. (Mine varies cosmetically from the picture but it’s the same price and set of bits.)

I just used it to install the new 2 GB SO-DIMM in the laptop. The tool is perfect for the job; but the case is rubbish.

No Comments