Dad’s Meatloaf

August 9th, 2009

Vinegar Peppers :

* 1 tablespoon extra-virgin olive oil.
* 1/4 cp. chicken stock.
* 1/2 onion sliced thin.
* 1/2 red bell pepper seeded and sliced thin.
* 2 garlic cloves, minced.
1/4 cp. drained jarred sliced banana peppers.
* 1/4 cp. white wine vinegar.
* 1 Tbsp. unsalted butter.

Heat chicken stock with bell pepper and onion until soft, about 5 minutes.

Add garlic and banana peppers, cook for a minute.

Add vinegar and bring to a boil, then simmer for 5 minutes.

Remove from heat, mix in butter, season with salt and pepper.

Meatloaf :

* 1 tablespoon extra-virgin olive oil.
* Vinegar peppers.
* 2 teaspoons (about 3 cloves) chopped garlic.
* 1.25 pound ground beef.
* 2 eggs.
* 3/4 cup bread crumbs.
* 1 cup grated Parmesan.
* 1 tablespoon Worcestershire sauce.
* 2 tablespoons chopped basil leaves.
* 1 tablespoon chopped cilantro leaves.
* 1 teaspoon salt.
* 1/2 teaspoon black pepper.
* 1 cup tomato sauce.
* 3 slices of bacon.

Preheat oven to 350 degrees F.

Saute the garlic in the olive oil.

Mix all the ingredients together except for the tomato sauce and bacon.

Pack the meat mixture into an oiled loaf pan

Top with the bacon (lattice style), and then tomato sauce.

Bake for approximately 50 to 60 minutes or until an instant-read thermometer registers 160 degrees F in the middle of the meatloaf.  Remove from the oven and let rest for 5 minutes. Slice and serve.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | No Comments »
    None Found

Areca Tools RPM for CentOS Linux.

November 14th, 2008

We recently started deploying servers with Areca RAID controllers (we had been a long time 3ware purchaser, but recently the cards and the support of them seems to have taken a turn for the worse).

Areca provides a handful of tools for managing their RAID controllers, but leave it to you to deploy and install on your servers how you see fit; that might be fine for a handful of servers, but any more than that and you are going to need some sort of package that is easily installable across your network.

Enter the areca-tools RPM I built for CentOS Linux : areca-tools-1.8-1.el5.sonic.src.rpm .

With this Source RPM you can build the areca-tools RPM for whatever hardware architecture and Red Hat based Linux OS you want. Hopefully this will save you some time if you need to deploy Arecas in the servers you maintain.

Note : if you want to monitor your Areca’s RAID status from mon, check out the raid.monitor I wrote.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | 2 Comments »
    None Found

Wordpress has a page on “Writing a Plugin” that you can refer to for all the gory details; this post is a quick demonstration of how you too can notify people of updates to your Blog via Twitter.

Add your handlers:

add_action('edit_form_advanced','notify_customers_checkbox');
add_action('save_post','notify_customers');

Add some check boxes to the “Write Post” interface:

function notify_customers_checkbox()
{
?>
<fieldset id="notify_customers" class="dbx-box">
<h3 class="dbx-handle">Notify Customers:</h3>
<div class="dbx-content">
<input type="checkbox" name="send_to_twitter" id="send_to_twitter" checked="checked" /> twitter
<input type="checkbox" name="send_to_list" id="send_to_list" checked="checked" /> email
<input type="checkbox" name="send_to_nntp" id="send_to_nntp" checked="checked" /> nntp
</div>
</fieldset>
<?php
}

Check the status of those check boxes:

function notify_customers($post_id)
{
if ( isset ( $_POST['send_to_twitter'] ) )
{ send_to_twitter($post_id); }

if (isset ( $_POST['send_to_list'] ) )
{ send_to_list($post_id); }

if (isset ( $_POST['send_to_nntp'] ) )
{ send_to_nntp($post_id); }
}

Write a method to take your post, clean it up a bit and send it off to Twitter:

function send_to_twitter($post_id)
{
$twitter_user = 'sonicnet_status';
$twitter_pass = '';

$post_url     = get_permalink($post_id);
$post_title    = stripslashes($_POST['post_title']);
$post_title    = html_entity_decode($post_title);
$post_content    = stripslashes($_POST['post_content']);
$post_content    = strip_tags($post_content);
$post_content    = html_entity_decode($post_content);

$twitter_message = "$post_title: $post_content";

// We only care about published posts.
// If it's an old post being updated prepend "Update" to the post.

if ( $_POST['prev_status'] == 'draft' ) //new post.
{
if($_POST['publish'] == 'Publish')
{
$xrl = file_get_contents("http://metamark.net/api/rest/simple?long_url=$post_url");

$twitter_message = substr($twitter_message , 0 , 117);
$twitter_message = "$twitter_message... $xrl";
$twitter_message = urlencode($twitter_message);

$url = 'http://twitter.com/statuses/update.xml';
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, "$url");
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, "status=$twitter_message");
curl_setopt($curl_handle, CURLOPT_USERPWD, "$twitter_user:$twitter_pass");
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
}
}
}

