Contact Info

(for those who care)

Instant Gratification   



Directions:

From George Bush and 75:

From 635:

From 35E:

Wed, 12 Mar 2014

Simple vim Templates

I was messing with my .vimrc and ran across this kindof cool technique which is worth sharing. Templates!

I’m usually not a fan of automatic code generation or templates / snippets but I’ve found a pretty good way to integrate them into my workflow.

" snippet: read in various templates
nmap <leader>t :read ~/bin/vim-template-more-test<cr>
nmap <leader>x :read ~/bin/vim-template-fixme<cr>
nmap <leader>m :read ~/bin/vim-template-perl-module<cr>
nmap <leader>f :read ~/bin/vim-template-perl-function<cr>

…and you’re done! This is about the simplest use of templates and I’m OK with it. Your “templates” are just text files (I store them in my ~/bin directory for convenience), and you wire them up to certain keystrokes.

Since I’ve been writing a lot of perl lately, and perl is notoriously baroque, and DOUBLY so for object-oriented perl, I needed a template to create a “fully proper” OO perl module. PackageName, return 1, bless ( $self, $class ), the full monte that I can’t be bothered to remember every single time I need to make a new module. ,m Bam! Module! ,f Bam! Function!

It has dual benefit of saving keystrokes and making sure I’m getting the basics right.

…but that wouldn’t be the only thing you’d want to do. Another baroque thing about perl is POD documentation (think pre-pre-pre-javadocs). I can never remember the syntax, so I put together a crazy macro which snags the function name under the cursor and starts off a perldoc comment above it. ,d Bam! Documentation!

" snippet: <leader>d == document perl function with crazy perldoc
nmap <leader>d 0/sub /e+1<cr>yiwki=item B<<c-r>"><cr><cr>=cut<esc>ki

And on a final note, here’s another useful macro:

" select previously inserted text
nmap <leader>v `[V`]

…if you’ve been paying attention you can see where this is going.

,f      - insert function template
,v      - select previously inserted text
:s/XXX/functionName/g   - replace placeholder text

But even better:

nmap <leader>F viwx:read ~/bin/vim-template-perl-function<cr>`[V`]:s/XXX/<c-r>"/g<cr>

…and the explanation for those playing along at home:

nmap       - normal mode map
<leader>F  - to capital "F"
viw        - visual inner word
x          - delete it(!)
:read ~/bin/vim-template-perl-function<cr>
`[V`]      - line-select the previously inserted text (begin/end markers)
:s/XXX     - substitute XXX
  /<c-r>"       - recall the paste buffer (what we deleted with 'x')
  /g<cr>        - do it globally

I can’t think of a good reason to not use the initial technique of :nmap <leder>a :read ~/bin/template-a.txt<cr>. It is so clear and generically useful it’s almost a necessity.

The reason to avoid the other two techniques is that you end up with complicated vim macros which can be a pain to maintain. However, they do build on relatively simple predecessors, generally all follow the same pattern, and have huge potential keystroke savings, so I would recommend trying it out.

15:08 CST | category / entries
permanent link | comments?

Tue, 04 Mar 2014

Banana Nut Bread



Cream shortening and sugar.

Add eggs one at a time and beat well.

Sift dry ingredients.

Alternate adding flour mixture and mashed banana to shortening mixture.

Fold in walnuts.

Bake at 350 in a greased loaf-pan.

22:01 CST | category / entries / recipes
permanent link | comments?

Mon, 20 Jan 2014

Growing an Ultimate Community

As promised to the lovely young couple I met on the beach of Cancun, how and why you should grow an Ultimate community.

But first, what is Ultimate (sometimes called Ultimate Frisbee). You can start with these ten simple rules:

Playing ultimate requires little more than a disc, some cones, and cleats. It’s a fast-paced (and fast-growing!) sport with simple rules, a strong, good-spirited community, and is best described as a mix of Football, Basketball, and Soccer. Like Football, the goal is to basically catch a touchdown in the endzone. Like Basketball, you cannot run with the ball (but you can’t dribble a frisbee) so you have to pass it (setting a pivot foot like Basketball, and with a 10-second “shot-clock” in which to throw the disc). Like Soccer there is a lot of running back and forth in an open field, an emphasis on long passes and teamwork, and limited/non-contact.

Why would you want to support ultimate in your community?

For that I’ll give you a little history of Ultimate’s rise in Mexico. It starts a little prior to 2000, when Fernando Najera of Mexico City spent some time in the U.S. and was introduced to the sport. When he came back to Mexico he wanted to promote it as an alternative to Soccer. For the reason why, you’ll need a little cultural background about sports in Mexico.

I’ve been told by muliple people that Soccer in Mexico is taken sometimes a little too seriously in that “cheating” or “being tricky” is seen as an inevitable fact of life and is “part of the game”. This is in sharp contrast with Ultimate which has rules against contact (or the “threat” of contact, ie: setting a “pick”), and generally no referees, even at very high levels of the game. Players are expected to work things out, call their own fouls, and avoid fouls in the first place. This spirit of the game is pervasive at lower levels of play and is doing its best to survive at the highest levels of play, although most of the formal competitive leagues are introducing “observers”, which are kindof like “optional referees” to help resolve disputes between players on the field.

