Feed on
Posts
Comments

Most of you have heard from the grapevine or facebook (this generation’s grapevine) that our son, Oliver Jackson Blount, was born on 2010-02-02 @ 14:35 EST. He was 9 pounds 15 ounces and 23 inches (they measured twice to be sure).

We had a home birth with 2 midwives and an apprentice, a doula, Anita’s mom (former NICU nurse) and sister Virginia (new nurse) in attendance… of yeah, and me. The decision to have a home birth was one we took very seriously and subsequently are very happy with; it being unusual is often the topic of conversation… but I can summarize with the following: We had a normal and healthy fetus inside a normal and healthy mom, everything looking like it would progress as “low risk” we choose to stay at home with the support of professionals vs. being put through the standard process mill at a hospital. It was great.

Anita apparently figured out all this birthing stuff the first time, because she was in charge for this one. She had some intense but intermittent early labor the day before. It died out in the afternoon and came back at night time, persistent but spaced far enough apart Anita could sleep for 30-50 minutes between contractions. In the morning we coordinated passing off Poppy to one of the volunteers who would take her, packed her bags and handed her off right about 9:00am. Seriously at 9:05 Anita switched from “early” to “active” labor and things picked up. (more reading on the stages of labor) Our Doula arrived shortly thereafter and picked up on a speedy progression and encouraged us to get the midwives here. We weren’t sure, since Anita was still talking between contractions and smiling and whatnot, but she continued to progress and we realized that things were in fact going fast. She basically dampened things down until the midwives arrived at about 12:30pm. Within minutes (again), poof, she was in transition… She pushed from about 1:15 to 2:35 when Oliver was born.

It’s one thing to have done research and internalized that labor is a natural thing for women to do as part of being human, and something wonderful to see someone go through the whole hard, messy, awe-inspiring process with such strength and grace. She will argue the point, I’m sure, but she was centered, prepared, and fantastic.

Whoever said women were the weaker sex had obviously never been to a child birth.

And now, the scary part…

Oliver was actually pretty stuck with shoulder dystocia and the midwives had to literally push him in a bit and pull out his arms so that he could come out (big baby? yeah, no doubt). He was pretty purple due to the process, but his heart rate stayed good. The midwives gave him a couple of breaths and we all (hopped up on adrenaline) rubbed on him and talked to him. We would have been more afraid if we hadn’t had this same thing happen to a friend of ours’ baby (now one of Poppy’s 1.5 yr old friends). He started breathing again and regained color well. Talking about it now I can be calm and explanatory, but it was harrowing for us to go through… the midwives said it isn’t common, but isn’t too uncommon either. Keeping the umbilical attached for a while helps assure backup support for a baby who isn’t breathing fast enough (and they had oxygen if needed, likewise we were ready to travel to a hospital should we needed to).

Once the first couple minutes of terrifying excitement had happened, Oliver was on Anita’s chest and we watched and talked and touched and processed. We finally got to look at him and he was very different than Poppy as a newborn. He has freckles and hair, blonde and perhaps a half inch long. He was confirmed a boy, and was certainly bigger than Poppy. He’s got the same monkey toes and dexterous fingers, same shar-pei-like rolls and folds in his skin, and somewhat similar features… He attempted nursing within minutes and in less than an hour he had latched on pretty well.

The midwives perform many of the same post-birth tests and procedures, so he got bended and prodded and whatnot… everything checks out on the “100% good” scale with no reservations.

We all hung around and talked and processed a bit more, and started sending out some notifications and made a few calls (though we were a bit remiss on that front, sorry to any who were missed). Finally Poppy came home and met her brother Oliver, whom she had been telling for weeks to “come out”. She was absolutely perfect, excited and perhaps not gentle enough, but for a 2-year-old she was just perfect. She held him on her lap, on one of our laps, and held his hand… she looks so big next to him… She is.

