Wednesday, January 31, 2007

Geek Your Resume

http://www.eclectictech.net/wiki/Learn/GeekYourResume

Why didn't I put this in my blog? I have no idea.

I wrote an awesome article for geeks (and anyone) on the steps & styles needed to build a proper resume. Back in May of '06. I guess I was explaining the process to someone and went whole-hog and created an article on my website for it, and I forgot to mention it in my blog for all of Technocrati to see.

With so much competition, your resume is the first thing people are going to see. You want to stand at least head, if not head & shoulders, above your fellow jobseekers. I spent time as a tech recruiter, and I say that probably 50% or more of the geeky job-seeking force needs a serious Resume 101 class. Since you're not likely to stop playing World of Warcraft long enough to take a class, but still need a job to pay the monthly fees (not to mention electricity and ISP), I'm going to give you a little boot camp (or a boot somewhere else) so you can get up-to-date.

I've included Word and Open Office resume templates with my Geek Your Resume article. With style sheets. I expect you all to get off your collective buttocks and look for work. Now.

Good luck out there, soldiers! Make me proud!

[tags]resume,job hunting, employment,humor,information,employee,essay,how to,geek,programming,tutorial,rant,competition[/tags]

Thursday, January 25, 2007

E.T. Client & Portfolio update

Preamble: I have decided I don't like Gallery2 as my portfolio application. I'm going to be working on moving back to PmWiki for my portfolio in the future -- so my latest work is not in my portfolio.

I re-created the Business Exchange Network's website in December, 2006. The old site may still be available. This is a template rather than custom design, however I custom programmed several features for the site, then donated the instructions on how to do it for other sites back at the application project site. This site incorporates a calendar, member business directory, and each member has a profile page that acts as a mini-website for them. Since a few people in the group don't have websites, this gives them a real place on the web to call home until they decide whether they want a website.

I helped out at KwicTax, LLC - programming a form on the site, adding required fields, and generally making the form and subsequent information revealed after filling out the form behave properly.

An ongoing client is up to her usual beautiful designs - Apryl of Silverflux Design has been outsourcing programming and general geekery and software installations to Eclectic Tech. This week we finished working on the Serendipity bead store website in Canada. My handiwork is the calendar and newsletter subscription integration.

In-progress Sites



Almost completed: Beth Ward of Jaidens Jewels has requested a website redesign and shopping cart. This work is in progress and if you'd like to see it before it's finished, feel free to email me.

Almost completed: Chris Zino of Zino Technical Services in Bayville, NY has requested a website design and wiki application -- he's absolutely thrilled to be using a wiki and is already creating pages on the site, and I haven't even gotten around to training him yet! :) At the time of the writing, we're still hashing out the logo for his business, and once the logo is decided we may well be changing the colors on the site, but the site is up, works, he's in business, and his contact info is there if anyone needs home audio installations, networking installation or repair, computer service, or a dozen other techie services on Long Island (Nassau & Suffolk Counties), he's your guy!

New Client: I'm under contract for the redesign and reworking of Orange Environment's website. I've started working, but there's nothing to show yet. Orange Environment is a non-profit that has been working to save the open spaces of Orange County, NY for 25 years. This is their 25th Anniversary website overhaul, and this year they'll be holding an Earth Day celebration on April 21st. Location(s) TBA. If you see my company name at the bottom of the site, then I've made progress enough to go live on my work. Until then, if you want to see the development site-in-progress, feel free to email me.

New Client: My newest client is Middletown Community Health Center (MCHC) who has requested a modernization and more features for their website. Again, if my company name is not at the bottom of the page, you're looking at their old site. Ask me for a URL for their development site-in-progress. As of the time of writing, I haven't gotten that far yet :) but work should begin shortly.

[tags]clients,activism,design,e-commerce,environment,green,holistic,identity,logo,metasite,new client,new site,non-profit,portfolio,programming[/tags]

Don't say I didn't warn you

Attention to all customers:

June of last year I raised my hourly fees. This year, I'm going to change my package prices. I've priced some exceptionally attractive packages, but I'm losing time and money on the deals.

I'm going to phase in new prices incrementally over the next several months.

Starting February 1st, I'm going to raise all the package prices on the website and any new work proposals that go out will be at the new prices -- and that raise in prices will be about 10% per month until approximately November. Proposals always go out with an acceptance clause ("prices are good if you respond within X days"), and starting February 1st, work proposal acceptance clauses will be strictly adhered to. If you call the next month, after your offer has expired, the price will go up.

I will extend a courtesy for proposals that expired in January: Any proposal that expires in January can be locked in at the old rate if you sign a project agreement and submit a deposit before February 15th. Proposals that expired before January need to be re-estimated. Deadlines will also need to be changed, and it will be reflected in your work proposal.

Any customers whose proposals expired before January should request a new proposal for their work. It will give my new proposal system a good test and keep me busy.

Money Saving Tips:

  1. If your proposal or project agreement expired before January, request a new proposal or agreement and accept by February 15th or the expiration date, whichever is later.

  2. If your proposal or project agreement expires in January, sign a project agreement by February 15th.

  3. If you miss the boat, you'll pay more.

Thursday, December 21, 2006

Too late for THIS holiday season - Shop Local Online

Last month, at the Orange County Professional Women's Network, we did an exercise about holiday stress, and how to relieve it. Many people's answer to mall traffic and stress was "shopping online".

I have a better idea: Shop Local Online.

I saw a Times Herald-Record article today about shopping local. I couldn't agree more.

I have to remember to toss my e-commerce sites on sale around July-August next year, to have them ready by October-November. I might only be able to serve the first 20 or so clients, put up bare-bones undesigned sites, or I may have to hire a helper or three, but my goal, as always, is keeping the local economy thriving. I'll come up with great ideas for increasing the economy locally, but everyone has to help me out.

If we can spend the next year in a concerted effort to get local businesses online, and find unique ways to deal with the crunch shopping period that seems to now start from Halloween preparations through January, we can pull some of that economy back into the region.

Anyone with more great ideas for how to help out the local economy, let me know. Meanwhile I have more and more ideas to unleash slowly over the next year or two.

Here are some great ideas: 1) Mention to local businesses when you would have chosen them to purchase from but you didn't have the time or patience to do anything but online shopping. 2) Sponsor a local business's e-commerce site! I can put a banner ad on the e-commerce site that points to your business' site, you help the business pay for the site set-up and installation. A custom designed e-commerce site goes for $1000 and has space for 4-6 banner ads -- think of that; an e-commerce site with up to 6 $100 ad spaces with ads running for a year can slice the price down to less than half! [Ed - this price is going to be going up over the year!] 3) Mention Eclectic Tech and my Shop Local Spree that will be starting next summer -- I can start taking names on a waiting list for businesses that would get in on my sale before the sale begins! Heck, maybe I'll have 20-30 sites lined up before the summer vacation! When I officially announce the waiting list, I'll figure out how much the sale will be for ($100 off? maybe more! I only hesitate because e-commerce sites are really cumbersome projects that suck up a LOT of my time) [Ed - as of Feb 1st the plan is for $200 off on the base site, and more than half off non-product pages in July & August - with a complimentary sale for Easy-To-Edit sites with PayPal Buy Now buttons], and whether I require a small deposit to be on the list (like $50 non-refundable deposit?).

