Justin A. Parr - Technologist

Technology, Strategy, Insights, and Tech Support

  • HOME
  • Quick Facts
  • CygUlarn Win32
  • About Me

Justin’s Adventures with the Gate Controller

Posted by Justin A. Parr on June 7, 2019
Posted in: Other Stuff. 15 comments

[Updated 2022-08-03 – Master Cable Break-Out]

  • [Update to the Update, 2022-08-07 – Dead Control Board]

[Updated 2019-06-12 – Additional Pictures and To-Do]

[Original 2019-06-09]

We just completed a big move from east of Dallas to south of Fort Worth.  This is a big move for us, not just in terms of distance (about 70 miles), but in terms of house and property as well.  The old house was a 1,900 sq ft 3-bedroom on a tiny lot, around 1/4 acre, and the new house is just over 5,000 sq ft, 5 bedrooms, on about 1.5 acres.

The front fence is about 300 feet from the house, and there is a big, steel gate at the front, operated by a Mighty Mule gate opener.

The gate controller uses coded remotes that have a very short range – only about 20 feet with a clear line of sight, which is not very convenient.

Which brings us to…

Continue Reading

Using Cellular Automation to Simulate Gas Flow

Posted by Justin A. Parr on April 16, 2019
Posted in: Other Stuff. Leave a Comment

Using a highly-specialized set of rules and calculations, it’s possible to approximate the flow of gas from high-pressure to low-pressure, using cellular automation.

How to Prevent Freezer Burn

Posted by Justin A. Parr on February 28, 2019
Posted in: Food and Cooking, Other Stuff. Leave a Comment

How to Prevent Freezer Burn

 

Table of Contents

  • What is Freezer Burn?
  • Vacuum Sealing
  • How to Prevent Freezer Burn
    • The Trick to Keeping Food Forever

 

What is Freezer Burn?

Freezer burn occurs in meat and other frozen items (especially meat), where the water sublimates (goes from a solid to a gas) and then condenses as ice crystals.  This leaves the food severely dehydrated, with a stiff, stringy texture that most people consider to be quite disgusting.

Especially in a zip-top bag, once the bag is frozen, the plastic becomes stiff and unpliable.  Although the moisture content within the bag would normally be in constant equilibrium, once you start shuffling through the freezer, plastic zip-top bags can fracture and create tiny holes that allow dry air in, and moisture out.  This is also the reason why most freezer bags leak once you pull them out of the freezer.

Once the zip-top bag has a few nicks and dents, freezer burn will quickly form in the vicinity of any holes in the bag, as moisture is allowed to sublimate and simply leave the bag through the tiny holes, to form ice crystals on the inside wall of your freezer!

As the moisture leaves, the food left behind is destroyed on the cellular level, making it tough, stringy, and unpalatable.

Typically, you either need to cut off freezer-burned portions, or throw away food that has become severely freezer burned.

Freezer burn can start to form in as little as 3 months, and by 12 months, the food in question is probably ruined.

 

Vacuum Sealing

If you vacuum seal your food, this removes air, reducing air pressure and preventing sublimation.  The plastic liner used for vacuum sealing is much thicker and tougher than a freezer bag, and thus, the food will last a lot longer.

Vacuum-sealed food lasts much longer – up to 2 years.

 

How to Prevent Freezer Burn

Freezer burn forms when food is exposed to air inside the freezer, which allows the moisture in the air to sublimate and then migrate elsewhere, leaving behind stringy, nasty food.

This is one of the main reasons that the grocery store packaging for most meat products is not your friend.  It’ s better to re-package them in a zip-top or vacuum-sealed bag before freezing.

 

The Trick to Keeping Food Forever

The trick is to pack your food, especially meat, in fat or liquid before it freezes.

This eliminates contact with the air, preventing sublimation.

  1. Make sure there are no internal air pockets.  Even though the moisture level is kept in equilibrium, internal air pockets can allow food to shed moisture over time (ice crystallizes elsewhere), leaving the food with a tough texture and stale taste.
  2. Put the food in a zip-top bag.
  3. Add any of the following:
    • Water.
    • Marinade.
    • Brine.
    • Olive oil or some other fatty oil that will eventually congeal.
    • Cover in butter or some other fat
  4. Make sure the food is covered completely, and squeeze out all of the air as you seal it.
  5. Freeze.

 

