<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:iweb="http://www.apple.com/iweb" version="2.0">
  <channel>
    <title>James’ Project Blog</title>
    <link>http://sentman.com/Projects_Blog/Projects_Blog.html</link>
    <description>Any projects having to do with Home Automation I will post over at the Mac Home Automation geeklog. But there are many projects and things that are off topic for there that some of my friends might still be interested in hearing about and those will get documented here.</description>
    <generator>iWeb 2.0.4</generator>
    <item>
      <title>Understanding the current electric grid</title>
      <link>http://sentman.com/Projects_Blog/Entries/2008/11/7_Understanding_the_current_electric_grid.html</link>
      <guid isPermaLink="false">37dc8962-0e57-4fa7-89e5-133eb9efc513</guid>
      <pubDate>Fri, 7 Nov 2008 14:02:39 -0500</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2008/11/7_Understanding_the_current_electric_grid_files/IMG_0338.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/IMG_0338.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:166px;&quot;/&gt;&lt;/a&gt;Electrical plants can be generally grouped into 2 categories, base load generation, and peak load generation. Base load plants are mostly nuclear, coal and hydro. A base load plant usually puts out a huge amount of power 24/7. Because they are large plants they can't just startup and shutdown in an instant but are kept up and running all the time to provide the base load of power that we need around the clock. During the day and peak usage times smaller peak load plants are brought online to add in the additional power required to run your office and AC during the day. They are generally gas turbine in the US though there are probably still some oil fired plants out there. I expect to increasingly see solar and to a lesser extent wind become part of the peak load system but they do not significantly enter into the equation at all yet.&lt;br/&gt;&lt;br/&gt;Base load plants are the most efficient and the least expensive to operate, but are the most expensive to build as they tend to be huge construction projects. I think that small base load plants might start around 600 mega watts and go up to 5 or 6 GIGAwatts of power output. They are generally located near or just outside of the cities or areas that they service due to the high cost and low efficiency of having to bring power long distances over really big wires. Peaking plants are smaller and very inexpensive and quick to build. A small gas turbine can be thrown up in a couple of years without the huge investment of a bigger plant. But operating it is hugely expensive. Gas cost per megawatt is hugely more than coal which is hugely more than nuclear which is hugely more than hydro. Coal only competes with itself. The main use for coal in the US is for electrical generation, the price fluctuations of coal affect only the price of electricity really. Gas on the other hand is used for much more than just electrical generation. It's the most common solution for home heating. If you have to run your peaking plant a lot you use a LOT of gas which then raises the price of gas which raises not only my electric bill, but my heating bill too. The impact of using peaking plants more than absolutely necessary is much more felt by the consumer than the electric utility who just pass on those higher costs.&lt;br/&gt;&lt;br/&gt;Transmission lines are expensive and inefficient. We are capable of moving huge amounts of electric power from one place to another over long distances, but it's very expensive and power is lost to resistance in the lines and inductive losses and ground losses. They are also very expensive to build and require continual maintenance like any other infrastructure. It will always be cheaper and more efficient to generate your power as close to where you use it as possible. This is why we truck in miles of train cars full of coal to coal plants, rather than build the coal plants near the coal mines and build power lines. It's more efficient and cheaper to maintain the entire railroad industry to move the coal than to build transmission lines from where it comes from! Building transmission lines is not insignificant to the environment either. A huge amount of steal is required for the towers and it must be maintained, painted, the areas under them must be cleared and mowed, the ground treated with herbicides to keep plants from growing up the towers. They already cut huge corridors across the country. Any solution that can minimize the creation of new transmission corridors is to be preferred over one that requires the movement of power from remote areas. Assuming there is a choice of course.&lt;br/&gt;&lt;br/&gt;We don't store any electricity. Every time you turn on a light a generator somewhere turns a little harder. It is generated as you use it. As you turn on more and more lights the load on that generator goes up and up until it tops out. The load is generally shared among many plants and they know enough about usage patterns to keep the available load above the rising demand. This is actually not just up to the electric companies, but in many places they are required by law to provide a certain amount of overhead. A gas plant that is idling waiting for you to turn on your AC is burning gas just sitting there doing nothing until you start using the current. They don’t turn on a dime and so sit and wait in this ready state waiting for you to get to work and startup your computer. There is no battery technology to store giga watts of power. There are some very small demonstration plants, and some companies starting to work on huge lithium battery arrays, but their cost estimates so far are so high as to elicit laughter rather than contracts from electric companies. I'm sure this will get better and it already has, but the idea of running the world purely on solar for instance will not happen because you cannot build a world spanning transmission line to bring power from places in the world where the sun is shining to the dark side, nor can you store thousands of gigawatts of power in batteries. (a potential option is putting the panels in space and beaming down the power as microwaves to antennas on the ground, more on this in another article perhaps, suffice it to say that this is not a solution that can be put together in the short term of the next 10 years, probably not the next 50)&lt;br/&gt;&lt;br/&gt;Understanding why solar and wind cannot replace the current system of base load and peak generation is important. One would think that solar would make a perfect peak load generator. During the day is when we use the most power and during the day is when the sun is shining. Even just as clouds move across the sky though the amount of power delivered would fluctuate from almost nothing to the full capacity, whatever fraction of the needed power that might be. That may be great for your particular electric bill, but as far as base and peak load it wont make any difference to the plants that the electric company has to maintain and the peak turbines in hot standby. If the sun goes behind a cloud a turbine somewhere has to be spinning ready to pick up the slack. Hot standby uses less gas than actually generating, so less gas will be used, but the electric company cannot simply reduce it's plant size and planning just because you may or may not use slightly less power that day. They are required by law to be ready to supply the peak without browning out.&lt;br/&gt;&lt;br/&gt;It is much better for the environment to find something to replace those peaking plants and base load generation plants rather than to pick away with solar/wind in small doses which cannot significantly impact the plants that are still required to be built, maintained and run in hot standby mode by the electric company.&lt;br/&gt;&lt;br/&gt;Reducing usage through increased efficiency is also a terrific goal, but any solution that reduces the quality of life that people expect will not be tolerated even as the seas rise to greet us. Simply changing out all my bulbs with CF bulbs (which I have done personally) is great, but the savings through that and more and better HVAC systems and improved insulation and whatnot will only slow our growth, they will not reduce the demand. They cannot because they just aren't a big enough part of the whole. The solution must improve the availability of power and be able to scale as the population and usage of power scales up. People simply will not live with less air conditioning, and I don’t think that real solutions will require it. If you give people only the choice of doing without, or continuing to emit carbon, they will choose the carbon. And I don’t believe that they do have to do without.&lt;br/&gt;&lt;br/&gt;My own personal reading of all this information has brought me to the conclusion that nuclear power is the safe and quickest route to solving all these problems. There are a lot of myths and really old and just incorrect information and fear about nuclear power. As I've looked into this I've found that just about everything I thought I knew about nuclear power was wrong. I'll write further notes about the specifics.&lt;br/&gt;&lt;br/&gt;You’ll notice that I haven’t included a bunch of foot notes in this little paper. With the state of the internet the way it is, just linking to an article that repeats what you repeated is no promise of it’s accuracy. The information in this article is as I currently understand it to be true. If you have information to add or corrections to make, please drop me an email. If you question a fact or figure or conclusion, go and read up and discover something new and come back and tell me. Just suggesting that nuclear power is evil or some such thing is not helpful however and I may choose to publish your email with derision.&lt;br/&gt;&lt;br/&gt;November 7th, 2008 by James Sentman&lt;br/&gt;&lt;br/&gt;(the picture at the head of the article is of the fountain in Forsyth Park, Savannah GA)</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2008/11/7_Understanding_the_current_electric_grid_files/IMG_0338.jpg" length="212884" type="image/jpeg"/>
    </item>
    <item>
      <title>Box Shelves</title>
      <link>http://sentman.com/Projects_Blog/Entries/2008/10/11_Box_Shelves.html</link>
      <guid isPermaLink="false">10a56190-8d96-4709-ace3-6a920519ed38</guid>
      <pubDate>Sat, 11 Oct 2008 20:53:23 -0400</pubDate>
      <description>There are 3 units, above arranged in an L shape dividing the room into the TV room behind them and the playroom on the other side. I had done an almost identical, but white painted, set of these 2 years ago for my nephew so I already had a bit of a head start on the layout but I decided to add in some improvements. The base cabinets here would be large drawers and I wanted to make the entire thing out of actual wood (or at least plywood with a good veneer for finishing) which would complicate the joinery a lot. I couldn’t use the same rabbit joints that I had on the previous one as the ply wood edges would show. Luckily since the last box making project I had invested in a few new power tools that would make it possible, a new table saw that was actually capable of cutting a straight line and a 45 degree bevel as well as my new pride and joy of the shop a Festool Domino joiner. Which was a ludicrously expensive loose mortise and tenon joiner but worth every penny as I don’t think I could have finished this project without it.&lt;br/&gt;&lt;br/&gt;I dont have any good drawings or plans, the design was basically copied from a catalog that my wife liked. I adjusted the size slightly to reduce waste in cutting from 4x8 sheets of oak plywood, but didn’t make any other major changes for the size anyway. I built the bottom cabinets first as they were the most complicated with the drawers. I had never tried to install drawer slides in anything before and I was a little nervous about it all coming out square enough to make them work. Here again the domino jointer came in terribly handy as it’s alignment was so close to perfect as to not matter.&lt;br/&gt;&lt;br/&gt;Assembling the drawers was actually really easy. A dado to hold the bottom and 4 tenons in each side. Since the drawers were entirely internal I didn’t worry about fancy joinery here just a tenon supported butt joint.  I did keep forgetting to adjust the depth of cut on the domino though. The tenons are longer than the depth of the plywood so I had to cut deeper into the side of the back piece than the face of the sides. And when you forget to adjust that you plow through the front... Luckily these ended up being either on the back of the drawer which nobody else will ever see or on the front and hidden behind the drawer front so no harm done. Better to get the hang of it here than on the main case pieces.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I can’t over state just how cool these joints are. The stuff just glues up beautifully and pulls all together perfectly. Here’s a shot of the inside after it’s all glued up and the clamps removed.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The challenge with the outside case was the edges. I didn’t want to do a lot of fancy edge work and I didn’t want the plywood edges to show and it all needed to look clean since it was going to end up in the middle of the room instead of against the wall. The pretty much limited me to doing a 45 degree angle and bring the edges together. The domino joiner came to the rescue here also. The fence has a setting exactly for this. All along the inside of this joint are tenons at an angle to mate the 2 together, and again it performed wonderfully. Holding the fence on the 45 degree cut was a little tricky and I blew a couple of them getting the hang of it, but it was easy to just add more. Then some glue and pound it all together and the tenons pull them together wonderfully. Still required a huge number of clamps, but the edges look really nice. The new table saw I added to the shop (garage...) for this helped too, the old contractor saw I had couldn’t cut a straight line without kickback much less a precise angle, but the new one was able to cut the angles and do it without too much tear out or anything. I was quite happy with it.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The kick plate I did with just 2 or 3 passes through the router and flat on the sides so that it would mate up with the ones on either side. The bottom of the case is also held in with dominos and is really strong without my having to mess with dados of the proper size to hold the plywood. It would have made the joint edge look better if it had been recessed into the sides, but I dont actually own a dado yet that can do this, so I compromised. The side moldings were also custom made on the router and are tacked on with my other favorite tool the air brad nailer.  There are dominos along the front of the bottom into the kick plate as well to keep it from coming unglued if someone should step in the middle on it someday or something. Probably not necessary as the drawer will be on top of it.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;The drawer fronts are a traditional framed panel. The edges I put a bead on with the router. I was forced to invest in a new powered miter box to accurately cut the 45 degree edges here, but when setup properly it did a really nice job, and again you see a domino tenon in there. A little glue and a few clamps brought the thing together beautifully!&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;There pictured with the domino jointer is the frame! After a lot of finishing and assembly I actually got around to mounting the drawers and giving them a test.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Full extension slides and I even measured close enough that they didn’t bind or leave excessive gaps! These drawers are big enough that you could curl up in one if you really wanted to. I couldn’t be happier with the way they turned out.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Here’s Ben testing out the structural capacity of the first one to be carried in finished by jumping up and down on it. He tucked in his own shirt for this picture too :)&lt;br/&gt;&lt;br/&gt;The top pieces were easier in that they were smaller and I had already done quite a bit of the 45 degree joinery with the domino now, but were more complicated in that they had 45 degree joints on every face but the front. No bottom to leave flat and make things easier. I also discovered that it is not possible to assemble a 45 degree angle joint around an entire box like this by yourself with the tenons in. The top joint in them had to be left to be simply glued, but I dont think that will make them any less strong.&lt;br/&gt;&lt;br/&gt;The inner divders and shelves were again butt jointed with the dominos providing the strength. If I were to do it over again i would invest in the dado blade to cut grooves for them, or perhaps a router bit of the correct size to cut the dados as you can tell they are butt joints if you look too close. No matter how careful I was with cutting the plywood that edge will never be perfect and even though most folks dont notice that, I know that it’s there. &lt;br/&gt;&lt;br/&gt;Finished product though turned out terrific. Makes the room in there and makes me very happy. Even with purchasing that ludicrously expensive joinery tool though the entire project only cost a little more than purchasing something made out of particle board would have cost. And now I have the tools and the skills to move on to the next project.&lt;br/&gt;&lt;br/&gt;</description>
    </item>
    <item>
      <title>LED Outdoor Lighting, part 1</title>
      <link>http://sentman.com/Projects_Blog/Entries/2008/4/8_LED_Outdoor_Lighting,_part_1.html</link>
      <guid isPermaLink="false">45cef21f-9238-40dd-83f6-47ddc44560e5</guid>
      <pubDate>Tue, 8 Apr 2008 08:03:19 -0400</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2008/4/8_LED_Outdoor_Lighting,_part_1_files/IMG_0768.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/IMG_0768.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:166px;&quot;/&gt;&lt;/a&gt;When the christmas decorations went on sale this past year I picked up a pack of 4 LED low voltage lights on closeout from the local SAMS. They were a good metal housing from westinghouse, but had very weak little white LED’s in them. The kind you might find in a child’s flashlight with the very cool white, almost blue, color and very dim, resembling moonlight. They certainly wouldn’t have shown up from inside the house if you were looking out a window. They also had the ability to switch to a couple of red or green LED’s for holiday mode. Very cute, but not terribly useful.&lt;br/&gt;&lt;br/&gt;Converting some low voltage outdoor lighting to high power LED’s is something I’ve wanted to play with for a long time. There lots of choices for high power LED’s now, and lots of color temperature choices as well. You’re no longer limited to the very cool white color that is the most common. The very large LED’s however require proper mounting and heat sinking or they drop in brightness very quickly and will eventually become dim or even burn out. Dealing with the thermal issues of the larger 1, 3 and 5 watt LED’s out there was too much to hope for a good solution I could stuff inside these cases, so I decided instead to go with an array of individual LED’s. I chose an 8mm size of warm white. They really weren’t that good at lumen maintenance either if you just let them run at their rated power of 120ma, so I had to have more of them running at lower power.&lt;br/&gt;&lt;br/&gt;The other problem working with LED’s is that you really need a current regulated power supply. It is quite practical to run a couple of LED’s from a power source with just a current limiting resister. But as you increase power or build larger arrays this becomes problematic. As an LED heats up it’s internal resistance reduces, allowing more current to flow, causing it to heat up even more, allowing more current to flow. So you’re initial calculations will be wrong once the LED gets hot and you’ll find that it burns brighter, but eventually burns out due to over heating. If you’re running the LED above it’s rated power it’s even possible to get a thermal run away situation that leads to the energetic disassembly of the LED, or at least causes it to melt it’s bond wires and go dark. So a power supply that regulates current as opposed to just voltage is a necessity if you want good output and long life. 2 or 3 years ago when I started looking into doing this the cheapest switching regulators you could buy for this purpose were in excess of $20 a piece! So I just kept playing with things and waited and not you can buy really good ones in the $4 to $5 range.&lt;br/&gt;&lt;br/&gt;These little boards are actually meant for a flashlight, much smaller than necessary for a lamp and extremely difficult to solder the connections to the pads. I ruined the first one I tried to hook up, but got the hang of it. They are only $3.10 a piece if you order directly from Hong Kong, I ordered these from &lt;a href=&quot;http://www.kaidomain.com/WEBUI/ProductDetail.aspx%253FTranID%253D2982&quot;&gt;Kai’s Domain&lt;/a&gt; be prepared to wait if you’re going to order direct though. A month to 6 weeks wait for the stuff to show up at your door is not uncommon. They also appear to have redesigned the board since I ordered so I dont have any experience with the new layout, it might be better or worse. Since they expect DC input, and most outdoor transformers are AC you do have to also add a full wave bridge rectifier or just run from a DC power supply. Even if you run from DC it’s a good idea to put in the rectifier. I did this as that way the connection polarity doesn’t matter. YOu dont have to try to keep positive and negative straight as you pull the wire through the yard. I used this to power an array of 8 8mm warm white LED’s in parallel. Here’s the 8LED’s in the breadboard: &lt;br/&gt;&lt;br/&gt;So 750ma into 8 led’s makes it just under 94ma into each LED. Slightly under driven but still very bright and at that level the temperature never went above about 110 degrees F which is no problem for the LED’s at all. If the new driver board really pushes as much as 1000ma I may have to make a larger array to keep it running long term for future ones I build. It is important when running multiple LED’s in parallel to check them as they are not exactly matched for resistance and if one LED in the group has a significantly lower resistance it can cause more current to flow through that LED overheating it and causing it to fail which would then cause the other LED’s to sink more power without it and then they overheat and fail. You can help that by running the LEd’s in series at a higher voltage, or using a small resister on each LED in parallel. In my case I have actually 2 parallel strings of 4 LED’s in series. All the LED’s here were within a degree or 2 of each other after an hour of running so I think they were OK to run together. They have been on for 4 or 5 hours every night for a month now with no signs of dimming yet, so they appear to be OK.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I didn’t even try to do anything fancy with the boards. Just soldered them in 2 parallel strands of 4 series LED’s to a piece of perfboard.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;I did give the regulator board and the LED wires a generous dip in epoxy to protect them from moisture and shorting out against the metal case of the lamp. The install into the lamps was a bit of a pain, To hold the boards I just used a nibbler to cut out some supports from the reflector they came with, after removing the mostly useless little board that was in there. And then some silicone to hold them together. Then screwed it all back together.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;These pull 3 watts at 12 volts. The output is equivalent to a 10 or even a 15 watt incandescent low voltage bulb which makes them very usable for outdoor lamps and considerably brighter than any currently available LED outdoor lighting. And I should never have to change the bulb.&lt;br/&gt;&lt;br/&gt;So after all that work of finding an LED and a power supply that worked well together, gave a light color that I liked and had good lumen maintenance over time, now the board has been redesigned and the 8mm LED’s dont appear to be available anymore either. I’ve got some new 10mm LED’s on order and some other power supplies and so the next batch will be different again. I think that instead of a PC board in the next batch I’ll use 2 strips of brass as buss bars to solder to as they will help heat sink too. There are finally some commercially available bulbs that aren’t just 2 or 3 tiny blue/white LED bulbs available. The best I’ve seen so far are from &lt;a href=&quot;http://www.superbrightleds.com/specs/spl.htm&quot;&gt;superbrightleds.com&lt;/a&gt; but they are just a 1 watt luxeon and so aren’t even as bright as the ones I made. They are smaller though and in a really nice case. When the price of those comes down I can see putting in a bunch of them. Another good source for LED’s directly from China is &lt;a href=&quot;http://www.besthongkong.com/&quot;&gt;besthonkong.com&lt;/a&gt; but again, since they are mailing to you from far far away it will take weeks at least to get your order. They also have some nice new power supplies and other fun stuff.&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;Another option to LED’s is compact florescent bulbs. The local Home Depot has started carrying some 12v MR16 style bulbs that pull only 5 watts. They aren’t exactly MR16 sized though and wont fit in every type of lamp made for MR16 bulbs. I did find a pack of not expensive ones at LOWES that they did fit in though. The 50 watt marking on them is almost funny though. They will not, by any means of the imagination replace a 50 watt bulb. Perhaps a 20 watt bulb if you’re not too picky.&lt;br/&gt;&lt;br/&gt;There are 2 major problems with them though. Since the tube is right against the front of the bulb the output is a flood. There is no good way to focus them at all so short distance lighting only. The other problem is the color. It’s very cool white light. Some people really like this, and I’m not against it in places like my kitchen and my shop where I need to see under very bright light, but as a single dim lamp the cool white just looks grey to me. If they made a warm white version I’d be all over these, but they do not appear to. Or at least the local HD doesn’t carry them. They run fine on 12v AC or DC so can easily mix into a system of LED based lights, or regular bulb based lights though which is a plus.&lt;br/&gt;&lt;br/&gt;Here’s the bulb in the lamp that I tested them in. I haven’t put these outside yet anywhere so i can’t tell you exactly what they look like, but I suspect that it will be just a slightly brighter patch of moonlight effect due to the wide diffusion and the cool color temperature.&lt;br/&gt;&lt;br/&gt;I enjoyed building that first set of 4 LED lamps, and can’t wait for the next batch of LED’s and drivers to arrive which have been in the mail for a month now...&lt;br/&gt;&lt;br/&gt;Cheers,&lt;br/&gt; James</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2008/4/8_LED_Outdoor_Lighting,_part_1_files/IMG_0768.jpg" length="150251" type="image/jpeg"/>
    </item>
    <item>
      <title>Jessicas New Desk</title>
      <link>http://sentman.com/Projects_Blog/Entries/2008/1/17_Jessicas_New_Desk.html</link>
      <guid isPermaLink="false">52d69c1a-a731-4d87-ab6c-c6a5cba73a67</guid>
      <pubDate>Thu, 17 Jan 2008 15:15:30 -0500</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2008/1/17_Jessicas_New_Desk_files/IMG_9477.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/IMG_9477.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:166px;&quot;/&gt;&lt;/a&gt;Jess is half way through second grade already and already has homework to do every night. She really needed a place to get away from her little brother and sit quietly to work on it that wasn’t at the kitchen table all the time. I’ve wanted to build her a really nice desk for quite some time, but the shelves were really putting me off as I haven’t ever built anything like that and was worried about successfully making something that worked well. That problem was solved by the local Home Depot having a sale on prefab cabinets.&lt;br/&gt;&lt;br/&gt;Two white kitchen cabinet three drawer units for half price sounded like a good deal! After getting them home of course I realized that they were all particle board and I could probably have done better even not having built any drawers before but they will do for now until I can get around to building something nicer for her when she’s ready for it. Some nice drawer pulls and organizers finish the drawers. I had to cut off the bottom “kickplate” area to bring them down to a reasonable height for a child’s desk. While I was working on it I also added some extra plywood and some blocks in the corners. They just weren’t sturdy enough to make me happy putting so much weight on them. But after some blocking and reinforcement I think they will do the job for a while.&lt;br/&gt;&lt;br/&gt;The desktop is a piece of 3/4 sanded plywood. Nothing too fancy to look at but I did add a rounded molding all around and a nice finish. I’m considering it a sacrificial piece and if it gets all marred up with dings and scratches when she’s a kid I’ll make her a new one out of oak or something when she’s bigger and ready to really take good care of it.&lt;br/&gt;&lt;br/&gt;It’s attached to the drawers just with some of those figure 8 table top connectors. Though the piece of plywood wont expand or contract enough to really need them it will make it easy to remove it if I need to move the thing around or pack it up.&lt;br/&gt;&lt;br/&gt;The hutch though I’m pretty proud of as that is built from scratch. It’s also very simple, just 3/4 plywood with white enamel and a lot of different moldings and such. The height I did to match up with the top of the corner cubbard already installed in her room and the top of the &lt;a href=&quot;Entries/2007/10/3_Built_In_Bookshelves.html&quot;&gt;bookshelves&lt;/a&gt; that I built her a while back.&lt;br/&gt;&lt;br/&gt;Add some white beadboard for the back of the hutch, some lights and a couple of gingerbread pieces and it really looks like furniture. She has since customized it with lots of books and silk flowers and other such fun things. Luckily she doesn’t have so much homework yet that she doesn’t like to sit at her new desk.&lt;br/&gt;&lt;br/&gt;The crown molding up top was a triumph of mitering technique... Or maybe it is just amazing that I have been using the cheap miter saw for so long now that I”m figuring out how to make it do what it is supposed to do. I actually built this desk several months ago and just haven’t gotten around to posting pictures till now. Since then I’ve actually invested in a nice new 10” powered miter saw that can actually cut a 45 degree angle that will meet up with another 45 degree angle cut with the same saw! All this wood working almost justifies all the money I’ve spent on power tools! To purchase this desk would have cost more than the price of my new table saw and new miter saw together. Though not more than that plus the cost of the new mortising tool that I have also recently invested in... My wife found out how much money I spent on that and now expects some serious productivity in the furniture building area. But more on that later.&lt;br/&gt;&lt;br/&gt;The joinery in this piece is pretty much non-existent. I did use biscuits to reinforce the molding around the plywood table top, just to make sure that no matter what she did to it that it wouldn’t break off but apart from that there isn’t anything fancy going on in the top piece at all. The back behind the shelves is half inch plywood. The piece along the top runs the entire length of the piece and the vertical pieces have a cut out so that it rests in the groove. Then it’s all just screwed together. I considered doing dados and biscuits and the whole thing, but it really wasn’t necessary. Careful measurements for screws from the opposite side and it went together without any problems, all nice and straight. A little white wood putty to cover the screw holes and a good paint job. Since it was going to be painted it wasn’t necessary not to have screw holes everywhere, so that make it simpler too. A piece of felt on the bottom of each side finishes it so that it wont scratch the table too badly.&lt;br/&gt;&lt;br/&gt;The molding along the bottom there serves to hold a rabbit for the bead board as well as strengthening up the 2 sides to each other which would otherwise be prone to bending. I used pocket screws to attach it to each side. I left the bead-board out for the trip carrying it upstairs as it was rather heavy and I couldn’t get ahold of it any other way. Then just hot glued it in when we got upstairs with it.&lt;br/&gt;&lt;br/&gt;The lights are actually florescent puck lights. I absolutely hate those little tiny halogen bulbs as they just burn out constantly and get very hot. These are from “feit” electric and are meant for under cabinet lighting, but they are really very bright and make a decent quality light. Not too cool like some CF bulbs but white enough that they dont look green like other CF bulbs. I got them at Lowes. The bulbs actually attach to the sockets with tabs like a GU10 style bulb. They are covered with like a softish rubber almost like a silicon rubber that serves to soften the light and means you wont burn your hand if you bump them.&lt;br/&gt;&lt;br/&gt;Building stuff like this in the garage means that we rarely get to pull our cars in, but it is a really important activity for me to switch to during the day when computer programming gets too frustrating. It also keeps me from sitting all day long and expanding all through my middle age...&lt;br/&gt;-James&lt;br/&gt;&lt;br/&gt;here are a few construction pictures:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2008/1/17_Jessicas_New_Desk_files/IMG_9477.jpg" length="81346" type="image/jpeg"/>
    </item>
    <item>
      <title>Application Development Update #1 UPDATED! 1/17 UPDATED AGAIN 2/20!</title>
      <link>http://sentman.com/Projects_Blog/Entries/2008/1/11_Application_Development_Update_1_UPDATED%21_1_17.html</link>
      <guid isPermaLink="false">baa7d04c-aad8-4917-b49a-ce8b31e174cf</guid>
      <pubDate>Fri, 11 Jan 2008 08:11:04 -0500</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2008/1/11_Application_Development_Update_1_UPDATED%21_1_17_files/IMG_0048.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/IMG_0048.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:295px;&quot;/&gt;&lt;/a&gt;Most of the show stopper problems that I was having with Carbon apps under Leopard are getting worked through. The remaining memory leaks that Apple has found look like they will be fixed in 10.5.2 which means that server type apps like XTension, Whistle Blower and acgi dispatcher will once again be able to run on an up to date system. I was able to work around most of the largest problems, but for long term, unattended use carbon apps dont cut it on 10.5 or 10.5.1.&lt;br/&gt;&lt;br/&gt;ACGI DISPATCHER &lt;a href=&quot;../acgi_dispatcher.html&quot;&gt;link&lt;/a&gt;&lt;br/&gt;At this moment acgi dispatcher is getting most of my time. I know folks have been waiting a long time for an update to this but the new version will be worth the wait. I am making good progress with apache2 support and support for the various applescript changes that came with 10.5. I am unable to give you an estimate on when the new version will be delivered as many of the issues are still up in the air and I fully expect new things to come up during the development cycle. There were drastic changes to some of the underpinnings that the app relies on in 10.5. Both to the web server system and to applescript and both needing quite a bit of first experimentation and then work to get stuff going again. Once it’s all sorted through though it promises to work really well. The apache2 support is working now and just requires an install process. I don’t expect this to take too much longer.&lt;br/&gt;&lt;br/&gt;UPDATE: 1/17/08  The new apache communication is working really well. Apache 2 also changed some of the requirements for non parsed header scripts so I need to do some serious work on the header processing that dispatcher does as a go between. Just to make sure that scripts that only sent a content type and scripts that didn’t even bother to send a content type and scripts that send other headers will still work... And then I need to go back to apache 1.3 and make sure it all still works there. But the new system of communication is going to justify the work. No longer does the stub cgi app need to run as root so many security concerns are no longer concerns.&lt;br/&gt;&lt;br/&gt;The script editor still allows you to save a script as an application or an application bundle. At the moment dispatcher requires that you save as a monolithic application and not a bundle. Other apps though can only come as a bundle and I”m not yet sure how to get around this problem. Apache simply doesn’t forward requests for bundles to the handling program. I have no way of knowing if you asked for /someapp.acgi if someapp.acgi happens to be a folder/bundle. What you get instead is a directory listing of the /Contents directory of the bundle. So real applescripts will work just fine, but we need a solution to the app as bundle problem. Perhaps just a simple empty text file with the real name and the program being smart enough to find the app inside the bundle next to it? That might work but will require a bit of extra setup that I dont like. Any thoughts feel free to email me about it.&lt;br/&gt;&lt;br/&gt;UPDATE: 2/20/08 As of late last night a beta of the new version of acgi dispatcher is now available. It works with Leopard and Apache2 and it also allows the use of bundled applications as targets! &lt;a href=&quot;../acgi_dispatcher.html&quot;&gt;Get It Now...&lt;/a&gt; I’ve also installed a bbs system here on the website to provide a forum for support and info sharing like I used to in the heady days before the children arrived and I had to take a hiatus... &lt;a href=&quot;http://sentman.com/support/&quot;&gt;You can register and begin posting those difficult questions now&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;Session Burner &lt;a href=&quot;../CD_Session_Burner.html&quot;&gt;link&lt;/a&gt;&lt;br/&gt;This app seems to work just fine under 10.5 just as it is. I have brought the source over to the new compilers and made the necessary changes to at least compile it under 10.5 so a native version will be coming as soon as I am able to work out the new iPhoto database format for that backup.&lt;br/&gt;&lt;br/&gt;XTension &lt;a href=&quot;http://www.shed.com/&quot;&gt;link&lt;/a&gt;&lt;br/&gt;XTension is now running on leopard! Support for full UTF16 strings in all applescripts was a “non-trivial” task but it’s working now. The beta for leopard is available on the shed.com site. There remains the possibility that applescript strings that you stored in a unit property or elsewhere might remain encoded in utf8 and if you try to compare it against a constant in an applescript it may not compare even if it is the same. It is actually do have a situation where something like if “hello” = “hello” return false under Leopard! If you run up against that with stored strings the solution is to convert the new string to utf8 or the old string to utf16 before you compare. Converting to utf16 is easy just &lt;br/&gt;&lt;br/&gt;   set MyString to MyOldString as Unicode text&lt;br/&gt;&lt;br/&gt;converting the other way is just as simple, but requires typing some of the fancy applescript special characters like:&lt;br/&gt;&lt;br/&gt;  set MyString to MyNewString as «class utf8»&lt;br/&gt;&lt;br/&gt;In addition to that I was not able to work around all the memory leaks in 10.5 and 10.5.1. 10.5.1 is absolutely required or you’ll leak memory all over the place. However the View windows will still leak memory during redraws. I hope that apple will fix this in 10.5.2 but I’m not going to announce it until they do. So dont leave view windows open when you walk away from the machine.&lt;br/&gt;&lt;br/&gt;Whistle Blower&lt;br/&gt;Whistle Blower remains about half finished. I have brought the new source forward through several major compiler updates and it does compile now. There remains tons of work to do though. I will be getting serious about this as soon as the new version of acgi dispatcher ships.</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2008/1/11_Application_Development_Update_1_UPDATED%21_1_17_files/IMG_0048.jpg" length="124080" type="image/jpeg"/>
    </item>
    <item>
      <title>Leopard Compatibility Statement   UPDATE 2/20/08!</title>
      <link>http://sentman.com/Projects_Blog/Entries/2007/11/1_Leopard_Compatibility_Statement___.html</link>
      <guid isPermaLink="false">fd36deb3-4ab0-43f5-adf1-c847c126a3e8</guid>
      <pubDate>Thu, 1 Nov 2007 11:18:16 -0400</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2007/11/1_Leopard_Compatibility_Statement____files/droppedImage.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/droppedImage_4.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:180px;&quot;/&gt;&lt;/a&gt;Not being one of those developers that can pay for early access to OS releases means that I am often as surprised as you are about changes in new operating system versions.&lt;br/&gt;&lt;br/&gt;At this moment in time I cannot vouch for the Leopard compatibility of any of the apps here. Leopard made some changes, specifically to the Apple Script system, that renders many of the apps questionable or downright unusable.&lt;br/&gt;&lt;br/&gt;As of this moment I’ve devised work arounds for that problem and the other known issues and am working on new builds to properly support it.&lt;br/&gt;&lt;br/&gt;Major changes to the web sharing system, mostly the switch to Apache2 for web services, have rendered both X2Web and acgi dispatcher mostly useless. If you use these programs you will not want to update until new versions are ready.&lt;br/&gt;&lt;br/&gt;I cannot quote a date for any of them, just let you know that I am working on them and they will be released as soon as they are ready.&lt;br/&gt;&lt;br/&gt;Thank you,&lt;br/&gt; James&lt;br/&gt;&lt;br/&gt;PS: Welcome to the first of many updates for Leopard to come! 10.5.2 fixed most of the worst problems that carbon apps were having under the new OS and I am finally able to actually release some apps! The first is &lt;a href=&quot;../acgi_dispatcher.html&quot;&gt;acgi dispatcher&lt;/a&gt; which is in beta now as I type this. More will soon follow. Thank you for your patience!</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2007/11/1_Leopard_Compatibility_Statement____files/droppedImage.jpg" length="47807" type="image/jpeg"/>
    </item>
    <item>
      <title>Built In Bookshelves</title>
      <link>http://sentman.com/Projects_Blog/Entries/2007/10/3_Built_In_Bookshelves.html</link>
      <guid isPermaLink="false">d3061a98-a111-4d1b-8455-3ba263c60ba2</guid>
      <pubDate>Wed, 3 Oct 2007 09:50:29 -0400</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2007/10/3_Built_In_Bookshelves_files/IMG_9473_1.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/IMG_9473.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:166px;&quot;/&gt;&lt;/a&gt;The front of our house has 3 little gable window bits jutting out from the roof. They look nice and pretty from the outside, but they are so skinny that they don’t provide much usable space on the inside. One of them opens into my daughters room and gives her a second window out the front, but it’s down this short skinny useless hallway like feature. It was dark (even with the window) and really too skinny to put any furniture in or to use for anything. &lt;br/&gt;&lt;br/&gt;My first thought was to pull out the knee wall entirely, or at least push it back a few feet under the roof to increase the size of the room a bit. After careful consideration though I recalled my last few experiences trying to do drywall work. The framing is no big deal, these are not weight bearing walls, but the thought of purchasing some drywall and installing it and doing a good enough job taping and mudding it so that I wouldn’t be looking at it and cringing every time I walked into her room talked me out of that. So instead I decided on some built in bookshelves along the side wall instead.&lt;br/&gt;&lt;br/&gt;I made a couple of experimental cuts into the wall to locate the roof angle. Each of the 3 shelves would go into a joist space up to the roof without messing with the studs at all. The height you see in the shelves was dictated by the roof angle. Each one ended up being 13 inches shorter than the previous one. So after measuring the height from the top of the floor molding to where it would hit roof and subtracting a quarter inch for my own inaccuracy, then doing the same for the width of the 3 joist spaces I set about building 3 plywood boxes.&lt;br/&gt;&lt;br/&gt;The first joist space was a little skinnier than the other 2 which were standard 16” on center studs. I measured and then subtracted a quarter inch to give me some wiggle room, both for my own imperfect skills as well as the fact that they joists probably weren’t exactly straight all the way down either. An 8th on each side can be easily shimmed and then covered by molding.&lt;br/&gt;&lt;br/&gt;The only other complicated part of the boxes was the depth. I made the sides where it was going to be flush with the wall 3/4” longer so that they would come up and meet the drywall. The edges that were going to meet the studs and be covered with internal moldings I made 3/4 short so that they would not stick up past that. You can almost see it in that picture where the tops are a little longer than the sides in the middle one, and longer than just the outside sides on the others.&lt;br/&gt;&lt;br/&gt;The holes to hold the shelf support things were fairly easy. I purchased a piece of pegboard and just clamped it inside the case and drilled through each hole down a row. This made sure they were straight and even. As long as you clamp it down the same amount on each side they will line up for level shelves. I didn’t have to make any special preparations to install them. I just cut the appropriate size holes in each joist space, removing the drywall bits still clinging to the joists in the middle and screwed them to the joists.&lt;br/&gt;&lt;br/&gt;I’m actually pretty proud of the molding. I’ve never really gotten my miter box to cough up decent 45 degree angles, but I’m getting the hang of it. I had to build out the crown molding and add those side pieces to it so that the side molding pieces would be even with the bottom of it instead of proud of it if I hadn’t done that, so there was some extra work there. &lt;br/&gt;&lt;br/&gt;The side moldings are just regular, pre primed stuff from the hardware store. The moldings down the middle between the boxes are custom made and run through the router to round the edges and put those coves down them. They had to be custom since they needed to be the correct width to cover the stud which still runs between the shelves and cover the plywood up to flush with the inside of the box.&lt;br/&gt;&lt;br/&gt;One tool that I will never again be without when doing molding is my nail gun! My mom sometimes buys me tools for my birthday ;) And last year I got a little compressor and nail gun kit with her help. In learning to use it I learned that the longer nails really dont like to go where you want them to, they can bend along the grain and pop out on the totally wrong side of the piece rather than go straight. You really do have to pay attention to the grain and adjust the angle you’re shooting at. But for shorter brads to hold on a molding while the glue sets they are the ideal tool.&lt;br/&gt;&lt;br/&gt;Here’s the final product after repainting the room from the nasty light green to a nice bright yellow as well. I added that light sconce as well. When the wall was open it was easy to get power from the outlet on the other wall inside the attic space and route some new romex to that switch and then up to the light. That lamp is above the roofline, so I had to use an old work box and push the romex up behind the insulation, but it wasn’t very difficult. The dangers of doing your own electrical work, as well as when using the aforementioned nail gun are beyond the scope of this little article...&lt;br/&gt;&lt;br/&gt;    James&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2007/10/3_Built_In_Bookshelves_files/IMG_9473_1.jpg" length="100285" type="image/jpeg"/>
    </item>
    <item>
      <title>Sending nulls to stdout in RB</title>
      <link>http://sentman.com/Projects_Blog/Entries/2007/10/3_Sending_nulls_to_stdout_in_RB.html</link>
      <guid isPermaLink="false">edf811d8-1dc9-41bb-87ab-7c84ba78d1f9</guid>
      <pubDate>Wed, 3 Oct 2007 09:36:29 -0400</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2007/10/3_Sending_nulls_to_stdout_in_RB_files/droppedImage.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/droppedImage_5.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:147px;&quot;/&gt;&lt;/a&gt;There is a really annoying, well annoying to me, bug in REALbasic console applications. It turns out that it isn’t really a bug so much as an oversight. The console applications use only CStrings as parameters to the write functions to stdout. Since CStrings are null terminated, the writing stops if you’re trying to output binary data that happens to contain any nulls. So while you can pipe text, you cannot pipe binary data of any kind into or out of an RB app due to this limitation.&lt;br/&gt;&lt;br/&gt;Today I decided that the workaround was to declare down to the lower level system “write” command that can output from memory directly and cares not what the data actually contains. Some messing around revealed that I could not declare to LibC but rather to the MacOSX wrapper for it which is “System.Framework” and then it works! &lt;br/&gt;&lt;br/&gt;The declare looks like this:&lt;br/&gt;&lt;br/&gt;</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2007/10/3_Sending_nulls_to_stdout_in_RB_files/droppedImage.jpg" length="27653" type="image/jpeg"/>
    </item>
    <item>
      <title>iWeb RSS Fixer</title>
      <link>http://sentman.com/Projects_Blog/Entries/2007/9/27_iWeb_RSS_Fixer.html</link>
      <guid isPermaLink="false">21861362-a029-47a0-95f7-c0c4d28fef98</guid>
      <pubDate>Thu, 27 Sep 2007 16:14:22 -0400</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2007/9/27_iWeb_RSS_Fixer_files/droppedImage.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/droppedImage_6.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:186px;&quot;/&gt;&lt;/a&gt;I dont have a .Mac account, but I like iWeb. I am trying to use it to manage my website here via the “Publish To Folder” option and that is working pretty good. It makes strange links though, when I ftp the folder I publish to up to my server instead of just saying http://sentman.com/index.html I get something that looks like:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;And if you create multiple sites they want to go under the second sentman.com instead of just their own directory. On my hosting service they create a separate set of directories for each virtual domain I create and you dont get to mess with the low level apache settings to do something like a clever re-write or some other hacking to make it look right. Which is probably good... The initial solution I tried was to copy the second sentman.com folder to the webroot on the server instead of the folder that I published to. This looked good except for all the rss links are now broken as iWeb wants to create all the links based off the address you put in their site name for rss field when you select publish to folder.&lt;br/&gt;&lt;br/&gt;The situation gets even wierder when you want to have multiple sites. Maybe I just dont see how to use the program, but as far as I can tell this makes it broken for more than one site unless it’s really just like a folder under the first site. I need to have several “sites” in iWeb all uploading to different directories on the server, not all to the same place! So I can ftp the individual site folders from inside the “publish to folder” folder, and that works for everything except for rss feed information which then has really strange links like:&lt;br/&gt;&lt;br/&gt;http://sentman.com/myothersite.com/blog/feed.rss&lt;br/&gt;&lt;br/&gt;when it should just be&lt;br/&gt;&lt;br/&gt;http://myothersite.com/blog/feed.rss&lt;br/&gt;&lt;br/&gt;but you can’t make it do that as far as I can see. So what I needed was a little app to walk all the html and xml files that iWeb creates after I publish to folder, but before I upload to fix all the links. iWeb RSS Fixer is the result. After the Publish To Folder step, drag and drop that folder form the finder onto iWeb RSS Fixer and it will fix those links. Here’s exactly what it does:&lt;br/&gt;&lt;br/&gt;First it needs to know what the name of the root site is and it gets that by looking into the first index.html file that is created in the Publish to Folder folder. That page contains nothing but a meta refresh to the full url and so contains the same name that you used in the link for rss feed field. After pulling that out and walking the rest of the individual site folders it can build the link that needs to be changed. So in my case everytime it finds:&lt;br/&gt;&lt;br/&gt;sentman.com/ sentman.com&lt;br/&gt;&lt;br/&gt;in a link, it will replace it with just sentman.com&lt;br/&gt;&lt;br/&gt;and everytime it finds something like&lt;br/&gt;sentman.com/mysecondsite.com it will replace it with just mysecondsite.com fixing any of the rss links.&lt;br/&gt;&lt;br/&gt;In my testing here it SEEMS to be working fine and I dont believe that it can do any irreparable damage to your site as it works only on the publish to folder folder and not on the iWeb document. So if it completely hoses up your site, just republish again and upload again and everything it did will disappear. &lt;br/&gt;&lt;br/&gt;Make sure that you only ever drag and drop the folder that was created by the “publish to folder” command onto the app. The program makes no attempt to validate the folder and doesn’t give you a second chance to make sure you dragged the right folder so get it right the first time or it may do unfortunate things to other documents.&lt;br/&gt;&lt;br/&gt;So just to sum up then: It is possible to manage multiple separate sites from iWeb, but it requires an extra step.&lt;br/&gt;&lt;br/&gt;As of iWeb 08 (2.0.1) and (2.0.2) it creates a folder structure like this:&lt;br/&gt;&lt;br/&gt;    site root/&lt;br/&gt;                    index.html&lt;br/&gt;                    sentman.com/&lt;br/&gt;                    site 2/&lt;br/&gt;                    site 3/&lt;br/&gt;                    site 4/&lt;br/&gt;&lt;br/&gt;The “site root” is the folder that you selected when you told iWeb to “publish to folder”.  &lt;br/&gt;&lt;br/&gt;Drag the “site root” folder onto iWeb RSS Fixer and it will fix the links inside the site folders. Then upload each individual site folder (in this example “sentman.com”, “site 2”, “site 3” etc to the appropriate virtual host folder on your server, whatever that may be and all the rss links should be working fine.&lt;br/&gt;&lt;br/&gt;iWeb RSS Fixer is released as freeware but I retain the copyright so it’s free for your personal or professional use as long as you do not resell or redistribute the application yourself. As with all freeware it is released without any official guarantee or support and you are put on notice that it does make changes to the files you drag onto it. It has been tested only with iWeb version 2.0.1 and 2.0.2 and may make a horrible mess out of sites created with earlier or later versions.&lt;br/&gt;&lt;br/&gt;Also, I am not an apache config guru, if you do not already have a working knowledge of virtual hosts and know how to create them and move your data up to them then I cannot help you. I have no idea how to add this to the apache config file manually or anything else of the sort.&lt;br/&gt;&lt;br/&gt;DOWNLOAD  &lt;a href=&quot;Entries/2007/9/27_iWeb_RSS_Fixer_files/iwebrssfix-1.zip&quot;&gt;iwebrssfix.zip&lt;/a&gt;  (version 1.0.1 universal MacOS App, 2.5meg)&lt;br/&gt;&lt;br/&gt;UPDATE: 9/28/07 - In order to make it a little safer if you were to drop the wrong folder onto the app if it doesn’t find the root folder reference it will stop and not try to continue and so will alter no files. &lt;br/&gt;&lt;br/&gt;If you can see the link of this page, and sentman.com is shown only once, then it’s working ;) Even though it’s freeware, I’d still love to hear from people using it or if you have any questions or comments about it. Thank you!&lt;br/&gt;&lt;br/&gt;Like the program? Donate $5!</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2007/9/27_iWeb_RSS_Fixer_files/droppedImage.jpg" length="27621" type="image/jpeg"/>
    </item>
    <item>
      <title>I’m Sick of Databases!</title>
      <link>http://sentman.com/Projects_Blog/Entries/2007/9/20_I%E2%80%99m_Sick_of_Databases%21.html</link>
      <guid isPermaLink="false">4ebbe055-1dad-42b6-b2d3-8d348825ba12</guid>
      <pubDate>Thu, 20 Sep 2007 16:00:43 -0400</pubDate>
      <description>&lt;a href=&quot;http://sentman.com/Projects_Blog/Entries/2007/9/20_I%E2%80%99m_Sick_of_Databases%21_files/droppedImage.jpg&quot;&gt;&lt;img src=&quot;http://sentman.com/Projects_Blog/Media/droppedImage_7.jpg&quot; style=&quot;float:left; padding-right:10px; padding-bottom:10px; width:221px; height:238px;&quot;/&gt;&lt;/a&gt;I’m certainly a fan of “open source” software. But some of the subtleties of it often escape me. One of the projects that I work on is a database for tracking motion sensor hits in your house like &lt;a href=&quot;http://www.sentman.com/x2web/&quot;&gt;this&lt;/a&gt;...&lt;br/&gt;&lt;br/&gt;That program is written in REALbasic and uses the built in database functions of RB which are a subset of SQL and has worked very well. As long as the you don’t let too much data pile up and as long as you don’t expect the main thread of the app to do anything else while the queries are running.&lt;br/&gt;&lt;br/&gt;In order to improve the apps speed and responsiveness I decided to add an option to connect to MySQL for the database work. SQL is SQL (at least how I wrote it it was, it is possible to write SQL that wont port, but it takes a lot of effort...) So the only work necessary was the signon code to open the connection to the database. There is a MySQL plugin for realbasic which provides the MySQL login stuff and then a database object which is otherwise identical to the build in database. I didn’t waste too many hours before I had something working pretty good, and a few more hours for some code to move your current database of motion sensor data over to MySQL and back again if you wanted to do that.&lt;br/&gt;&lt;br/&gt;After doing some beta testing with folks that was going well it came to my attention that there was an ongoing controversy of just how the open source license that MySQL uses would affect MY app. In my case I was not actually bundling MySQL, or including any of their code, just the plugin to offer me a connection to a separate install of it. Evidently even this means that I have to release the source code to my app as well. This is silly, so now any app that would otherwise have connected to MySQL cannot do so without purchasing a commercial license or open sourcing itself? I thought the whole point of having it as a separate entity on the machine was so that other programs could use it. In any case, MySQL is no longer an option and the hundreds of OSX installs of it I was going to help people do will now go undone.&lt;br/&gt;&lt;br/&gt;I have decided to do something even better though. All the data I’ll be dealing with is sequential and structures in numerical order are very easy to search through in memory or on disk. This is all harking back to basic computer programming as actually taught to some people... If your list is in order you can find any value in only a very few hits. You could just start and the end and walk through until you find it, but that will get slower the more datapoints you have and the further your requested point is from the beginning of the dataset. But if you start in the middle and compare you cut the dataset in half, then jump to the middle of the remaining, and cut that in half and continue until you reach the value you’re looking for. This also adds steps with more data, but far far fewer. Back when I used to work for a “major retail pharmacy chain” I did things like this all the time as the hardware we were programming for was limited and often amortized over a dozen years leaving many of the computers out there far behind the Moores Law curve. But lately I’ve gotten lazy, just dump it into a database and write a query! But no more.&lt;br/&gt;&lt;br/&gt;Each data point is 16 bytes. I could cut that by 8 bytes or so, but I want to keep the flexibility of having enough bits to store a floating point number for things like temperature data as well as just a motion hit. So the first 8 bytes are the date stored as the MacOS’s long date time value, basically the total seconds since some arbitrary date in the past. Using this as the index does mean that the resolution is limited to 1 entry every second for any given unit memory block, but I can live with that for this application. It just isn’t suitable for high frequency data collection. The second 8 bytes are reserved for the value, be it a simple 1 for a motion hit, or a floating point value for a temperature or other data like wind speed or rainfall or whatever.  Say you recorded the temperature every minute for a month that would be 43200 data points, each one taking up 16 bytes makes it only 675k to cache the entire thing in memory. Thats not so bad, I waste more memory than that with screen buffers... Even if you do that for several sensors and many motion sensors (which will have a much lower overall data rate) you’re only looking at a few meg used up to store the data for the last 30 days. For motion sensors you’ll probably not want to save more than 30 days or so anyway, but temperature data you might want to keep forever to run historical graphs or something. RB lets me map a memory region to the same read/write commands that I can use on a binary file. so i can actually use the same routines to search a block of data be it cached in memory or written to disk. The disk ones will run slower because they have to physically seek the disk head to do the searching... but perhaps I could read an entire 30 days worth into memory at a time for searching if that turns out to be too slow. At this point I’m collecting data from my personal system to work with the search routines for. In real use so far I’m very happy with the memory footprint and speed of saving the data. I’m confident that the searching and report generation that I’ll be building next will be considerably faster than the same data stored and indexed in MySQL, and it will use less memory and disk space as well. Watch this space for updates when enough is done to test.</description>
      <enclosure url="http://sentman.com/Projects_Blog/Entries/2007/9/20_I%E2%80%99m_Sick_of_Databases%21_files/droppedImage.jpg" length="159132" type="image/jpeg"/>
    </item>
  </channel>
</rss>