Ideally more than just gift-selling retails will want to get in on it, from a "Buy Now" button for a gift certificate on a normal site, through pizzerias and delis with website-to-fax order placing for deliveries. We just have to get creative. Give me ideas I can run with.

Criss

[tags]e-commerce,economy,money,prices,sale,web applications[/tags]

Sunday, November 26, 2006

Open Source Programmer's Insurance

Slashdot rejected my question submission, so I'll write about it in my blog and see if anyone is interested in answering it.

I have insurance, but I want exactly the RIGHT insurance. My insurance agent says that what I have may very well cover what I do, but is hunting high and low for insurance that will explicitly rather than implicitly cover both the design AND the programming portions of my business without making me broke. All she's finding are either policies with specific exclusions for web programming, or policies that are exceptionally expensive.

The problem is that every programmer is being lumped together. That means that programmers working on the stock exchange big bucks applications with billions of dollars in transactions a day at risk are being lumped in with smalltime web programming outfits like mine. I'm a programmer on the PmWiki project, and I create custom plug-ins for PmWiki for clients before contributing what I can back to the project, or accept bounties for plug-ins made directly available to the general public. I've also made alterations to other plug-ins for other open-source projects, and I'm creating an open source project or three of my own.

Now, I am not belittling the risks to my customers. I know that their business is everything to them, and that's why I'm looking for insurance. But I don't play with the big boys and my customers are not forking over the big bucks to cover the overhead I would have to pass along to my customers to cover the big insurance policies.

If I'm installing ZenCart, and ZenCart has a bug, am I covered? I never touched the back-end of the program, but of course every application -- open source or otherwise -- has inherent bugs and risks. I trust open source because the bugs are squished in a timely manner and I don't have to pay for upgrades. Would all those policies with programming exclusions cover this?

When a policy excludes programming, I see there being a really fuzzy line between "web design" and "web programming". Certainly there's a point at which something is very clearly web programming, but is it programming if I create a script that processes a webform to email the results to my client? Is it programming if I'm creating JavaScript DHTML DOM alterations? What about when I'm working on a design for a Smarty template? There's pseudocode and even PHP code in there, but it's all about the design.

In any case, what I want to know from my fellow collaborators in the world is:

What, if anything, do you do about insurance for your web application or programming company?

Do you have any suggestions for underwriters for open source programmers?

If you aren't insured, have you even considered being insured?

[tags]insurance,programming,open source,custom programming,web application programming,expenses,design,legal,money,slashdot[/tags]

Friday, November 24, 2006

milk and honey recipe

Today my son asked me about whether he could mix milk and honey. I hear about the land of milk and honey, there are dozens of blogs named milk and honey about cooking, cookbooks called milk and honey, a honey cookbook that I have on my shelf, and a medieval recipe book. None of them have a single milk and honey recipe -- unless you're looking for soap or enemas.

So I put myself to the task. Here's the recipe:

4c milk (skim, part-skim or whole)
1/4 cup honey


heat milk over medium heat (I used skim)
slowly add honey while stirring until dissolved
(coat measuring cup with a little milk to help the honey pour, or rinse with warmed milk to get out the remainder of honey.)
remove from heat before it boils (I removed it before it even scalded)

Makes 8 half-cup servings -- note that it's like candy. A full 8oz cup would probably be a lot.


This is VERY SWEET but it's also REALLY good. If you don't like things candy-sweet try less honey or add an extra cup of milk. Organic milk and raw fresh honey would probably be great -- I'd just remove it from the heat ASAP to keep the honey and milk from losing too much of their vital nutrients to the heat. Adding honey to cold milk doesn't do the same thing at all; the honey pools on the bottom of the cup.

I'm drinking it hot, and I'm chilling the rest to try it cold. My son is very happy with it. It feels like it would soothe a very sore throat.

May make a good substitute for eggnog for people who don't like the idea of drinking eggs :) I didn't try adding any spices to it, and I'm sure that using whole milk would make it thicker and of course more fattening (thus probably tasting even better). If I try adding spices I'll add them to the comments.

Note that milk and honey baths are used to prepare livestock for county fairs and shows. LOL

[tags]recipe,milk,honey,family,candy[/tags]

Monday, October 16, 2006

Why I Won't Build Your "MySpace Killer"

Often the topic of starting a "great" web business comes up, and in my age and wisdom (being both old to be a freelance web programmer, and one of a minority of women in the field) -- there's two ways to go: thinking "in" the box = come up with new brilliant technology, patent it and hire people to program it better and faster than anyone else can so you can quickly market it. If it climbs to the top before it is cloned you become the next target for people trying to out-do your website. This track is getting VERY old, VERY fast. Mainly you and your absolute best friend need to be programmers to do this (think Microsoft, Google...) because you can't trust anyone with your terrific idea. Also it has to be so ground-breaking that only the best (read: smartest, wise, long-range thinking) of venture capitalists will see the end of the rainbow where the pot of gold sits. If it is easy to get the funding for your idea, someone probably is making it already.

Thinking "out" of the box = coming up with a way to use normal everyday technology to do something that fills -- rather than creates -- a real need or niche. It's cheaper, faster, and if it really IS filling a need, it's going to spread by word-of-mouth, and it won't be "just a fad". This technique aims lower and comes in under the radar -- no billion dollar baby here -- but it's safer, less stressful, and you don't have to be a programmer, generally speaking. The programmer is unlikely to run off with your baby if it doesn't look like a "google killer".

The problem is that great ideas are easy -- the means to really make them work is the harder part (invention = 1% inspiration, 99% perspiration). I'm frustrated with people who want to "share" the rewards of their great web program idea (equity sharing) of up to 50%, but won't be doing any of the actual work to make it hang together and be practical. If someone comes to me with a truly great idea (and I have NDA's if they don't), I can find them a great programming team, but the team will probably want cash on delivery, not equity. More "google killers" die every day than make it. They're not original ideas, and if a site dies before it makes money, there's no equity and it's a huge waste of the programmer's time.

Imagine that someone turned to you and said, "I have a great idea for a newspaper! I'll give you the ideas, you develop the newspaper and run it, staff it, write for it, etc. I'll give you 50%." That approach frustrates me. People don't get it. I can translate it to dozens of other fields -- "I have a great plan for a house, you just have to build it. Then you can live on the top floor, and I'll live downstairs. Ok?"