Notes:

  • Cooking oil, vegetable oil, and other non-fatty oils remain liquid, even at freezer temperatures.  This means that over time, your zip-top bag can take damage, and the oil can leak out, leaving a greasy mess in your freezer.
  • If you use a brine or marinade, reduce the salt content.  Everything freezes from the outside to the inside.  As the bag of brined / marinated food freezes, the water in the brine crystallizes, forcing salt and other elements further in to the food, making the flavor much more concentrated.  What you would consider to be a “normal” amount of salt for a brine or marinade can easily result in the food being way too salty when you thaw it later.

    One trick is to simply add 50% water to a brine or marinade.
  • As meat freezes, ice crystals form inside the meat, which destroys the cellular structure.  Later, when you thaw it out and cook it, the meat can be dry and tough as a result.  If you freeze meat in a bag of oil, brine, or marinade, the larger ice crystals form at the edges of the bag, in the liquid surrounding the meat, whereas the ice crystals that form inside the meat itself are much smaller, because the meat is further from the air interface, and the rate of freezing increases over time.  This means that your meat, if frozen properly, will come out much more tender and juicy once thawed, drained, and cooked.

 

How to Save up to $5,000 per Year by Breaking a few simple habits

Posted by Justin A. Parr on February 23, 2019
Posted in: Other Stuff. Leave a Comment

There are a few simple things we all do, every day, that can be very expensive over time.

Read on…

Continue Reading

Black Friday 2018 Wall of Shame

Posted by Justin A. Parr on February 6, 2019
Posted in: Rants. Leave a Comment

Black Friday 2018 Wall of Shame

11/20/2018:  Reminder!  Black Friday starts on FRIDAY.  BOYCOTT STORES THAT DISRESPECT THE AMERICAN TRADITION OF THANKSGIVING, by having Black Friday deals that start on THANKSGIVING.

WALL OF SHAME, 2018:

  • Wal-Mart
  • Best Buy
  • Macy’s
  • Target
  • JC Penny
  • Big Lots
  • Kohl’s
  • Belk
  • Cabellas / Bass Pro
  • Dick’s Sporting Goods
  • Dollar General
  • Five Below
  • Gamestop
  • K-Mart
  • Sears
  • Michaels
  • Old Navy
  • Bealls
  • DSW
  • Fry’s Electronics
  • Lord and Taylor

There are No Tech Deals on Black Friday

Watch out for Personal Computing “Door Busters”

Instead of leaving the comfort of your home on Thanksgiving day, boycott the stores above, and hit the retailers online on Cyber-Monday.  You’ll get the same deals, or better, and you can shop from home.  Don’t be like the stores above.  Don’t use the promise of cheap crap to lure people away from their families on Thanksgiving.

Unprofessional of the Year Award for 2019 Goes to Pizza Hut

Posted by Justin A. Parr on January 6, 2019
Posted in: Good Design - Bad Design, Justinisms, Rants. 1 comment

Unprofessional of the Year Award for 2019 Goes to Pizza Hut

  • On 1/5/2019, placed an order at 8:00 PM Saturday evening
  • Delivery time 9:45 PM.   OK, they’re busy, but I’ll get my pizza eventually.
  • 9:45 comes and goes, call the store multiple times for a status, and each time, they hang up on me.
  • Pizza shows up at 11:15 PM.  I bet THAT IS SOME HIGH QUALITY EATS.  The driver offered to give it to me for free, but at this point, I don’t want whatever it is, that they managed to put in a box and send to me, so I refused the delivery.

It’s not the driver’s fault, obviously, but to show up at someone’s door an hour and a half late, and over 3 hours after I placed my order, with no call back, and no confirmation is completely unprofessional.

The driver alluded to the fact that the manager completely botched things up, but at this point, after multiple calls to the store, and multiple calls to their call center, I really don’t care.

  • The manager needs to be fired for gross incompetence.  There is no excuse for a 3 hour delay.
  • The driver apologized.  I should have told her that you SHOULD NEVER apologize for someone else’s mistake.  She should be promoted, for at least attempting to handle the situation.
  • Whoever was hanging up on customers needs to be summarily fired.

 

How to Turn a Bad Situation in to a Win:

Bad things happen.

