Posts with keyword: perl

                    Self-Sovereign Blogging

                    The cloud is a fickle place that gives and takes. Self-sovereignty is the only path to autonomy and agency.
                    Continue reading...

                    A New Look Leads to a New Blogging System

                    In deciding to update my blog, I began a task that I knew would be fun and slightly involved. I wasn't disappointed. I created a custom blogging system that leveraged my habit of writing everything in Emacs and my love of Perl. The new system matches my personal workflow perfectly.
                    Continue reading...

                    My Own URL Shortener

                    Nobody likes link rot. Link rot breaks the Web. But in the age of Twitter, short URLs are a necessity. I think the best way to keep my short URLs from rotting is to take charge of the process myself. This post shows how I built a simple, reliable URL shortening service that runs under my control.
                    Continue reading...

                    Asynchronous HTTP Requests in Perl Using AnyEvent

                    I need to make a number of HTTP requests from within a Perl program. There might be as many as a dozen (sometimes more). Doing them serially in a for loop would be too slow. So, I started exploring asynchronous programming in Perl using AnyEvent.
                    Continue reading...

                    Using ANTLR and PerlXS to Generate a Parser

                    As I mentioned earlier, we're anticipating changing out the current Parse::RecDescent based parser in the Kynetx platform with one that will perform better. We've been going down the path of using ANTLR, a modern parser generator that supports multiple target languages. That flexibility was one of the key thing that got us interested in ANTLR. We might want to generate Ruby or Javascript KRL generators at some point. But of course right now we want to generate a Perl parser since that's what the underlying Kynetx Event Service (KES) is written in (it's an Apache module). ANTLR doesn't support
                    Continue reading...

                    Converting QIF Files to CSV

                    I haven't updated Quicken on my Mac since 2006. Yeah, I know, but it does what I want. The program is that my version of Quicken only export QIF format files and Quicken on Windows apparently hasn't supported importing those since 2005 or something. The problem was that I needed to get some information about my credit card account to my accountant. If you google around, you'll find people who sell programs that convert QIF files to Excel that they want real money for (like $60). Forget that. Especially when I've got Perl at my beck
                    Continue reading...

                    A Retweeting Twitterbot in Perl

                    Image via CrunchBase I'm trying an experiment with this year's Utah legislative session, I've created a Twitter account (@utahpolitics) and set up an autofollower on it (hat tip to @jesse). I wanted to also set up a retweeting twitterbot so that people following the account would see what anyone else following the account said when it contained certain keywords. The world probably doesn't need yet another retweeter, but I couldn't find exactly what I was looking for and decided to build one for a few reasons: I like to program I want to understand the Twitter API more deeply
                    Continue reading...

                    Using Puppet and CPAN

                    The code that makes Kynetx work is a couple of custom Apache modules written in Perl. So, configuring machines via puppet, naturally requires ensuring that a set of Perl modules are loaded. For a long time, I was using a private bundle, but I found that was unreliable. For the most part it worked fine, but then sometimes I'd get an error that Perl couldn't find the bundle, even though it was clearly in the path. I didn't want to spend a lot of time debugging it because I figured it was a dead end. Eventually, I've got to
                    Continue reading...

                    Parsing with Perl

                    The system we're building at Kynetx includes a domain specific language that uses rules to create JavaScript programs that get sent down to the browser. I've documented our decision to use a domain specific langauge and our choice of Perl in other posts. When I started this project, I was reading Mark Dominus' book Higher Order Perl and started using his HOP parser to play around with. One thing led to another an before you know it I had a full blown language parser in HOP without giving much thought as to whether or not I'd made the right
                    Continue reading...

                    Anti-Perl Social Engineering

                    Dave Cross has a piece on why corporations hate Perl. He's being a little hyperbolic (as he admits)--not everyone hates Perl, but he's right in noting that there is a backlash against it. He says: I was talking to people from one such company last night. The Powers That Be at this company have announced that Perl is no longer their language of choice for web systems and that over time (probably a lot of time) systems will be rewritten in a combination of Java and PHP. Management have started to refer to Perl-based systems as "legacy" and to
                    Continue reading...

                    Using bit.ly with MovableType

                    I've been using the mt-twitter plugin to automatically publish blog articles to Twitter. I find that I get more readers that way than RSS or my newsletter at this point. One problem is that you don't get any good stats that way. I've modified the mt-twitter plugin to use bit.ly now to solve that problem. With bit.ly you can click on the "info" link and get good stats about who clicked from where. This is the code I added to the _update_twitter function: my $bitly = LWP::UserAgent->new; my $url_response = $bitly->get("http://bit.ly/api?url=" . $obj->permalink); my $small_url; if($url_response->is_success) { $small_url =
                    Continue reading...

                    Doing CPAN Installs Using Capistrano

                    I've been trying to use Capistrano for application deployment over the last few days, writing rules to do some common tasks, figuring out how it works, etc. One problem I ran into is that I have a private CPAN bundle that I use to ensure a machine has all the right Perl libraries when I deploy to it. The problem is that CPAN is often run interactively and so module writers often assume the user will be present. That means that it stops in the middle and asks questions about skipping tests, etc. I searched for a while to
                    Continue reading...

                    Types as Comments

                    Steve Yegge is at it again. This time he's taking on modeling: Well, we also know that static types are just metadata. They're a specialized kind of comment targeted at two kinds of readers: programmers and compilers. Static types tell a story about the computation, presumably to help both reader groups understand the intent of the program. But the static types can be thrown away at runtime, because in the end they're just stylized comments. They're like pedigree paperwork: it might make a certain insecure personality type happier about their dog, but the dog certainly doesn't care. If static
                    Continue reading...

                    Perl Testing

                    I didn't grow up in an era where testing was as well though of as it is now. When I learned to program, you ran a few tests after the fact and threw it over the wall to the QA department. Not very politically correct in today's software engineering world. As a result, I understand the value of testing and support the idea intellectually, but I don't have the discipline. Recently I was faced with the problem of building code that translated a domain specific language (KRL) back and forth between three different representations: The textual representation is what
                    Continue reading...

                    Perl Web Framework Recommendations

                    Does anyone have recommendations on a Perl Web framework? I've heard of Catalyst and not much else. A few things make me leery: the blog is infrequently updated and the last release of the code was November of 2006. I know there are other frameworks (I vaguely remember attending a talk at OSCON) but I don't know anything about them.
                    Continue reading...

                    Speeding Up Crypt::DH

                    I was installing Crypt::DH, the Perl Diffie-Hellman library today. The tests took 20 minutes on a Macbook Pro. Then I noticed a comment on an OpenID forum about "making sure the GMP Perl bindings were enabled" to speed things up. Specifically this means install Math::BigInt::GMP, as I found out, after some searching. The same tests ran in less than 10 seconds using the GMP library. That's impressive.
                    Continue reading...

                    Building Newsletters for IT Conversations

                    I was a little late getting this week's IT Conversations newsletter out because I was trying to finish my tool for building the newsletter. I like building tools because they help me leverage my time. The newsletter tool is written in Perl. It downloads and parses two different RSS feeds and a zipped CSV file with ratings data. I only want items in the two RSS feeds that haven't been seen before so I have to have a persistent hash to remember the GUIDs of previously seen items. The tool also sorts the shows using the ratings data (which
                    Continue reading...

                    Top Ten IT Conversations Shows for January 2007

                    Here are the top ten most listened to shows on IT Conversations for January 2007: Who Owns "You"? - Supernova2006 John Seely Brown - Supernova 2005 Peter Navarro - Tech Nation Curt Carlson - Tech Nation David Platt - Why Software Sucks Chip Heath - Tech Nation Gary Lang - Opening the Possibilities: APIs and Open Source Code Sudoku, Biorobotics & Aeronautical Genius - IEEE Spectrum Radio Dr. Pauline Mele - BioTech Nation Kelly Phillipps - New Technology In Enterprises Today was the first time I've used my new Perl script to generate this list. Up until now, I
                    Continue reading...

                    Cardinal: Ruby on Parrot

                    At the next Provo Linux User's Group meeting on the 8th of November, Kevin Tew will be presenting Cardinal, a Ruby implementation on Parrot that he's working on.
                    Continue reading...

                    HTML to Kwiki Markup Conversion

                    I use Kwiki for lecture notes, homework and other Web pages I need to teach my class. Here's an example: the lectures for my programming language design class. Today I needed to convert some old pages (embedded in PHP) for use on the wiki. I did one by hand and thought that I ought to write a Perl program to convert the HTML to Kwiki mark-up. Then I got smart and realized someone must have already done it--I was right. David Iberri has a HTML to Kwiki module for Perl that with a little scaffolding did the job nicely:
                    Continue reading...

                    My First Web Server

                    Jeremy Zawodny's reminiscing about his first Web server and got me thinking about my first server. In 1993, I left the University of Idaho's CS department to take a position at BYU. I was a formal methods researcher and at that time, the only way to run FM software was on big servers. So, I spent a summer at BYU waiting for my HP Workstations to show up. Kelly Hall had transfered to BYU from Idaho with me as a grad student. We were both bored. Kelly came in one day talking to me about HTTP and something called
                    Continue reading...

                    Writable Web: Annotating Manual Pages

                    I'm doing a project in Perl where I needed to tidy the HTML in some pages. There's a nifty little Perl package called, appropriately enough, HTML::Tidy. I used CPAN to grab it and got it working, but I'll be darned if I could figure out how to actually get the tidied text back from the package. If you read the man page, I'll bet you can't figure it out either. No useful examples with the code and searching the Web turned up very little. Turns out the clean method returns the cleaned text, although the man page doesn't say
                    Continue reading...

                    Achieving Ubiquity With an Identity Metasystem

                    Brett McDowall, who gave a presentation on Liberty at IIW2005, has started a blog. At IIW2005, he said "the world belongs to those who show up" and his blog is an effort to "show up" in the blogosphere. Brett notes that there's a lot of misunderstanding about Liberty Alliance, even (or maybe especially) among the IIW2005 crowd. Some of that's FUD, but as he notes, there are technological barriers. The primary one he notes is that RESTians aren't likely to jump on board SOAP just for the privilege of using an identity infrastructure. I was interviewed this afternoon by
                    Continue reading...