Somewhere in there people are cheapening the act of programming. After all, it's just bits and bytes, right???

The Internet mimics life in a "survival of the fittest" way. I don't pretend to know what's "cool" or "hot" anymore -- I work with "useful" :) I won't get rich but that wasn't in my personal game plan. I have my own great or good ideas, some might make me money, some won't but will look really good on my resume.

Then there's the flip side of this: If you're not the head of the programming team and you've paid someone to build the google killer -- what if it works? Now you have to program new features, fix bugs, etc. You either need to re-hire the same team, or get a programming staff. You go on Craigslist and choose the person who claims somehow to be able to fulfill your great Internet dream, but if you have this beautiful web baby together, are you really ready for that long-term commitment with a total dweeb with no business sense?

I can't wait to be so busy with people I've looked in the eye and shaken the hands of that I can't afford to even GLANCE at another Craigslist ad. I love my clients dearly, but you don't know how rare it was that the people I dealt with BECAME clients at all. I certainly wouldn't want to become business partners with some guy with the "next killer app" idea and had to actually look on Craigslist for a programmer. So wait -- your only experience is the front end of websites as a user, and you think you can somehow manage a killer web application programming team? That's an incredibly poor business move and you'll get laughed out of the bank. And you want the programmer to work for nothing but equity? That's spec work.

That brings me to another thing: Have you ever had one of those managers who knows absolutely nothing about what you do? It happens in IT all the time, but much less so in other professions. BUT if you've ever heard a nurse bitch that someone "stepped in" as the head of the nursing staff from a business-only background, you might get the idea. In most large corps -- and this is a place where Microsoft does NOT get bad rankings -- the heads of the corporation have NO IDEA how to produce their main products...much less have a clue what their IT department does sitting at their computers all day.

It's never a good idea to manage something you don't understand. Ever.

On that note, are you interested in a basic web programming class? :)

Monday, October 9, 2006

Classes in PHP (object oriented programming)

From a post to a user/developer list I'm on. Since I've never seen a great explanation of ANY object oriented programming, I figured I'd give a brief go at it.

Classes are a code structure from the object-oriented-programming side of PHP. A class is beyond a function. The class definition creates an ideal "object" (rather than an actual object, that comes later), and assigns it properties (variables) and methods (functions). Think of "object" in this case as a function on steroids.

Here's the basic class syntax for how I would deal with shoelaces (I'm using comments for a real life physical action that I don't feel like emulating in real code) -- but note that an "object" isn't usually a physical object -- it could be an email, data, graphics, form buttons, or something even more abstract.

class Shoelaces {
var $tied = false;
// maybe we should double-knot them?
var $double = false;

function tie_shoelaces () {
if ($this->tied) { return; }
// instruction to grab shoelaces here
$this->pull_tight();
$this->overhand_knot();
$this->pull_tight();
$this->make_loop("right");
$this->make_loop("left");
$this->overhand_knot();
$this->pull_tight();
if($this->double) {
$this->overhand_knot();
$this->pull_tight();
}
}

function pull_tight() {
// yank whatever is in your hands
// in opposite directions
}
function overhand_knot() {
// loop item in right hand around item
// in left hand one complete rotation
// hold item in right hand again
}
function make_loop($side) {
// creates a loop from the left
// or right side of the lace
}
}


Here's how you use the class within the program flow (this code would be in the master body of your program -- or in another function
or class):

// create an object instance -- this is a specific local
// copy of the class for this specific instance/call.
$bootlaces = new Shoelaces;
// set the properties
$bootlaces->tied = false;
$bootlaces->double = true;
// tie the shoelaces (call the method i.e. execute the function)
$bootlaces->tie_shoelaces();

Now you should have a doubleknotted shoelace on your boots. This code can easily be reused for $sneakers also. Or even hacked for tying laces on other objects.

Now, the parts people have the hardest time wrapping their brain around:

  • Calling it "object" "method" "instance" etc. -- It's a prepackaged set of code (class), functions (methods) and one particular time you call the code (instance -- such as $bootlaces or $sneakers). Call them what you want to but remember the standard synonyms so you aren't confused when you read about them.

  • The term "$this" inside the class definition -- $this is "$this object" or a place holder for the namespace INSIDE the object. I guess that once you call an instance, PHP translates $this to $bootlaces or $sneakers -- it's a generic "variable" that points back to the parent object and allows you to keep your scope within the object clear.

  • Translating this idea to actual code since I wimped out for understanding by using a physical not computing activity, so see a practical real-world paradigm for a class below.



There is no place to run code in the object without defining a function/method. It's confusing to call it an object method when obviously you're even using the syntax "function" :P

I didn't use it above, but there's also something called a "constructor method" and in PHP5 there's a destructor method. All this means is "automatically run this function when I create the class instance" or a destructor is something auto-run when you destroy the object instance (not sure how, I don't do PHP5 yet -- maybe unset()?)

Syntax for a constructor in PHP4 is to name the constructor function the same name as the class name -- inside the class definition.

	function Shoelaces() {}



I know this is probably confusing, so feel free to ask questions. Note however that this completely protects the code and variables of the class from colliding with the names of other items in the program. The only name of concern is the class itself. Other people can use your class pretty easily -- it makes a very portable chunk of code. There's more to it, but this is enough to actually get you using this idea if you decide it would make code more efficient.

A real example would be creating an "Email" class where you can set up emails to be sent.

class Email {
var $to = "";
var $from = "myname@example.com";
var $subject = "";
var $body = "";

function Set_Params ($to, $subject, $body, $from=$this->from) {
//assign to class values
$this->to = $to;
//etc. ...
}

// a couple internal functions not used outside the
function validate_email () {
//validation in here
}
function make_headers () {
//create headers including From - output to class variable
$this->headers = $headers;
}



function SendEmail() {
// validate TO & FROM email addresses
$this->validate_email($this->to);
$this->validate_email($this->from);
// create headers
$this->make_headers();
// send the email (should add custom From header too)
mail($this->to, $this->subject, $this->body, $this->headers);
}
}


$email4Larry = new Email;
// set the properties
$email4Larry->Set_Params(
"larry@example.com", "Hi, Larry", $body);
$email4Larry->SendEmail();


More some other time if anyone's interested.

Friday, September 22, 2006

Shopping Cart Showdown

Here's the deal.

I need a shopping cart for a client. I have basic functionality the shopping cart MUST have. Not necessarily because the client demanded them but because I'm forming a hairbrained notion that these are some type of milestone or rite of passage for shopping carts.