Things can go from “OK” to underwater very quickly, but as the manager, you have to think about what outcome you want, and what swift action you must take to achieve that outcome.

  • As soon as things started getting bad, the manager should have closed the store.  This would have prevented more orders from coming in, and new orders could either be routed to another store, or the customers could simply be told that delivery service is unavailable at this time due to foreseen circumstances, rather than wasting the customers’ time.
  • Any order delayed more than 15 minutes should necessitate a call to the customer.  Most stores have 23 or fewer phone lines (the number of DS0 lines that can be carried on a T1/DS1 line), so it’s entirely possible that the phone system was overloaded…  It’s up to the manager to take action!  Use a cell phone to start calling customers and setting expectations.  Tell the customer that there are unforeseen circumstances, don’t make excuses, set expectations, and then ask what the customer wants:  Delayed delivery with a discount, or cancel the order.  Give the customer the option.  Empowering the customer, and then closely managing expectations is how to turn a losing situation in to a winning one.

 

Corporate Changes Needed

  • There was no escalation path.  Although you could call the call center, they were only empowered to take an order, and they have no ability to check the order’s status or cancel it.  After a couple of phone calls, it became very clear that the call center is only able to transfer you to the local store…. which of course, was hanging up on customers.  The call center should be 100% empowered to handle order changes, provide status, and cancel an order.  Which brings us to the next problem….
  • Complete technological failure.
    • The Android app failed.  The order was originally placed via the Android app, and the app is supposed to provide the user with a near-realtime status.  However, the developers built the status function so that it ONLY runs on the newest versions of Android – I have 6.0, and the app simply tells me that my OS is out of date.  There is no update for my device, for a newer OS, so the message you’re sending is that, to be a Pizza Hut customer, I have to go out and buy a new phone every year.
    • The website failed.  After an order is placed, there is no way to get a status or contact the store via the website.  In the age of online, you have to call the store, on the phone to get a status.
    • The store’s point of sale / order entry system doesn’t seem to integrate with the rest of their technology.  How is it that, if by miracle I happen to be running the ordained version of Android, I can get a near-realtime status from the store, but neither the website, nor the call center can?  The answer from the website, the call center, and the application was: “Call the store for a status.”  Which would be OK, if the phones weren’t jammed.  Wouldn’t it be nice for the manager to be able to post a status, so that everyone sees it instantly:  “Due to unforseen circumstances, we are running behind.  We are not accepting new orders at this time, and if your order is delayed more than 15 minutes, we will be contacting you.”   BOOM, everyone is in sync.

 

Customer Perspective

Aside from being frustrated, I just wanted to get the food that I ordered.

After waiting 3 hours, which was an hour and a half PAST the delivery time, I had no idea if it was still on the way or if the order was cancelled, or if the store was on fire.

This is the point where some kind of escalation should have occurred, but there was no one to whom I could escalate.

After being hung up on, multiple times, and being told that the ONLY way to cancel my order is to call the store (and be hung up on), is extremely frustrating.  There is no valid situation, save for life-and-death, that it’s acceptable to hang up on a customer.

I turned off my lights, locked my door, and the delivery driver STILL knocked on my door, over an hour later!  How about a phone call?

The offer of getting the pizza for free was the right thing to do, but if things are going so poorly that you’re OVER AN HOUR AND A HALF LATE, how do I even know what’s in that box?  I don’t want some half-cooked crap with the wrong toppings.

At this point, as a customer, this seems like a breach of trust.

From my perspective, I can’t trust your service, which means that I also can’t trust your product.

All it would have taken is someone in authority who was empowered to fix the problem, to change that perception.

Kudos to the driver, who at least tried to take care of the situation, but it’s the manager who miserably failed, and with a fairly severe technology deficit, there was no way that anyone could help me, except the manager, who was too busy hanging up on people.

 

Dear Pizza Hut:

I’m happy to have you hire me to fix these problems for you.  I have a long track record of taking a complete train wreck like yours, and building a success story.

Short of that, I will no longer be a Pizza Hut customer.

 

 

Update – 2/6/2019

  • The next day, the credit card charge still indicated ‘pending’, so my wife called the store to discuss the matter with the day manager.  She explained that the delivery was refused, and was told “That sounds like a ‘YOU’ problem”, and the day manager hung up on her.
  • We both submitted corporate complaints, which were simply referred back to local store (GALLOWAY AVE., MESQUITE, TX), and then summarily ignored.
  • Fortunately, we disputed the charge with the credit card company, and got the charges reversed.  My next stop would have been the BBB.
  • It has been 30 days, and no one has responded to our complaints.  This is an unacceptable way to treat customers, and a horrible way to do business.

 

