Sunday, July 10, 2011

Closet Bathroom Completed

Just completed my mom's tiny 3'x4' half bath! Check out that sink, just about big enough for one hand at a time!

Thursday, July 7, 2011

iSCSI Windows 7 Boot (Using Synology DS1511+)


I recently purchased a Ceton InfiniTV 4 tuner card, not realizing at the time that it would not simply install into my existing SageTV PC... So I'm building out a new box, this time Core i3-based instead of Atom, but I still wanted to keep power consumption low. So a hard-drive-less machine was the way to go, backed by iSCSI provided by the Synology DS1511+


Install Windows 7 to physical drive
I couldn't get the windows installer to recognize the iSCSI drive I had created on my Synology NAS, it would boot, stay connected, and then setup wouldn't find any candidate disks. In any case, it works much easier to install to a physical disk, do all your updates, hack the registry, and then clone to iSCSI.

Tweak the registry so your network card can boot correctly
This was the special sauce that prevented Windows from booting for me on countless attempts: By default, the Light Weight Filter (LWF) is bound to all system NICs. If you install to an iSCSI drive, the setup program automatically unbinds this filter from the boot NIC, but since we've installed to disk, we've got to do it ourselves. I found the solution here, with a link to the MS article about it here.


  • Open HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Class\{4D36E972-E325-11CE-BFC1-08002BE10318}
  • Find and open the subkey for the NIC (eg. 0007)
  • Open the subkey Linkage
  • Edit the value FilterList. Delete the line that refers to the LWF driver UUID {B70D6460-3635-4D42-B866-B8AB1A24454C}. In my case I had to delete the second line. Before:
{158B0494-2576-4DE5-9E32-98DB9E177DD8}-{B5F4D659-7DAA-4565-8E41-BE220ED60542}-0000
{158B0494-2576-4DE5-9E32-98DB9E177DD8}-{B70D6460-3635-4D42-B866-B8AB1A24454C}-0000
After:
{158B0494-2576-4DE5-9E32-98DB9E177DD8}-{B5F4D659-7DAA-4565-8E41-BE220ED60542}-0000

  • Clone the physical drive onto an iSCSI drive:


So now we've got a nice clean install, with the LWF disabled on our boot NIC, and we're going to mount the physical disk to another machine, mount the iSCSI drive to the same machine, and use 'dd' to clone the source to the target. I'm on a Mac, though Linux would be similar. I used the GlobalSAN iSCSI Initiator for OSX (available after some hoop-jumping from here)
Determine your device names:
$ diskutil list
will give you something like this:
/dev/disk0
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *500.1 GB disk0
1: Windows_NTFS System Reserved 104.9 MB disk0s1
2: Windows_NTFS 104.8 GB disk0s2
/dev/disk2
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *160.0 GB disk2
1: EFI 209.7 MB disk2s1
2: Apple_HFS System 159.7 GB disk2s2
/dev/disk3
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *160.0 GB disk3
1: Apple_HFS User 160.0 GB disk3s1
/dev/disk4
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *107.4 GB disk4


So in this case, /dev/disk0 is my source drive, and /dev/disk4 is my target iSCSI drive. I want to clone 0->4, so dd is my friend:

$ sudo dd if=/dev/disk0 of=/dev/disk4 bs=64k
And then just wait. It can take a long time. The bs=64k option will make it go faster. I got around 10MB/sec from a local disk to a remote iSCSI disk over a gbit connection. To force dd to give you an update on its progress, you can figure out its pid and then send a SIGINFO to it:

$ ps -ef|grep dd
0 34 1 0 0:03.10 ?? 0:09.20 /usr/libexec/hidd
0 3137 713 0 1:22.63 ttys000 1:22.86 dd if=/dev/disk0 of=/dev/disk4 bs=64k
501 3181 780 0 0:00.00 ttys001 0:00.00 grep dd
$ sudo kill -SIGINFO 3137
which will print something like:
102872+0 records in
102871+0 records out
6741753856 bytes transferred in 640.615671 secs (10523867 bytes/sec)

BIG FAT UPDATE:

I got all this working, installed SageTV, and it worked great... Except that bluray playback stuttered like crazy, as if the system was loading the stream from the remote disk, writing it to local disk (which was iSCSI, so was remote), reading again from local, then sending the stream to the client... In any case, it didn't work correctly, so I gave up and put a tiny hard drive into the box. Lame.