1) coupons & discounts -- there's nothing like putting a coupon with your ad or on an invoice. Even better, giving out coupon codes in your newsletters. Make sure they're paying attention! Many carts don't seem to have this. The granddaddy of shopping carts in the open-source world requires being broken TWICE to have coupons ("easy discounts" and "easy coupons" must be added to oscommerce aka OSC to get coupons). Bonus points for coupon support out-of-the-box.

QuickCart & Viart Free have coupons out-of-the-box according to shopping-cart-reviews.com.

2) a template system with under 50 files. OSC fails this test, requiring nearly EVERY file to be changed to consistently alter the HTML appearance features of the website. ZenCart has 95 template files not counting those for the admin panel. Viart Free has 115 template files.

Winner: QuickCart (loaded version) comes in at under 38 -- note "page.tpl" is the "main page" of the site. Other template pages MAY NOT NEED TO BE ALTERED! I haven't figured that out conclusively. But they're not using something standardized like Smarty so you need some PHP savvy to plow through them.

3) separation -- real separation -- of logic and design. ZenCart is OK on this one. OSC fails miserably. Viart Free comes out on top -- using Smarty templating! WOOT! However note the loss on #2, coming in at 95 template files. Shame on them! Smarty is much MUCH smarter than that!

Viart Free, as I mentioned, uses Smarty, and has a standard "header" "footer". In spite of 115 files, using Smarty would probably make it a pleasure. I'm upset that there's no standard "right-sidebar" type formats, but that can easily be added to header/footer files so I'm happy enough.

QuickCart also seems to have real separation of logic vs design, so it's the 2nd runner up for not using a standard templating system like Smarty.


4) real-world examples that show off the system's flexibility for customization & style.

This is a tough cookie because people are generally lazy. I looked 3 times at http://www.mals-e.com/home.php because it had some of the better shopping cart examples I'd seen. Custom buttons, horizontal instead of vertical cart display, entirely different layouts. Turns out this is a free hosted service, you don't install the software, you do have to muck around in your website's HTML, but it's really a service that handles the customer's orders off your site. It allows a lot of flexibility, and he's hoping you make so many sales that you want the advanced site features, which are not make-or-break deals. I don't see coupon/discount code entry, so Mal's service fails #1, but it wins on 2 & 3. How much more separate from the logic can you be?

Viart has an odd quantity feature that involves a drop-down, but that's probably fixable. It requires clicking a JavaScript pop-up to confirm putting something into your shopping basket, which is awkward. These are awkward, but livable issues, but all the sites I looked at had these issues so no one bothered fixing them.

QuickCart -- they don't have that many sites in English, and they have SO MANY in other languages, I needed to narrow the playing field. So of the English sites, I saw minor promising variants in the cart design itself -- something near impossible to do in OSC -- as well as at least one site where the overall design was beautifully done very differently from the others. The cart behaved the way I would want a cart to behave. At least one site had web sites up for sale, with a number of options for ordering, which is something I may be doing myself.

5) No restrictions.

Viart Free fails here. Limited to 50 products. It requires a Zend optimizer installation. But it does install on GoDaddy. However, this is not terribly expensive to upgrade at $119, if you go over 10 categories/50 products.

In any case, the winner system from looking at the websites is Mal's service -- but if I eliminate the one host I bumped into during my search for something better, QuickCart did better than Viart.


The winning system today: QuickCart. Several hundred shops are listed, though some are spammers or the domains are now invalid. One problem is that I've not seen very strongly customized category views, and that's an area I'll need to customize. If you expect to have a very small cart, don't forget to check out Viart Free. Notable mention for money: SquirrelCart -- at about $70 it looks like a good bang for the buck -- but I can't say how it does amongst all the criteria mentioned here, since I couldn't evaluate it.

Note that many carts were eliminated from the contest for a variety of reasons. #1 price. #2 bad reviews out of the starting box (such as VirtueMart/Joomla! which has been repeatedly reported as having the shittiest support forum, being overly complex, etc. If I want that shit, I'll go back to OSC).

Ok, so next I'll be working with QuickCart and I'll let people know how it goes.

[tags]e-commerce, programming, reviews, design, competition, custom programming, education, metasite, usability, web applications[/tags]

Monday, September 18, 2006

Oh, Popeye! -- Broccolipita-ish

I bought fresh spinach and feta cheese at Sam's Club in Middletown. The plan was to make Spinakopita, one of my son's favorites -- I was going to make it with pie dough. I have a clue what dealing with filo is like --- so it was "spinakopita" -- I know it's not, but who cares as long as my son eats it?

Then the spinach scare. Ok, so I throw out the spinach. Even though it was "organic" and probably didn't go near any other spinach -- with so many people in the hospital and someone dead, it's not worth spinakopita-ish to make everyone in my family sick.

So then what? I have a pound of feta and no place to go. So I bought a LOT of fresh broccoli. About 4 florettes. I steamed it. I thawed 2 pie crusts.

I cut up about 3 cloves garlic fine.

I didn't have a yellow onion so I used about 1/8 of a hefty red onion. -- about 3-4 tbs when chopped fine.

I fried up the garlic & onion in olive oil, tossed some crumbled up feta in briefly -- probably a good 1/2-3/4 cup. Only for about a minute or less -- I removed it from the heat when the cheese started melting a little -- just enough to make some creamy oil in the pan, but not to make a gooey mess.

I burned a finger from the steamer -- that is definitely a prerequisite!

