Previous 10

Apr. 9th, 2013

And after four days

And after four business days we're back in extended hours. At least I got a two-day weekend out of it. I didn't even make it into the building before I found out. I am absolutely exhausted and uninspired.

Tags: ,

Apr. 1st, 2013

April didn't come soon enough

Man alive, I've been working 12-hour days, seven days a week, for almost the entirety of March. It has been grueling. During this time I gained 10 pounds due to atrocious eating habits (like eating right before bed at 3:00am), my voice has become damaged thanks to stress- and diet-related acid reflux, and I've started waking up with caffeine deprivation headaches.

It all culminated in a very successful quarter-end, though. I got off work at 4:35am on Easter morning, slept for a bit, then went back for another 12 hours. When I got home this morning and checked my mailbox I realized that the stars were beginning to align for me: a Victoria's Secret swimsuit catalog had been mis-delivered to me. Ha!

Google has announced that they're shutting down their Reader service, so I'm excited to coincidentally have free time open up to improve feedparser. It's been a while since I've had time to solve complex problems, so I'm looking forward to relaxing with a hobby I enjoy. Stay tuned for another post in which I'll summarize the state of feedparser and what I'm planning to work on this year!

Feb. 6th, 2013

In Europe, day 4

Although my days have been largely consumed by meetings and discussions I've been finding time to enjoy Zaltbommel and its many restaurants.

Yesterday for dinner I had duck liver, quail, candied apple, pork and mashed potatoes, crème brûlée, wine, and a delicious Trappist beer named Dubbel at a wonderful restaurant in Rossum named De Gouden Molen (the Golden Windmill, I'm told). The night before that I had a Greek meal consisting of souvlaki, suzuki, fried potatoes, tzatziki, and vegetables. The beer of the evening was called Bavaria and was outstanding.

Tonight, however, my coworker and I were exhausted so we had a simple meal: McDonald's. Damn, baby, the Dutch have better french fries than we do, even at McDonald's! And the vegetables on my Chicken Sensation were fresh and delish! I've spent the evening relaxing and emailing while watching 28 Dresses and, now, the first Star Trek movie. It's airing on RTL7 (meer voor mannen). Even their Captain Morgan commercials are better than ours!

There's just one thing I need in this world: French vanilla coffee creamer. Everyone here laughs at me, even at the grocery store! Koffie met vanille?! marveled the clerk. Heaven help me, YES! All of the coffee here is unpotable? C'MON!

Anyway, now it's bedtime. I've got a big day of trainings and meetings tomorrow, and then I'm hoping to head into Den Bosch by train for dinner and to find a music store...

Tags: ,

Feb. 3rd, 2013

In Europe, day 1

I don't expect that I'll liveblog my trip to Europe, but I did have a great first day and I wanted to let everyone know that I made it safely.

My coworker and I arrived in Amsterdam at 7:30am, and we quickly got the rental car and headed to our hotel to check in and get some breakfast. We headed into Zaltbommel for lunch and ate at a place that appeared to be named, simply, "Restaurant". I had a cold-smoked salmon sandwich on pita bread that was unlike anything I'd ever had before. The pretty English-speaking waitress brought it to me while people's pet dogs wandered around the area and children played at the bar.

After a short nap I met up with my coworker at the hotel bar; he had struck up a conversation with a man who was from Dallas (small world) and happened to be born a stone's throw from the tiny West Virginian town my coworker was born in (very small world!). The man had already eaten, but he so strongly recommended a restaurant to us for dinner that he decided to lead us there in his own car despite the rain. The restaurant was named "Maxima" and was located on a street corner in Waardenburg. I had swordfish, salmon (or zalm #omgculturesnob), whole shrimp, and mussels for dinner with a side of the most delicious and least oily french fries I've had in my life.

And to the true culture snobs, my meal was not the least bit sullied by french fries. As a matter of fact I ordered a Malbec rosé instead of a white wine to go with the seafood, you haters!

I've taken some pictures, but I'm going to spend some time relaxing and getting ready for bed. I manipulated my sleep schedule to deal with the jet lag, by which I mean that I failed to sleep much the night before the trip or on the plane, so I'm well-exhausted now.

Tags: ,

Jan. 13th, 2013

I'll be in the Netherlands

Hey everybody, I'm going to be in Zaltbommel and Waardenburg, Netherlands starting February 4th for two weeks. If anyone would like to get together with me while I'm there, please let me know! I'd be delighted to meet with you, have a drink, and talk about feedparser or Python in general (or anything else for that matter)!

UPDATE: I'm going to be in Skopje, Macedonia starting February 18th for a week. I'd love to meet with anyone around that area, too!

Jan. 12th, 2013

A learning experience

While at a birthday party for a lesbian friend of mine, I was the only straight guest at the party.

Birthday girl: We're all doing jello shots!
Me: I've never done jello shots.
Birthday girl: Well you can't use your finger! You have to use your tongue to get all the jello out. It's a competition, so try to keep up.
Everyone does the jello shots
Me: How's this?
Unknown girl: Holy shit, he's like a washing machine!
Birthday girl: Seriously?! You beat out all of the lesbians?!
Me: Well sure. I just traced the letters of the alphabet.

While relating the story to another friend of mine.

Me: I felt really proud about that, like I'd achieved something.
Him: Yes, you're the King of Lesbians.

Tags: ,

Dec. 17th, 2012

Date parsing

I have lost patience with the RFC 822 date parsing in both feedparser and listparser. Back in 2009 when I started writing listparser I decided to use regular expressions to turn RFC 822 date strings into Python datetime objects. Earlier this year when I discovered that feedparser's RFC 822 parser had copied code from Python's rfc822 module I stripped it out and replaced it with the code I'd written for listparser.

Over time it's been necessary to tweak the code to support additional variations: extra commas, extra whitespace, swapped days and months, non-standard timezone modifications...so this weekend I decided to look at what the regular expression currently looks like. The result is not pretty:

(?:(?P<dayname>mon|tue|wed|thu|fri|sat|sun), )?(?P<day> *\\d{1
,2}) (?P<month>jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec
)(?:[a-z]*,?) (?P<year>(?:\\d{2})?\\d{2})(?: (?P<hour>\\d{2}):
(?P<minute>\\d{2})(?::(?P<second>\\d{2}))? (?:etc/)?(?P<tz>ut|
gmt(?:[+-]\\d{2}:\\d{2})?|[aecmp][sd]?t|[zamny]|[+-]\\d{4}))?

What's worse, to support swapped days and months it's necessary to create a second regular expression to match that, too. So I decided to rewrite the code using str.split() and a couple of dictionaries. I then ran timing tests on the whole affair, and I'm feeling pretty pleased with the results so far, as it just barely edges out the current code. I expect the new parser to land in feedparser after I integrate it into listparser.

Dec. 16th, 2012

listparser 0.17 - "Territory expansion"

I'm pleased to announce that listparser 0.17 is available for immediate download! This release features support for Python 2.4 through 3.3, Jython 2.5.2 and 2.5.3, as well as PyPy 1.8.0. The codebase runs on all of these with no modification, and should still also run on IronPython 2.6.2 (although I'm currently not able to test this).