Update – 4/16/2019

  • I contacted the store on or about 4/13, just to see if they would be willing to discuss the matter.
  • When I asked to speak to the manager, I was told I WAS SPEAKING to the manager (this was an obvious lie), and this so-called manager apologized profusely.  He assured me that the entire previous management staff had been fired, and that there was all new management in place.
  • When I asked for the district manager’s contact information, the so-called manager told me he couldn’t give that information out.  I said, if he’s doing business, then surely he has a business contact.
  • He hung up on me
  • NO.  In reality, this was just another sh##bag employee, willing to lie to a customer.
  • ONLY AFTER I filed a complaint with the BBB (see below) did I get a half-hearted sorta kinda apology.
  • Now, I’m starting to think that the problem is with Pizza Hut Executive Management, and that the problem is systemic.

Dear Pizza Hut:

WHEN IS IT OK TO LIE TO YOUR CUSTOMERS?

WHEN IS IT OK TO ISSUE A HALF-HEARTED APOLOGY ONLY AFTER I INITIATE A COMPLAINT WITH THE BBB???

I can fix this for you…. you need to hire me in an executive position, so that I can fire everyone in customer service, and everyone in technology, and rebuild both departments.

Oh, and ONE MORE THING.  Let’s look at the tail end of that e-mail…

Disclaimer: This message (including any attachments) contains confidential information intended for a specific individual
and purpose, and is protected by law. If you are not the intended recipient, you should delete this message. Any disclosure,
copying, or distribution of this message, or taking any action based on it is strictly prohibited.

This is tacked on for the sole purpose of allowing Pizza Hut to bully me in to taking down any copy of this e-mail I may choose to post.

Well…. LET ME EDUCATE YOU.

  1. This entire communication is covered under the Fair Use Act, and I’m publishing it, accordingly
  2. I don’t use Facebook or Google for my blog.  Go ahead.  Threaten people.  There are no robots out there to help you silence me.
  3. If you issue a cease and desist, I will be obliged to post it here.  TRY ME.

 

 

 

It’s Sad When You Have to Show MacGyver How to Disarm a Bomb

Posted by Justin A. Parr on December 5, 2018
Posted in: The Light Side. Leave a Comment

It’s Sad When You Have to Show MacGyver How to Disarm a Bomb

As I’ve previously written, I had high hopes for the 2016 MacGyver reboot.

Unfortunately, where the original show was clever and somewhat educational, the new show simply condenses most of the “MacGyverisms” in to MacGuffinisms, omitting the science, process, and sometimes, even the basic concepts involved.

I’ve been meaning to write an analysis of how poorly the show depicts science and technology, especially computers and computing, and about how half of the crap he builds, simply wouldn’t work.

However, when I watched S3:E9 “Specimen 234 + PAPR + Outbreak”, I saw something so egregious that I couldn’t let it pass without comment.

Having written about bomb myths and cliches, it was difficult to see past the flaws in the opening scene of this episode.

Setup:  Mac and Jack are in a steel cage, locked with a lever padlock, to which THIS abomination was affixed (no pun intended):

Mac makes the statement that it would be too difficult to pick the lock without triggering the bomb.

 

