All Posts

An archive of posts.

First off, I’m no film maker. I like to be creative, and I feel I have a sense of artistry, but I’m totally at a loss when it comes to how to make film (or video as I guess it should be called now). Therefore, I fake it with gimmicks. You know, things like building a time lapse of me assembling a large LEGO project; you’ve seen the evidence of this before, I’m sure!

My most recent project was the massive Porsche 911 GT3 RS model that LEGO released in 2016, set number 42056. This thing is 1:8 scale...

October is here!

Okay, I admit it. I ran out of dedication. I have in the past 2 weeks, I've missed  half of my days. I think that part of the reason there is feedback; I am too nervous/shy/whatever to say "hey, you wanna see a card trick" to adults, but don't feel like Cora gives me a proper audience since she's 6. Without feedback, showing the tricks is hard to get right.

Any rate, I'm actually pretty pleased overall though; I started with more than a week left in August, so I did more than 30 days total, and I think that...

So, on the recommendations of one of the YouTube videos I watched, I bought the book The Royal Road to Card Magic by Jean Hugard and Frederick Braue. It was written in the 1950's, but the magician I was watching said that this book is solid gold. It covers a lot of the fundamentals of card magic, the shuffles, holds, passes, and other sleights. I started reading it and it seems to be very thorough. It mentioned in the intro that they would "rather have you emulate the tortoise than the hare". That's good because I feel like a...

Magic - Day 21

Didn't have a bunch of new stuff. I learned a couple tricks 2 days ago, but I feel like I need more in terms of technique, so I've done a lot of practicing. I've gotten pretty good at a double-lift, getting about 70-80% success rate on those. Of course, I still get stumbles and triple-lifts, so that's still ongoing. Always will be, I suppose!

Today I started another technique, the color change. This is another thing I can practice while just hanging around, I think, similar to how I've been practicing double-lifts and passes. Still not great with the passes;...

Magic - Day 15


All about forces today. I looked up what I should study next, what techniques, and this is what came up. I'm still practicing most of the rest, though I've slipped on my passes some in order to get up to speed on the double-lift. I'm gonna have to get back on those.

Magic, Day 13

Since my last post, I worked on a couple more passes (Hoffman pass and Riffle pass) then started on a couple different double lifts. Double-lifts are pretty tough, so I'm gonna have to work on them quite a bit to get them to be reliable!


Magic, Day 8


Magic, day 7



Haven't uploaded a video for the last couple of days because I was practicing doing passes; since I did a video on the classic pass a couple days ago, I figured I didn't have to upload basically the SAME THING.

Plus, it was really hot and I was shirtless at practicing time both days, so there's that; didn't want my "bod" all over the internet, causing sensations and crap.

Magic, day 5


Magic, day 4


Magic, day 3


Magic, day 2



Yeah, I figured it would end up being this. I mean, I really want to learn how to do neat card tricks (not that I have an audience, but still) and I've been watching videos of them for some time. I was trying to do something else, but I figured "why wait? 30 Days is for me to do what I want; I don't need to balance things from want to need to whatever else".

And so I decided that I'm going to do magic! For the next 30 days (plus 11 because I'll just carry it through the end...

Magic, day 1



It seems that I get to cross another thing off my list. I've decided to give the baseball cards away. Mayhap I'll regret it at some point, but it's easier for me to just give them away instead of going through all of them or selling them. Someone else will be able to enjoy them more than I will... maybe. Who knows. It's possible they'll get disappointment too. But, if they do, at least I'll have the room back :-)

So, starting tomorrow, I will do one of the REAL ones, one of the tasks which is straight for improvement....

Yeah, so that took significantly less time than I'd imagined. All the posters are all photographed, I've thrown some away, and I've created a post on imgur ( which shows the posters I am gonna try to give away. Or sell. There's a couple which may get me some money, but looking at eBay I don't expect to get a bunch. Oh well, c'est la vie. If nobody at work or on Facebook wants them, I'll try listing them for like $15-20 each plus shipping; a poster tube is going to be about $2.50 per, and if I can...

And I'm Done!

Finished with the photos today; I guess now I have to figure out what's next. I'll transfer a few extra bucks to my savings account for my reward. Perhaps I'll use the money to buy one of the cameras I've been looking at. Or something; who knows?

On to what's next. I'm thinking to continue with either baseball cards or with posters; one of the other there's-an-end-to-the-project things. Hmmm...

(opens, enters "coin flip")

Comes up heads; guess that's posters.

So, the task now is to go through my posters and photograph them and catalog them. I don't know how...

10 Days In

I have 10 days down and am right on track. However, I had a thought about the rules of this thing. I think it's time to update the rules. Oh, and probably time to write out the rules or something. Maybe. Perhaps.