You can download a copy from the Python Package Index, or clone the git repository at GitHub. Bug reports and pull requests are always accepted at GitHub.

listparser is a Python library that parses subscription lists (also called reading lists) and returns all of the feeds, subscription lists, and "opportunity" URLs that it finds. It supports OPML, RDF+FOAF, and the iGoogle exported settings format.

Dec. 9th, 2012

Announcing feedparser 5.1.3

Howdy everybody!

I'm pleased to announce the release of feedparser 5.1.3! This version features a number of crash fixes, minor documentation fixes, and improved date parsing and character encoding handling, You'll also find that two HTML5 element attributes are no longer stripped by the HTML sanitizer. You can grab the latest release from PyPI or from Google Code.

Additionally, feedparser is now using a git repository on Google Code, and I keep a mirror on github for those users as well.

This release contains patches and unit tests from a number of contributors, including Julian Berman, Bernd Schlapsi, Andy Wingo, as well as Google users bendriko and chungwu.

Stay tuned, because there are some great patches coming in from a number of contributors that will help form the next feature release.

Kurt

Nov. 29th, 2012

Getting back into it (part 6)

Finally! I discovered what the problem was with Ubuntu and old versions of Python (I had to create symbolic links for libz.so.1 and libreadline.so.5 from /lib/x86_64-linux-gnu to /lib). That resolved all of the problems I was experiencing with the older versions' interactive shells. I also re-created the test script that automates feedparser testing across Python 2.4 through 3.3. All that's left is to install coverage and sphinx again.

I've also made it a goal to work on bug reports almost every morning, so the issue tracker is shrinking back down. I'm abruptly back on 12 hour days at work and my weekend is in jeopardy, so I think I'll push a new release as soon as possible and then begin pulling in new features and making larger changes.

Previous 10

April 2013

S M T W T F S
 123456
78910111213
14151617181920
21222324252627
282930    

Syndicate

RSS Atom
Powered by LiveJournal.com