And there you have it; you’ve just told all your Twitter followers about your latest Blog post.

You’ll note we do some other cool stuff to keep our customers in the loop; like send them E-Mail and post to Usenet, but that’s another Blog post.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | 2 Comments »
    None Found

What :  Augie’s 30th Birthday.

When :  22, November at 12:00pm.

Where :  Third Street Aleworks, 610 3rd Street Santa Rosa, CA

Help me celebrate my 30th birthday by joining me at the Third Street Aleworks in downtown Santa Rosa, CA; I have reserved the upstairs:

http://www.thirdstreetaleworks.com/

We will start around noon with some food and drinks (unfortunately The Aleworks doesn’t do separate checks when reserving the upstairs, so ordering at the bar is preferred).

If you have never been to The Aleworks, let me know and I can help you navigate downtown parking.

I hope to see you all there.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | 2 Comments »
    None Found

My Two-Years Old.

October 7th, 2008



IMG_5573

Originally uploaded by Augie Schwer.


I finally got around to uploading the photos and videos from Davis’ second Birthday shindig.

The full set, including videos, is here:

http://flickr.com/photos/augie/sets/72157607792750337/

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | No Comments »
    None Found

Welcome to the world Lillian

August 17th, 2008

Lillian

Originally uploaded by Augie Schwer.

Lillian Angeline Schwer born 15 Aug. 2008 – 5:53pm – 6lb. 7oz. – 18.5in long – 33.5cm head circumference.

Everyone is doing well; labor was not easy, but it was fast; Davis is taking to her quite well so far.

More photos will show up here as they come:

http://flickr.com/photos/augie/sets/72157606785942759/

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | 4 Comments »
    None Found

Press Democrat photo for article: “What are you doing?”

Originally uploaded by Augie Schwer.

I am quoted in a recent Press Democrat article about Twitter and along with it came a photo that showed up on the front page of the business section.

Original article here:

http://www.pressdemocrat.com/article/20080616/NEWS07/806160307/1036/BUSINESS01&title=What_are_you_doing_#

The follow up I wrote for the Sonic.net Insider blog is here:

http://corp.sonic.net/insider/2008/06/16/what-are-we-doing/

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | No Comments »
    None Found

A list of things every man should own and the perfect gift buying guide for Dad with Father’s Day just around the corner.

Pocket Knife

Spyderco Kiwi

My favorite thing to say when someone asks me if I have a knife is: “I’m wearing pants aren’t I?“. This is the Spyderco Kiwi; which is what I carry; the perfect little pocket knife with great old time style.

Hip Flask

David Morgan Hip Flask

I gave my Groomsmen engraved Hip Flasks for my wedding and they saw action within minutes, so I can tell you from experience that these little things go over well with the fellas. I suggest a sturdy flask, one that can take a tumble, and isn’t so large that it’s readily noticeable; remember the whole idea of a Hip Flask is to be discrete when you are drinking.

The one pictured above is from David Morgan; it’s classy and not too shiny, but is probably too big to fit comfortably in your jacket pocket.

Lounge Chair

Eames Lounge Chair

Every man needs a chair to relax in after a hard day at work; a chair to sip spirits, a chair to watch something mindless on TV, a chair to put-up-your-feet in and nap in on a Sunday afternoon; a lounge chair dammit!

The Herman Miller Eames Lounge and Ottoman is at the far end of expense and style; something classy is nice, but above all else it must be cozy.

Coffee

Cuisinart Coffeemaker

Every morning my day starts with coffee; that’s why I suggest this little work horse: The Brew Central 12-Cup Programmable Coffeemaker from Cuisinart; it will make a good pot of coffee promptly every morning when you tell it too, and it’s durable, reliable, and easy to clean.

For the weekends I like a pot of Press Pot which takes a bit longer to make, but well worth the time if you have it.

Shave Kit

Cole Haan Pinedale Shave Kit

OK, I don’t know if every man needs one of these, but its simplicity and old-time style say Man to me; maybe it’s because my Dad always traveled with one, or maybe it’s because it’s a large pouch made out of animal skin that you throw into everything that makes you look and smell like a Man.

The Cole Haan Pinedale Shave Kit is a bit pricey, but I’m drawn in by the brown leather (that wears and ages so well) and understated style.