Then I used tongs to hold pieces of broccoli on the cutting board (they're HOT!) and chop them up with my handy veggie cleaver -- cutting up the florets and stems into tiny chunks and a bunch of bittie flowers. I tossed this in with the stuff from the pan in a bowl, mixed it up and made some very sloppy loaves with quarters from the pie crust -- I cut the crust dough into quarters, then rolled it out thinner with a rolling pin. You may want to cut them, ball them up, re-roll them and make loaves like empanadas. I was short on time. If you seal them well, take a sharp knife and put slits in the top.

Now I am waiting for them to cook so I can eat them. I'm trying cooking them at 375 even though pie recipes cook hotter.

...

Mmmmm -- I waited until they were crisp but barely brown, and they're YUMMY! They also passed the son test.

Enjoy!
[tags]recipe, spinach, broccoli, garlic, onions, pastry[/tags]

oscommerce is a beast

I want to continue to offer e-commerce at a reasonable price, and that reasonable price will not be tagged on oscommerce. Oscommerce will easily be double the price of any other shopping cart going forward. The program is a beast, and as long as it's been around, it's turned into a Frankenstein monster.

To extend the program through "contributions" requires hacking it to bits. I installed only one or two modules that installed without having to individually hand-edit program files, but note that these modules completely and utterly REPLACE files from the base oscommerce installation, just as the ones that required hand-editing rendered the program un-upgradable.

This is point #1 in being absolutely and utterly unable to upgrade the package once installed and so-called plug-ins (read: hacks) are added.

This implies that oscommerce does not have "Hooks" - - no points at which contributions can easily be put into the program execution queue without disturbing the original files.

The templating of the program out-of-the-box is absolutely unforgivable. There is no separation of logic and design on the back-end of the program. Each are enmeshed within each other. One contribution forcibly ripped the template code out of the program code and separated them. I'm both grateful that someone went through the trouble and appalled that doing so was needed -- again this absolutely breaks the ability to upgrade the program.

I think I'm very spoiled by PmWiki. I never have to hack the program code to add a feature. Ever. That's Patrick's duty. Cookbook recipes (plug-ins) are kept separately from the program code. There are an abundance of program hooks to slip custom code into. The base install can be upgraded with or without the recipes being upgraded, with a minimal chance of breaking recipes, since the hooks serve as an API layer in the program, and rarely need to change how they behave.

I'm tempted to write in a shopping cart module, because oscommerce is the exact opposite of everything I've learned about a good, extensible and maintainable package.

I will be trying Zen Cart next. I now know enough about oscommerce to install it and even customize it, but I am not able, in any good conscience, to recommend it to a customer, and my price for installing oscommerce must be double what I thought it should be.

I have to apologize to the Frankenstein monster for having insulted him by comparing oscommerce to him. Oscommerce is far more of a hack than one body being combined with another brain.

[tags]e-commerce, custom programming, modules, open source, prices, programming, rant, usability, web applications, web standards[/tags]

Friday, September 15, 2006

oscommerce drop-down selection box hack

I was having a heck of a time today dealing with drop-down product option selections in oscommerce. I wrote a hack to catalog/includes/functions/html_output.php in the function definition for tep_draw_pull_down_menu I changed the following text:




for ($i=0, $n=sizeof($values); $i<$n; $i++) {
$field .= '';
}



To the following:



// Criss - XES - altered the following:


foreach ($values as $i=>$value) {
$xes_values[$value['id']] = $value['text']; }
asort($xes_values);

foreach ($xes_values as $xes_id=>$xes_text) {
$field .= '';
}



Now when I can have product option "A - 9oz" and "B - 30oz" and count on option A being the default selected item if the customer doesn't change the option. Try as I might "B - 20oz" was the option selected. Whether I re-added the options in a different order, whether I took out A B C D, etc. If it were sorted in reverse order, I could have left out A B C D, because 9oz should sort to the top of the list. This wasn't the issue. I have no idea why the program was so stubborn about sort order, but now all drop-downs, like it or not, throughout the site, will be sorted alphabetically!

I hope people find this code snippet helpful!

Free Family Tech Support

Doctors have this problem. The moment someone at the party finds out they're a doctor, they get the "Oh, it hurts when I do this..." request for free advice.

I get a little less of it than they do, since there aren't as many Mac owners, but would you believe my dentist did that to me? :) Did she think I was going to offer to come to her house to fix her ailing Mac for her? Or was she offering me to take the Mac home with me and keep it?

Macs are less popular than bodies, but I'm sure every PC tech at a party has this problem. It's never worse than when your family finds out that you do computer support, however. I don't, really DO computer support, not really. Certainly not for PCs. But the moment they hear geeky terminology, the relatives come out of the woodwork with stupid Windows questions that a Mac maven like myself can best answer with "Hrm. Sounds bad. Why don't you buy a Mac?" which of course leads to SOMEONE eventually actually getting a Mac. Now you're in business. Without getting paid.

My kids have Macs, because if I gave them PCs and they broke, got viruses, etc. I would just want to install Linux on them and be done with it, and the expensive games would then be worthless.

Considering the amount of time they spend with the games, maybe that's not such a bad thing, after all -- however, I digress...

Whenever there's a problem with the computers, the kids run in with panic, or determination to break any boundaries I assert in an attempt of procuring aid for their electronic addictions. Today my son's computer isn't on the network, so he has no Internet. Oh, what horror! I'm sorta happy. And exhausted. I certainly do NOT want to spend my wee-morning hours figuring out why his computer won't talk to our wireless device. My laptop is fine, he needs to be on a bus soon, so who cares? Obviously he does, but you get the point.

Somehow the computer has become a right rather than a privilege.

My mom got my old iBook. After her first 10 questions or so, she's been relatively quiet, until lately when it seems the modem may have died. That's a hardware issue I can't debug or fix since I'm 1000 miles away. So mom's pretty much been golden.

However, I see everyone from linux to PC techies running around fixing their family's computer issues. I'm not sure the doctors take care of family members in this way -- aside from the stupid party questions, how many family members want to take their clothes off in front of you and be touched, sometimes rather intimately, by their son/father/sister/cousin? So somehow, for the doctors, I think the buck stops at free advice.

There seems to be a law of the universe that for every geek there's at least one completely technically inept relative who has the lead touch and every computer or network they put their paws on breaks. Then there's the Internet un-savvy relative who blunders into adware and spyware, bad offers, identity theft, etc. And the mother -- usually it's the mother (mine's guilty too) who likes to pass along their spam, chain letters, petitions, jokes, etc. so they can share their inbox pain with you.

If you're the black geek of the family, you get the call, the email, the questions, and have to travel to the relative's house to do unpaid charity service in the name of family peace. After all, didn't you ask the person with the green thumb in the family to do your landscaping? You didn't? Didn't you ask the one most talented in the kitchen to come over and cook for your Thanksgiving meals? No? What about Aunt Martha? She's a neat freak and keeps a perfect house -- didn't you ask her to wash your kids' underwear and scrub your kitchen floor? You didn't do that either? Sheesh, what type of relative ARE you??

What is it that makes being a geek one of the few areas that people can trounce your personal, familial and professional boundaries? Doesn't Uncle James know that if you're fixing his computer, you're bound to find his porn folder?

I think it's one of the mysteries of the family moral and ethical system that I won't understand. I mean, my mom's a nurse, but I never asked her to take my blood pressure, administer an enema, draw blood, or give me chemo.

My family's pretty good on the scale of things, too. I watch others suffer under the burden of having done the family a "favor" and set up a computer network, which then they also must support when it's broken. It's true that people have much more respect when you set up a fee schedule. Suddenly they think twice about what they're breaking on the, computer or network, since they'll have to pay. Otherwise it's "what the heck, my nephew will fix it."

Maybe it's a good thing my family hasn't really realized that I do graphic and 3d design. All I need is for requests for unpaid or speculative work in the design area. Make my logo, do my website, I need a brochure...No one seems to think that time is limited, no one wants to take their work home with them, and we all need money.

[tags]family, rant, humor, life, interruptions, personal, prices, truth, spec work[/tags]