Monday, June 13, 2011

Fluffy Java interview question

If the next version of Java contained the keyword fluffy, briefly describe what its purpose would be. Stolen from http://www.jeffpalm.com/blog/archives/002205.html

Monk Parakeets in Tenafly, NJ


This video is from the older, low-def web cam, but you get the idea. This was the second day we'd seen these parrots, and the first time they'd come as a group. They now come to our feeders every day, several times a day... Looking forward to seeing their bright green in the winter, should be quite striking!


Sunday, June 12, 2011

Alton Brown's Brined Pulled Pork


PULLED PORK in a FLOWERPOT SMOKER, ALTON BROWN 

Makes 8–10 servings. Prep Time: 20 minutes Inactive Prep Time: 13 hours Cook Time: 11 hours

BRINE: 8 ounces or 3/4 cup molasses, 12 ounces pickling salt, 2 quarts bottled water

6–8 pound Boston butt

RUB: 1 teaspoon whole cumin seed 1 teaspoon whole fennel seed 1 teaspoon whole coriander 1 tablespoon chili powder 1 tablespoon onion powder 1 tablespoon paprika

Combine molasses, pickling salt, and water in 6-quart Lexan (Cambro) bucket. Add Boston butt making sure it is completely sub-merged in brine, cover, and let sit in refrigerator for a minimum of 8 hours. 12 hours is ideal.

Place cumin seed, fennel seed, and coriander in food grinder and grind fine. Transfer to a small mixing bowl and stir in chili powder, onion powder, and paprika.

Remove Boston butt from brine and pat dry. Sift the rub evenly over the shoulder and then pat onto the meat making sure as much of the rub as possible adheres. More rub will adhere to the meat if you are wearing latex gloves during the application.

Preheat (AB’s flowerpot) smoker to 210 degrees F. Place butt in smoker and cook for 10–12 hours, maintaining a temperature of 210 degrees F. Begin checking meat for doneness after 10 hours of cooking time. Use fork to check for doneness. Meat is done when it falls apart easily when pulling with a fork.

Once done, remove from pot and set aside to rest for at least 1 hour.

Pull meat apart with 2 forks and serve as sandwich with coleslaw and dressing as desired.

Sunday, February 16, 2003

MAME Arcade v2002


When I saw a review of the X-Arcade joystick in an issue of CPU Magazine in the middle of 2002, I knew I had to have one, and that I needed to build an arcade cabinet around it... That's the only sane thing to do!

I've been collecting power tools piece-by-piece for a while now, a router here, a circular saw there, but I hadn't had any project to actually use them all on! They were way too clean, too unused, and I'm sure very lonely. So I knew this was going to be a fun project. To start off, I assembled a material list:
  • X-Arcade Joystick: This is what started it all. Has a keyboard interface, so each button press maps to a keypress, which works great with MAME. 
  • 21" ViewSonic P815 Monitor: I have two of these, but when they sit next to each other, they cause horrible interference. So I just had an extra monitor sitting around. Works very nicely in the arcade, although for my next cabinet I'll definitely go with a larger-screened TV. 
  • Altec Lansing Speakers: I don't remember their exact model, but they sound bassy enough for gaming, and I had them laying around, they make the sacrifice. 
  • AMD Athlon XP 1700+ + nForce motherboard: A remarkably affordable solution, more than capable of running any MAME game at full speed. Video, network, sound all onboard. 
  • 512MB PC2100 RAM + 40GB hard drive: Just had them sitting around, so I'm glad they found a home. 
  • ATX Case + 400w/PS: I had the case laying around, but the power supply sucked (from an old K6/2 machine) so I threw a new PS in. 
  • 3 sheets of 3/8" plywood: Just plain old plywood. I was planning on painting this cabinet (Ended up clear coating), so I didn't get very high-grade. Kinda regret that, but then again it gives me a reason to build cabinet number two someday! 
The first thing I had to do was get the plywood to my house... Not as simple as you might think, since I don't have access to a truck. I ended up making a rig that could hook to my Thule rack on Tabitha (my 4-door), and I must say it worked pretty well. I wouldn't recommend going faster than about 30mph though!







I began work in the middle of my main living room... Why you ask? The most reasonable explanation I can come up with is that I was dropped on my head when only a baby. I am STILL cleaning up the dust from this little adventure, 6 months afterwards. Next time, I'll build it in the garage, even though there's no heat.