The last 24 hour has played out as you might hope for… Poppy went to school in the morning and help Oliver some before her naptime (as well as some special “Poppy” time). Several visitors in the evening, including one of Poppy’s 2yr old friends. People brought us food both nights [THANK YOU and we are really all doing quite well. Tomorrow is just us, which we are a bit apprehensive about, but we’ve gotta figure out how to handle two kids sooner or later…. scratch that, sooner it is.

Aside from the scary first minute there were no problems throughout the whole process and there continue not to be. (Yay!)

More on little/big Ollie: He’s still good size 9# 5oz at his 24hr checkup. One of the midwives said to Anita “congratulations, you just gave birth to a toddler” – indeed sometimes when you look he doesn’t seem all that much smaller than Poppy. On the other hand, he is… All of his skin is still krinkly as if he’d been in the bath for way too long (like 10 months) and whisper soft. He has a lot of baby rashy skin like Poppy had, but the freckles are different. He also had a bit of bruising on the face, but I don’t think I notice it (just reporting what others say). He stretched out quickly, instead of staying all curled up. The funniest thing is how vocal he is. He snuffles and snorts and grunts pretty loudly and not infrequently. Largely it’s rooting, but no matter, it’s hilarious. His cry is cute, like all newborns I suppose, but it can be quite loud and high-pitched at times… He’s opening his eyes when awake and looking around some, though very uncoordinated. He also tries to lift up his head and even using his arms to lift off of one’s chest while holding him vertically… Impressive, even if mostly unsuccessful.

On a reflective note, there’s something slightly sad about life in that we have to compare any experience to others and can not just hold on to it for it’s own sake. I’m constantly comparing myself and my thoughts/actions/etc in this birth to those of Poppy’s. I’m not nearly as tired since ~5.5 hours is a much shorter labor than 26 hours. We are at home, surrounded by friends and family, and (drumroll) we’ve had a kid before. He’s new and wonderful and perfect, but at the same time he “checks out” and fits into patterns we’ve already experienced. I admit I was disappointed to not have felt more “paradigm-shifted”… perhaps I was still a bit shell-shocked. Perhaps I still am.

Regardless, our paradigm has certainly shifted, whether I felt it in a gush or incrementally… We now parent two, and already we juggle who to put down, who to diaper, and what boundaries fit. Perhaps most importantly, we have to figure out who to give attention to, when to have special “alone” time and how wefit together as a family… Perfectly well, I think… Amazing how much difference one more makes and how much more “full” the word family feels in my mind.

Photos
My Favorites:
Videos
You can see Poppy coming home on Ollie’s birthday to meet him for the first time: http://www.flickr.com/photos/zeroasterisk/4326109383
You can see some of Oliver’s facial expressions and a few noises: http://www.flickr.com/photos/zeroasterisk/4328419329
(more coming)
Funniest Quote:
Poppy is trying to figure out what she has control over and loves repetivie games… especially when she can say “no”… so often we gamesay something to her like “Hello Poppy” and she will counter: “Papa no, Hello Poppy” mirroring our inflection…
When Anita was Laboring in the morning, before poppy left, she moaned and Poppy said: “Mama no, mmmoooohhhhhhhhh”… A few minutes later Anita said “oh my god” and Poppy jumped right in with: “Mama no, oh my god” — of course this is during a contraction so a double-whammy for poor Anita because we couldn’t help but laugh.

http://googleenterprise.blogspot.com/2010/01/modern-browsers-for-modern-applications.html

Many other companies have already stopped supporting older browsers like Internet Explorer 6.0 as well as browsers that are not supported by their own manufacturers. We’re also going to begin phasing out our support, starting with Google Docs and Google Sites. As a result you may find that from March 1 key functionality within these products — as well as new Docs and Sites features — won’t work properly in older browsers.

2010 is going to be a great year for Google Apps and we want to ensure that everyone can make the most of what we are developing. Please take the time to switch your organization to the most up-to-date browsers available.

I’m hoping this will be the killing stroke to a browser which has single-handedly caused me more frustration than any other piece of software, ever.

I’m a bit proud of myself on this one… I setup a simple, but clean and configurable, MySQL Master/Slave Replication Monitoring PHP Script:

http://code.google.com/p/php-mysql-master-slave-replication-monitor/ (docs)

It’s Open Source and free, I welcome comments, suggestions, and questions.

I think this will be quite useful for anyone who is setting up a pair of MySQL servers as master/slave and want to be sure their replication works as it should.

I love this fanout script for running the same command on multiple servers, just in case you’re interested:

http://www.stearns.org/fanout/fanout

[root@199564-6 scripts# fanout "$SERVERS" "cp /root/.ssh/authorized_keys /home/user/.ssh/"
Starting root@db1
Starting root@db2
Starting root@nas
Starting root@www1
Starting root@www2
Starting root@www3
Fanout executing "cp /root/.ssh/authorized_keys /home/user/.ssh/"
Start time Wed Dec 23 23:45:35 EST 2009 , End time Wed Dec 23 23:45:47 EST 2009
==== As root on db1 ====

==== As root on db2 ====

==== As root on nas ====

==== As root on www1 ====

==== As root on www2 ====

==== As root on www3 ====

Exiting fanout, cleaning up...done.

[root@199564-6 scripts# fanout "$SERVERSWWW" "/etc/init.d/httpd restart"
Starting root@www1
Starting root@www2
Starting root@www3
Fanout executing "/etc/init.d/httpd restart"
Start time Wed Dec 23 23:50:52 EST 2009 , End time Wed Dec 23 23:50:59 EST 2009
==== As root on www1 ====
Stopping httpd: [ OK
Starting httpd: [ OK

==== As root on www2 ====
Stopping httpd: [ OK
Starting httpd: [ OK

==== As root on www3 ====
Stopping httpd: [ OK
Starting httpd: [ OK

Exiting fanout, cleaning up...done.

[root@199564-6 scripts# echo $SERVERS
root@www1 root@www2 root@www3 root@db1 root@db2 root@nas
[root@199564-6 scripts# echo $SERVERSWWW
root@www1 root@www2 root@www3

A great way to execute the same commands on multiple servers… if you export the $SERVERS to a standard list, in your .bashrc or whatnot… it’s even easier. Of course, you’ll probably want to setup authorized_keys for your servers so that you don’t have to authenticate to each…

Darkauth For The Win!

I’ve been working with CakePHP for a few years now and am very happy with it.  I’ve been working with the 1.2 version for a few months (since it went stable) and playing with the Auth and ACL core components.

I’ve decided that ACL is too complicated for most setups, and Auth is fine, but not perfect.  So after some research, I switched to the DarkAuth component, which was much better suited to my needs.

The main reasons I prefer it are:

  • Role/Group based access out of the box, which is how I ususally provision security anyway
  • Easy to customize/tweak to suit my needs (more below)
  • Easy to setup permissions, easy to add to app_controller, without then having to explicitly allow public controllers/actions… instead I have to explicitly restrict controllers or actions.  Also it’s easy to check for prefixes and restrict based on that (more below)
  • Fast

So here are some of my customizations:

I like having some parameters set on the controller for easy access to “who is logged in”, so I put this in the bottom of the DarkAuth startup() function:

//finally give the view access to the data
$this->controller->user = $this->getAllUserInfo();
$this->controller->set('_DarkAuth',$this->controller->user);
$this->controller->isadmin = $this-> isAllowed("admin");
$this->controller->isloggedin = $this->isAllowed();

I like using the core security class for password hashing, which can easily be done like so:

var $securityImported = false;
function hasher($plain_text){
//$hashed = md5('dark'.$plain_text.'cake');
if (!$this->securityImported) {
App::import('Core','Security');
$this->securityImported = true;
}
return Security::hash($plain_text, null, true);
}

Here’s how to inject admin requirements based on the admin routing path (prefix):


if (isset($this->params["prefix") && $this->params["prefix"=='admin') {
$this->_DarkAuth = array('required' => array("admin"));
}

And some other useful controller tricks:


/**
* assigns the DarkAuth profile of a different member account, as if you had logged in as them
* also backs up your current DarkAuth profile so you can later "depersonate"
*/
function admin_impersonate($id) {
$this->Session->write('AdminDepersonate',array_intersect_key($this->user['Member',array('id'=>0,'username'=>0)));
$this->DarkAuth->authenticate('Auth',$this->Member->read(null,$id));
return $this->redirect("/members/home");
}

I reported this as a ticket, but as it turns out, it’s a design choice.. but it’s enough of a gotcha that I thought I should report it.

What happened

The $this->ModelName->create() set the defaults for the next save, which is what I would expect. But on my database there’s a default value set for the ‘created’ field (the standard for datetime columns in PHPmyAdmin) as well as the ‘modified’ and ‘updated’ fields.
So when the $this->ModelName->create() function ran, it populated the ‘created’ and ‘updated’ and ‘modified’ fields based on their default values in MySQL; which is “0000-00-00 00:00:00″.
Subsequently, when I ran $this->ModelName->save($dataWithoutCreated); the ‘created’ and ‘updated’ and ‘modified’ fields were not defaulting to the current timestamp when they were not set by the $data passed into save… since they already had a “valid” value.

The Solution

Of course you can modify your model with a beforeSave() code to strip those off, but the “real” solution recommended by Mark Story is to change the default value of those fields in the database to NULL. This is something that sounded foreign to me, since PHPMyAdmin defaults to “0000-00-00″ for date/time fields, but it seems to work fine and I usually will defer to recommendations of the CakePHP core devs (and usually am happy I’ve done so).

Sometimes, I want something only if it’s on the cheap, second hand, and easy… that’s usually Craigslist.

Often what I want isn’t available when I think of it… but it might show up sometime… I don’t want to have to look at craigslist every day (because I wont).

Google Alerts to the rescue.

If I’m in Louisville KY and I’m looking for an iPod (for example) I just setup an alert for: “site:louisville.craigslist.org ipod”

Of course, that might be too many results and flood the inbox, but for the more obscure items, it’s a wonderful tactic and tool.

A Month Of Site-downtime

So the website has been down from Oct 21st to Nov 23rd.  The old server got hacked (or really, a sister-server) and due to security concerns, we didn’t know what got owned and what was safe.  We already had a different server hardware to put in place, just had to set it up.  So we got that installed and up and running, but it took me a few more days to get around to implementing something on my site.

I’ve switched to a Wordpress controlled homepage, and I think I’m going to abandon the wiki (as opposed to simply not posting anything in it).

That is all…

Thanks,

-alan

Older Posts »

Bad Behavior has blocked 221 access attempts in the last 7 days.