Another aspect is that in Mexico, sports (and especially Soccer) are seen as “for men only” and girls/women are discouraged from participating. This again is in sharp contrast with Ultimate, whose player-base generally actively recruits women and support women playing. Even at the highest levels of play, the leagues are generally “Co-Ed” (4-3 or 5-2), “Women” (7 girls), and “Open” (7 players, men or women).

So Fernando took Ultimate back to Mexico and started promoting it locally until he had a core base of players. He then organized an international tournament in Acapulco for people from all over the world to spend a weekend playing frisbee (on the grass and the beach) and enjoying the beautiful weather, food, and nightlife that Acapulco had to offer.

In actuality this was just a clever trick to draw talented players from around the world who could train his core group of players on how to improve their game. Since 2000, there have been 10+ international tournaments in Mexico and a vibrant community of players spread throughout the country. From those first shaky days in 2000, Mexico now fields competitive teams in multiple divisions in “Worlds” (at least Open and Womens).

Ultimate has a focus on self-refereeing, a vibrant international community, it is a very spectator-friendly game, that is easy to teach, easy to learn, easy to watch, and has a community that I’ve found to be inclusive of all shapes, ages, and sizes. My favorite slogan has to be the one adopted by the Mexican teams: “Learn to Fly, Play Ultimate”. When you throw the disc, you put a little of yourself into it, your hopes and dreams that it will reach its intended target and can imagine what it would be like to follow that same trajectory. When you dive for the disc, or jump to make a catch, time stops for just a moment when you stretch as far as you can, and that is the closest most of us can get to actually flying.

How to start playing Ultimate

As shown above, the rules are extremely simple and natural. At it’s core, Ultimate is a game of throwing and catching and there are quite a few variations for fewer players or a smaller play area.

Divide a group into teams of two (7 players is recommended), with light and dark shirts (grey is neitehr light nor dark). Set up two goal-lines a little bit farther apart than the best player can throw. Explain: “You can’t run with the disc, you can’t run into anybody, and if you drop it or don’t catch it it then the other team gets it.” Line up each team on the goal line and have one team throw to the other. You’re now playing Ultimate, and you have 90% of the rules down (it really is that simple).

I recommend a strategy for teaching the game based on the old story of “boiling the frog” where rules are gradually introduced. Usually the first rule that comes up after explaining the general goal is to introduce the “stall count” or “shot clock” of ten seconds. If the disc is moving nicely and only occasionally getting held on to for too long, it might be a while before you need to introduce this rule. I’ve most often seen it become necessary when the competition heats up, and people start to be more careful with their throws, you’ll find that introducing the “stall count” makes the game more exciting and more fluid.

The next rule that usually comes up is “disc space/double-team” and “spirit of the game”. They all go hand in hand. Usually some defender will get over-aggressive and too close to the person with the disc, or two people will try to “surround” the person with the disc. Explain that Ultimate has an over-arching rule called “spirit of the game” and two specific rules related to the spacing of players.

First, when guarding the person who has the disc, you must be no closer than the length of the disc. This is called “disc space” and if you think about it, it makes sense (the thrower needs some room to maneuver). The second rule is that you can’t have two players surrounding the person with the disc. Only one player is allowed to be within 10 feet of the player with the disc. All other defenders must be “outside” that imaginary 10-foot bubble around the player with disc. Again, if you think about it this rule makes sense too. There’s a few more details around spacing which you’ll find in the complete rulebook, but if you’ve gotten this far you’re basically done.

Stepping on the line is out of bounds, substitutions are allowed only after a point is completed, kick-off throws that land out of bounds go to the middle of the field, thows that roll out of bounds are played from the sideline, after any minor stoppage of play you have to “tap the disc in” by offering it to your opponent. A few more miscellaneous rules and you’re all set! But if your community is just starting out with Ultimate, you’ll come to a lot of these same conclusions naturally, or if your community comes to different conclusions and it’s a casual game, the “Ultimate Police” will not swoop down and write you a ticket for playing by your own rules.

If you find yourself in a situation where you have less than 10-15 people, you can usually play a game called “hot box”, which is kindof like half-court ultimate. There’s a box in the middle of the field and an outside boundary where you have to complete a pass outside the boundaries before you can catch a score in the middle box.

Resources

20:02 CST | category / entries
permanent link | comments?

Mon, 06 Jan 2014

Slow Cooker Beef Tacos




original recipe here

Mix together the chili powder, cumin, and smoked paprika in a small bowl.

Rub the spice mix into the beef, covering each side evenly.

Heat olive oil in a large skillet over medium-high heat skillet and sear beef until browned on all sides.

Transfer beef to the slow cooker and top with diced onion and minced garlic.

Leave the pan on the heat, and add in the beef stock to deglaze, scraping up any browned bits from the bottom of the pan.

Add the tomato paste and minced chipotle and whisk into the pan sauce.

Bring the sauce to a boil, reduce the heat, and simmer for a 3-5 minutes until the sauce has reduced and thickened slightly.