So, the thought I had was that there are two different types of things I've been looking at adding to my 30 Days task calendar and, as such, I should probably treat them differently.

First, there are the open-ended things which I can theoretically continue forever. Some examples:

  • Take a picture every day
  • Practice a skill every...
Back At It

I'm back at it! Well, right this very instant, I'm typing this before I get back at it. Probably not the best strategy, but screw it!

Any rate, I mentioned gamifying this, adding metrics, etc. Unfortunately, I don't recall what exactly I had in mind (or if, indeed, I had anything specific in mind), so I guess I'll just have to wing it!

Gamifying to me means that you make a game out of it, which adds the concepts of scoring, set bounds, and winning or losing. Once this is a game, it's a challenge. An example of this would be...

Ramblings in Carmel

So, I'm not going to be able to process 100 photos per day today or tomorrow; I'm enjoying a nice weekend in Carmel with Shanin. Darn!

This brings to mind what the 30 Day challenges mean to me. As mentioned, it's a way to improve myself gradually; one thing at a time. Also, it gives me a chance to see if I take to any particular things without putting a bunch of effort, time, or money into it -- just get my toes wet, as it were. Some months, like this one, it will be things I want to accomplish...

An observation

One thing that I found was that I have a bunch of things I want to start doing; I find myself not wanting to wait for the next month to add another thing to do for 30 days. Of course, this is something which can contribute to my not succeeding; if I don't focus, it's harder to accomplish one thing. So.. focus!


Well, I didn't get 100% completion on my 30 Days goal in July; I got 19 days out of 31 so, while I did the majority of them, I didn't quite get 2/3s. Turns out it's kinda difficult to do two things every day: find something that's photo-worthy every day (some days I kinda cheated, but overall, I feel I stuck to the spirit), and actually remember to do that. I'd often find myself at 11:30 at night saying "Damn! I forgot to take a photo!"

Ultimately though, while the 30 Days thing is supposed to be a stab at setting...

August 2017 30 Days

This month, every day I'll process 100 pending photos in Lightroom


I haven’t posted an update since December 2015 and that’s a long time. It is time to remedy that! Therefore I’m going to start posting on a regular basis again, yaaaay!

Generally, I’m gonna be posting the same mix of stuff, filling in some of what has gone on in the 15 month gap, and then posting updates on my projects.

Sounds like fun, right? I’m stoked! Can’t wait to get the next post up. See you then!


For Christmas, I decided to make a nice cutting board for Shanin because, you know, who doesn’t like a cutting board? After looking around for a while, I finally found a pattern which was close to what I wanted.


Found on Pinterest, of course

The first step was choosing wood. I needed three colors or species for the fox and a fourth for the background. Of course, the orange of padauk was my first choice for the body of the fox, and I figured that maple would work for the white fur bits and wenge or ebony for the black.