Let’s Take a Closer Look

  • First impression:  Except for the fake “logic board”, which really appears to be some sort of analog IO controller, the bomb appears to be extremely low-tech.  There are no (visible) motion triggers, no collapsing circuits, and no false leads.  You could probably remove the “logic board” and simply direct-wire all of the other components.  You might need a relay if the trigger circuit is normally-closed, and you might need a capacitor to boost the detonating current.  With no visible antenna wire, and knowing that the steel cage probably interferes with a radio signal, there is probably no remote trigger.
  • The MacGuffin board is obviously fake.  Aside from the fact that there are data connectors in the lower-left and upper-right edges, the traces on the board itself are too small and fragile to carry a current that would be capable of detonating the blasting cap.  Instead, the traces on the board would simply vaporize when triggered.  Further, there appear to be two logic chips, one of which appears to be an ASIC.  I mean… is this a PROGRAMMABLE BOMB???  Does it run “BOMB Operating System”, and at some point, you plan to upgrade to “BOMBOS 2.0”?
  • The so-called trigger is a lever padlock.  Ostensibly, if you attempt to manipulate the internal locking system, you either interrupt a circuit, or close one, triggering the bomb. 

    However, lever padlocks are all-metal, and to be clear, the lever-locking mechanism is also metal.  So maybe the circuit is normally-open, and perhaps there is a small bit of plastic that will fall out if you fiddle with the lock, allowing a circuit to complete.  This is unlikely, as the placement would be tricky, and most likely, the trigger wire would ground out against the lock’s metal body or lever regardless.  Moreover, if the circuit is normally-open, you could simply delete the trigger by cutting one of the trigger wires.

    Maybe the circuit is normally-closed, and fiddling with the lock will cause the trigger wire to disconnect from the lock’s body, triggering the explosion.  Again, this would be tough to do without blowing yourself up by just setting the trigger in place.

    In either case, how is their captor supposed to unlock the cage??  Perhaps he disables the bomb, removes the trigger wires, and THEN unlocks the padlock.  All of this is too unnecessarily complicated and unreliable.  A better approach would be to use a motion trigger, and perhaps a simple, normally-closed loop of wire around the door and frame of the cage, that acts as a secondary trigger if broken while attempting to open the cage door.
  • The detonator appears to be a blasting cap, embedded in what appears to be a block of soap.  Although the blasting cap appears to be real enough, the “explosive” looks strangely translucent-green.  My wife says it looks like gel soap wrapped in cellophane, and she’s probably right.  Although they obviously can’t and shouldn’t use real explosive, a little effort to make it look realistic would have been appreciated.
  • The power source appears to be a “AA” battery.  If so, it would have insufficient voltage to drive the “logic board”, and insufficient power (current) to detonate the blasting cap. 

    Maybe the battery is supposed to be a lithium battery, like the type used in photography flash bulbs, or a rechargeable such as the 18650.  Both of these can deliver higher voltages and / or higher current over a short duration, which would definitely be sufficient to detonate the blasting cap, but would probably fry the logic board.

 

 

Disarming

Since MacGyver can’t seem to figure this out, I’ll give him some help.

Here are several ways that he could disarm this device (in order of difficulty):

  • Pull out the blasting cap.  Because it’s coiled, there is a nice, long lead wire, which would allow you to position the cap far enough from the explosive, that it wouldn’t respond to the cap detonating.

    Better yet, put the cap inside the keyhole of the lock, along with a small blob of explosive, and yank the trigger wire in order to blow the lock apart.
  • Cut the blasting cap’s wires.  One at a time.  Cutting both simultaneously might allow one of the leads to short to ground, which could detonate the cap.
  • Cut the leads from the power source.  Cut the negative first, then the positive.  This prevents the battery from creating a current surge across the negative terminal, if the positive lead is cut first.  Although most devices are switched from the positive lead, if the positive lead is cut first, it leaves the negative lead and the circuit ground in contact with each other.
  • Short the trigger wires across the terminals.  This assumes that the circuit is normally-closed, and that there is some voltage flowing through the trigger wire at all times.

    Conversely, if the trigger is normally-open, simply cut the trigger wires (one at a time, of course).

Not that he couldn’t easily pick a lever lock in short-order using found tools, but…

Once the bomb is disarmed, the blasting cap could be used to blow up the lock.

Or, they could burn some of the explosive to melt the chain in order to get free, and then rig the rest of the bomb with a tripwire, set to actuate when their captor returns.

Generating Mazes Using Cellular Automata

Posted by Justin A. Parr on November 23, 2018
Posted in: Math and Science. 1 comment

 

 

Download the PDF:
Creating Mazes Using Cellular Automata_v2.pdf

 

Download the Windows EXE:
mazegen_v6.exe

  • Win32, should run on all versions of Windows
  • Output a BMP or text file
  • Interactive menu

 

Making Windows Updates Inspirational Again

Posted by Justin A. Parr on October 17, 2018
Posted in: The Light Side. Leave a Comment

My new favorite thing is to play the song, “You’re the Best” from”Karate Kid” while Windows Updates are running.

Let’s make Windows Updates inspirational again!

Road Trip With Android and Google, 2018

Posted by Justin A. Parr on October 14, 2018
Posted in: Good Design - Bad Design. Leave a Comment

Using Android and Google Maps as a trip planner for an 1,100-mile (2,200 round-trip) road trip left a bit to be desired.

Read on, to find out why…

Continue Reading

