Archive for April, 2008


Feed your family weeds for Earth Day Dinner

Tuesday, April 22nd, 2008

I’m really proud of my kids — ages 8 and 7 — because they are totally into environmentalism. They keep me on my toes by yelling at me if I throw out a plastic container instead of putting it into the recycle bin. They know the mantra “Reduce Reuse Recycle” by heart and use it often. Today is Earth Day, and my son is excited to share with his 3rd grade class how we compost our kitchen scraps in our worm farm located in our garage.

To celebrate Earth Day tonight, we’re eating a meal that was obtained no more than 50 miles from our house. If you watch “Wasted” or other new environmental shows on television, you’ll know that these days the big push is to get people to start buying more local produce instead of imported fruits and vegetables. This imported produce used up a lot of gasoline to get to you, and it has probably been treated, sprayed, waxed with God Knows What to keep it appearing fresh.

Most of the meal I will make from stuff that is growing in my backyard. We recently moved to South Texas, and I am excited to have a (somewhat) thriving vegetable garden in April. I also have lots of weeds… many of which I plan to pull out today and add to our meal.

These include purslane, dandelions, and chickweed. Years ago, my Dad admitted to me that he kept his yard free of dandelions by eating them. At first I thought that was a bit eccentric and offered to buy him some groceries. However, after living for many years in Buffalo, where steak and dandelion pizza is a popular menu item, and Italians pick cardoons by the railroad tracks to fry up with their eggs, I realized he was on to something. Weeds are only weeds if you don’t want them. Many weeds are actually a delicacy and many are highly nutritious.

Take purslane, also known as “pussweed”. It grows everywhere, tastes pretty darn good, and is a great source of Omega 3 fatty acids. If you follow nutritional news, you’ll know that’s one of the things nutritionists are now telling us to eat more of. In fact, in Europe purslane seeds are sold as a common garden vegetable.

Epicurious lists 6 recipes for purslane. This recipe for - grilled zucchini salad with purslane - looks like a winner. This site has more information on purslane, including photos and more recipes.
Purslane leaves are crunchy yet succulent, and are sweetly tangy. Best thing is you can practically pull the whole plant out of the ground and it will be back growing strongly in a week or so. Before eating, squeeze a stem. If white milky fluid comes out, it might be a poisonous plant, so don’t eat it. Actually, here I’m going to make the disclaimer that I’m not responsible if after reading this blog you go out and start pulling and eating weeds and die of a horrible disease like Chris McCandless in “Into The Wild”.

Another reminder to only eat weeds from lawns and gardens that haven’t been chemically treated with pesticides, etc. Also, never pull them from near a road or driveway because they might be contaminated with garbage from the cars /exhaust.

Most people know about eating dandelion leaves. They are a common ingredient in the Spring Salad mixes available bagged at most grocery stores. Make sure to eat the greens young, as they turn bitter the larger and older they get. The flowers are also edible and are commonly used to make dandelion wine. I’ve heard that the roots are edible as well and can be boiled and mashed like potatoes.