Hat

Brixton Castor

Every man needs a hat; it warms you in the winter, provides shade during the summer, and if worn properly can make you the classiest guy in the room.

My favorite for price and style are the ones made by Brixton. The
Brixton Castor is perfect for the coming Summer months.

Suit

JFK Aaron Shikler painting.

Every man must own at least one suit that fits. There are many occasions in our lives that call for more formal attire; weddings, job interviews, ceremonies of all types and funerals (yours or others). If you can afford it, get something made for you; if not, then make sure you get it altered to fit your body as it is unlikely you and the mannequins have the same proportions.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | 2 Comments »
    None Found

Just got this email; let me know if you are interested.

Hey Augie,
I’m working for Safari Books Online now, and we’re conducting some
usability testing to get a better idea of how techies use/would use
our product.

Would you be interested in stopping by our Sebastopol office on
Thursday for about 45 minutes? We’d really like to pick your brain,
and see if you can suggest any ways to improve our product. You don’t
need to be a subscriber, just a techie!

There is also a $25 gift card, if that helps =)

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | No Comments »
    None Found

Just got this email:

Augie -

Sonoma County Transit introduced free WiFi service on five buses this past
Wednesday (4-30). The WiFi equipped buses are our newest buses that are
equipped with high-back seats, luggage racks and reading lamps. The WiFi
buses will be deployed on weekday AM and PM express trips serving routes 20,
30, 48 and 60.

The equipment and service is provided by Parvus. Information on the system
can be found at:

http://www.parvus.com/products/ProductPage.aspx?ProductID=151

Thanks,
Bryan Albee

Bryan Albee
Transit Systems Manager
SonomaCountyTransit

707.585.7516
707-585-2927 fax
sctransit.com

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | 2 Comments »
    None Found

Number one egg collector in his class.

Originally uploaded by Augie Schwer.

All the practice putting his blocks away really showed when the Easter Egg Hunt came; kid was an animal.

The rest of the Easter photos can be found here:

http://flickr.com/photos/augie/sets/72157604345191557/

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, family | No Comments »
    None Found

The very non-descriptive error below indicates that you have reached the maximum value for the MySQL INT Data Type.

Communicator thread died because of error: Failed to execute mysql_query, perhaps connection died? Err=-1: Duplicate entry ‘2147483647′ for key 1

What you need to do if this happens to you on your PowerDNS records table is the following:

mysql> alter table records modify id BIGINT AUTO_INCREMENT;

If it happens to your domains table, then things get a bit more complicated and you should do the following:

mysql> alter table records drop foreign key `records_ibfk_1`;

mysql> alter table records modify domain_id BIGINT ;

mysql> alter table domains modify id BIGINT AUTO_INCREMENT;

mysql> alter table records add constraint `records_ibfk_1` FOREIGN KEY (`domain
_id`) REFERENCES `domains` (`id`) ON DELETE CASCADE;

The above worked for me, your results may vary.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, work | 1 Comment »
    None Found

Here’s a more concise script to feed Twitter an RSS feed; in this case the latest post to the Sonic.net MOTD Blog. The following code grabs the latest entry in an RSS feed, pulls out the URL and as much content as it can, shortens the URL and sends it all to Twitter.

#!/usr/bin/perl

use strict;
use warnings;
use Net::Twitter;
use LWP::Simple;
use XML::RSS::Parser::Lite;
use WWW::Shorten::Metamark;

