4/22/07 07:25 am - Be my Friend!!Chelsea, where are you?!? You're so nice, be my friend!!! |
4/22/07 07:25 am - Be my Friend!!Chelsea, where are you?!? You're so nice, be my friend!!! |
4/12/07 07:25 am - Linky for Kawa!!! |
3/7/07 06:37 am - Haaaar!!!![]() |
2/15/07 06:12 am - SquattersLooks like a squatter has purchased my old domain and is now trying to sell it for $500! I won't link to it because they don't need the extra add revenue. Furthermore, looks like they've been doing this since 1998 which, I suppose, makes it a viable revenue source. Can anyone say "simple business model"? |
2/13/07 05:21 am - 1212: the number of hours I slept yesterday after arriving home from work and watching an episode of Mythbusters. The little nap that snow-balled. So much for having a life... |
2/11/07 02:17 pm - Split Pea SoupI tried my hand at split pea soup yesterday. I've never made split pea soup. In fact, I've only had it once... and the chef himself told me he didn't think it very good. It's not bad at all. Maybe a little bland, but that's mostly because I don't know what goes well with peas. I suspect that's largely to do with only experiencing peas next to spaghetti and garlic bread growing up. I served this recipe (or something close to it) to my wife and some friends from work. All four of us went back for a second bowl; with the option of alternate food available, I take this as the marking of a minor success. Nick's Vegetarian Split Pea Soup: 1 lb. green split peas (~2 1/4 cups) 2 cans veg. broth 10 cups water (yes, 3 quarts of liquid in total) 2 bay leaves 2 tsp. salt 1 tsp. pepper 2 med. onions, thinly chopped 3 carrots, chopped 6 yukon gold potatoes, chopped 3 leeks, chopped and cleaned 5 stalks celery, chopped and cleaned Start the night before by soaking the peas overnight. They absorbed a lot of water, maybe doubling or more in size. Just make sure they're covered for the duration. Rinse and drain the peas. Place peas in 5-quart pot, along with the veg. broth, water and bay leaves. Bring to boil slowly and cook covered on medium heat for 1 hour, stirring occasionally. Be careful as the pot will boil over while the peas are still raw and releasing their starchy goodness. Now would be a good time to add meat if desired (see below). Add salt and pepper, turn down the heat to low and simmer covered for another 1.5 hours, stirring occasionally. You want the peas to completely fall apart and take on a puréed consistency. Start chopping/cleaning the veggies. (you cleaned your leeks and celery, right?) Dump in your veggies and cook another 30 minutes or until everything is cooked the way you like it. Season with additional salt and pepper to taste. Serves 10+ (5 friggin' quarts!) Note on meats: Almost every recipe for split pea soup I came upon involved cooking with cured meats such as bacon, ham shanks, vienna sausage, etc. I've not tried the soup with anything like this, but I imagine it would add salt and smokey flavors which I suspect would complement the dish. If your meats are particularly salty, you may want to soak them for 30 minutes ahead of dropping them into the pot. |
2/11/07 10:51 am - Startup School 2007Startup School 2007 Anyone interested in sharing a ride and/or hotel in San Francisco over the weekend of March 24? Air fare from SEA to SFO looks like about $270 and the airport is maybe 20 miles from Stanford. On the other hand, the drive looks like a direct line down I-5, 850 miles or 14 hours. It's also the weekend before the cruise! |
2/10/07 04:39 pm - DisappearancesStupid cleaning; now I go and loose stuffs. :/ Where did you go, power cord? |
2/6/07 07:02 pm - Random BlargI feel spread quite thin and for no good reason. I'm changing projects at work (again) and this is day two of no motivation to code on anything, personal or professional. I finished Zelda:TP yesterday; the good-old-fashion duel to end it all was pretty cool. I think it's been over a week since I've opened my laptop at home which means the to-read browser window is brimming with tabs I don't feel compelled to push through. Aquamacs is a bitch and won't let me set the default font without spewing all over my beautifully hand-crafted config file. I wonder if I'll ever feel like I've learned enough to feel confident going forward using said knowledge. House is on tonight. *edit* I want new shoes. They're 100$ |
1/23/07 09:19 pm - Politics ^ Collegiate Fraternities ^ TerrorismThe making of an Al Qaeda operative A review of a link to a link? How Web 2.0 of me! (Oh, and those '^'s in the title: that would be the mathematical set-theory symbol for intersection. Just to clarify.) Yes, indeed. I read and appreciate kottke.org for his New York, NY, East Coast view of many of the same concerns I stumble upon as an American in (around) a major West Coast city. I suspect we both voted the same color in 2004, but perspective is defined by the episodes, not the conclusion. On with the Show. I link to this review because I appreciate the analogy kottke makes, comparing enlistment in Al Qaeda with enlistment in other self-sustaining social organizations. He references college fraternities and the military. Commercial branding, organized religion, and (American) party politics all came front-most in my mind. Something about all this seems a bit fishy to me, especially my mental associations. I'd like to feel these links out, maybe approaching them in reverse would be appropriate. Q: What to Party Politics, Commercial Branding, and "Islamist" Terrorism have in common? Easy there, conspiracy theorist. I'm not talking about how they're inter-related, though they may be; I'm more interested in what traits the individuals share in common. In as much as I can tell, and I'm by no means an expert (or even a novice) in any of these areas, their shared feature seems to be self-preservation beyond reason. That is, some great cause begot each of them, but once that cause was satisfied, they stuck around beyond their utility. These are all powerful motivating forces which drive people (and differences between people) to great actions. Powerful influences are not inherently evil; don't get me wrong. Q: When some great cause presses some equally great effect into being, how should the life-line of the effect be linked to and regulated by the life-line of the cause? Asked another why: Q: At what point after the demise of the Cause does/should the Effect expire? I'm not trying to say that the military should be completely disbanded in peace-time or that the friendships developed in college should expire after graduation. I am, however, arguing that designing products for a brand (rather than a brand for products) and constructing issues for the sake of maintaining party lines is akin to Escher paintings drawing... Okay, bad analogy. The point is that these are institutions which have out-grown their treatise and become entities in their own right with little ambition beyond self-preservation. Q: What good can possibly be provided by a social institution driven only by self-preservation? |
1/23/07 07:58 pm - 101 (ish) in 1001 (or so)As promised, here are my x goals to be accomplished in y days. This list is neither complete nor concrete, which goes for most everything else about me. Without further adieu... 101 in 1001 "Personal Development": - finish a (programming) project - get finances in order -- pay down (to ~limit*25%) credit card -- pay down (to ~limit*25%) credit card -- pay down (to ~limit*25%) credit card -- allot x$ every month for savings/investing --- determine x -- sort average spending into categories, accurate +/-50$ -- determine "goal state" for said categories - develop a plan for continuing education -- identify 7 desirable programs/schools -- detail 5 potential avenues for financing -- apply --- study for GRE --- take GRE --- prepare personal statement(s) --- prepare web site/completed projects for portfolio (see below) - ditch cable tv - cultivate my marriage -- go on dates once a month minimum (2007: 2/12) -- be self-aware (mindful?) of my emotions during high-emotion events (0/10) - write an articulate commentary on whatever suites me once a month minimum (2007: 0/12) - READ!!! -- establish a (revolving) book list -- communicate what i read - get tattooed!!!!!111!!! - start a regular exercise program (just 20 minutes/day?!?) - ... "Professional Development": - become a better programmer -- complete a cocoa project --- OCScheme --- macam driver (pca646vc) --- macam driver (pd1120) -- complete a lisp project -- learn emacs --- build a .emacs file comparable to my .vimrc --- learn 10 "every day" key-bindings (2/10) ---- incremental search forward ---- incremental search backward -- become a better touch-typer --- greatly reduce glances down to the keyboard --- learn to use the "home row" guides rather than the edges of the kb - build the website i've always wanted -- identify the features desired -- design system -- select host (based on above) -- develop components (0/x) -- design look - READ!!! -- establish a book list -- apply what i learn - ... So yeah. if anyone out there is working on something similar, please let me know. Maybe we can collaborate/encourage/rib each-other along the path to success. And yes, I am rather 2-dimentional. I'm open to recommendations regarding becoming more n-dimentional. |
1/15/07 06:45 pm - Printer ElationYesterday, we bought a printer, an HP Deskjet 6980. It was rather reasonably priced for having built-in wired and wireless connectivity. I was skeptical, seeing as how experience tells me that both printing and wireless networks suck, all by their lonesome. I've rarely been so wrong; setup was a snap and installation was a breeze. My only complaint was with needing to install the print drivers from hp; the existing drivers from the OS (tiger) install media did not include support for this printer. Once on the network, it advertised itself via bonjour/rendezvous/wtf, done and done!
|
1/13/07 11:42 pm - 101 in 1001At first, I kinda knocked it. Not sure why, maybe I felt intimidated. But then I thought about it. They started coming to me, one by one. Things I knew I needed to do; I'd wanted to do but thus far hadn't. One by one, my list is filling up. 101 items isn't so hard, but 101 tasks which can be completed within the timeframe, the totality of which can be accomplished, that seems tricky. I'll have a list up sooner than later, but in the mean time, "School of Rock" rocks harder than I expected. Or maybe it's the wine... |
12/20/06 11:28 am - Unit Tests the 3M wayUnit tests in 3 easy steps: (1) Acquire Post-It (tm) brand adhesive label. (2) Write the words "Unit Test" plainly upon the Post-It (tm) brand adhesive label. (3) Affix Post-It (tm) to the nearest poking device, commonly known as a stick. (4) (the non-step step inspired by our marketing department) Enjoy! |
12/14/06 01:19 pm - Cats vs. Dogshttp://www.digitalapoptosis.com/archives/c The Difference Between Dogs and Cats A Dog's Diary 7 AM - Oh boy! A walk! My favorite! 8 AM - Oh boy! Dog food! My favorite! 9 AM - Oh boy! The kids! My favorite! Noon - Oh boy! The yard! My favorite! 2 PM - Oh boy! A car ride! My favorite! 3 PM - Oh boy! The kids! My favorite! 4 PM - Oh boy! Playing ball! My favorite! 6 PM - Oh boy! Welcome home Mom! My favorite! 7 PM - Oh boy! Welcome home Dad! My favorite! 8 PM - Oh boy! Dog food! My favorite! 9 PM - Oh boy! Tummy rubs on the couch! My favorite! 11 PM - Oh boy! Sleeping in my people's bed! My favorite! *A Cat's Diary* Day 183 of my captivity. My captors continued to taunt me with bizarre little dangling objects. They dine lavishly on fresh meat, while I am forced to eat dry cereal. The only thing that keeps me going is the hope of escape, and the mild satisfaction I get from clawing the furniture. Tomorrow I may eat another house plant. Today my attempt to kill my captors by weaving around their feet while they were walking almost succeeded. Maybe I should try this at the top of the stairs. In an attempt to disgust and repulse these vile oppressors, I once again induced myself to vomit on their favorite chair. I must try this on their bed. Decapitated a mouse and brought them the headless body in an attempt to make them aware of what I am capable of, and to try to strike fear into their hearts. They only cooed and condescended about what a good little kitty cat I was. This is not working according to plan. There was some sort of gathering of their accomplices. I was placed in solitary confinement throughout the event. However, I could hear the noise and smell the food. More important, I overheard that my confinement was due to my powers of inducing something called "allergies." Must learn what this is and how to use it to my advantage. I am convinced the other captives are flunkies and maybe snitches.. The dog is routinely released and seems more than happy to return. He is obviously a half-wit. The bird, on the other hand, has got to be an informant. He speaks with them regularly, and I am certain he reports my every move. Due to his current placement in the metal room, his safety is assured. But I can wait. It's only a matter of time. |
12/12/06 03:33 pm - Twilight PrincessThe Legend of Zelda: Twilight Pricess Gamecube In my hands 40$ 3:00pm RAWW HAAA HAAAAA!!! |
12/6/06 08:37 am - C++ Deep Inheritance Sux0rThe more I use C++ for "real world" applications, the less I like its object implementation. Today's beef: deep-inheritance and wonky constructor calling. An example:
#include <cstdio>
namespace foo
{
// --- pure virtual class foo::A ---
class A
{
public:
virtual void do_something () = 0;
};
// --- class foo::A_impl ---
class A_impl
: public virtual A
{
public:
A_impl ()
: m_data (0)
{ printf ("foo::A_impl ()\n\tm_data: %d\n", m_data); }
A_impl (int data)
: m_data (data)
{ printf ("foo::A_impl (%d)\n\tm_data: %d\n", data, m_data); }
virtual ~A_impl () {}
virtual void do_something ()
{ printf ("foo::A_impl::do_something ()\n"); }
protected:
int m_data;
};
namespace bar
{
// --- class foo::bar::A_impl ---
class A_impl
: public virtual foo::A_impl
{
public:
A_impl (int data)
: foo::A_impl (data)
{ printf ("foo::bar::A_impl (%d)\n\tm_data: %d\n", data, m_data); }
virtual ~A_impl () {}
};
namespace baz
{
// --- class foo::bar::baz::A_impl ---
class A_impl
: public virtual foo::bar::A_impl
{
public:
A_impl (int data)
: foo::bar::A_impl (data)
{ printf ("foo::bar::baz::A_impl (%d)\n\tm_data: %d\n", data, m_data); }
virtual ~A_impl () {}
};
} // namespace baz
} // namespace bar
} // namespace foo
int main (int argc, char ** argv)
{
foo::A * a = 0;
foo::A * b = 0;
foo::A * c = 0;
printf ("--- foo::A_impl (10) ---\n");
a = new foo::A_impl (10);
printf ("--- foo::bar::A_impl (12) ---\n");
b = new foo::bar::A_impl (12);
printf ("--- foo::bar::baz::A_impl (14) ---\n");
c = new foo::bar::baz::A_impl (14);
delete a, b, c;
return 0;
}
Yikes, that was a bit hard and fast, yes? What we have here is an example of deep-inheritance with a pure-virtual base class (foo::A) and a cascade of implementations (foo::A_impl, foo::bar::A_impl, foo::bar::baz::A_impl). Down in main, we create an instance at each level using the parameterized-constructor (rather than the default constructor). The resulting output is a bit awkward (much like the spelling of the word awkward): --- foo::A_impl (10) --- foo::A_impl (10) m_data: 10 --- foo::bar::A_impl (12) --- foo::A_impl (12) m_data: 12 foo::bar::A_impl (12) m_data: 12 --- foo::bar::baz::A_impl (14) --- foo::A_impl () m_data: 0 foo::bar::A_impl (14) m_data: 0 foo::bar::baz::A_impl (14) m_data: 0 Eh? What happened there at the foo::bar::baz layer? Things were going so well! For some reason, foo::A_impl() is called, rather than foo::A_impl (int), and m_data is not initialized. Silent failures are always annoying, so let's give this one a reason to complain by changing the implementation of foo::A_impl:
[snip ...]
// --- class foo::A_impl ---
class A_impl
: public virtual A
{
public:
// A_impl ()
// : m_data (0)
// { printf ("foo::A_impl ()\n\tm_data: %d\n", m_data); }
[snip ...]
Now that there is no default constructor on foo::A_impl, we get the (un)expected error: constructor_blues.cpp: In constructor ‘foo::bar::baz::A_impl::A_impl(int)’: constructor_blues.cpp:55: error: no matching function for call to ‘foo::A_impl::A_impl()’ constructor_blues.cpp:22: note: candidates are: foo::A_impl::A_impl(int) constructor_blues.cpp:16: note: foo::A_impl::A_impl(const foo::A_impl&) Looks like the compiler is giving us a call to the foo::A_impl default constructor as part of the initialization of foo::bar::baz::A_impl, even though public virtual is used for all of the inheritance relationships which guarantees only one instance of each shared base-class will exist in our most-derived instance. The solution? Explicitly call all of the constructors you would expect to be called at each level. In this example, foo::bar::baz::A_impl must be updated:
// --- class foo::bar::baz::A_impl ---
class A_impl
: public virtual foo::bar::A_impl
{
public:
A_impl (int data)
: foo::A_impl (data)
, foo::bar::A_impl (data)
{ printf ("foo::bar::baz::A_impl (%d)\n\tm_data: %d\n", data, m_data); }
virtual ~A_impl () {}
};
And the output: --- foo::A_impl (10) --- foo::A_impl (10) m_data: 10 --- foo::bar::A_impl (12) --- foo::A_impl (12) m_data: 12 foo::bar::A_impl (12) m_data: 12 --- foo::bar::baz::A_impl (14) --- foo::A_impl (14) m_data: 14 foo::bar::A_impl (14) m_data: 14 foo::bar::baz::A_impl (14) m_data: 14 *cheer* Conclusion: ... I've got nothing. I'm scared that this behavior is GCC specific and the intel and/or microsoft compilers won't agree with me on this particular syntax. Time will tell. |
11/18/06 11:47 am - Thanksgiving '06 - Day 1The flight from Dallas was uneventful; the plane departed and arrived on time and without any issue. It was a smaller 'American Eagle' plane, one with only three seats across the isle. We landed in Cincinnati where Ellen was ready and waiting for us.
The day was a sleepless haze, though I do remember being at BW3's with Greg for the first bit of the OSU game. We had City BBQ for dinner, after which Andi and I went to see my parents and Judy who arrived at 5 pm that evening. A trip to target provided me with some shaving essentials. In bed by 10:00pm, I slept until about 9:45 and am feeling great for it! |
11/18/06 04:24 am - Thanksgiving '06 - Day 0BackgroundThis year, thanksgiving will, with any luck -- however unlikely -- be better than last. A bit more "on our terms", we have since August had tickets to spend about 10 days in Beavercreek. Already, things are not looking up as what was supposed to be a quiet first visit home is being trampled by a large number of my extended family dragging themselves back to the mother ship. I don't have anything specifically against my extended family when provided in single-servings; it is the crap that unfolds as they -- primarily my dad's side -- interact. Already, they've managed to add a level and kind of stress to which I have become unaccustomed, living 2500 miles away, and we don't yet (even as I write this) share a time-zone. Day 0 - DelaysPart 1 -- Ground TransitParking at Sea-Tac is expensive. Even with a private service, to park our car for the duration of the journey would cost in the realm of 200$. Thus, we elected to take the Kitsap Airporter and save ourselves about 120$. Our 11:25 am departure required we catch the 8:15 am route, so Byran from work kindly dropped us and our luggage at the Silverdale Beach Hotel where the bus stops. "Be there by 08:05," they said, "the shuttle leaves promptly at 8:15, whether you're on it or not." At 8:30, our ride had not yet arrived. A stop down an the hotel café yielded some of the worst coffee ever; undrinkable. Finally, 30 minutes late, the shuttle arrived. We loaded up and proceeded to make three more stops before getting on our way. Our 11:00 am arrival left us rather panicked; luckily baggage checking and security proceeded swiftly and without incident. Part 2 -- WaitingArriving at the gate, we had time enough to grab some lunch-to-go and board the plane. We were not-so-promptly informed that the radio responsible to informing air-traffic-control of the plane's location had failed on its previous flight and was being replaced before takeoff, a procedure lasting no more than 15-20 minutes. From here, my memory is sketchy due to reading and dozing -- at least two other systems failed and/or required maintenance before departure. Our plane taxied to the runway at 2:30 and we were in the air no sooner than 3 hours delayed our original departure time. Needless to say, we would be missing our connection at Dallas/Ft. Worth. Part 3 -- Air TransitThe flight was comparatively pleasant: comfortable temperature, decent air-flow, and friendly neighbors. The girl (girl? she must have been 20ish) next to us had her dog with her, a tiny 5 lb. pomeranian. This dog made Karma look like a brute and was quite sweet; only cried a little when her person got up for a bit and slept the remainder of the flight. The coffee was acceptable. Part 4 -- The ConnectionWe landed in Dallas, TX at 8:25 pm local time. We waited in the mob of passengers who missed their collection for word of a suitable alternative and were handed a hotel voucher. After the crowd subsided, we spoke with a ticketing-agent and managed to change our connecting flight from an noon-ish flight to Dayton to a 7:00 am flight to Cincinnati. After waiting for 40 minutes, we caught a bus to the hotel, the Wingate Inn North. The first good news of the day: a gas station and Denny's were both within walking distance of the hotel. Our meals involved some combination of pancakes, french toast, scrambled eggs, and 3 cups each of coffee. The server was very energetic and made it his mission to see a minimum of 4 cups of coffee each down us both. Something about catching up with him. The gas station provided a toothbrush and toothpaste as our toiletries were locked down in "a secured location" at the airport in our checked bag. Part 5 -- Here and Back AgainThe Wingate was a pretty nice hotel, one of the nicer places I've not slept in. Due to the general confusion regarding our flight status and not having anything even pretending to have boarding passes, we decided to catch the 4:40 am shuttle back to the airport. Three hours of sleep and a shower later, I started this log in the hotel lobby. The shuttle arrived early, though we had to wait on the driver to flirt with the woman behind the hotel counter. We're now at the gate and my computer's clock says 4:11 am. Our flight should be boarding in another 30 minutes. Meanwhile, Andi will attempt to locate our checked bag. WIth any luck, it will make it to somewhere in Ohio. My hopes of seeing a clean shirt are fleeting at best. |
11/11/06 12:00 am - the good life |