Skip to main content

Refrigerators

When purchasing a refrigerator keep in mind that
  1. It will have the large surface exposed to everyone, perhaps two surfaces (front and side) - pick a finish that you like. We've gotten used to the wooden cabinet/metal appliance look, but plain old white works fine. Black adds a level of heaviness to the kicthen, but all this is very personal.
  2. People will be touching it very often - matte white is the most resistant to this. Silver finish needs to be wiped down often to hide fingerprints.
  3. The door will swing out very often - the side-by-side design is interesting, but I find the regular single door the best. Locate it where the door doesn't block an entrance way when you open it.
  4. It will be sitting in a place (e.g a dine-in kitchen) where the family might gather to do work or talk - attention to the noise the fridge makes when starting and running is in order. In general, however, one gets used to fridge noises very quickly.
  5. It will work 365 days a year, 24 hours a day, gulping electricity. Look for energy star compliant ones. Also, this page suggests:
    1. Buy top-mounted freezer type (i.e. the plain old type). This makes sense as the Freezer compartment is the coolest, and the cool air from the freezer will settle down, making cooling the regular compartment more efficient. You don't get this benefit with bottom-freezer or side freezer designs.
    2. Consider 4-6 cubic feet per-person. Which comes to a 18 cu-ft size for a family of three and 20-21 cu-ft size for a family of four.
    3. Ice-makers and dispensers - because they make a break in the door insulation - make the fridge less efficient.
    4. Random fact - the most energy is consumed when the compressor starts.

Comments

Popular posts from this blog

A note on Python's __exit__() and errors

Python's context managers are a very neat way of handling code that needs a teardown once you are done. Python objects have do have a destructor method ( __del__ ) called right before the last instance of the object is about to be destroyed. You can do a teardown there. However there is a lot of fine print to the __del__ method. A cleaner way of doing tear-downs is through Python's context manager , manifested as the with keyword. class CrushMe: def __init__(self): self.f = open('test.txt', 'w') def foo(self, a, b): self.f.write(str(a - b)) def __enter__(self): return self def __exit__(self, exc_type, exc_val, exc_tb): self.f.close() return True with CrushMe() as c: c.foo(2, 3) One thing that is important, and that got me just now, is error handling. I made the mistake of ignoring all those 'junk' arguments ( exc_type, exc_val, exc_tb ). I just skimmed the docs and what popped out is that you need to return True or...

Store numpy arrays in sqlite

Use numpy.getbuffer (or sqlite3.Binary ) in combination with numpy.frombuffer to lug numpy data in and out of the sqlite3 database: import sqlite3, numpy r1d = numpy.random.randn(10) con = sqlite3.connect(':memory:') con.execute("CREATE TABLE eye(id INTEGER PRIMARY KEY, desc TEXT, data BLOB)") con.execute("INSERT INTO eye(desc,data) VALUES(?,?)", ("1d", sqlite3.Binary(r1d))) con.execute("INSERT INTO eye(desc,data) VALUES(?,?)", ("1d", numpy.getbuffer(r1d))) res = con.execute("SELECT * FROM eye").fetchall() con.close() #res -> #[(1, u'1d', <read-write buffer ptr 0x10371b220, size 80 at 0x10371b1e0>), # (2, u'1d', <read-write buffer ptr 0x10371b190, size 80 at 0x10371b150>)] print r1d - numpy.frombuffer(res[0][2]) #->[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] print r1d - numpy.frombuffer(res[1][2]) #->[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.] Note that for work where data ty...