my $feed = get(‘http://corp.sonic.net/motd/feed/rss’);
my $rp = new XML::RSS::Parser::Lite;

$rp->parse($feed);

my $it = $rp->get(0);

my $long_url = $it->get(‘url’);
my $short_url = makeashorterlink($long_url);
my $message = $it->get(‘description’);

$message =~ s/^.+ — //; # remove dash seperator.
$message =~ s/^\s+//; # Nuke any leading space; every char counts.
$message =~ s/\s+$//; # Nuke any trailing space; every char counts.
$message =~ s/[_]+$//; # Nuke any trailing underscores; happens when message is
short.
$message = substr $message , 0 , 117; # Twitter can only handle 140 chars.
$message .= ‘… ‘; # Append ellipse to denote further content available.
$message .= $short_url; # Append the shortened URL.

my $twit = Net::Twitter->new(username=>”sonicnet”, password=>”password” );
$twit->update($message);

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, work | No Comments »
    None Found

New Schwer arrival (aka Cookie) – Ultrasound

Originally uploaded by Augie Schwer.

We’ve nick named the newest Schwer “Cookie”; like Angela’s baking a cookie; we don’t find the sex out for a while, but due date is end of August.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, family | 1 Comment »
    None Found

I should have been using Twitter Feed this whole time to feed the Sonic.net MOTD Blog to the Sonic.net Twitter Bot; also instead of sending out a Tweet every time I blog, or find something cool via Google Reader; I’ll just tell Twitter Feed to track those RSS feeds and voila Tweets go out. Time to try it out.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | No Comments »
    None Found

Sonic.net updates via Twitter

February 16th, 2008

Get updates about your favorite ISP from Twitter; just send “follow sonicnet” from your favorite Twitter device. You can check out the sonicnet page to see what you’ll be getting.

The code for this is made possible by the Net::Twitter Perl module.

#!/usr/bin/perl
use strict;
use warnings;
use Net::Twitter;
my $message = "Super Duper";
my $twit = Net::Twitter->new(username=>"sonicnet", password=>"password" );
$twit->update($message);

Pretty easy huh?

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, work | 3 Comments »
    None Found

Fun with facial hair.

February 7th, 2008

Beard – front

Originally uploaded by Augie Schwer.

Angela was at a movie with friends; Davis was asleep, and I clearly needed to shave; thus was born the documentary: “Fun with facial hair”.

http://flickr.com/photos/augie/sets/72157603847033541/

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General | No Comments »
    None Found

Note: This has been in my drafts for a while, but I think it’s ready for publishing..

At first blush you probably would not expect the following to print “-1″; as you probably expect “system” to execute and return the return code from “echo”.

$SIG{CHLD} = 'IGNORE';
print system('echo');

This stumped me too, so I did some research.

From the Perl PIC Documentation:

On most Unix platforms, the CHLD (sometimes also known as CLD) signal has special behavior with respect to a value of ‘IGNORE’. Setting $SIG{CHLD} to ‘IGNORE’ on such a platform has the effect of not creating zombie processes when the parent process fails to wait() on its child processes (i.e. child processes are automatically reaped). Calling wait() with $SIG{CHLD} set to ‘IGNORE’ usually returns -1 on such platforms.

And perldoc -f system:

The return value is the exit status of the program as returned by the wait call. … Return value of -1 indicates a failure to start the program or an error of the wait(2) system call (inspect $! for the reason).

And wait(2):

POSIX.1-2001 specifies that if the disposition of SIGCHLD is set to SIG_IGN or the SA_NOCLDWAIT flag is set for SIGCHLD (see sigaction(2)), then children that terminate do not become zombies and a call to wait() or waitpid() will block until all children have terminated, and then fail with errno set to ECHILD. (The original POSIX standard left the behaviour of setting SIGCHLD to SIG_IGN unspecified.) Linux 2.6 conforms to this specification. However, Linux 2.4 (and earlier) does not: if a wait() or waitpid() call is made while SIGCHLD is being ignored, the call behaves just as though SIGCHLD were not being ignored, that is, the call blocks until the next child terminates and then returns the process ID and status of that child.

So on Linux 2.6 kernels if you auto. reap zombies by setting $SIG{CHLD} to ‘IGNORE’, then you can’t trust the return code from ’system’ as it will always be ‘-1′.

One solution would be to reap your own zombies with one of the popular zombie reaping code snipets.

sub REAPER { 1 until waitpid(-1 , WNOHANG) == -1 };
$SIG{CHLD} = \&REAPER;
print system('echo');

Be careful when using the special Perl variable ‘$?’ because it will have been altered by the call to ‘waitpid’ in your REAPER.

This is because when a child exits a SIG_CHLD is sent to its parent to see this in action try the code below:

sub REAPER
{ print "REAPER\n"; waitpid(-1 , WNOHANG); }
$SIG{CHLD} = \&REAPER;
system('echo');
print "RV: $?\n";

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, work | No Comments »
    None Found

It’s a Schwer Christmas.

January 5th, 2008

It’s a Schwer Christmas.

Originally uploaded by Augie Schwer.

Merry Christmas everyone; here are some Christmas photos from the Schwers:

http://flickr.com/photos/augie/sets/72157603608425815/

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, family | No Comments »
    None Found

I have released several PowerDNS modules to CPAN:

http://search.cpan.org/~augie/

PowerDNS::Backend::MySQL Provides an interface to manipulate PowerDNS data in the MySQL Backend.

PowerDNS::Control::Client Provides an interface to control the PowerDNS daemon.

PowerDNS::Control::Server Provides an interface to control the PowerDNS daemon.

The MySQL interface is based on code I have in production, but currently is not what I have running, yet.

The Client/Server Control code I do have running in production; although they currently only implement the features I needed to deploy.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Pownce
  • Slashdot
  • StumbleUpon
  • Technorati
  • TwitThis
Posted in General, work | 2 Comments »
    None Found