So here’s our menu:

  • 1. Cherry Tomato and Purslane Salad with Fresh Basil Vinagrette — cherry tomatoes, purslane, and basil are from our garden, but I had to purchase the olive oil, vinegar, and salt.
  • 2. Sauteed broccoli, dandelion greens, and cabbage leaves with garlic and onions. Broccoli leaves (they taste great — like collard greens), dandelion greens, and cabbage are from our garden. Garlic and onions are from my Uncle’s garden a few towns over.
  • 3. Grilled wild-caught Tuna with grilled mango– The tuna was caught in the Gulf of Mexico on the Texas South Coast, near our home. The mango was bought at a local roadside vegetable stand.
  • I’d love to hear what “low footprint” meals you are making, from your backyards and local sources!

    How to add the pricing plan to another page on your site in WebJobs

    Thursday, April 17th, 2008

    Problem: The dynamic list of prices for posting jobs is only viewable to employers who are logged in.

    Solution:

    In your new page in engine/pages/new_page.php , make sure the following is included near the top:

    require_once ’smartway/lib/table.lib’;

    Then add the following two classes, which originate in the engine/pages/employer_home.php file:

    class employer_job_plans_table_renderer extends sql_table_renderer{
    function employer_job_plans_table_renderer(){
    $application =& application();
    parent::sql_table_renderer();
    $this->table_class = ’seeker_search_res_wide’;
    $this->header_class = $this->footer_class = ’seeker_search_ends_wide’;
    $this->row_1_class = ’seeker_search_row1_wide’;
    $this->row_2_class = ’seeker_search_row2_wide’;
    $this->header_navbar_class = ‘narrow_navbar_top’;
    $this->footer_navbar_class = ‘narrow_navbar_bottom’;
    }

    function handle_duration($f){
    $application =& application();
    return $f[’duration’] .’ ‘.$application->text(’days’);
    }
    function handle_quantity($f){
    $application =& application();
    return $f[’quantity’];
    }

    function handle_price($f){
    $application =& application();
    if(ceil($f[’price’])==0){
    return $application->text(’Free’);
    }
    else{
    return $application->config(’currency_symbol’) . util_funcs::number_format($f[’price’], 2);
    }
    }
    function handle_type($f){
    $application =& application();
    return $application->text($f[’type’]);
    }
    function handle_controls($row)
    {
    $application =& application();
    $text = $application->text();
    $service = $application->input(’service’);
    $PHP_SELF = $application->server(’PHP_SELF’);

    if($row[’type’]==’job_postings’){
    if(ceil($row[’price’]) != 0){
    $output = ” <a href=’$PHP_SELF?page=post_single_job1&job_post_type={$row[’name’]}’>\n{$text[’purchase’]}</a> \n ” ;
    }
    else{ // User is getting a free plan
    $output = ” <a href=’$PHP_SELF?page=employer_home&action=free_plan&plan_id={$row[’id’]}’>\n{$text[’purchase’]}</a> \n ” ;
    }
    }
    else{ // Resume View
    if(ceil($row[’price’])!=0){
    $output = ” <a href=’$PHP_SELF?page=resume_searches&searches_type={$row[’name’]}’>\n {$text[’purchase’]}</a> \n ” ;
    }
    else{ // User is getting a free plan
    $output = ” <a href=’$PHP_SELF?page=employer_home&action=free_plan&plan_id={$row[’id’]}’>\n{$text[’purchase’]}</a> \n ” ;
    }
    }
    return $output;
    } // handle_controls
    } // employer_job_plans_table_renderer

    class employer_combo_plans_table_renderer extends sql_table_renderer{
    function employer_combo_plans_table_renderer(){
    $application =& application();
    parent::sql_table_renderer();
    $this->table_class = ’seeker_search_res_wide’;
    $this->header_class = $this->footer_class = ’seeker_search_ends_wide’;
    $this->row_1_class = ’seeker_search_row1_wide’;
    $this->row_2_class = ’seeker_search_row2_wide’;
    $this->header_navbar_class = ‘narrow_navbar_top’;
    $this->footer_navbar_class = ‘narrow_navbar_bottom’;
    }

    function handle_price($f){
    $application =& application();
    if(ceil($f[’price’])==0){
    return $application->text(’Free’);
    }
    else{
    return $application->config(’currency_symbol’) . util_funcs::number_format($f[’price’], 2);
    }
    }

    function handle_posting_plan($f){
    return $f[’posting_plan_name’];
    }

    function handle_resume_plan($f){
    return $f[’resume_plan_name’];
    }

    function handle_name($f){
    return $f[’name’];
    }

    function handle_controls($row)
    {
    $application =& application();
    $text = $application->text();
    $service = $application->input(’service’);
    $PHP_SELF = $application->server(’PHP_SELF’);

    if(ceil($row[’price’])!=0){
    return ” <a href=’$PHP_SELF?page=combo_package&plan_id={$row[’id’]}’>\n {$text[’purchase’]}</a> \n ” ;
    }
    else{ // User is getting a free plan
    return ” <a href=’$PHP_SELF?page=employer_home&action=free_combo&plan_id={$row[’id’]}’>\n{$text[’purchase’]}</a> \n ” ;
    }
    } // handle_controls
    } // class employer_combo_plans_table_renderer

    (more…)

    Add a pending check payment notification email to webjobs

    Wednesday, April 16th, 2008

    Problem: If you have enabled “Notify admin of new job postings?:” from Admin Area -> Email Notification, an email will be sent to the Admin notifying him when a job has been posted. However, if check payment is selected there will be no email sent to the admin.

    In theory, I guess the email ISN’T needed because it is assumed that the siteowner doesn’t need to worry about activating the job until the check is received. However, on one Webjobs site I used the check module as a request from the employer to be invoiced, instead of paying by credit card. The siteowners had to remember to check the Pending Check area in Smartway to see if any employers were waiting to be invoiced.

    Solution: Thanks to the new upgraded Webjobs 2.0, the solution is now very simple. Previously, it was difficult to figure out where to generate the email , because of the long posting process (post_single_job2, post_single_job3, confirm_purchase, etc. Where does it go??). Fortunately, this version has a new file — engine/pages/check.php that makes it easy to send the email at the right time in the posting process. (more…)