I had worked out the design I wanted in AutoCAD. There are lots of designs out on the web, but a lot of them are missing critical dimensions. I'm pretty happy with the dimensions on my cabinet, so if you want the original files in DXF format, here they are:
Main Cabinet and MAME Marquee



Construction went pretty smoothly... I laid out the first cabinet side on a sheet of plywood and cut within the lines. Then I laid that piece on another piece of plywood to trace the outline. I'm lazy. I then routed all the edges using a quarter-round bit. Six 2 foot lengths of 2x4 later, I had the basic cabinet together. As I mentioned earlier, I was planning to paint the cabinet when I was done, so I drilled through the sides of the cabinet in several places. Next time, I'd find a better way of doing things. But you can barely see the patch holes, unless of course I turn the lights in the room on. Hmmph.







If you're wondering about the metal marquee, I had a friend cut that from a sheet of stainless steel (I have two extras, if anyone's interested). Then in the space behind it, I hot-melt glued each light from a string of chase lights. It ended up looking really cool, and didn't cost much at all. It basically fades slowly from one color to the next. Very neat.

After everything was together, I decided that I really liked the raw wood look, and also that a big black or white box wouldn't go well at all with my apartment. So I grabbed an orbital sander and went to work. Many hours (and tons of dust) later, I got a can of polyurethane and proceeded to kill quite of my brain cells few. Bad stuff. But fun for the whole family!



Cheers, happy gaming!

Wednesday, January 1, 2003

Tunze Osmolator Universal 3155 Review

I wrote this review circa 2003, when I couldn't find any information online regarding the osmolator prior to purchase, and I felt I could help out. Since then, info has proliferated, competing top-off controllers have come to market (including some sexy peristaltic-pump-based ones), and I shut down the system that used this controller. But the information is still mostly valid (the osmolator has been only minorly updated, and it still uses that silly plastic pump), so enjoy. But take with at least nine years worth of salt.