Pour the pan sauce down over the onions, garlic, and beef in the slow cooker. Cover and cook on low for 6-8 hours.

Shred the beef and onions with two forks. Serve the beef in the flour tortillas, topped with your favorite taco toppings.

Top with…

08:08 CST | category / entries / recipes
permanent link | comments?

Tue, 31 Dec 2013

Nuts and Bolts

Preheat oven to 250.

Mix all ingredients in a wide pan (not deep).

Place in oven for 1 hour, stirring every 20 minutes.

Store in airtight container with paper towels around bottom / edges.

13:49 CST | category / entries / recipes
permanent link | comments?

Thu, 05 Dec 2013

Energy Statistics for 2013

I’ve been getting what feels like “low” electric bills and I wanted to understand them a bit better so it means fun stats time!

Baseline gas load ~$25/mo
Baseline electric ~$45/mo
Minimum utility load ~$70/mo
Maximum utility load ~$195/mo (~3x base load?)
Average utility cost ~$130/mo (~2x base load?)

If you assume that the month with the minimum cost’s average temperature was 73 degrees (May @ $90), it looks like every degree below that costs $2/degree, but every degree above that costs $7/degree. Don’t know what conclusions to draw.

Dec 12 - Temp: 51 - Gas: $55.33 - Elec:  $68.82 - Total: $124.15
Jan 13 - Temp: 49 - Gas: $93.52 - Elec:  $69.52 - Total: $163.04
Feb 13 - Temp: 52 - Gas: $84.14 - Elec:  $56.17 - Total: $140.31
Mar 13 - Temp: 56 - Gas: $66.93 - Elec:  $48.75 - Total: $115.68
Mar 13 - Temp: 56 - Gas: $44.63 - Elec:  $62.55 - Total: $107.18
May 13 - Temp: 73 - Gas: $47.55 - Elec:  $42.85 - Total:  $90.40
Jun 13 - Temp: 83 - Gas: $31.95 - Elec: $102.24 - Total: $134.19
Jul 13 - Temp: 85 - Gas: $28.76 - Elec: $163.43 - Total: $192.19
Aug 13 - Temp: 87 - Gas: $27.54 - Elec: $153.40 - Total: $180.94
Sep 13 - Temp: 83 - Gas: $27.15 - Elec: $155.47 - Total: $182.62
Oct 13 - Temp: 69 - Gas: $27.98 - Elec: $112.53 - Total: $140.51
Nov 13 - Temp: 54 - Gas: $37.04 - Elec:  $57.88 - Total:  $94.92

19:44 CST | category / entries
permanent link | comments?

Sun, 01 Dec 2013

Yorkshire Pudding

Preheat oven to 425 degrees.

Sift flour and salt.

Break eggs into flour mixture, beat until smooth.

Add milk slowly, beating until smooth.

Cover 9x12” glass baking dish with ~3 tbsp grease or drippings.

Place just greased pan in oven until the grease melts and is sizzling hot.

Remove pan, pour in batter, return to oven.

Cook at 425 for 20 minutes, then pour off fat.


For an advanced version, try this:

(courtesy Mr. Alan Cox)

15:28 CST | category / entries / recipes
permanent link | comments?

Sat, 09 Nov 2013

Bruschetta

Dice tomatoes and place in a bowl.

Mince garlic, chop basil.

Drain any excess liquid / water from the tomatoes the add the garlic / basil.

Add salt, pepper, oil, vinegar, mix by had and let the mixture rest in the fridge.

Toast bread then serve mixture spooned on top.


Usually I’ll use fresh basil with a little dried oregano added for some extra flavor.

Be very careful to use only a little bit of vinegar if you are not used to cooking with it.

If you add too much salt, the mix will be overly salty and unpleasant.

Let the mixture rest before tasting (so flavors combine), and try a little bit immediately before serving.

If more salt is needed, you can easily sprinkle some over the prepared toast or add a little more to the mix.

11:10 CST | category / entries / recipes
permanent link | comments?

Wed, 06 Nov 2013

Spaghetti Carbonara (simple)

Boil Spaghetti according to directions (salted water), reserve 1 cup pasta water.

Saute bacon until crispy, reserve 2 tbsp bacon drippings.

Blend milk, eggs, yolks, and salt.

Heat bacon drippings and whisk in flour. Cook 1 minute.

Rapidly whisk in egg mixture. Continuously whisk so the mixture doesn’t scramble!

Cook mixture 2-3 minutes so it thickens.

Remove from heat and mix in ~1/2 cup of the parmesan cheese.

Toss with pasta, bacon, reserved cheese, reserved water, and pepper.

14:06 CST | category / entries / recipes
permanent link | comments?

Sun, 29 Sep 2013

TrebuKit

Very simple “kit” for building the small trebuchet shown in the video below.

instruction pdf, sketchup file

Please send me a note if you end up building one!

13:30 CST | category / entries
permanent link | comments?

Next 10 entries

Like what you just read? Subscribe to a syndicated feed of my weblog, brought to you by the wonders of RSS.



Thanks for Visiting!