Wing contest at Quarry House

2013-05-15 2 min read Uncategorized Eddie

My first order of Quarry House wings was “medium.” The waitress had told me that they ran one level hot, and the medium were actually hotter than an standard “hot.” My nose was stuffed and my eyes were fully watered up at the end of twelve.

We decided to set up a trip with Andrew, Rich, myself, and my sister. I realized that Aman loves hot food too, so I invited him as well. We formally decided to go the night that Young Frankenstein played at the AFI. The final group was myself, Simon, Andrew, Rich, Alissa, Cathy, Shveta, and Aman.

The order came out, 9 wings each of the mild, medium, hot, and 4 alarm. As my sister said later, we probably should have started with the mild and worked our way up… but instead we each went to the 4 alarm. Lips started to burn, glasses (Rich’s) came off, and instead of laughter, yelling, or anything positive, we all spent time making sure we were physically ok. When the burning stopped, we could taste a familiar sweet habanero flavor.

Aman had three, Cathy and myself two each, and Andrew and Rich one. Shveta took one bite and gave hers to Aman, while continuing to enjoy her Fin du Monde. Cathy had her first Dogfish Head Palo Santo (and enjoyed it).

Young Frankenstein was amazing as usual. Where wolf? There. There wolf.

Onion-dill rice

2011-08-03 2 min read Cooking Food Recipes Eddie

Managed to concoct a recipe that I ended up quite liking today. Documented since I am unlikely to randomly repeat it. Makes 3-ish decently sized portions.

Start cooking 3/4 of a cup of rice.

Brown an onion in a tablespoon of olive oil, adding some salt (I used a medium amount [about 1/3 of a teaspoon] of coarse sea salt), and a decent amount of black pepper. Cook until moderately browned. (I added a teaspoon of A-1 sauce for a vinegar taste, and 1/4 of a tablespoon of hot thai seasoning [extremely spicy with a hint of lemon], but these are probably optional.)

Add 2 (or more… as much as you like) tablespoons of sliced garlic (not too thin), and 1 red pepper, cut into aprox. 1cm by 1cm cubes (you want a little flavor in each bite), and another tablespoon of olive oil. Cook until the peppers look good (the garlic will follow).

Add about 4-5 sprigs of fresh dill, ripping it into small pieces, and then the rice, and stir (feel free to add a tbsp or so of water if it’s sticking). Cook for another 3-5 minutes, until the liquid is drained.

I served it with two tiny-tiny steaks cooked in the same large-sized pan, seasoned with salt and pepper, though the rice would have been enough split between two people.

[Relatively] Quick pizza from scratch

2011-07-12 3 min read Cooking Food Recipes Eddie

Tonight I tried a new recipe tonight, on a whim (I hit up the grocery store on the way home from work]. It was my first time making any pizza, much less two whole large pizzas, and they turned out extremely well. Only tools used were a food processor (with dough blade), oven, two pizza pans, and a pizza cutter. Adding the recipe here for my own records.

  1. Proof a teaspoon of yeast (dump it in 1/2 cup of warm water), let rest 10 minutes until one consistency.
  2. Add 3 cups of (bread, it’s high-gluten) flour to food processor, 2 teaspoons (on the small side, unless you like salt), a teaspoon+ of freshly ground black pepper (optional), and pulse the food processor for a few seconds.
  3. Turn food processor on, add the 1/2 cup of water, and then get another 1/2 cup of water and add that. Add 2 tablespoons+ olive oil to the mix. Make sure the dough isn’t sticky enough to stick to the sides, and not so dry that it’s not sticky. If not, either add a teaspoon of flour or water (1 per 30 seconds) until it’s the right consistency. Adding too quickly means it won’t work it’s way through, and you may over-do it.
  4. Take dough, knead for a few seconds, put in a greased bowl, and let rise in warm area. Try for an hour or two, but 30 minutes (the time needed to get the other ingredients) is possible.
  5. Get all of the other ingredients together. Add slicing blade to food processor if possible. Gather all veggies, and slice them.
  6. Grab dough, pre-heat oven to 500 (or a little above.)
  7. (Very lightly) flour a countertop. Knead for a minute or two, then cut into two. Make two flat-ish, 5/6-inch (but still a little thick) pizza crusts. Let sit for 10 minutes (which makes it easier to shape), and then roll the dough into real pizza-crust sizes.
  8. Add olive oil on top of the dough. Then add tomato sauce, then add cheese.
  9. Add veggies. If sliced in the food processor, you can stack ’em high, and they’ll simply bake down. Any thicker, and they may take a little longer. I used the 4mm slicer blade, and everything came out perfectly.
  10. Cook pizza for 10+ minutes, looking in @ 10 minutes. If you like, throw a 1/5th or less cup of water at the bottom, which [should] help the crust rise. If using a pizza stone, you can cook 2 @ the same time… one on the pizza stone which will cook faster, and one beneath. When the first is done, move the second up on the stone, and it will finish in just a few minutes.