Since I got my tank in the summer of 2002, I'd been maintaining my water level using a 2 gallon jug set on top a PVC shelf I built in my sump. Every time the water level got below a certain point, GLUG, a bit of water would flow from the jug, and everything stayed pretty well stabilized. But while my solution was simple and reliable (as long as I remembered to fill the jug every two days or so), its flaw was that the jug took up a lot of space in my sump, and 2 gallons really doesn't last that long... A weekend trip would empty the jug. So a better solution was in order.

 I started looking at various improved solutions, from hooking my RO/DI directly to the tank with a float switch, to expensive peristaltic dosing pumps, to simply getting a bigger jug. Then I stumbled across the Tunze Osmolator Universal at MarineDepot. It took me a little bit of guesswork to figure out exactly what "this sensor is insensitive to soiling, light or magnetic fields" and "even small waves or level variations cannot irritate the unit." really meant (Although the translator's English is better than my German), and there didn't seem to be any reviews out there on the web talking about this unit. Hopefully my description will be helpful to anyone considering upgrading their water top-off solution.

 The Tunze Osmolator Universal 3155 comes with 4 main parts:
  • Tunze 5017 Water Level Controller: The basic brains of the controller system. It is hard-wired to the optical and float-switch sensors, with a shortish wire with a strange electrical connector at the end (more on that further down) for the pump. The power supply plugs into the bottom of the controller. Four lights tell you what's going on: A green LED is usually shown, when the system is balanced. If you fiddle with the optical sensor, you'll see this light blink on and off as it detects happy/sad water status. If the optical sensor stays off for long enough (about 2 seconds), the pump will switch on for a minimum of 10 seconds, along with a yellow LED indicating active pumping. 
  • Optical (IR) Waterlevel Sensor: This is a pretty fancy little gadget. As you can see from the picture, it has a slightly pointed tip that points down into the water. What you can't see from the image is that the tip is clear, with an LED package on either side. Actually, I'm guessing that one is an IR LED, the other is an IR detector. My uneducated guess is that when water contacts the bottom of this, it essentially causes the light being emitted by the LED to be channelled to the sensor, much the same way as fiber optics channel light by bouncing it off the interface between materials of different refractive indices. Anyways, that doesn't matter. Whenever water touches the tip, the Osmolator is happy. When it doesn't, the Osmolator is sad. Since there are no moving parts, this sensor should be very reliable. I'll have to see if over time any sort of salt crust develops. If it does, I'm sure just rubbing the sensor would fix any mischief. 
  • Magnetic Float Switch: This switch is your panic/cutoff. If for some reason the optical sensor doesn't register that the water has been replenished, the float switch will both cut the pump and sound an alarm. A constant beep tone. It's annoying, but it wouldn't wake me up, it's not very loud. But if I were awake, I'd likely hear it and try to do something about it. This is really the last safety, because if the system fills to the point that this alarm triggers, you've probably got a MASSIVE failure and your tank is siphoning into your sump or something equally evil, and if that is the case, it's probably power-failure-related, and if that's the case, this alarm won't be working because the Osmolator doesn't have a battery backup, and it won't have been the pump's fault anyways, because there's no power! But it's a nice thought. 
  • Water pump: The final piece of the puzzle. Just a normal pump. Has a power lead coming off it that hooks to the strange connector from the controller. When I say 'strange,' I mean 'poorly designed.' Instead of having a standard 'plug,' the end of the pump wire just has two stripped wires. You have to then screw these wires into terminals on the wire coming from the controller. It makes me uneasy to have bare wire near salt water. I may replace this in the future with some sort of real plug, or just solder the wires and seal them with heat-shrink. Low voltage or not, shorting the wire would NOT be a good thing. Also, I'd like it if the pump was either A) weighted at the bottom or B) had suction-cup feet. As you can see from the picture, the pump is tall and skinny. And top-heavy. 
  • Power Supply: Really, a minor part of the system, but strange enough that I thought I should comment. The power supply is HUGE. For some reason, they include a unit that can be configured to supply anywhere from 1.5V to 12V (The Osmolator requires 9V). Why they would ship a supply that is four times larger than a simple 9V power supply is beyond me. Just make sure you have room on your power strip for this baby, for it will take at least 2 spots. 
Once turned on, the controller will run the pump for at least 10 seconds, and max out at 10 minutes. The actual amount of water that the pump can add in that amount of time will depend on how far it has to pump the water... At 3 ft, 10 seconds should be about 1/2 cup. 10 minutes would be about 2 gallons. Pumping 6 feet, you can cut those figures in half. So, even if both the optical sensor and the float switch malfunctioned, assuming your tank can hold an extra 2 gallons without overflowing, you'd be fine. In my experience with pumps and all things mechanical, you're far more likely for them to stick 'off' than 'on', so the most likely failure state is for the controller to run for 10 minutes and realize that it hasn't filled the tank... This could also happen if the refill container ran dry. In that case, the Osmolator will very graciously beep at you until you take care of it.

 Now, the big question I had that I couldn't find answered on the web was: Does the pump have siphon protection? My sump tank is floor-level, and I wanted to place the refill tank around waist-level so I could refill it easier. I want to make sure that when the pump shut off, the water wouldn't siphon down into the sump and overflow the system. Well the answer (which seems obvious to me now, but didn't then), is NO, the pump is a regular old pump and has no protection built in at all. The refill container water level MUST be below the waterlevel of the tank it is filling. So I can't run the line from the osmo-pump into the sump. But the solution is simple. You just run the line up to the main aquarium, and place it above the waterline (so the main tank won't siphon back into the storage container). I have mine pumping into one of the overflow boxes, so the fresh/salt mixing still doesn't take place in the main tank, but there is 0% chance of siphon. 

 I don't plan on testing this, but there is also an option for the Osmolator that allows Kalkwasser dosing (replacing your evaporated water with limewater) that apparently keeps the solution stirred in the storage tank. It sounds like a pretty neat feature, but I'm instead planning on adding a calcium reactor to my tank in the near future so I'll never know for sure. If anyone wants to comment, please shoot me an email. 

The Good: 
  • Set and forget... Even beeps if you forget to fill it Multiple safeties to prevent overflow 
  • Takes up very little space in sump 
  • Complete (but strangely worded) manual 
  • Accessories available to allow Kalkwasser dosing 
  • Less expensive that hiring a butler to do it 
The Bad: 
  • More expensive than buying a 5-gallon water cooler jug and some tubing 
  • Sensors are hard-wired, making it difficult to run wires through holes 
  • Pump wiring has strange plug that seems to invite corrosion or electrical shorts 
  • Pump is somewhat top-heavy 
  • HUGE generic power supply
Related Posts Plugin for WordPress, Blogger...