Thursday, September 14, 2006

The Name Memorization Game

I mentioned I'm becoming a networking junki--- um maven.

Well, the problem is that to win the game, you have to remember the name.

Oy, vey!

I have this somewhat eerie fascination with names. Names rarely if ever fit the character of the person in question. Most names are given to people for political reasons, rather than to fit the spirit or personality of the child, and many people have no clue what the personality of said child will be. So they pull a name off the family tree, or their favorite character in a book, or their favorite actor/singer/whoever.

I have a heck of a time memorizing given names for some reason. Aside from my memory being ephemeral on the best of days, I believe that the vacuum when trying to call up a name results from the name being discordant with the person's energy, personality, or spirit. I won't go into it on my work blog, but suffice to say that I'm psychically sensitive.

I've belonged to several organizations where people choose their own names, not to mention online "Handles" or AIM Screen-names, or whatever you want to call these aliases people hide behind (or come out from under!) on the web. What I find fascinating in that I rarely remember a person's given name when given to me at an introduction. But if the person says "I'm Thistle" I'll remember it. Not ONLY will I remember that they're Thistle, but when I DO get their "real-life name" -- I'll remember Thistle AKA John Smith. If I were introduced to John Smith, I'd forget his name in 2 seconds. For some reason the discordance is what helps me remember Thistle vs John Smith.

I wonder why this is. I've been through the MSR (Medieval Studies & Re-creation) and the SCA (Society for Creative Anachronism), and I could rattle off the fictitious names and often titles of a hundred individuals AND their legal given names. Send me to a business networking event and suddenly I'm at a loss. I also have the same skill from Compuserve/BBS and the current Internet chat and email social circles.

I think I'll have to come up with mental trickery for this one. I don't have as much trouble remembering a business name. Maybe I can trick my mind into thinking of someone as Smith Loan Corp aka John Smith. That would be piggybacking the odd skill I have for remembering aliases and fictional names. Then once I have the name down, I have to "Flip" them around in my head -- as if I'm introducing a medieval recreation pal to my mother -- or embarrass myself by introducing John as "Smith Loan Corp". I still find it better to "Smith Loan -- I mean John Smith" than to not introduce someone because I can't remember their name for the life of me.

It's also amazing that the moment I'm writing down the person's name doing job intake, typing it into a contract, and adding it to my accounting program to print out the first invoice, that seems to be enough writings for me to memorize the person's name. Maybe I just need to write the person's name 3 times :)

[tags]clients, networking, personal, rant,[/tags]

Saturday, September 9, 2006

Life is Like -- Programming

It's really messed up how programming can follow real life. I think maybe I've been programming too much lately. It doesn't matter. In the car, I was working on the Magical Chain Mail Vest (a shiny crochet object to be gifted to my son as part of my plot to enrich his imagination), and it's a very loose design (anyone who has seen the bows and arrows hat -- that's the stitch pattern I'm using for the vest -- I'll post the directions if it comes out OK.)

I've been watching how quickly this vest is taking shape. But it's a nonsense vest. It's for show, for play. It's not going to be WARM, any more than the "bows and arrows hat" is warm. It's not "real" it's a vague vacuous waste. To be real, it would need to be re-done entirely (and probably in a different yarn).

I tried "rapid application development" (RAD) tools a few times. Not RUBY on RAILS but equivalents in PHP. I've tried RAD for a real open-source project (my Contract Manager application, still in Alpha, but taking good shape right now -- note I ripped it apart and started again without the RAD this time and it's come much(!) further). And when it comes down to it, it's just not robust. It's not real. It takes shape very quickly, but it's never going to keep you warm in the winter. Very much like quickly creating a magical chain mail vest from Freecycle freebie yarn for my son. I'm sitting in the car crocheting and suddenly the yarn and the work is the equivalent of Cake or Ruby on Rails, and it all comes together -- it all makes sense.

I had a similar revelation today. It's Saturday. Time for my own projects. Time for Laundry. Time to kick back and relax (yeah, right!). I got up, started working on a new quicky open-source idea, got distracted by Guy Kawasaki's blog entry for online reviews, started looking into getting on Yelp to place reviews and see what it's like, got distracted by Technocrati, and now I'm posting to my blog and doing blog upkeep.

My partner, who had to rush out to meet a friend today, called and asked what I was up to. I said something like "I'm being me!" Huh? "I keep getting tangented -- it's like when you start a new clause with an open bracket in a program and you forget to close it. Eventually you're nested 10 IF statements (etc) deep and you forgot how you got there, and what you need to do to close out your brackets."

When actually programming, both my partner and I start out every new "clause" in a program by typing the open and close brackets -- even in HTML I do this -- then backspacing to type the contents. "if ()" hit backspace then type. It doesn't mean you'll remember everything you wanted to do in every level of the loop if it gets deep, but it does mean that you won't get nasty errors -- just bugs :P

I wish I could do that in real life. I have a program to finish -- I have gotten most of the laundry READY but not run any loads yet, I would like to go out, I need to check the mailbox, and I want to work on getting something going (maybe a newsletter to my clients) so people give my business good reviews on a variety of websites, so I can request referrals, and so I can return the favors for them. Oy vey! It's Saturday, so I think the laundry then the mail come first.

[tags]programming, humor, life, clients, networking[/tags]

Monday, August 28, 2006

When it Rains...

A bunch of things to quickly jot down. First, in response to my last blog post "The Check's in the Mail" -- it was certainly Murphy's law at work, it took an entire week after that post for checks to start to come in. The day the first check came in I landed two new contracts for websites, along with the respective deposits.

On the subject of rain -- apparently Orange County, NY doesn't do rain halfway. Another few inches over these few days.

My business agrees with the weather -- I had 12 incoming jobs (that doesn't mean they'll all go to contract, or all go to contract at the same time), two of which went to contract as I mentioned above, and one established client called me with several rush jobs. Feast or famine, but nothing steady! Yay!

I've been a networking fiend lately. You can find me at Orange County Chamber of Commerce events, BNI events, Orange County Women's Professional Network events, Orange County Networking Alliance, Toastmasters, etc. Anyone in the area looking to network, I'd love to hear from you.

On those notes, I have some work to get through then I'll have new information for my portfolio, clients page, etc.

Good luck out there!!

Wednesday, August 16, 2006

The Check's in the Mail

I've been busy this month, but as I always say "This month's work is next month's money." Whether a 15 day billing cycle or a 30 day billing cycle, with or without a late fee, and so on, by the time the job is done and billable, and then by the time you get the payment and take it to the bank, it's next month.

Last month was really rough. That means this month I'm terribly poor. I've gotten at least 3 new awesome clients, all giving me repeat work, and all paying me on-time. But there's still this cash flow problem.

