Although ReciPants v1.2 is still hosted on SourceForge (and Freecode), it has not been actively developed or updated since 2004. If you search for ReciPants on this blog, you will see that I’ve had some trouble migrating it between servers and keeping it working over the years. I, therefore, finally decided to migrate all of our recipes (close to 500 of them) out of this software and in to the latest stable release of MediaWiki. While I’m probably the last person on earth using this software, I thought I’d share here how I performed the export, just in case I’m not!
MediaWiki allows export and import of pages in XML format. This page on the MediaWiki site was very helpful in providing the required format of this XML file. Additionally, I installed a fresh copy of MediaWiki on my Web server, mocked up a fake recipe page similar to the format I wanted, then exported that page in order to inspect it. One of the main differences I noticed between the example from the MediaWiki site and the actual export I performed was near the <text> tag. In the example, the tag is simply <text>, but I found that my imports using this tag were not getting rendered in my wiki as wikitext. My actual exported page, however, had the following tags preceding the <text> tag and a different <text> tag itself:
That combination of tags resulted in the wikitext being rendered properly. Without them, the raw wikitext was shown in MediaWiki with no LF/CR — very un-readable!
With that information at hand, I set to work creating a script in Perl which would connect to the MySQL recipants database using DBI and extract the various data I wished to export into variables. The main outer loop iterates through the recipes table. Inside that loop, the other tables are queried for the data they hold about the current recipe. Everything is shoved into variables, arrays, or arrays of arrays along the way. At the end of the main loop, the XML for that page is generated.
You can download or view the script source code: rpexport.txt
This is a sample of the XML output, limited to just recipes with “berry” in the name: berry.xml
Let me take a moment to promote my Wife’s new food blog, Girl Meets Oven. She has spent a lot of time and effort getting this blog started, and we hope it becomes a smash hit. We’ve also joked (more seriously than joking, though) that we will need to get a treadmill and start working out more with all these yummy baked goods around.
As always, there is a full set of these photos available on my Flickr Photostream. Please take a moment after reading this post to explore them (or just jump right there). Every one of these photos was taken with a very basic setup consisting of my Canon 50D with a Bower SFD 52C flash on top, typically pointed at 60 to 90 degrees from the focal plane. All were taken with my new favorite lens for use around the house, my Sigma 50 mm f2.8 macro lens. I played with adjusting my flash exposure compensation a bit, and found that backing it off by 1/3rd to 2/3rds of a stop sometimes gave a bit better result, depending on where the flash was bouncing.
First off, we’ll start with our busy worker bee, who found herself the subject of my photo while concentrating on composing her own photo.
Next, let’s take a close up look at some of the key ingredients of the cookies she was baking. Here are some cherry and chocolate chips, mixed together in a bowl:
And another macro shot of some ground cinnamon and nutmeg (I think):
Here’s another ingredients shot. We’ve got a mix of walnuts, dried cherries and chocolate chips in a coffee mug:
And finally, a few images of the finished product:
And again, there are more photos in this set, so hop on over to my Flickr page to check them out! No, I didn’t help much with the preparation and baking of the cookies. In fact, I probably got in the way a lot. But when it came time to eat these tasty cookies, I was more than ready to offer my taste buds up for the challenge!
Just whipped this up this afternoon. I was doing some work around the house and needed a quick pick-me-up. I noticed some coffee left over from earlier this morning and took stock of our milk and sugar supply. Yup, everything I needed was ready to go!
Into my blender I dumped about 16 ounces of room temperature coffee (DO NOT use hot coffee unless you’d enjoy a trip to your local hospital’s burn unit!) and the same amount of 1% low fat milk. Then I dropped in about 2/3 cup sugar. I sealed the lid up tight and blended on low for about 45 seconds to a minute. The milk instantly frothed up and the blender almost overflowed! When I do this again, I’ll have to remember to use less coffee and milk or risk making a mess.
Once blended, I poured this into a pitcher which I placed in the fridge. I then crushed some ice into a cup and poured myself a rich, creamy iced blended coffee drink which rivals the concoction they sell at various shops around town.
Place ingredients in a large (at least 45 to 50 ounce) blender. Blend on low for about a minute until all the sugar is dissolved and the drink takes on a frothy consistency. Pour into a pitcher and refrigerate. Serve over crushed ice.
This was Lori’s first conference day, so she was not able to join me for the touristy stuff. We did get to have coffee and a pastry from a nearby Starbucks together before parting company around 7:45. I then walked up Powell Street to Geary Street to catch the 38 bus line at that corner. I hopped off at Geary St and Laguna St. I was very early, and most of the shops did not open until 11 so I had to walk around for a bit. Japantown isn’t very big so that did not eat up a lot of time, but I got some good photos of the Japantown Peace Plaza Pagoda.
Japantown Peace Plaza Pagoda
To kill some more time and re-fuel for the day, I stopped at O Izakaya Lounge for a Japanese-style breakfast bento. Grilled salmon, scrambled eggs, miso soup, rice, fruit and vegetables were all present.
Japanese breakfast at O Izakaya Lounge
By the time I finished breakfast some more shops had started opening up. Soko Hardware was my first stop. It was a regular American hardware store that also carried a lot of Japanese goods. Most of the Japanese products were downstairs, but there were some traditional Japanese woodworking tools upstairs. This place had the best pricing for iron teapots in the area.
Sanko Cooking Supplies was near Soko Hardware. They also had iron teapots, a very large selection of table service, and small appliances such as rice cookers.
I then walked through the Japan Center Mall which has the Peace Pagoda between its two buildings. Most of the shops were still closed, but there were many people hanging around the restaurants and shops which were open. There were enough open ones to keep me busy until the rest opened at 11:00. Kinokuniya Bookstore reminded me of a Barnes and Noble, but it had about 90+ percent Japanese language publications and books. That made me wish I had at least some Japanese reading ability. I also stopped in a store called Sanrio with a ton of pink Hello Kitty merchandise to snap a few pictures on my phone which I sent to Lori.
Is this much Hello Kitty in one place even legal?
The Katachi knives store had all sorts of cool Japanese swords ranging in price from $25 to $2500+. They also had knives, statues and figurines. I resisted the temptation to pick up a sword and have it shipped back home.
Asakichi Cast Iron was a tiny shop on the bridge spanning across Webster St. between mall buildings. Here I purchased a small ceramic koi figurine for Lori. They also had Samurai figurines, boxes, tea pots and other figurines all in cast iron.
I left Japantown on the same 38 bus route back to Powell and Geary Streets. From there, I hopped on one of the Powell cable cars taking it up the hill to California Street. I then walked down California turning at Stockton to head into Chinatown. I wandered around a few blocks in Chinatown for the next 45 minutes or so, then decided to grab some lunch at Mario’s Bohemian Cigar Store Cafe. I headed over to Columbus Ave, then up to Mario’s in the North Beach or little Italy area near Washington Square.
Mario’s was packed around 1 PM, but I managed to grab an outside table with one chair. As Lori had warned me, service was very slow. I had to hang out at my table for quite some time before the waitress acknowledged my presence. Once she did, however, the service was fine. I had the meatball panini sandwich (by Lori’s recommendation) with a Hop Head Red beer from Green Flash Brewing Company.
Sandwich and Beer at Mario’s Bohemian Cigar Cafe
After lunch, I walked through Washington square, then headed uphill to Coit Tower. Since Lori didn’t have much luck capturing the murals inside the tower, I attempted to do a better job with my point and shoot camera. I also paid the $5 admission to go to the top and took photos from each of the windows before heading back down into Chinatown for an afternoon snack.
A view from the top of Coit Tower,
and one of the mural panels inside at the bottom of the tower.
I wandered through Chinatown a bit more, taking some photos along the way. I then ended up at the AA Bakery where I purchased an egg custard. That I took with me to the Transamerica Pyramid where I found a quiet seat in their Redwood Park to eat it. After the custard was gone, I took a few photos in the park and of the building, then headed over to California Street to catch the cable car back up the hill.
Sculpture in Transamerica Redwood Park and the Transamerica Pyramid
I stood on the front corner of the cable car and shot a short video with my camera as it went up the hill on California Street between Kearny St and Grant Ave“. I got off again at Powell and California, then walked down Powell back toward our hotel. I stopped in at The Chieftain to have a couple of beers while waiting for Lori to finish up her conference for the day.
Video shot from the front of a San Francisco cable car
When Lori contacted me, she had made plans for us to go on a double date with one of her co-workers and her husband. We started off at The View at the top of the Marriott Marquis with drinks and appetizers watching the sun set while we talked. Next, we headed over to The Thirsty Bear for some tappas and beers. Finally, we ended the evening at Mel’s Drive-In on Mission Street for some dessert before heading back to the hotel to rest before another big day.
We got up way too early (still on Iowa time), got ready and headed over to the Lori’s Diner on Powell St. around 7:45. I ordered the Cable Car Pancakes, described as “Two Large Cakes, Two Slices of Bacon, Two Links of Sausage and Two Eggs.” Lori had the Short Stack with sliced bananas. Just the thing to fuel up before a day of riding bikes in the park!
Lori is, naturally, a big fan of “her” Diner
After breakfast, we headed to the Muni kiosk at the Powell cable car turn-around to pick up 3-day passes for $13 each. Just as we activated our passes, our bus, the #5 route, was arriving so we hopped on that. The bus wound past the Civic Center and took us to the North side of Golden Gate Park. We got off the bus at Fulton St. and 6th Ave. but were too early to pick up our rental bicycles from Golden Gate Bike and Skate so we walked along JFK to pass some time and take some photos.
Golden Gate Park, Mist in the Trees
Once 10:00 rolled around, we picked up our mountain bikes, helmets and bike lock for a total of $50 for the day. We rode around the park, sticking close to the East end at first. After tiring of that, we decided to venture further and take JFK all the way to Ocean Beach. The beach area was very foggy and the surf was up. Several brave surfers were going out in this, but you couldn’t see them at all as they disappeared beyond the breakers. Very dangerous!
Ocean Beach: Crazy or Dedicated Surfers?
After walking the beach for awhile, we headed over to Beach Chalet Brewery & Restaurant. It was packed, so we ate at the bar to avoid waiting for a table. I ordered the Dungeness Crab Louis Salad and Lori had a bowl of their Clam Chowder New England Style. I had a Dee’s Bitter Ale and Lori had a V.F.W. Light.
View from the Beach Chalet Bar
Fueled up and rested, we then rode uphill back toward the East end of the park. We stopped to take a stroll through the Japanese Tea Garden ($7 admission each), making sure to take plenty of photos to get our money’s worth.
Japanese Tea Garden in Golden Gate Park
After that we took a walk through the park between the museums. There was an art fair going on, and The Blue Angels were flying around as part of Fleet Week, so we got to see them flying overhead, too.
By that time it was about 3:30 PM and we were both getting tired. We decided to turn in our rentals and head back to our hotel, again via the #5 bus route.
Back at the hotel we freshened up a bit then headed to the deck on the 6th floor to hang out and play on our laptops a bit. Lori’s laptop ran out of battery too quickly, and it got cold up there so we did not stay very long. Back at the room we got ready for dinner at The Chieftain. I had their Fish and Chips with two Prohibition Speakeasys (a local brew). Lori had a salad with grilled shrimp and a glass of wine.
We headed back to the hotel room and crashed for the evening.
Please check back for more photos I’ll be adding to the set for this trip on my Flickr page.
Lori and I both took off the day before our flight so we could pack, prepare the house and pets, and get some rest before getting up early. Our flight was scheduled to leave Des Moines around 6:30 AM, and Lori’s father was going to pick us up around 4:30 AM so we could get t the airport early.
I packed a small suitcase with about 4-5 days worth of clothing and my Lowepro camera/laptop backpack. We were to have laundry by mid-week when we got to our rental home in Point Reyes Station, so I was able to pack lighter than usual.
I drove Ruffy to the kennel around 16:00, dropping him off around 16:30-16:45. As usual before a bit travel day, neither of us could get to sleep. I did not get to bed until around 23:45, and Lori was up much, much later trying to decide what to pack.
We arrived at the airport with plenty of time to spare before our flight, only to be met by a long line. Overhearing a few of the other passengers’ frustrated discussions, I surmised that our flight had been canceled. The line was full of other passengers waiting to get re-booked on another flight, and it only got longer as we waited for our turn at the counter.
Once we got to the ticketing counter, I could tell the poor lady working there was quite flustered after dealing with a few difficult people in the line before us. I tried to be extra patient and friendly with her to make her day a little brighter. She got us booked on a 10:30 AM flight to Denver, and re-booked our connecting flight as well. In all, we would only arrive about one hour later than our original itinerary. This worked out OK because we would still arrive prior to the hotel’s check-in time.
Luckily we brought our laptops and the MiFi. We hung out in the cafe drinking coffee and eating breakfast croissants until our flight to Denver boarded. We had a one hour layover in Denver before boarding then next flight in to SFO — just enough time for a quick restroom break and some leg stretching. Fortunately, our flights were uneventful, and we even got a little bit of light napping done in transit.
Arrival and Photos
We arrived in SFO around 13:00, picked up our bags and took the shuttle in to downtown San Francisco. Our room at the Intercontinental San Francisco was not ready so we checked in, left our luggage with the bellhop, and went for a walk to get some exercise and search for some afternoon snacks.
We walked around the Yerba Buena Gardens for a bit, taking some photos. Lori tried to capture the Blue Angels (they were flying over the city because it was Fleet Week) in this one, but they were just too fast.
I also caught Lori under the archway of the bridge over Howard street by Moscone Center.
We ended up at The Thirsty Bear for some tapas and a couple of beers. Lori had her usual, the Polar Bear Pilsner. I tried their seasonal Oktoberfest followed by a Meyer ESB. We ordered the tortilla española of the day (sun-dried tomato), gambas al ajillo (prawns, garlic, pinot gris) and empanadas (braised pork & queso fresco, roasted squash romesco & spiced pepitas). All of the dishes were excellent. Lori liked the gambas al ajillo the best, while I preferred the empanadas.
As is now our travel tradition, we snapped a photo of each other enjoying our first beverages.
Our appetites satisfied and enough time passed to have a room ready, we headed back to the hotel to rest and plan our next activity. This was the view from our room.
After considering several different dinner spots, we decided to try out Sanraku Japanese Restaurant at Metreon for some sushi. Lori had Teriyaki Salmon with a glass of white wine. I had a combo meal with 5 pieces of sashimi and the Teriyaki Beef with a cup (180 ml) of Ozeki sake. Although their Website isn’t much to brag about, the food and service were excellent. Here are a couple of photos Lori took at Sanraku. She got a kick out of the “One Cup” sake.
After dinner, we returned to the room and crashed for the evening. Since we were still on Iowa time, it was technically after midnight for us even though it was only after 10 in San Francisco.