Timelapse time again! This time, it’s the massive Crawler Crane (#42042), complete with various actions!


This moves forward, pivots, and the crane… picker upper thingy goes up and down, and the scaffolding for the crane also raises and lowers. It’s pretty great!

I tested its lifting capabilities using a glob of 4 packs of Bucky Balls which weigh close to 1 kg and, while it bogged down, it actually lifted them and was able to turn! The second half of the video below is sped up by 2x, so it took a while, but it’s understandable considering


Hey all, finally did another timelapse of LEGO assembly. Today’s treat is the venerable Coruscant Police Gunship (set #75046) from the Clone Wars flavor of Star Wars.


My buddies Jordan and Angela got it for me for my birthday (thanks!) and so last night I whipped it all together. I used the same method for the timelapse as I did for the Tumbler, and it really makes creating these things super easy! Check it out!

Python Scoping

See, Python has a fun interpretation of scoping. Let’s say I define a variable and a function at the same level, then access the variable from the function; the function will read the variable just fine. This is because Python looks for the variable in the current scope, then bumps up a scope level, looks again, etc. until it finds it or runs out of scope.

my_var = 'abcd' def my_func(): print my_var my_func() > "abcd" 

However, things change when you write to...

What to do, what to do? That’s always the question, isn’t it?

Let me first qualify: I recognize that I’m lucky that I have the luxury of enough time that I have to deliberate on how to spend it. But this just means that I have the luxury of choosing from many things I actually could do; I just don’t have enough time to do them. Of course, this really is just me realizing some of the angst People Of A Certain Age start to feel: What do I want to have done? How would I like to have spent...

logo After I posted how much purchasing a console and ALL the sets for LEGO Dimensions on Facebook, my buddy asked “Yes, but how many hours of entertainment will it provide? If you completely neglect all of your responsibilities and assign a ridiculously high value to recreation, it’ll pay itself off in days”

My response: That’s how I typically do my calculations. My typical “entertainment” value is the movie: $15/100 minutes or ~$9.00 per hour. That’s easily “worth it” to me, because I have no problem dropping that $$ for a movie. At that level, for the...

We had some ugly sliding doors on the closet. I mean ugly. Nice and 70’s brown. Top that off, the doors swung back and forth very easily and fell off even easier. Every time Cora would open the door, it would come off the track, making frustration happen. So, we have to do something about it.


Pictured: ugly

For a replacement, we have our eye on some louvered bi-fold doors. Not too expensive, good looking, easy to install, you know. All the good stuff.

Well, “easy to install”; that’s the hard part! The first thing...

Spice Racks for Mom

So, for Mother’s Day, Mom wanted some spice racks. Well, the plastic ones on Amazon weren’t very good looking (in my humble opinion) so I decided I was going to build some for her instead. Of course, I just finished them last weekend, but I DID get the first of three to her on Mother’s Day! Hey, and the last two came early for her birthday!


In the picture above, you’re looking at the side of the spice rack. They go on the shelf rotated 90 degrees from that, so you’re looking at them from the...

I have a tragedy to report. Last month, one of the bastions of history has melted away. Southern Lumber, the most awesomest place to go for wood in San Jose, has closed its doors after 110 years in the business. The worst thing is that the business was still profitable; the owner just wanted out and, instead of selling the store to someone who would keep it open, just sold it to some real estate folks.

It was a shock; I was going there to price out some stuff and I get there and see “Permanently closed” on the door....

Mr. Nobody Review

TL; DR: Interesting, thought-provoking, philosophically deep. Worth a watch

Mr. Nobody

So, for reasons unknown, I feel like I really don’t like Jared Leto. I have no idea why. I mean, I really like many of his movies (or, perhaps more accurately, movies he’s been in): Requiem for a Dream, Girl, Interrupted, Fight Club (not very memorable, sure), Lord of War, plus some others. But man, I just can’t shake the feeling that I don’t like him.

Jared Leto I mean, doesn’t he just look punchable?

But, once again, I’m impressed with his...

TL;DR: Absolutely amazing game (as is Dead Space)… but certainly not for everyone.

So, I just finished Dead Space 2, the second installment in the space horror shooter series, and boy, do I hate this series. Okay, that’s a lie. I hate this series like people hate horror films, which basically leads to the cliched “I love hating this game”.


The series is told from the point of view of Isaac, a maintenance engineer sent to repair the communications on a mining ship, the Ichimura. Upon arrival, it is clear that something horrible has occurred; in...

If there’s one thing which you’d think computers and software had solved by now, it’s photos. There are so many different ways to organize, share, and safekeep photos out there that you’d think one would get it right. Failing that, perhaps it would be easy or simple or pretty straightforward to use a combination of two or more of these products to meet all your needs. Alas, I have been unable to find one.

brown ugly couch I did find $1.77 and a VTA token in the couch, though

So far, I’ve gone through Picasa (now...

Man, this is the first sentence into this post, and I already hate myself. I don’t wanna write a post on Breaking Bad; it’ll be just too band-wagony for me. I created the title, that’s enough, right? Can I stop now?

How about now? I waited like 10 minutes before writing this line…

Get on with it Will you get to work?

Okay, FINE. We’re gonna do this. The real title should be “Why I Should Eat My Hat About Breaking Bad But Was Right About Hating It”. I’ve avoided the Breaking Bad hype the entire...

Death of a Project

It’s never easy saying good bye. Sometimes you see it coming, sometimes you intuit that it’s going to happen, and sometimes it smacks you out of left field. Today’s departure was of the smacking variety.

While this is less the project being blatantly axed and more the project being put on hold (at least, that’s the messaging), I’ve only seen one project come back from the shelf, so I don’t hold high faith for this one. I’ll be doing the best I can to spend a cycle or two on it to keep it up to date - you know,...

In the last installment, I brought up the fact that I was trying to save time because one operation was going to take a couple thousand minutes to complete. Let me describe to you what I did.

Based on my original experience with RAID (albeit, with RAID 1), it didn’t take too long to complete, and I could use the file system while it completed. One of the complaints I had in the last post was that I wouldn’t be able to use the file system while it was resizing; I didn’t know that until I went down this path....

Let’s see, where did I leave off in the last installment? Oh yeah, setting up the level 5 array with just the two disks; this is before adding the third and growing it. We had just started the new array and it was resizing/repairing/whatever. Weeeellll… a lot has happened since then. Let’s go through it.

$ cat /proc/mdstat Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdb1[2] sda1[0] 1953381888 blocks super 1.2 level 5, 512k chunk, algorithm 2 [2/2] [UU] unused devices: <none> 

This is what is seen when...

So, I didn’t get started with this on Thursday. In fact, it wasn’t till Saturday that I decided to actually take the plunge. And now I’m stuck in the middle of it, waiting for… a long time. Since I’m stuck, I’ll tell you what I’m doing. Hell, maybe later I can just look this up and see what I did if I ever need to do it again!

First off, I made sure my data was backed up. The backup to my external hard drive is complete, but not to online; that will still take a couple weeks, and I’m...

I’m sure we all have one of those “there is NO WAY I could possibly use that much hard disk space” moments, and I’m sure that for each one of those moments, we all have a matching one where we say “wait… what? 95% full???” Personally, I’m still reeling that I purchased a microSD card for my phone which has several orders of magnitude more storage than my first “there is NO WAY” moment with a 1.44MB 3.5” floppy.

Side note; I HAD TO do the math. One 3.5” floppy is 90mm x 93.7mm x 3.3mm. One microSD card is...

In the Field system I built with Python (covered in the Field Encapsulation Pattern series of posts, found here), I ended up coming across an interesting problem. I thought I’d post my thoughts on this issue and how I ended up solving it.

As a quick recap, the system defines classes which are definitions of fields on a data model, representing the rules on how to store, represent, and validate, say, a date, a url, etc. Each of these fields will have a list of validation rules that it has to meet. An example of this is an IntegerField...


On Monday, August 6th, 2012, we all stood with anticipation, talking, excited. Champagne is being prepared, and some is being drunk somewhere. Anxious glances at the countdown clock, at JK, at each other. We hear (faintly, because it’s coming from a laptop) Europe’s The Final Countdown start as the clock dips under :30 seconds; the video is up on a screen. The gong mallet is prepared. 10! 9! 8! Everyone is counting down the clock. 7! 6! 5! 4! 3! 2! 1! Cheers as the song kicks in, as the gong is struck, as the champagne...

If you’ve followed the tech world as it pertains to start-ups and code deployment strategies, one of the buzzwords you may have heard is “service-oriented architecture” or “SOA”. You can get quite a lot of hits doing a Google search for those terms - assuming that you ignore all the Sons of Anarchy links, of course.

Sons of Anarchy

Significantly cooler than the SOA I deal with

It’s one of the hot topics nowadays, in line with things like “Agile” and “Hadoop” and “funded”. At my work, we’re using SOA as well; in fact, I’m...

Trying out Mailbox

Since I got a new phone (Samsung Galaxy S5) and since it’s my first foray into full-time android use (I dumped my iPhone for this one), I get to learn all about new apps! Sometimes this is exciting, sometimes not so much because I don’t want to spend all my time learning the apps, you know? Any rate, one of them was enough of a paradigm shift that I thought I’d write about it.

Mailbox overview

The app is simply called “Mailbox” ( and, just like its name suggests, it is an email client. However, there’s...

Baraka Review

TL;DR: Riveting without a plot and stunningly beautiful

If you’ve ever seen a film that has amazing cinematography with a less-than-stellar story and were still glad you saw the movie, then Baraka is for you. It ramps the story down to… oh, about 0 and the cinematography up to 11. It’s made simply for the gorgeousness of the world and is completely successful at it.

Baraka poster

I’ve seen this several times and have been mesmerized by it every time; it’s one of the few movies I absolutely had to buy on Blu-Ray because of the sheer...

Shanin and I went to San Francisco for a delayed anniversary and to get away for a while. We had a great time, though we did walk a long way! On Thursday, we did two round trips from our hotel behind City Hall (Inn at the Opera, quite a nice place) to the Tenderloin for dinner and because I forgot my card there (oops!): about 3 miles. On Friday, we did a long hike from our hotel down to Market St., up to the Castro Theater, from there on an urban hike to Twin Peaks and back, to the...

Moon Review

TL;DR: Man, I really wish they made more movies like this. Amazing!

First off, I wanna say this: virtually every synopsis of this movie that I’ve read has said something about a plot twist. Don’t go into this expecting a plot twist. Well, at least how we typically expect plot twists to be. The Usual Suspects (hey, another Kevin Spacey movie)… that has a plot twist. This movie just has a very interesting plot.

Moon movie poster

That said, man, what a great movie Moon was! I had heard good things about it from… somewhere… and said...

So, I like making rings. I’ve been working at getting better at it, but I haven’t done too many lately. The only problem with making rings is you kinda have to have places to put the rings. Now, I wouldn’t mind selling some rings (hint hint, if there’s anyone out there who wants a custom-made wooden ring), but at the moment, I’ve only got a few people to make for.

Of course, one of those people is Shanin. And here’s the latest one I made for her:

bent wood ebony ring

This isn’t the first bent wood...

So, I came across something pretty interesting while coding in Python today. I was writing a system in which I have to pass a function as an argument to be called later; a.k.a. a callback. I’ve done this in a lot of different contexts in languages like Python, PHP, JavaScript, Java, and ActionScript, so that’s why I was taken aback by my experience today.

I have one class which takes a function or a list of functions for calling later; the signature of the function will look like this:


I missed the update last Thursday. Well, not so much “missed” as “decided not to do”; I was beat. I’ve had this week off, so I’ve done more physical work than usual. But, to make up for it, a double-post!

Would I have done a post on Thursday, it would have been about the fact that I put up the roof on Cora’s playhouse! The first step was to put up the framing for it.

roof skeleton

This was fairly simple to do; I had already done most of the cutting as documented in update 4....

A few people have asked me how I put together panoramic photos like these, so I figured I’d write a post about how I do it. Frankly, there’s not much to it; I’m using a few tools which make it pretty easy. It’s much tougher using Photoshop or the GIMP (an open-source program much like Photoshop) because of all the manipulations you have to do to the photos, rotation, skew, mutations, etc.

The main tool I use to take a lot of the guesswork out of it is Autopano Pro from Kolor. It’s super easy to use, and...

Okay, so I’m not going to gripe too much about having a rainy day. I mean, we need the rain. We’re in a drought. All the water helps. It’s just one day. Everything is fine.

Bah, it’s a lie. I really wish it wasn’t raining so I can work on the playhouse some more. I’m poised to make a ton of progress in the next couple days, and I can’t do that if it’s raining! I mean, Saturday, I went to the wood store to get the remaining 2”x4”, 2”x6”, 2”x8” and 1”x6” lumber I need to do the roof’s...


TL; DR: Read this. Like today. Or listen to it. Whatever. It’s amazing.

So, lemme get this out of the way: I’m developing a real thing for Neal Stephenson. After Snow Crash I was certainly intrigued; it’s a good book. Then Cryptomonicon. Quite different by all means, but still right up my interest alley. It almost seems like he’s writing specifically for me, and I don’t even know it. And then, of course, just look at the guy:

Neal Stephenson

Epic, right? He’s either the most intelligent person you’ve ever met, or he’s a complete wack-job.


Quick update: I finished off the front wall and got it in place. Due to some bad calculations, it turns out I wasted some wood and had to go and get two more 2x4s. They’re the dark brown ones in the picture below; I ended up getting pressure treated ones from Orchard rather than waiting till I could get to Southern Lumber again, and Orchard has a VERY limited selection of lumber.

front wall in place

The calculation I messed up can be summarized as “number of windows”. When adding up how much wood I’d need, I...

Updated Meta tags

Hey all, since I gave you the Tumbler timelapse two days early, I’m taking this opportunity to do a little upkeep and behind-the-scenes modifications. All I’ve done is update the OpenGraph meta tags so my posts show up better on Facebook.

That’s it.

Nothing else.

No, seriously.


Okay, so I’m supposed to wait till Tuesday to release this post… but I don’t want to wait. I think this is damn cool, and I’m gonna share it with you NOW! I made a timelapse of assembling The Tumbler!

The Tumbler

As you may know, I really like Batman. I mean, I’m not a fanatic or anything, but I’ve seen all the recent live-action movies, played the recent video games, etc. I liked the first two iterations of the Tim Burton reboot of Batman, the ones with Michael Keaton, and bought the model of The...

So, I almost didn’t get a post in today because I was trying to hurry a treat for y’all. However, I decided to not rush so much and to instead give you a review of one of the movies I watched while I was working on the treat: Synecdoche, New York.

Synechdoche, New York

First off, the pronunciation of the city is kinda like a trick question: if you know, you know, else you’re gonna have a bad time. Of course, a quick Google search will reveal that this is a part of the trick. See,...

In preparation for other ideas, I decided to try out a few things to make a timelapse of me building one of my recent LEGO purchases, set 10246, the Detective’s Office. And here it is! Video first, details later, right?

I’ve been wanting to get another modular building to go with my Grand Emporium set, but just hadn’t gotten together enough desire and money to get it. So, I saved up and got the Detective’s Office. I really wanted to get the Palace Theater, but they didn’t have it in stock;...

After some time, I finally have started making forward progress on Cora’s playhouse again. And I’ve made quite a bit of progress since I introduced the Fencerator 9000™. Just have a look-see:


In fact, quite a bit of that progress is a direct result of using the Fencerator, as cutting the lumber to length was pretty quick (I got most of it done in a matter of a couple hours) and pretty accurate. Of course, I didn’t include any pictures because cutting lumber is… not interesting.

I spent about an hour on Saturday putting together...

A Chair for Andrew

Since I’m preparing a couple more in-depth posts and will be occupied with other things on Saturday, I’m gonna release this post early AND it’s gonna be a brief one about something I knocked together a few months ago: a Green Bay Packers themed Adirondack-style chair. I made this for my brother Andrew because he is a pretty big Packers fan and… well, because it just kinda sounded like a good idea.

The chair

It was pretty stressful making it as I didn’t give myself much lead time; my wife and I only decided it was a...

Fencerator 9000™

Quite some time ago, I started building a playhouse for Cora. I had to put completing the project on hold for a while, but now I’m ramping up to do the next stage. I’ve got the lumber, the hardware, and some time coming up, so I’m kinda stoked. As I’ll be doing framing for the walls, much of this stage will be cutting 2x4s to length.

Since I don’t have a chop saw, and since cutting 2x4s squarely AND quickly can be difficult, I decided to make a jig. Behold, the FENCERATOR 9000™!

Fencerator 9000™


Happy St. Patrick’s Day!

It’s come around again, that fine day where we go around pinching people if they’re not wearing green. Ostensibly, this is because… yay Irish people? Or something. All I see is another opportunity for college-aged kids to drink heavily (not that they particularly NEED a reason) and exercise good-spirited stereotyping. That said, I’m wearing my St Patrick’s day shirt:


To top that off, it’s the same one I’ve worn for the last…. 7 years? Something like that. Heh, I think I’ve only worn it 7 times, too :-)


Slouchy Beanie

The latest in my “Knitting on the Train” series is a slouchy beanie!

Slouchy beanie

It took me a few days to make, but I think almost half of that time was only the last few rows. I knit this one in the round, using a broken rib stitch (one row knit-purl, one row all knit). This was almost my first time using double-pointed needles; that’s why the last few rows were so tough!

Slouchy beanie on me

I kinda like the way it fits; not too tight, doesn’t really have a beanie look....

We’re here! To now, we’ve come through part 1, part 2, part 3, and part 4, and now we’re ready to wrap it up. So, without further ado, the conclusion to the Field encapsulation pattern!

Where are we?

At this point, we have field objects, we have validation functions, have required, we have read-only. What’s left? Flashing back to the requirements, we need a serializable representation and a default value. Let’s throw those in!

Serialization fun

I use json. A lot. It’s cross-platform, easy (enough) to read, has far less bloat than XML, and...

New Site Layout!

Hey all, in lieu of finishing the field encapsulation series, I thought I’d bring you this announcement: I made my site prettier! Woo! Please take a look around and tell me what you think!

I based this on a couple sources. The main structure and many of the accoutrements are based on KenMercusLai’s theme BT3-Flat and the color scheme came from’s theme Mongoose. The pictures on the main page are all ones I took; I’ll be changing them up from time to time as I go through old images or take new ones I like.

It took...

Here we are in the fourth portion of our trek to create a field encapsulation pattern in Python! For previous legs of our journey, you can try here, here, or here. Otherwise, let’s kick it off!

Where are we?

By the end of our last meeting, we had made pretty good progress. We’re able to type fields on an object, mark them as required so we must provide their values when creating said object, and mark attributes as read-only so we can’t change them after the object has been created.

But, before we go any further...

Welcome back to creating a field encapsulation pattern in Python! As you may be aware, this is the third installment in the series. To catch up, you can read part 1 and part 2; I’ll wait. Ready? Let’s go!

Where are we?

First, let’s review the requirements for this project:

  1. Type safety: we need to be sure that an attribute is of a defined type
  2. Required: we need some attributes while others are optional
  3. Read Only: certain attributes should be read-only
  4. Serialized representation: during serialization, we need to convert the unserializable value to one which can...

\r\n So, when we left off in the previous installment <a href=\"\">found here</a>, I had determined what the success requirement for setting up full Ubuntu-ness to my liking. Now, we're actually going to do it! Hold onto your butts!

Get hard drive ready

\r\n As mentioned I was going to dual-boot Win7 and Ubuntu until I'd determined I'd gotten everything I needed. The first thing to do is to put aside some space for the installation. I've got several HDD's and an SSD; I'll want it on the SSD eventually, so might as well put it there first.

Make room


So, I decided to, once again, try out Ubuntu. The main draw of it is the downright usability and... serveriness aspect of it. Command-line which is part of the real OS (not like Windows), ability to host a site locally rather than from a VM, if I so choose, etc. However, I have been burned int he past because, well, with Windows comes the rich environments one would expect to exist for an OS which is the vast majority of the market share. OSX has great support too, don't get me wrong; it's a great combination of lots of support...

This is part 2 of a detailed series on my implementation of a field encapsulation pattern, continued from part 1. If you recall from the last time, we introduced the idea of getters and setters, properly called “properties” in Python. If you don’t recall, please take a moment and hit up part 1 before going on. Now, here we go!

Where we left off, we were able to protect our attribute by using decorators to create a getter and a setter which will protect the field from bad values. Here’s what it looked like at the end of...

Some background

At work, we’re currently spooling up more and more Python, which I think is great! I love working with Python. However, with this shift, we’re moving away from an ORM framework in PHP which had things like attribute validation, and we’re not using one in Python which does the same. So, now I’m up against validating in a dynamically typed language efficiently and with the least amount of code possible. The thing with a dynamically typed language is that you can assign whatever value you want to whatever variable you want; if I want attributes of this...


TL;DR: Awesome. Read it.

For my next installment in the reviews series, I listened to William Gibson’s debut novel Neuromancer from 1984, narrated by Robertson Dean. Now, I’ve been listening to audio books and podcasts for some time, trying to alleviate the boredom of commuting from San Jose to San Francisco (and, previously, from Fairfield to Sacramento) while making up for lost reading time, and it’s not frequently that I come across a presentation as good as this one!

Neuromancer book cover

I’m sure that people have done some comparisons, at least in the feel of...

Trip of the Tongue

TL;DR: Read it if you like Bill Bryson or history or languages.

Since I obviously have amazing opinions and taste, and since most people aren’t afforded easy access to them, I figured I’d kick off a new feature on reviews! This is where I consume some piece of pop culture - a book, a movie, perhaps a video game, maybe some music - and then I tell you exactly what I think about it. C’mon, you know how reviews work. The main difference between all other reviews and my reviews is that I’ll be accurate and honest! I’ll also...

Monitor Stand

This isn’t news or anything, but apparently sitting in a chair all day is pretty bad for you, even if you exercise. By contrast, using a desk which allows you to alternate between standing and sitting can alleviate much of the the problem. So, when my work asked me if I wanted a standing desk, I said sure, but I told them I didn’t have a doctor’s note or anything; the official policy was that I’d need a doctor’s note to get one.

Flash forward a few weeks and I was asked if I...

Cora's New Scarf

Because there’s only so many things I can make for myself, and because I am enjoying knitting on the train (except for the nasty knot I get between my left shoulder blade and my spine), I decided to make Cora a scarf.

Moss stitch scarf

We went to Michael’s and I let her pick out the yarn; this one is… red. And very soft. And… bulky weight? I forgot to write the details of the yarn down. Any rate, red is Cora’s favorite color (and she picked it out), so it works.

When it came to the...

Fun With Trello

Get productive!

Over the last few weeks, I’ve decided to become more productive by doing things rather than not do things. One of the biggest time sucks I pinpointed was browsing Reddit, so I decided to just completely stop. Suddenly, I found HOURS per day to do things that I’ve been beating myself up for not finishing.

Now, the next big question: what should I do?

Task Management

The big problem here is that I have a bunch of different things going on (as you might glean from this blog): software projects, woodworking projects, home repairs and improvements,...

A Ring for Cora


Recently, in order to give myself things to do, I decided I’d start making bent wood rings. There are a few reasons for this new hobby, including (but not limited to) I want something to do and this seems pretty easy. Well, where better to start than by making rings for those closest to me? And here’s the next installment in that series:

ring, view 1

I started by making a ring for myself, especially since it seems my wedding ring finger has lost a size or so, meaning my wedding ring has just...

What’s the best thing to do on a rainy day? Okay, what’s the next best thing on a rainy day, besides “stay at home and drink hot cocoa, curled up on the couch, binge watching whatever thing is hot on Netflix right now”?

It is definitely hot right now

That’s right, indoor outing! Cora and I took off to go have some fun at the Children’s Discovery Museum while Shanin was out of town. But boy, was it busy! Everyone else had the same idea. That didn’t stop us from having a good time though!

To add...

So, one of the hobbies or crafts or whatever I’ve gotten into from time to time is knitting. I made a pretty nice scarf for Shanin, a matching hat (kinda had trouble joining it up on top), and a scarf and a hat for my brother Lucas (neither of which were very good). Recently, I’ve gotten back into it a little. I made a scarf for Cora and one for myself (will have other post(s) for those later) and was happy with the way Cora’s turned out.

Because I like hats, I decided to knit a hat for myself. I...

Yosemite Panoramas

We went to Yosemite with Shanin’s folks at the end of January and man, is it gorgeous there! We also had some stellar weather, with ridiculously blue skies and not a cloud to be seen.

Of course, with such picturesque scenery, I feel I would be remiss if I didn’t take tons of pictures and at least one panoramic one; I paid for the software (Kolor’s AutoPano Pro which, incidentally, works perfectly on Ubuntu and is pretty freaking stellar and easy to use), so I might as well put it to use, yes?

Below, you can find my favorite...

I know I don’t talk about work or work-related subjects very frequently, but considering how much of my time it takes up, I’ve started to wonder why not. I mean, it can’t be all because of NDA’s and trade secrets and the like. After all, let’s face it, nothing I’ve done in the last 5 years has been highly cutting edge or completely unique. Perhaps I’ll discuss why that’s not depressing to me later. In any case, I have some thoughts to share on lots of different subjects: why things matter and/or why they don’t matter, mostly.

To kick things...

I took a number of panoramas while we were on our Disney Cruise because sometimes a normal-sized picture just doesn’t capture enough. Due to various technical difficulties and limitations, I've moved them onto a separate static page; you can find it here: <>. Please, feel free to enjoy them and have a look!. For a preview, here's thumbnails of the panos: **UPDATE** The panoramas be here soon; I kinda broke/lost them during a couple unfortunate computer migrations, so I'm rebuilding them.

Here we go; I rebuilt the panoramas so they’re back up and running; woo!

Playhouse, part 1

After doing a lot of searching, I decided on a plan for the playhouse. It’s basically this idea, with the potential of putting a swing set in front of the balcony at some point. I’m gonna be adding some climbing stuff as that’s what Cora likes! I’m splitting it up into a couple stages, the first stage is building the elevated deck which will be the floor to the top story.

Coming home with the lumber for stage 1

Loads of lumber

One side frame clamped up for drilling and bolting with lag bolts


Shoe Bench, part 1

I’m making a bench for shoes, both to store them and for sitting on to put them on. I’ve decided to use stuff that I already have as much as possible because I have it and want to get rid of it (and to save money). I’ve also decided to do a bunch of hand work, partly because I want to learn and partly because I don’t have an alternative in some cases. Any rate, I’m just kinda making it up as I go along, but the top and shoe rails are going to be beech, stained with the ebonizing...

Fox bookmark

Second take of a fox bookmark, this time for Shanin. I think I really like this, though there are a few screwups. For more details about the build, find them here!


DVD Rip Automation Robot, episode 2

This just illustrates more issues with the bottom tread-feeding from a stack. I think I could probably get it to work, but I'm thinking of trying something different: using a bar or something to push one disk off the stack, either from the bottom or from the top. If it's from the top, then I have to keep moving the stack up; I don't really want to do that as I'll have to use more motors for that. However, I think it would be fairly easy to do: one motor...

I got an idea for a custom-purpose robot. Basically, the idea is to make something which is able to take a DVD off a stack of DVDs and put it in a DVD tray. Then, the computer rips the DVD to a movie file. Once the rip is done, the DVD tray opens up. The robot should then take the DVD out of the tray and move it onto a “ripped” stack, pick up a new DVD, and repeat the process.

This is going to be an interesting problem. There are several different components of this which need to work...

Nice Moustache!

Do you like that Slurpee?

Kiss Box

Kiss box

Why “Kiss Box”? It’s based on this book that Cora likes: The Kiss Box

Purpleheart box, mitered and glued together. Used splines to hopefully add strength to the joints, though the purpleheart really glues up well. The splines and the top are made from leopardwood, and the bottom is made from Macassar ebony. The edges of the box have been chamfered just a little to give some interest.

The box feels very solid and has some heft to it. The top stays on with friction in two orientations and just fits nicely in the...

Inlaid Fox Bookmark

Fox bookmark

My first inlay project, made from padouk and wenge. I had to make my own 1/16” slice of padouk and 1/8” of wenge; got those by resawing on the table saw (not recommended! Note to self: get a band saw). Cut out the inlay pieces from padouk, traced them onto the wenge blank, and used my Dremel tool to make a recess which was deep enough. Then glue in the decorative piece, sand a little so the sawdust gets into the glue to fill in any gaps, clamp, and sand down once it dries. As...

Apricot-Pineapple Jam

I found this recipe at the Keeping Up With Mrs. Smith blog, a site with a bunch of really good looking and exciting recipes. One thing which wasn’t mentioned and that I discovered is that this makes about five pints (or, in my case, 10 8-oz jars) of jam, so prepare for that! Tried some of the leftover I had to put in my fridge and it is quite tasty!


Just wanted to put this down as the first post in my new daily journal! It’s far too late (12:23am on Friday morning) for me to write much, but I will say that Friday will be another day with much tired happening! Hopefully, one of these days I’ll actually start getting better sleep. Until then, there’s coffee!