So here's how the day goes: If I don't have a morning business networking meeting, my 6am to 9am slot is taken by email, breakfast, and catching up on news and potential work. If I have a project that has loose strings, I tie them. Ship out something I said I would have on their desk by morning. Surprise a client with something done ahead of schedule -- those are the best. Sometimes something inspirational came up while I was asleep and begs for my attention. This month I actually get to sleep in -- my son's at my mom's house way far out of state, so I can sleep til 7:30 if I don't have a morning business meeting.

From 9am-12pm I return calls, do job intake as needed, follow up on people answering their morning email, send out invoices, catch up on accounting work, work on billable projects due by the afternoon, etc.

Sometimes around 1pm I have a business lunch with someone. Other times, I take a long lunch break since I was up since 6am and I've hit a 6 hour mark for working during the day.

At 2pm I check the mail. This is the important part of this rant.

From 2-5 I'm doing billable projects, answering phone calls from late risers, and checking the news feeds again.

Now, back to 2pm -- when school is in session, more like 2:30pm, when my son gets home. The mail comes around or before 2. I think. No one really can tell if or when the mail is going to come. Or when. Sometimes it's here around noon. Sometimes it's a little late. But most days if we check for mail at 2-2:30pm it's here. It's my one chance for exercise every day. About 1/10 mile round trip walk to the mailbox. :P

Today the mail isn't here. The mailbox is empty. My wallet is filled with cobwebs, the banks are about to send me threatening letters, every bill under the sun is about to come due, and I had to beg my utility provider to PLEASE waive my late fee. I open the creaky door to look again. Empty. A third time? Yep, that mailbox sure is empty. I stand in disbelief squinting against the sun and look down the block. Surely the postal person is coming. Late over a latte or ice cream? If there are packages, the postal worker is here around 10am -- other days before 2pm.

How do you deal with an empty mailbox at 2pm. 2pm is perfect -- enough time to drive to the bank with that check that finally came. 2:30 is pushing it. At 2pm if the mailbox is empty, you have to run back to the mailbox at 2:30pm, wallet, keys for the car, checkbook in hand -- ready to flee to get to the bank by 3.

I hate being desperate.

But what if it's still empty at 2:30pm?

You begin to wonder what's going on. There are a billion outstanding invoices. People say the check's on it's way (it went to the accounting department, it was sent...), but I get enough junk mail, don't I? Why would it be EMPTY? The days where it's all junk mail, at least I know the mail CAME. Maybe the answer is more junk mail. Publisher's Clearing House? I was just thinking to tell the credit bureaus to stop giving my info out to credit card agencies looking to get me in debt to them. Save your paper! but now I can't tell whether the mail came today or not. Is there a check? I have this daily Schrodinger's cat syndrome when I open my mailbox -- is my bank account doomed to die or will it be resurrected for another week? Maybe I can convince the postwoman to leave me a post-it saying "Sorry, none for you today!"

I worry that maybe someone's beating me to the mailbox. An ol' game of bait and switch. That's not today's mail -- it's yesterday's mail. I'll get today's mail tomorrow.

Maybe I can blame it on my kids. It's all my kid's fault. If I didn't have kids, I wouldn't have bills, and I wouldn't need to charge people money -- I'd do it all for free and liberate the world from lame static websites in the name of the tech revolution! Somewhere there's a flaw in that logic, but in my panic over my bank balance, I guess I'm not thinking clearly.

This month's work is next month's money. I'll be bluddy rich next month. Rolling in it. I better have enough work next month to get me through October.

In the meantime, what's the best source of snail mail spam?

2:30pm. It's still empty.

[tags]rant,money,clients,time,humor[/tags]

Saturday, August 12, 2006

The benefits of natural lawnmowers

Mowing lawns could be hazardous to your health.

Take a somewhat out-of-shape person, give them insufficient liquids, 85 degree (Farenheit) or higher temperatures in the late day sun, about an acre of lawn and a mower and you have a recipe for disaster.

Make that person pig-headedly stubborn about getting the job done in one continuous grueling bout of sheer testosterone and you have heatstroke.

I'm not writing to extoll the virtues or dangers of heatstroke. I want to leave that to the experts.

I want to extoll the virtues of natural lawn mowers.

No more gas guzzling noise polluting mulch making hay spewing 1.5 horsepower rack-n-pinion steering (*cough*) bag-toting machine fury!

No. Just a little fur, some neighborly tolerance, and patience.

I have several lawn mowers. Woodchucks. Rabbits. Deer. If it weren't for the sheer overwhelming SIZE of the lawn, woefully seeded with absolutely useless grass, I probably wouldn't need a lawn mower at all. Give me ground ivy, chickweed, mint, wood sorrel, plantain, dandelion and cleavers any day over 100% useless indigestible grass. While we must have grass, since it's not my lawn, then at least we have our natural lawn mowers. I even have photos -- I've just been too bloody lazy to put my photos into the blog. I have to actually get off my butt and do it ;)

These lawn mowers have many myriad benefits:

  • they're eating what most people hate anyway. The woodchuck and rabbits specialize in the little plants between the blades of grass, like dandelions -- the ones the mechanical mower misses anyway. The deer eats young grass -- enough deer and there's no grass to mow in the first place!

  • instant composting. As these critters graze, they leave behind yesterdays morsels in a ready-to-use form. Bonus: herbivores don't have i-coli bacteria. The compost is ready for your soil, worms, and all other manners of nitrogen-hungry life

  • They're cheap: (what!! No nested lists GRRRR)

  • You don't have to pay at the pump

  • you don't need to buy or maintain machinery

  • you don't add extra wear to your car fetching mowers, oil, gas, parts or taking it in for repairs

  • you no longer need to buy fertilizer

  • You don't pollute the environment

  • When these lawn mowers break down, they biodegrade quickly -- no need to get them hauled away in the trash and have them take up room in a landfill

  • they replace themselves

  • they provide hours of amusement and possibly food and exercise to your pets



Anyway, here's a billion blessings to our lawn mowers -- they're welcome here any time -- as long as they stay the HECK out of my garden.

[tags]critters, environment, grass, dandelions, plantain, wood sorrel, gratitude, humor, woodchuck, rabbit, deer, rant, expenses, garden, lawn, recycling[/tags]

Monday, July 17, 2006

Carnegie Hall Contest

I'm personally and professionaly one of the NO!SPEC rebels. I believe that professionals should not hand out creatives (work, sketches, anything that takes substantial time or could be stolen and produced by any kid with an art program) for any client's job without being under contract to be paid for the work, deposits or down payments optional. This extends to contest work, where dozens of designers are invited to submit finished works in the hope that they will be picked out as the one good enough for the reward.

I've been reading and commenting on NO!SPEC articles for a couple months, and now I come across an interesting post on Craigslist:



Date: 2006-07-12


Carnegie Hall Seeks Original Art for Its Playbill Covers!

THEME “Music as a fundamental expression of the human spirit”--using Carnegie Hall’s 2006-2007 season as inspiration. Please visit carnegiehall.org/subscribe for complete season details.

ELIGIBILITY Open to all enrolled students (valid identification required)

STYLE AND MEDIUM Any style and any medium, including painting, drawing, sculpture, photography, and computer-generated art

SUBMISSION REQUIREMENTS jpeg, tiff, or pdf digital format only; file size not to exceed 2 mb; e-mail to artcontest@carnegiehall.org

PRIZES Each of 10 selected entrants will receive $500 and 2 tickets to a performance at Carnegie Hall.

Deadline: August 31, 2006




Selected artists must be living, reside in the United States, provide their Social Security numbers, and sign a release for the use of their work.Winning works will appear on the covers of Carnegie Hall’s concert program books throughout the 2006-2007 season. Please note that while we encourage all forms of artistic expression, some controversial subject matter may not be suitable for publication. Submissions should not be literal representations of musicians appearing at Carnegie Hall. Also note that while artists will retain ownership of their original works, the photographic representation of each winning work will be considered a work made for hire for The Carnegie Hall Corporation (CHC), and CHC will own all copyrights and other rights in it, including, without limitation, the exclusive right to adapt it and to use it for any purpose and in any medium now known or devised in the future, perpetually and throughout the world.


no -- it's NOT ok to contact this poster with services or other commercial interests
Compensation: $500 and 2 tickets to a performance at Carnegie Hall



This contest is of course a contest. Carnegie Hall is looking for dozens of people to pour their time into a project, and looking to reward someone and use their work. Only this time there are some key differences. It's open to students only; not many speculative work contests are only open to valid students. There are 10 prizes -- that certainly increases the chances of winning, and means that it's less likely that there will have been ties for first place and the winner chosen by the flip of a coin. Knowing PlayBills, it's possible there will be 10 covers printed, and all the winners' pieces distributed to a very mixed audience (and making a terrific portfolio piece). The prize is pretty fair -- they're giving out a total of $5000 to 10 students -- and how many students couldn't use $500?

Other interesting things to note: It's mixed media, and there aren't many chances for students to get that type of money for a media of their choice. It's not a venue where the student would be needed for branding advice, or future support, unlike logo or website design contests -- they need 10 single photos/pictures to print for the program book covers. The work produced by the entrants would be able to be generic and useful for other purposes (unlike a logo or web design).

I'm not saying it's a good contest; I find it difficult to judge this one. What I am saying is that of the contests I've seen, this one is different, more fair, unlikely to hurt Carnegie Hall in the way that most speculative contests I have seen are eventually going to bite the company holding the contest.

Would anyone care to comment on it?

[tags]activism, spec work, competition, rant, time[/tags]

Friday, July 14, 2006

The Clean-Room-Gestapo

You were there. You remember.

The humiliation, the pain, the sheer overwhelming bulk of it. Your room.

Your room was a mess. Years of accumulated junk and toys, half-eaten crackers, cups and plates. It doesn't matter if you were 2 or 20. You had done it: you made a big big mess.

There were your parents. Whether you were 2 or 20, their hulking bulk filled the sky as they glared down at you, tiny lightning bolts flashing in their eyes, and the Commandment came down like thunder, "CLEAN YOUR ROOM!"

As they stormed from the room, you surveyed the cluttered landfill, wondering whether you should start at the lump you think is your bed, or whether maybe it would be better to start from the top and work your way down, after all a lot of towers will be crumbling anyway. Overwhelmed, baffled at the Commandment, and with no good way to tackle the chaos, eyes moist with frustration and helplessness, you wonder why your parents have suddenly abandoned you, and made this unreasonable and surely irrational declaration. After an hour of helplessly transferring items from one pile to another, you turn your eyes upwards, ready to pray for salvation, but instead you swear a solemn oath on your favorite teddy, or maybe your iPod, Never EVER to do this to your children. Your children's room will be their own, safe from worries about parents and cleaning. They can do whatever they want with their room. You don't care how dirty it gets.

Years Go By...


You have your bundle of joy now. You watch your child learn to crawl, to walk. At 9 months you laugh when your child experiments with gravity, but then your child is in the high chair and decides to experiment with the oatmeal. A little less amused the 10th time, now that you've reinforced the behavior by being jovial and putting on a housecleaning show in front of your toddler, you finally frown at your child, and sternly say "NO!"

Fast-forward. Now your child is 2 -- or 20. You walk into the room to trip on a toy car, or to be admonished for stepping on their favorite Teddy. Maybe you step on their iPod. It's ok this time, you make it to the bed, tuck your bundle of joy in, realize the covers are in a huge knot, try to unravel them for the 100th time. You turn out the light, and narrowly escape the room with your life.

You do this over and over. It doesn't matter if you do it 20 or 200 times. There's going to be the one time you don't make it out unscathed.


Maybe it was a wooden block, an ice skate, a pencil point, a 4-sided-die. Whatever it was, you stepped directly on it and the stabbing pain went right up your leg. With the pain came a moment of clarity -- or was that insanity? The room is a hazard! The room has gone untouched for far too long, you've put up with it for far too long, ENOUGH IS ENOUGH!! There is no way to resist the onrushing waves tossed about by years of neglect and insult. You pay for the house, you pay for their things, you have cleaned up after them, dressed them, bathed them, dedicated endless hours for years and years to keeping them neat, tidy, and healthy. And THIS is how they repay you? Tossing all your labors out the door, carelessly strewing items around the room, inviting vermin with dirty plates and half eaten vittles, and not even trying to make an inviting path to allow you in?!

you. Have. HAD. IT.

Like a Valkyrie or Odin himself, shaking a spear and shouting out a war-cry you denounce your naive youthful oath, and crash down like the very wrath of the gods has filled you, screaming like a banshee, and you make every declaration under the sun swearing that "IF you don't CLEAN THIS ROOM...." and ending it with whatever spills out of your wraith-strewn maw. You can't even remember. It doesn't really matter.

After the one fell incident, you become a police officer, keeping law and order -- your law and your order -- with regard to the tidiness of the room. With every foot your child drags, your threats and declarations escalate into a shrill madness that causes even your own inner child to flee in wild panic. Every speck of dust or item out of place induces threats and limitations: no dessert, no tv, no computer, no movies, no car, no iPod, no GameBoy, no going out, no phone calls, no No NO.

And it doesn't matter if your kid is 2 or 20. In the face of your irrational exhibition, the child will sulk away and make an oath to a long forgotten deity that they will never, ever, tell their child to clean their room...

[tags]humor,truth,personal,rant[/tags]