No, I did not make the sauce. Needed to save something for next time!!! Actually, next time I will let the dough rise in the fridge either from AM to PM, or overnight, though that may be overdoing it a bit. We’ll see.

Continue reading

High Performance CSS code design

2011-04-06 12 min read Css Programming Web Design Eddie

In the last few years much emphasis has been placed on web performance issues. Browser vendors have optimized JavaScript engines, JavaScript libraries have been honed, and content delivery has been improved. Unfortunately, CSS has received less attention. Developers have been advised how to optimally transfer CSS files, and instructed to use CSS shorthand, but very little has targeted CSS code itself.

Ms. Nicole Sullivan is among those looking to improve CSS code. She has been promoting “OOCSS,” or “Object Oriented CSS,” her methodology for how to design and refactor CSS 1. She has collected a number of best practices for architecting a CSS framework. The benefits are simple: CSS will perform better, become more modular, as well as being grounded with a consistent API, making it easier to learn and use. This is accomplished by reducing the file size and complexity of our CSS.

While many of these techniques can be considered common practice for experienced CSS programmers, implementing them can be difficult. The art is in analyzing trade-offs and picking the optimal path. That said, these rules are not for everyone, or every site. It all boils down to deciding if the site’s performance gain is greater than the time it takes to learn and use the techniques.

Useful for sites with

  • Many pages
  • A common visual and structural design
  • Critical performance requirements

Less useful for sites with

  • A few pages or just one page
  • Varying design (possibly “portfolio” or design sites)
  • Few performance concerns

So how do we get started? We go hunting for bad code smells. In Chapter 3 of Refactoring: Improving the Design of Existing Code, Martin Fowler and Kent Beck coin the phrase “code smell,” meaning “structures in the code that suggest the possibility of refactoring.” Simply put, we go looking for chunks of code that our intuition tells us could be cleaned. In the chapter heading, Grandma Beck is quoted (then talking about child-rearing), “If it stinks, change it.” We’ll take a more formal approach to finding these code smells, going from easy to difficult. First, we’ll sniff around the CSS selectors, and then move onto the CSS properties. Finally we’ll look for visual design patterns that can direct the structure of our CSS.

Selectors

Selectors are both the easiest place to find code smells in CSS and the easiest to correct. Three big code smells tend to stink up CSS selectors; unused selectors, location-based selectors, and overly specific selectors. Each contributes significantly to increased CSS file size.

Continue reading

Installing PIL inside virtualenv for Ubuntu 9.10

2010-03-31 3 min read Django Python Eddie

I just removed a (real live) bat from my living room. That was easier than installing PIL in a virtualenv for Ubuntu 9.10. Why? Googling the subject seems to bring up a lot of old or mis-information. This will explain how… mostly so I can do it again next time.

I started with a –no-site-packages virtualenv, so as not to use (or more importantly depend) on any of the global site-packages. Ok, cool.

$ virtualenv --no-site-packages myEnv

First, I needed to install the python developer tools. (Use apt-get or aptitude, whatever floats your boat)

$ sudo aptitude install python-dev

Then, I needed to install libjpeg and libjpeg-dev. I’m not sure why, but I needed libjpeg simply doesn’t exist, so I needed to install libjpeg62. I can’t pretend that I know the difference (or if there is one). In fact, I may have gotten away with installing libjpeg62 and libjpeg-dev (rather than both “62” versions… libjpeg62 and libjpeg62-dev), but only further testing will tell.

Why? If you install PIL without this library, you’ll get those wonderful “decoder jpeg not available” messages in Python. Or worse yet, if you’re trying to use it in a Django, you may get some errors (specifically the “Upload a valid image. The file you uploaded was either not an image or a corrupted image” warning), or you may not get any until you open the shell. Either way, you can test with the method listed below. If you get the “decoder jpeg not available” message, your install didn’t work.

The zlib package handles PNGs.

$ sudo aptitude install libjpeg62 libjpeg62-dev $ sudo aptitude install zlib1g-dev $ sudo aptitude install libfreetype6 libfreetype6-dev

Alright, now we seem to be done with the prerequisites. Start your virtualenv (of course, myEnv in the example is the name of your virtualenv).

$ source myEnv/bin/activate

Download PIL and install. This will make sure to install PIL within your virtualenv’s site-packages.

(myEnv)$ wget http://effbot.org/downloads/Imaging-1.1.7.tar.gz (myEnv)$ tar zxvf Imaging-1.1.7.tar.gz (myEnv)$ cd Imaging-1.1.7 (myEnv)$ python setup.py install

If you run into further problems (the “decoder jpeg not available” message again), you may have to resort to the long directions to get PIL and libjpeg to play happily together, but I hope not.

Now that you have everything installed, test it. Open up a python shell from within your virtualenv.

(myEnv)$ python

Now try the following (with an image in your home directory) to see if everything is running smoothly.

Continue reading
Older posts