| |
``It's essentially a matter of physics...'' -- Donald Rumsfeld, Secretary of Defense |
|
A Practical Guide to Sous Vide Cooking |
|
|
Topic: Cooking |
5:25 pm EDT, May 23, 2010 |
Sous vide is French for "under vacuum" and describes a method of cooking in vacuum sealed plastic pouches at low temperatures for long times. With the proper equipment and some basic knowledge, anyone can prepare consistently delicious and safe food. With more advanced knowledge, a chef can safely create (or modify) recipes to realize their unique vision. This guide attempts to distill the science of sous vide cooking to provide anyone with the tools needed to safely realize their creative visions. Part I discusses the techniques and safety concerns of sous vide cooking. Some prototypical recipes are explored in Part II. The mathematics of sous vide cooking are detailed in Appendix A. Finally, Appendix B discusses the specialized equipment necessary for sous vide cooking.
so the trick is find the right immersion circulator + bagging system for cheap! will post again when i figure out something. --timball A Practical Guide to Sous Vide Cooking |
|
Get There - Grisly scene snarls Connecticut |
|
|
Topic: Events in Washington D.C. |
11:56 am EDT, May 8, 2010 |
ORIGINAL POST: Connecticut Ave NW just south of Dupont Circle is the site of a major police and rescue operation after a woman riding a small motorbike was hit by an SUV, leaving a gruesome scene at the crowded intersection and what one witness described as "lots of blood." Northbound Connecticut Avenue is closed between 18th Street, near its intersection with M St, and the circle; southbound traffic is able to crawl through. "It was a horror scene. A motorbike was cut in half. We were there literally moments after," said Timothy Ball, who came across the scene with his girlfriend, Honey Smith. "It looked like the motorcycle was headed north, the SUV had made a hard left and came to an abrupt stop. The front of the SUV was compressed, with a huge gash in the windshield where the motorcyclist's head would have gone through," said Smith, who said the bike was resting entirely underneath the truck.
walking back from the shrink going to the tabard inn honey's flip camera caught a some footage of the aftermath of an accident. --timball Get There - Grisly scene snarls Connecticut |
|
Topic: Miscellaneous |
4:08 pm EDT, May 3, 2010 |
that's me doing trapeze! --timball p1120068.jpg |
|
txtBOMBER :: Typography Served |
|
|
Topic: Miscellaneous |
3:38 pm EDT, Apr 21, 2010 |
The txtBOMBER is a one-hand-guerillia-tool - a machine not much bigger than a pressing iron - that generates political statements on the fly and immidiately prints them on any flat surface.
HA! i'm definitely building one. --timball txtBOMBER :: Typography Served |
|
Inexpensive rotary encoder |
|
|
Topic: Miscellaneous |
12:13 pm EDT, Apr 6, 2010 |
- get a dead harddisk, preferrably an older one - take out the flat spindle motor which spins the HD platters - connect wires to two different motor output leads (any) - build this circuit:
cheap harddrive into rotary encoder... best drives to do this too are old school FULL HEIGHT harddrives cause the motors and spindles are HUGE. --timball Inexpensive rotary encoder |
|
Writing Efficient State Machines in C |
|
|
Topic: Software Development |
5:47 pm EDT, Apr 1, 2010 |
One common way of conquering difficult software design problems is to use a state machine. First you figure out all the states the software can be in. Then you determine all the inputs to the state machine—all the events that can cause the state machine to take some action or to change states. Finally you determine the state machine outputs—all the actions that the state machine can perform. When your state machine design is done, you'll have a list of states, a list of events (inputs), and a set of action procedures for each state that describe what the state machine does for each event (outputs). There are two ways to code a state machine in C. One way uses a set of nested switch statements. The outer switch has a case for each possible state. Each of these outer cases has an inner switch with a case for each possible event. The actual code that gets selected performs the actions for that state/event. Alternately, the outer switch could have a case for each event, and the inner switch could have a case for each state. Another more concise way of coding is to use a lookup table. First, number all your states consecutively, starting with 0—an enum is a convenient way to do this. Do the same for your events. Then make up a set of tables, one table per state. Each table has one entry per event, in the same order as the event enum. Then the entire set of tables is arranged in the same order as the state enum. Each item in a table is the function to execute to perform the action for that particular event in that particular state. The listing below is an example with three states and two events, and therefore six action procedures. /* Define the states and events. If your state machine program has multiple source files, you would probably want to put these definitions in an "include" file and #include it in each source file. This is because the action procedures need to update current_state, and so need access to the state definitions. */ enum states { STATE_1, STATE_2, STATE_3, MAX_STATES } current_state; enum events { EVENT_1, EVENT_2, MAX_EVENTS } new_event; /* Provide the fuction prototypes for each action procedure. In a real program, you might have a separate source file for the action procedures of each state. Then you could create a .h file for each of the source files, and put the function prototypes for the source file in the .h file. Instead of listing the prototypes here, you would just #include the .h files. */ void action_s1_e1 (void); void action_s1_e2 (void); void action_s2_e1 (void); void action_s2_e2 (void); void action_s3_e1 (void); void action_s3_e2 (void); enum events get_new_event (void); /* Define the state/event lookup table. The state/event order must be the same as the enum definitions. Also, the arrays must be completely filled - don't leave out any events/states.... [ Read More (0.3k in body) ] Writing Efficient State Machines in C
|
|
Topic: Computer Security |
1:44 pm EDT, Apr 1, 2010 |
Yep! So as predicted, GetRealOwner(WindowC) is WindowC, and the exit condition will never be satisfied, it's stuck! This was the first time I've encountered this bug while using IDA, and I haven't been able to reproduce it since, so I suspect there is some subtle race condition to blame. Thankfully I was able to recover my idb with minimal lost work, but the question remains, is it the developer's responsibility to guarantee they don't create cycles, or Microsofts? I've mailed a testcase to Microsoft, but I'm not sure what they'll say.
sync sync sync --timball Creating Window Cycles |
|
A gentle introduction to return-oriented programming |
|
|
Topic: Software Development |
1:42 pm EDT, Apr 1, 2010 |
As I have promised in my last post I will start a series about return-oriented programming. I start with a short introduction about the topic. The introduction covers the origin of return-oriented programming, describes what return-oriented programming is and ends with a definition of return-oriented programming which I will use in the future posts. I will also take some of the recent discussions on Twitter into account which showed that even though I thought I did my history research pretty well, there were still some mailing list post missing from my time-line.
must read in depth later --timball A gentle introduction to return-oriented programming |
|