Posts navigation

← Older Entries
Newer Entries →
  • Search!

  • Temperature at Casa de Parr

  • Recent Posts

    • Javascript Text-tris
    • R.I.P Charlie Kirk
    • Bad Design – Dell Latitude 7450 Laptop…Thing
    • Security Cameras – A Double-Edged Sword
    • Top Reasons Why Vegas Sucks Now (2024 Visit)
    • Excel – Number of Sundays – A better Answer
    • Cache Busting using Javascript
    • Javascript Calculator
    • Gatetrilogy Saga: The Front Gate Part III, The Final Gate Opener
    • The Dangers of Old Code – A Cautionary Tale
  • Topics

    • Analyses and Responses (27)
    • Good Design – Bad Design (35)
    • IT Management (1)
    • Justinisms (8)
    • Main Page (1)
    • Math and Science (31)
      • Computer Science (1)
    • Other Stuff (40)
    • Quick Facts (7)
    • Rants (18)
    • Tech Support (61)
      • Food and Cooking (10)
      • Tech Recommendations (12)
      • Tech Tip (7)
      • Wordpress Stuff (3)
      • Zen Cart Stuff (1)
    • The Light Side (37)
  • Links

    Log in or Register to post comments

    RSS Feed
    https://justinparrtech.com/JustinParr-Tech/feed

    View my LinkedIn Profile
    http://www.linkedin.com/in/justinparr

    About Me
    Justin A. Parr

    Who is Jill Parr
    Find out here.

  • Older Posts

    • September 2025 (2)
    • August 2025 (1)
    • July 2025 (1)
    • June 2025 (1)
    • February 2025 (1)
    • August 2024 (1)
    • May 2023 (1)
    • April 2023 (3)
    • January 2023 (1)
    • December 2022 (2)
    • November 2022 (2)
    • September 2022 (1)
    • August 2022 (3)
    • June 2022 (2)
    • March 2022 (1)
    • January 2022 (2)
    • December 2021 (1)
    • July 2021 (1)
    • May 2021 (1)
    • March 2021 (1)
    • February 2021 (2)
    • November 2020 (4)
    • October 2020 (1)
    • September 2020 (1)
    • August 2020 (1)
    • July 2020 (1)
    • June 2020 (1)
    • May 2020 (2)
    • April 2020 (1)
    • March 2020 (8)
    • February 2020 (2)
    • January 2020 (1)
    • November 2019 (2)
    • August 2019 (3)
    • July 2019 (1)
    • June 2019 (1)
    • April 2019 (1)
    • February 2019 (3)
    • January 2019 (1)
    • December 2018 (1)
    • November 2018 (1)
    • October 2018 (2)
    • September 2018 (1)
    • August 2018 (2)
    • July 2018 (1)
    • June 2018 (1)
    • April 2018 (1)
    • February 2018 (2)
    • January 2018 (2)
    • December 2017 (1)
    • November 2017 (2)
    • August 2017 (2)
    • July 2017 (1)
    • March 2017 (1)
    • February 2017 (2)
    • January 2017 (1)
    • December 2016 (5)
    • November 2016 (3)
    • September 2016 (5)
    • August 2016 (2)
    • April 2016 (1)
    • March 2016 (3)
    • February 2016 (2)
    • January 2016 (7)
    • December 2015 (3)
    • November 2015 (1)
    • October 2015 (3)
    • August 2015 (5)
    • July 2015 (3)
    • June 2015 (2)
    • May 2015 (4)
    • April 2015 (4)
    • March 2015 (3)
    • February 2015 (4)
    • January 2015 (8)
    • December 2014 (8)
    • September 2014 (1)
    • August 2014 (1)
    • July 2014 (2)
    • June 2014 (4)
    • May 2014 (1)
    • April 2014 (2)
    • March 2014 (3)
    • February 2014 (5)
    • January 2014 (1)
    • December 2013 (2)
    • October 2013 (2)
    • July 2013 (3)
    • April 2013 (1)
    • October 2010 (1)
    • August 2010 (1)
    • July 2009 (1)
    • April 2009 (1)
    • November 2008 (1)
    • October 2008 (1)
    • September 2008 (1)
    • May 2008 (1)
    • March 2008 (1)
    • January 2008 (1)
    • June 2005 (1)
    • May 2005 (4)
Proudly powered by WordPress Theme: Parament by Automattic.