<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-406459933046343182</id><updated>2012-02-15T23:01:09.551-08:00</updated><category term='Consulting'/><category term='pictures'/><category term='Robert Cray'/><category term='Scuba'/><category term='Gadgets'/><category term='storage'/><category term='Tinkering'/><category term='Grab Bag'/><category term='laser tag'/><category term='Technology'/><category term='Programming'/><category term='Music'/><title type='text'>Rich Whiffen</title><subtitle type='html'>Another blog from another techie kind of guy</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rich.whiffen.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default?start-index=26&amp;max-results=25'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>89</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-5484091807106520814</id><published>2011-12-27T10:32:00.000-08:00</published><updated>2011-12-27T10:32:37.679-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><category scheme='http://www.blogger.com/atom/ns#' term='laser tag'/><title type='text'>Another simple LightStrike gun Mod</title><content type='html'>&lt;div class="p1"&gt;Ok, I've been playing around a little bit more with my&amp;nbsp;&amp;nbsp;D.C.R.-012. Basically it's turned into my practice gun. I'm trying all my hacks and mods on this LightStrike gun first to learn my mistakes in one sand box as it were. At any rate, this time I decided to put a SPST push-button-style switch in. It turned out great functionally. Turned out horrific visually. First I decided to cut the clipping bracket off the back. I decided to take my new Dremel 4000 out for a spin on this mod, so I used a cutting disk to cut the piece off.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-J9-sVO7BKL0/TvoNqP__wiI/AAAAAAAAAJ4/e9FVGNUnhiM/s1600/IMG_0296.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://1.bp.blogspot.com/-J9-sVO7BKL0/TvoNqP__wiI/AAAAAAAAAJ4/e9FVGNUnhiM/s320/IMG_0296.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;        &lt;/div&gt;&lt;div class="p1"&gt;And then used a sanding band disk and buffing paste and felt pad. Lesson learned: Don't do that. Basically the plastic is far too soft to dremel at most speeds. You basically end up melting the plastic. Further I nicked the plastic where the headphone jack goes making it look even worse. Anyway, I finished up the job with a Xacto knife, which is what I should have started with. I cut a notch in each half of the case to fit the round button. Lesson #2, it's pretty hard to get this even, so either cut it out with the gun screwed back together, or put it on one side or the other, not along the lateral line.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-Qh-LVLam4GI/TvoN7Xp4T-I/AAAAAAAAAKE/DbbXfiAm-_U/s1600/IMG_0297.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-Qh-LVLam4GI/TvoN7Xp4T-I/AAAAAAAAAKE/DbbXfiAm-_U/s320/IMG_0297.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;        &lt;/div&gt;&lt;div class="p1"&gt;I cut the lead going to the weapon select and soldered it to my push button. Interesting note about the capacitance sensing of the guns, they don't look for a specific value, but a delta in that value. If, for instance, you want to take a gator clip and temporarily clip a switch on, you have to do it while the gun is off. Otherwise it interprets the change in capacitance as having the button pressed and it cycles through the weapon settings continuously (which makes sense, I've increased the electron holding capacity of the wire lead. Cutting the copper tape off and putting the button on changed the initial value of the capacitance on startup but that initial value isn't important, it's changes in that value. Ok, here's what I considered the interesting part. The switch itself isn't enough. You have to put a wire lead hanging off the other end of the switch to hit the threshold needed to evoke the change. I tried some simple test and basically I need at least 3 inches of the wire I was using to get it to flip. To ensure it would trip. I used a red piece of solid core wire that's hard to see in my picture, but I basically just coiled it up in the dead space between the trigger housing and reload switch.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-f8M-TnsslSs/TvoOB1SoufI/AAAAAAAAAKQ/90IA2CqO6c4/s1600/IMG_0298.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-f8M-TnsslSs/TvoOB1SoufI/AAAAAAAAAKQ/90IA2CqO6c4/s320/IMG_0298.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;        &lt;/div&gt;&lt;div class="p1"&gt;The End result, I have a button on the back of the gun that is now weapons select.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-E5Okccuz758/TvoOJZ75zUI/AAAAAAAAAKc/89jPjAliQpY/s1600/IMG_0299.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://4.bp.blogspot.com/-E5Okccuz758/TvoOJZ75zUI/AAAAAAAAAKc/89jPjAliQpY/s320/IMG_0299.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;        &lt;/div&gt;&lt;div class="p1"&gt;So now I can change weapons with one hand. I've got to tidy up the fit and finish a bit, there's gap still where the two halves meet and I cut too much on one side and will need to patch/bondo that back. But it works. I think the next switch I want to add is something like these two switch types:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-Veu9wownL7E/TvoOhz32QlI/AAAAAAAAAKo/LsW3TU7Gf5o/s1600/pRS1C-2160402t98.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-Veu9wownL7E/TvoOhz32QlI/AAAAAAAAAKo/LsW3TU7Gf5o/s1600/pRS1C-2160402t98.jpg" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-owZddzFz43A/TvoOjgI9YsI/AAAAAAAAAKw/ETuDVb6cDbo/s1600/pRS1C-2266162t98.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-owZddzFz43A/TvoOjgI9YsI/AAAAAAAAAKw/ETuDVb6cDbo/s1600/pRS1C-2266162t98.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="p1"&gt;        &lt;/div&gt;&lt;div class="p1"&gt;These are both pictures from the &lt;a href="http://www.radioshack.com/"&gt;&lt;span class="s1"&gt;radioshack.com&lt;/span&gt;&lt;/a&gt; website. The toggle with safety cover would look the coolest, but it's not a SPST. The 2nd switch is a SPST and it's lighted, so presumably you could add some more cool lights to the gun over all with this one. Anyway, we'll see if I actually get around to it. I had also thought it would be cool to have the weapon select button be a rotary switch, but as LYNX pointed out in his comment, rotary switches aren't typically SPST. I guess I could make Cam with a lobe on it to push a SPST button, but that'd be too much effort for me at this point. In the photos above, you can also see my 'learning' attempts with &lt;a href="http://www.amaco.com/shop/product-437-rub-39-n-buff-metallic-finishes.html"&gt;&lt;span class="s1"&gt;Amaco's Rub 'N Buff product&lt;/span&gt;&lt;/a&gt; line. I didn't prime the gun first, I simply started smearing it on, and it seemed to work as expected. The copper looks like it will give me the look I want. The silver leaf (not show) didn't work out as well as I had hoped. My local &lt;a href="http://www.acmoore.com/"&gt;&lt;span class="s1"&gt;A.C. Moore&lt;/span&gt;&lt;/a&gt; only had those two colors, but now that I know how they look/work I feel a bit more comfortable about buying them online. I'll probably go for Ruby and Spanish Copper. Most of what I'm figuring out I've learned/read in various NERF gun mod sites and forums.&lt;/div&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p1"&gt;Still have a lot more practicing to do. It'll be interesting to see if this gun even functions by the time I'm done with it.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="p1"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-5484091807106520814?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/5484091807106520814/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/12/another-simple-lightstrike-gun-mod.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5484091807106520814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5484091807106520814'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/12/another-simple-lightstrike-gun-mod.html' title='Another simple LightStrike gun Mod'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-J9-sVO7BKL0/TvoNqP__wiI/AAAAAAAAAJ4/e9FVGNUnhiM/s72-c/IMG_0296.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-1876379271181184732</id><published>2011-11-14T22:33:00.000-08:00</published><updated>2011-11-14T22:37:28.346-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='laser tag'/><title type='text'>Light Strike Bits decoding spreadsheet</title><content type='html'>I've taked a few times about 'decoding the bits' so I thought I would finally get around to putting up a spreadsheet for anyone to see.  A quick refresher of how I'm counting/tracking the output from the light strike devices:  65 'signals' come from the device. They come in two types: Pulses or Spaces. This is what the LIRC software refers to them as, so I just continue that. If it's wrong, it's GIGO from LIRC to me to you.  The first signal is a large pulse, typically double the value of all other pulses you will get.  This is the 'frame start' if you want to think of it in terms of a networking packet.  The next 64 'bits' of information are alternating pulses and spaces.  The pulses are constant.  They're the markers between spaces to let you know when a space starts and ends.  Since the pulses are simply borders for your spaces, you are left with 32 bits of data in your frame. Because I cheat and take the output from one of the LIRC utilities rather than reading the pulses directly, I count the pulses and spaces together for 64 'bits' in my coding (mostly because when I started I wasn't 100% sure if the pulses might have a hidden significance).  So when you view the spreadsheet, even numbers are the spaces, odds are the pulses.&lt;br /&gt;&lt;br /&gt;Here is the &lt;a href="https://docs.google.com/spreadsheet/ccc?key=0Arz5A-6gtL3kdDRFNlVpSHdkUEhUTi1mMHhlaDU0WUE"&gt;google docs spreadsheet of my light strike bit decodes&lt;/a&gt;. &amp;nbsp;There are four tabs, one for the rifles, one for the pistols, one for the ITS and bit math where convert the bits from binary to base10 numbers to see the relative values. &amp;nbsp;The pistols sheet is a work in progress, I only took one stab at decoding the only pistol anyone in my group has. &amp;nbsp;It had surprising results. &amp;nbsp;A laser strike from a pistol is different than the laser strike from the rifle. &amp;nbsp;It makes sense in a way. &amp;nbsp;The rifle bits add up to the number 1344, but the laser strike on the pistol is only 258 it seems. &amp;nbsp;They seem drastically different which means I should probably revalidate the values coming out of the pistol.&lt;br /&gt;&lt;br /&gt;I'll probably create a code.google.com project to dump my simple perl code into at some point too, with the hopes that someone who is an actual developer can take it further.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-1876379271181184732?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/1876379271181184732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/11/light-strike-bits-decoding-spreadsheet.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/1876379271181184732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/1876379271181184732'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/11/light-strike-bits-decoding-spreadsheet.html' title='Light Strike Bits decoding spreadsheet'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-3175380496715226682</id><published>2011-11-14T18:47:00.001-08:00</published><updated>2011-11-14T18:57:08.570-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Grab Bag'/><title type='text'>test pictures</title><content type='html'>&lt;p&gt;testing a picture&lt;/p&gt;&lt;p&gt;&lt;img title="IMG_0027.jpg" src="http://lh4.ggpht.com/-lwOTDzxup90/TsHS1kb8qlI/AAAAAAAAADg/AtyP_vV6Bs4/IMG_0027.jpg?imgmax=800" border="0" alt="IMG 0027" width="600" height="600" /&gt;&lt;/p&gt;&lt;p&gt;I'm playing with a new blog editor called MarsEdit and want to see if it's worth buying.  Want to see if it can upload images directly to blogger.com blogs.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-3175380496715226682?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/3175380496715226682/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/11/testing-picture.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3175380496715226682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3175380496715226682'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/11/testing-picture.html' title='test pictures'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-lwOTDzxup90/TsHS1kb8qlI/AAAAAAAAADg/AtyP_vV6Bs4/s72-c/IMG_0027.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-3543004856788291847</id><published>2011-11-07T19:29:00.001-08:00</published><updated>2011-11-07T19:38:56.383-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Grab Bag'/><title type='text'>Migrating from my old blog to this new blog...</title><content type='html'>Right now my blog is hosted on PowWeb.com and it's been great, but I'm tired of managing the wordpress config myself, so I'm going to google's Blogger.com setup so it will be all tied into my existing google apps accounts for my vanity domain. &amp;nbsp;There's bound to be a lot of mistakes as I copy the posts over, so please bare with me. &amp;nbsp;I won't actually change the DNS entries until I get the stories 100% migrated.&lt;br /&gt;&lt;br /&gt;For now I've run into the post limit for the day, so it'll have to wait until tomorrow. &amp;nbsp;Someday &lt;a href="http://rich.whiffen.org/"&gt;http://rich.whiffen.org&lt;/a&gt; will be here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-3543004856788291847?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/3543004856788291847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/11/migrating-from-my-old-blog-to-this-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3543004856788291847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3543004856788291847'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/11/migrating-from-my-old-blog-to-this-new.html' title='Migrating from my old blog to this new blog...'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-5742772940517479291</id><published>2011-11-07T19:24:00.000-08:00</published><updated>2011-11-14T22:37:42.640-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='laser tag'/><title type='text'>Light strike scope accessory tear down</title><content type='html'>So I got around to taking apart my Light Strike scope. I didn't like that my gun was black but the scope is brown. I also didn't like how it looked or the plastic used to simulate the optics of a scope.&lt;br /&gt;&lt;br /&gt;&lt;img alt="NewImage" border="0" height="92" src="http://lh4.ggpht.com/-5-V1ZifdblY/TsHWwpb0h1I/AAAAAAAAADs/kagUCqJyzJE/scope.png?imgmax=800" title="scope.png" width="120" /&gt;&lt;br /&gt;Other than enabling the two shot types for your gun, it wasn't that appealing to me over all and I doubted I would ever actually use it. So I decided to break it open. Break is the operative word here. Even after you remove the numerous screws hiding under the stickers (six of them I think) the scope doesn't come apart easily. The front plastic lens housing is essentially melted/glued in place. So you would not be able to take apart your scope and put it back together. I was thinking it might be fun to put a real laser pointer inside or some thing to act like a reflex sight to make it look cooler. No such luck.&lt;br /&gt;&lt;img alt="NewImage" border="0" height="360" src="http://lh4.ggpht.com/-dWsZn3Y0o8I/TsHWxQAVkGI/AAAAAAAAAD0/QbVikd45vPQ/scop1.png?imgmax=800" title="scop1.png" width="480" /&gt;&lt;br /&gt;There really isn't much to the scope. It doesn't actively do anything other than flash the LEDs and enable the fire modes in software. I'm guessing some transistors and capacitors or resistors. I don't know how to tell the difference between SMD capacitors and SMD resistors. They have numbers like 101, 470 and other such values on them. The transistors have numbers too but I can't read them (they have three solder points so I'm guessing they're transistors). From there its a ribbon cable to the multicolor LED and red LED. The multicolor is the one that lights up the plastic dome on the top of the scope with your team color. The red one simply makes the red dot appear in the center of the rear optic.&lt;br /&gt;&lt;img alt="NewImage" border="0" height="360" src="http://lh5.ggpht.com/-SPZC2WMxlFE/TsHWynXFkhI/AAAAAAAAAD8/aNFqJeFNcn0/scope2.png?imgmax=800" title="scope2.png" width="480" /&gt;&lt;br /&gt;So it would be quite simple to replace those two with something else like a real laser pointer. I took a laser pointer from a trade show apart and extracted just the laser goodies out of it, so if I can find something cool the mount it in, I will likely take the red LED out and replace it with a laser pointer.&lt;br /&gt;&lt;img alt="scope pcb" border="0" height="360" src="http://lh5.ggpht.com/-ti-9VPMZ-8k/TsHWzbA6aaI/AAAAAAAAAEE/rIrBhbCMe_A/scope3.png?imgmax=800" title="scope3.png" width="480" /&gt;&lt;br /&gt;Here's a closer view of the PCB.&lt;br /&gt;&lt;br /&gt;Another interesting thing I found out: the ports are not interchangeable. You cannot plug the scope into the launcher/rapid fire port. The gun shuts down if you do. So my theory that the ports were a parallel bus before is wrong. Thankfully the gun doesn't fry if you plug it in backwards or in the wrong port. Anyway, there yo have it, the internals of the scope. I might decide to take apart the rapid fire system to see what's inside there as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-5742772940517479291?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/5742772940517479291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/11/light-strike-scope-accessory-tear-down.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5742772940517479291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5742772940517479291'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/11/light-strike-scope-accessory-tear-down.html' title='Light strike scope accessory tear down'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-5-V1ZifdblY/TsHWwpb0h1I/AAAAAAAAADs/kagUCqJyzJE/s72-c/scope.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-5507044907445197287</id><published>2011-10-19T07:59:00.000-07:00</published><updated>2011-11-08T21:31:23.450-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Consulting'/><title type='text'>iCloud and iCal part two...</title><content type='html'>&lt;p&gt;Well, still no traction on why iCloud spammed former clients with appointment accepts. I did get an email from Ed K. who seems to have the same problem and like me can find little or no information on it. If you're iCloud is accepting old appointments, pile on a discussion thread I started: &lt;a href="https://discussions.apple.com/thread/3411914"&gt;https://discussions.apple.com/thread/3411914&lt;/a&gt; and maybe we'll get some traction that way.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;This is the real danger of the cloud. All of the forensic data I would normally use to track these kind of issues down are not available to me. The cloud owns them and they are not going to be forthcoming with information about errors and outages. I think that's an interesting aspect of cloud computing that is worth some discussion. Security in the cloud is an issue for a lot of people because it's very difficult to know who truly can access your data. I think it becomes even worse if someone does get your data and you need forensic data to track it down. For example if you are a new start-up and have some super-secret and valuable information that is stolen via the cloud, would Amazon give you all the information you would need to track the perpetrators down? Just because it's valuable to you, doesn't mean it has the same value to Amazon. &amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As an aside, my choice of Amazon isn't meant to imply that they would or would not behave badly in that senario, just talking in hypotheticals.&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-5507044907445197287?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/5507044907445197287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/10/icloud-and-ical-part-two.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5507044907445197287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5507044907445197287'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/10/icloud-and-ical-part-two.html' title='iCloud and iCal part two...'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-3543370966183787042</id><published>2011-10-19T06:53:00.000-07:00</published><updated>2011-11-14T22:38:15.611-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><category scheme='http://www.blogger.com/atom/ns#' term='laser tag'/><title type='text'>My first Light Strike Mod and tear down photos</title><content type='html'>All right! It's light strike mod time! I've decided to hack my&amp;nbsp;&amp;nbsp;D.C.R.-012 and do some mods to it. After you remove the stickers (which is a little too easy, the adhesive isn't very good) it looks like this:&lt;br /&gt;&lt;img alt="Gun right" border="0" height="360" src="http://lh4.ggpht.com/-7LIBRVu46NY/TsHZJfrpyJI/AAAAAAAAAEQ/m1CKSnrqBtU/gun1.png?imgmax=800" title="gun1.png" width="480" /&gt;&lt;br /&gt;&lt;img alt="Gun Left" border="0" height="360" src="http://lh3.ggpht.com/-_ow1_pRpAs8/TsHZKRKQqpI/AAAAAAAAAEY/Npde-bSYaWA/gunleft.png?imgmax=800" title="gunleft.png" width="480" /&gt;&lt;br /&gt;The little copper patches are the 'switches' from the stickers. They are capacitance sensor based, which is neat and disappointing at the same time, because it make putting a real switch there complicated. Anyway, on one side there are a boat load of screws that need to be removed and the orange end-cap on the barrel needs to be taken off (comes off easy). After that, you see something like this:&lt;br /&gt;&lt;img alt="Inside of Gun" border="0" height="360" src="http://lh6.ggpht.com/-oiK0gt8_9B0/TsHZLSPTN7I/AAAAAAAAAEg/HgM4aPgZEhU/guninside.png?imgmax=800" title="guninside.png" width="480" /&gt;&lt;br /&gt;Picture is a bit blurry, but you get the idea.&lt;br /&gt;&lt;img alt="gun close up" border="0" height="360" src="http://lh4.ggpht.com/-AXNBX3WdQCU/TsHZMewR4NI/AAAAAAAAAEo/VVxAyT3kQBU/gun-zoom.png?imgmax=800" title="gun-zoom.png" width="480" /&gt;&lt;br /&gt;The 'brains' are interesting. Everything is clearly labeled in english for what it does. Things like CAP_SENSOR, LIFE, RELOAD or IR_RX so drastic mods would be pretty easy. The mount points for the attachments seem to be in parallel so they're likely only restricted by the plastic mount shape rather than the actual location. It would be interesting to see what would happen if you grafted a 3rd mount point on. Could you activate the tracker at the same time as the scope and launcher attachments?&lt;br /&gt;&lt;img alt="gunfront" border="0" height="360" src="http://lh4.ggpht.com/-dmT7C3hfZz8/TsHZNXF1JaI/AAAAAAAAAEw/Jw-tOeyZhhg/gunfront.png?imgmax=800" title="gunfront.png" width="480" /&gt;&lt;br /&gt;Looking at the IR blaster (the opaque lens) and receiver (the black circle with the silver X on it)&lt;br /&gt;&lt;img alt="gunimitter.png" border="0" height="360" src="http://lh4.ggpht.com/-S-N0sE1MCNs/TsHZOV3tuLI/AAAAAAAAAE4/YxLfv9xTwhY/gunimitter.png?imgmax=800" title="gunimitter.png" width="480" /&gt;&lt;br /&gt;The IR transmitter with the cone and lens removed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm not doing much today, just changing some LED colors. the life bars are 3 red LEDs. Going to make them 3 different colors (well, specifically changing two reds out)&lt;br /&gt;&lt;img alt="gunleds.png" border="0" height="360" src="http://lh3.ggpht.com/-3hr0m0nFKjU/TsHZPWfwD_I/AAAAAAAAAFA/-H4BZxUebKQ/gunleds.png?imgmax=800" title="gunleds.png" width="480" /&gt;&lt;br /&gt;unscrewed them and soldered in a green and blue that I took out of some of my kids toys (sssshhh, don't tell! They were broken anyway). I would have rather done green -&amp;gt; yellow -&amp;gt; red but none of the toys had any yellow LEDs. I guess I could have gone white and then put a yellow film, but I'm just screwing around so what the heck.&lt;br /&gt;&lt;img alt="bluegreenred" border="0" height="360" src="http://lh4.ggpht.com/-bYRRDGp9zug/TsHZQb5ZFAI/AAAAAAAAAFI/g54diYH3sT8/bluegreenred.png?imgmax=800" title="bluegreenred.png" width="480" /&gt;&lt;br /&gt;First off, this Point-and-shoot camera stinks. Second, here's the two new LEDs in place. They're rounded on the top and the originals were flat, so I get a different light distribution in my new LEDs that isn't ideal. But it does work:&lt;br /&gt;&lt;img alt="gundone" border="0" height="360" src="http://lh6.ggpht.com/-It3GgGCoIiY/TsHZRZBfTiI/AAAAAAAAAFQ/FMRG61f3aqM/gundone.png?imgmax=800" title="gundone.png" width="480" /&gt;&lt;br /&gt;So now when I get hit, I lose blue -&amp;gt; green -&amp;gt; Red health bars. Some future mods I think I might do:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Move the on-off switch to where the head phone jack is. The headphone jack location would allow me to turn it on and off one handed while gripping the gun.&lt;/li&gt;&lt;li&gt;Try to get a mechanical switch to work with any of the buttons. In particular, weapon select would be neat to make into some kind of rotary or dial type button. A toggle switch for single fire/semi-auto fire, etc.&lt;/li&gt;&lt;li&gt;Graft on some 'extra bits' to give the gun more profile relief. I can't for the life of me figure out why they made all these guns so flat. I have some plastic tubing and other ornaments I could put on the sides with some LEDs to spruce up the side profile.&lt;/li&gt;&lt;li&gt;Paint job. I've been stalking the Nerf Modding forums looking for tips and pointers for how to paint plastic guns. So far I have a few ideas. I'll probably just go with basic silver and red to match the grip plastics&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Next I take apart my scope and rapid fire attachments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-3543370966183787042?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/3543370966183787042/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/10/my-first-light-strike-mod-and-tear-down.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3543370966183787042'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3543370966183787042'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/10/my-first-light-strike-mod-and-tear-down.html' title='My first Light Strike Mod and tear down photos'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-7LIBRVu46NY/TsHZJfrpyJI/AAAAAAAAAEQ/m1CKSnrqBtU/s72-c/gun1.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-3940718873251343910</id><published>2011-10-17T07:35:00.000-07:00</published><updated>2011-11-14T19:17:29.799-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Consulting'/><title type='text'>iCloud and iCal accepting old appointments :-(</title><content type='html'>&lt;p&gt;So Friday I received a bunch of out of office replies from former Co-workers who I did not email. Uh oh, some virus/malware is running somewhere. Panic level went to 11. Continued to sort through them, and a few were direct replies. I read them and Ed and Brian are asking me why I'm accepting appointments for meetings that have already past. Oh boy, this is going to be hard to track down. It could be a phone based malware, Mac/PC or an epic hack in the cloud.&lt;/p&gt;&lt;p&gt;Oh, did I mention I had just upgraded to iOS 5 and Mac OS X 10.7.2? Yup, sure did. Wasn't able to migrate my MobleMe stuff because the servers were too busy (which is a topic for another rant, since this problem has been solved in the industry multiple ways). So the iCloud transition has none of the fit and finish that I was expecting. Especially considering how bad MobileMe was. Even .Mac was better then MobileMe and .Mac couldn't sync for beans (again another problem that had been solved numerous ways yet ignored). Steve Jobs was supposedly personally involved with iCloud because if is tremendous dissatisfaction with &lt;a href="http://www.theregister.co.uk/2011/05/09/jobs_swear/"&gt;MobileMe and it's reliability&lt;/a&gt;. Well they must not have fired the right people because iCloud has been a bumpier ride than MobileMe for me personally.&lt;/p&gt;&lt;p&gt;So back to my 'malware' problem. My Malware goes by the name iCloud. So when I converted my AppleStore account to iCloud (which is another problem I now have two iclouds and can't merge them) it took my home and work calendars into the iCloud. When doing so it went and accepted (and sent responses) to meetings that have already occurred. In 2007. Yup, I'm accepting 3 and 4 year old meetings that I already attended. This seems like a catchable senario to me. What possible reason for accepting a meeting that's already passed could their be? I would concede that there might be a need to accept an appointment that's up to a week old for some kind of tracking/verification purposes, but 3 years?&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;img title="icloud-calendar.png" src="http://lh5.ggpht.com/-N3IkrLD2COQ/TsHZx1hcHbI/AAAAAAAAAFY/ROad8kIrKkA/icloud-calendar.png?imgmax=800" border="0" alt="Icloud calendar" width="470" height="288" /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;A bunch of googling didn't turn up others with this problem, so maybe there's something unique to how I did it. I took events from my GoogleApps email and accepted them on my .Mac enabled Laptop. I'm actually quite disappointed that iCloud dared to communicate on my behalf with out asking me. I should have been given the option to not send a response like I am with other well behaved calendar apps. I have a few more computers to upgrade. We'll see if I accept more phantom appointments. Oh well, another year, another disappointment with the Minnesota Vikings and Apple's cloud services.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-3940718873251343910?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/3940718873251343910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/10/icloud-and-ical-accepting-old.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3940718873251343910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3940718873251343910'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/10/icloud-and-ical-accepting-old.html' title='iCloud and iCal accepting old appointments :-('/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-N3IkrLD2COQ/TsHZx1hcHbI/AAAAAAAAAFY/ROad8kIrKkA/s72-c/icloud-calendar.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-6154561912372487243</id><published>2011-10-13T13:53:00.000-07:00</published><updated>2011-11-14T19:18:12.558-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Decoding the Light Strike ITS</title><content type='html'>&lt;p&gt;Ok, spent 10 minutes after lunch looking into the ITS signals.&lt;/p&gt;&lt;p&gt;&lt;img title="ITS.png" src="http://lh5.ggpht.com/-UzdP_Jl3Fd4/TsHZ8hHlXII/AAAAAAAAAFg/sUsP0aMuAes/ITS.png?imgmax=800" border="0" alt="ITS" width="120" height="92" /&gt;&lt;/p&gt;&lt;p&gt;You'll have to read the previous post about bits, to know what I'm rambling about, but in essence the significant bits were the even bits between 40 and 62. Not all are used, but I haven't tried all the guns and option combinations yet. So the ITS (Intelligent Targeting System) has 3 modes. Sentry mode - you have to hit the target 5 times, each time you hit it, you light up a bar with your team color. Fifth hit turns it into a sentry for your color. It blasts out random shots until it's captured by another team. Bomb Mode - similar, you get 5 hits to activate the bomb, 6th hit to set it off, which spins the device and it emits shots in every direction and makes an explosion sound. Medic Mode - 5 shots to capture again, but now when you shot it a subsequent time, it puts health bars back on your gun.&lt;/p&gt;&lt;p&gt;So if you activate the sentry, the bits that go high (in addition to the team bits) are: 40, 42, 44, 46 and 56 which in my 'bit math' comes out to a strength of 3848, the strongest shot yet. So far, nothing too unusual.&lt;/p&gt;&lt;p&gt;If you activate the Bomb, however, things get interesting. The bits that go high for blue are: 28, 40, 42, 44, 54, 56. Bit 28 is the new rascal. If you do it as Red, bits 28, 30, 40, 42, 44, 54, 56 go high (in addition to the team bits) - both 28 and 30. Yellow is just 30. Green is just 28 again. I was hoping that green would be both 28 and 30 low. That would make bit s28 and 30 a team marking, but it isn't. So why are blue and green the same, while yellow and red are different? A mystery for another day I guess.&lt;/p&gt;&lt;p&gt;Next up, Medic mode… this would be a fun one to clone into a smart remote or other IR blaster device. You could leave a 'stim-pack' like in the video games around the playing field. Medic mode is the most different code thus far. It broadcasts bits 8 and 40 for every team, and then you get a simple 3-bit mapping for the team color with bits 58, 60 and 62. So 58, 60 and 62 are blue, 58 is red, 58 and 62 are yellow and 50 and 60 are green. This is the first use of a bit below 10 and uses a different set of bits to mark color. What would be interesting is if you could send a 40 and 42 along with the rest to see if you get more health back per shot.&lt;/p&gt;&lt;p&gt;If I'm reading things right, it would seem that 2048 is the number to take a health bar on or off. So now I just need to finish writing my code to recognize these different flag values and then start painting the screen the correct color for the flag.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-6154561912372487243?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/6154561912372487243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/10/decoding-light-strike-its.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/6154561912372487243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/6154561912372487243'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/10/decoding-light-strike-its.html' title='Decoding the Light Strike ITS'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-UzdP_Jl3Fd4/TsHZ8hHlXII/AAAAAAAAAFg/sUsP0aMuAes/s72-c/ITS.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-5746548118238738449</id><published>2011-10-05T11:18:00.000-07:00</published><updated>2011-11-14T22:38:32.542-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><category scheme='http://www.blogger.com/atom/ns#' term='laser tag'/><title type='text'>More Light Strike attachments and decodes</title><content type='html'>So Adam bought the G.A.R.-023&lt;br /&gt;&lt;img alt="gun1" border="0" height="92" src="http://lh6.ggpht.com/-DrcMzAN72Zs/TsHagWAryOI/AAAAAAAAAFo/Y02iRSGNB1w/gun1.png?imgmax=800" title="gun1.png" width="120" /&gt;&lt;img alt="refractor.png" border="0" height="92" src="http://lh4.ggpht.com/--PRDFN7MHZU/TsHahEx-oFI/AAAAAAAAAFw/bQm2pn9Hg6c/refractor.png?imgmax=800" title="refractor.png" width="120" /&gt;&lt;img alt="scope.png" border="0" height="92" src="http://lh6.ggpht.com/-eLJfQA0007Q/TsHahzV1O8I/AAAAAAAAAF4/kLbvDvBE-c8/scope.png?imgmax=800" title="scope.png" width="120" /&gt;&lt;br /&gt;And two accessories, the scope and the refractor launch system.&lt;br /&gt;&lt;img alt="rapidfire" border="0" height="92" src="http://lh6.ggpht.com/-hnrvwZiSKZ4/TsHajeWzHiI/AAAAAAAAAGA/ANtulUrotwM/rapidfire.png?imgmax=800" title="rapidfire.png" width="120" /&gt;&lt;img alt="its" border="0" height="92" src="http://lh5.ggpht.com/-rtYWiR9hUhs/TsHakNAXvCI/AAAAAAAAAGI/w2H-trGiX2A/its-icon.png?imgmax=800" title="its-icon.png" width="120" /&gt;&lt;br /&gt;I went and bought the same scope and the rapid fire system. I also got the ITS - Intelligent Targeting System. So we now have every offensive add-on (missing the detector, but that's passive/defensive so we can go on with out it). With these attachments you get an Optic strike and Refractor strike with the scope and a launcher strike with the RLS and Rapid Fire with the RFS. The RLS and RFS strikes are actually two things, a distinct IR code and three consecutive hits. So now I have decoded these light strike mods and their data bits.&lt;br /&gt;If you recall, the bits in play are: bit 40, bit 42, bit 44, bit 46, bit 50, bit 56, bit 58, bit 60, bit 62. We now get to add bit 54 and bit 46 to the mix.&lt;br /&gt;High bits for Optic strike: 40, 44, 56, 58&lt;br /&gt;High bits for Refractor: 40, 42, 44, 54, 56&lt;br /&gt;High bits for RFL: 40, 42, 46, 58, 60&lt;br /&gt;High bits for RFS: 40, 42, 60, 62&lt;br /&gt;If you make that a 12-bit binary, you get:&lt;br /&gt;Optic: 2572&lt;br /&gt;Refractor: 3608&lt;br /&gt;RFL: 3334&lt;br /&gt;RFS: 3075&lt;br /&gt;Making the RFL the device to have it seems. In practice it is deadly too, it takes 2+ bars off your gun per shot, but has a long recycle time. Not sure when I'll get to it, but at some point I'm going to decode the ITS. When you capture the ITS for your team it can then do three things: 1 - Sentry mode, it spins and shoots randomly, only damaging teams of other colors. 2 - Bomb mode, you can activate and detonate a bomb doing massive damage (I'm assuming, haven't set it off yet). 3 - Medic mode, when the capturing team shoots the target, it beams back a health bar. Medic mode will be the most interesting to me. What does it send? Could you program a smart remote to record that signal and then have your own version of a med-pack like in the video games? There are other light strike mods we're thinking of too. A fun one might be to make a trip wire. Set off the sensor and an IR damage flash goes off. Or a death room, a room where you continually take low damage doses. It would be like crossing the lava or nuclear waste areas in Doom or Quake.&lt;br /&gt;We spend 10 minutes or so goofing around with it this morning. First time we actually did some real shooting, and it went awesome. This is going to be really fun! Got an uptick in website traffic this week. Going to have to see what search terms bring you to these posts. Probably light strike hack or light strike hacking. I wonder if I show up for light strike mod at all. Probably will after this post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-5746548118238738449?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/5746548118238738449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/10/more-light-strike-attachments-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5746548118238738449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5746548118238738449'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/10/more-light-strike-attachments-and.html' title='More Light Strike attachments and decodes'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-DrcMzAN72Zs/TsHagWAryOI/AAAAAAAAAFo/Y02iRSGNB1w/s72-c/gun1.png?imgmax=800' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-2344580496413836745</id><published>2011-10-03T19:39:00.000-07:00</published><updated>2011-11-14T22:39:01.437-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='laser tag'/><title type='text'>Light Strike decodes so far</title><content type='html'>Ok, so I've been working on software to work with the Light Strike laser tag system. In the long run, I still want to hack the light strike targets and light strike laser tag guns but for now I'm settling for decoding the pulses from the guns themselves. For everyone who hasn't been following along (and it's riveting, how could you not!) a quick re-cap.&lt;br /&gt;&lt;br /&gt;Using a &lt;a href="http://www.usbuirt.com/"&gt;USB-UIRT&lt;/a&gt; device I am able to receive the pulses coming from the gun. The signal starts with a pulse of ~6700 (sometimes higher, sometimes lower). Followed by 32 interleaved pulses and spaces that hover around 700. The spaces and pulses are effectively 64 'bits' although it seems only the spaces are actually used, not the pulses as I previously thought. The output clearly spaces, but because that made no sense to my brain, so I said pulses in previous posts. Anyway the way I'm tracking it, I'm counting the spaces and pulses just in case I get a surprise somewhere. The spaces that have meaning hover around 3200. So in my code I just look for greater than 5000 for the 'frame start' and greater than 2000 for the 'space' to be a high bit. Keep in mind I'm counting pulses and spaces when tracking them and I start at zero (because it's not confusing enough right?), so if I say bit 4, I mean space(0), pulse(1), space(2),pulse(3),&lt;b&gt;space(4).&lt;/b&gt; If you don't like it, divide them by 2 to get the 'space' position only (which is why I started with zero). So far here are the bits of note:&lt;br /&gt;&lt;br /&gt;BIT 10 - always high in the two assault strikers I've tested: G.A.R.-023 and D.C.R.-012&lt;br /&gt;&lt;br /&gt;BIT 12 - part of the team color&lt;br /&gt;&lt;br /&gt;BIT 14 - part of the team color&lt;br /&gt;&lt;br /&gt;12 and 14 high = blue&lt;br /&gt;&lt;br /&gt;12 and 14 low = red&lt;br /&gt;&lt;br /&gt;12 low and 14 high = yellow&lt;br /&gt;&lt;br /&gt;12 high and 14 low = green&lt;br /&gt;&lt;br /&gt;With this info, I can now determine what color shot the IR sensor and can effectively write my own target for capture the flag.&lt;br /&gt;&lt;br /&gt;But wait theirs more! For shots:&lt;br /&gt;&lt;br /&gt;bit 40, bit 42, bit 44, bit 46, bit 50, bit 56, bit 58, bit 60, bit 62.&lt;br /&gt;&lt;br /&gt;High bits for Laser strike: 42, 46, 60&lt;br /&gt;&lt;br /&gt;High bits for Stealth strike: 42, 44, 60&lt;br /&gt;&lt;br /&gt;High bits for Pulse strike: 42, 44, 46, 60, 62&lt;br /&gt;&lt;br /&gt;High bits for Rail strike: 40, 58, 60&lt;br /&gt;&lt;br /&gt;High bits for Sonic strike: 40, 46, 56&lt;br /&gt;&lt;br /&gt;So there is rather some reserve bits in the middle or the assault strikers add ons use the middle bits in the low 50's. If you read the bits from right to left starting at 40 and ending at 62, you have a 12-bit number that gets bigger the more powerful the strike. I vaguely recall 12-bits being important in the IR remote space, so maybe that's why. Maybe my math is off too. Anyway, if you take my 12 bits as binary numbers:&lt;br /&gt;&lt;br /&gt;Laser - 1344&lt;br /&gt;&lt;br /&gt;Stealth - 1538&lt;br /&gt;&lt;br /&gt;Pulse - 1795&lt;br /&gt;&lt;br /&gt;Rail - 2054&lt;br /&gt;&lt;br /&gt;Sonic - 2312&lt;br /&gt;&lt;br /&gt;Stealth strike may be an outlier, because I'm not sure that it's stronger than a laser strike in terms of damage done to the other guns. Anyway, since I can decode strike values, and I have orders of magnitude, I can do some fun stuff with my computer based target. For example, I can have degrees of team color. You could have a laser strike be +1, stealth +2, etc. And every time you shoot my target, the counter goes up (or the team color level bar could fill more screen) up to a maximum number, say 5 or 6. Then to recapture the flag, you would have to take away the apposing teams hits first, before you could turn it to your color, making capturing and holding a flag a little more interesting.&lt;br /&gt;&lt;br /&gt;I'm still tweaking my perl code, but in short, I went the&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;open(MODE,"mode2 --driver=usb_uirt_raw --device=/dev/ttyUSB0|") || die "Unable to open mode2\n";&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;route to get the data. The mode2 binary from LIRC does a great job for me already, why re-invent the wheel at this point? I have it capturing the 'high' bits and printing the team color so far.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;---- SHOT ----&lt;br /&gt;10 - 3150&lt;br /&gt;12 - 3200&lt;br /&gt;14 - 3150&lt;br /&gt;42 - 3150&lt;br /&gt;44 - 3200&lt;br /&gt;60 - 3200&lt;br /&gt;---- SHOT ----&lt;br /&gt;COLOR: blue&lt;br /&gt;---- SHOT ----&lt;br /&gt;10 - 3200&lt;br /&gt;12 - 3200&lt;br /&gt;14 - 3200&lt;br /&gt;42 - 3200&lt;br /&gt;44 - 3200&lt;br /&gt;60 - 3200&lt;br /&gt;---- SHOT ----&lt;br /&gt;COLOR: blue&lt;br /&gt;---- SHOT ----&lt;br /&gt;10 - 3150&lt;br /&gt;42 - 3200&lt;br /&gt;44 - 3200&lt;br /&gt;60 - 3150&lt;br /&gt;---- SHOT ----&lt;br /&gt;COLOR: red&lt;br /&gt;---- SHOT ----&lt;br /&gt;10 - 3200&lt;br /&gt;42 - 3150&lt;br /&gt;44 - 3150&lt;br /&gt;60 - 3200&lt;br /&gt;---- SHOT ----&lt;br /&gt;COLOR: red&lt;br /&gt;---- SHOT ----&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;So I'm getting pretty close!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-2344580496413836745?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/2344580496413836745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/10/light-strike-decodes-so-far.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/2344580496413836745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/2344580496413836745'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/10/light-strike-decodes-so-far.html' title='Light Strike decodes so far'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-8056644126456715783</id><published>2011-09-30T10:25:00.000-07:00</published><updated>2011-11-08T21:31:35.704-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Perl code for Light Strike decoding</title><content type='html'>&lt;p&gt;Making progress on my quest to write a 'capture the flag' module for the &lt;a href="http://www.lightstrike.com/"&gt;light strike&lt;/a&gt; laser tag guns. Some googling found me &lt;a href="http://the-b.org/Usb-uirt-config.pl"&gt;this code&lt;/a&gt; from Kenneth L. Root. &amp;lt;&lt;a href="http://the-b.org"&gt;http://the-b.org&lt;/a&gt;&amp;gt;. I hacked it &lt;a href="http://pastebin.com/Q6awPVK2"&gt;into this&lt;/a&gt; the other day and am able to get this output now:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;root@rwhiffen-OptiPlex-GX280:/tmp# ./light-strike.pl&lt;br /&gt;Opening port: /dev/ttyUSB0&lt;br /&gt;Opened port /dev/ttyUSB0&lt;br /&gt;Shoot the gun at the IR Sensor&lt;br /&gt;IR Code: 0xe6 0xc2 0x87 0x0d 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x40 0x12 0x40 0x12 0x40 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x3f 0x12 0x0e 0x12 0x40 0x12 0x0f 0x11 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x3f 0x12 0x0e 0x12 0xff&lt;br /&gt;root@rwhiffen-OptiPlex-GX280:/tmp# ./light-strike.pl&lt;br /&gt;Opening port: /dev/ttyUSB0&lt;br /&gt;Opened port /dev/ttyUSB0&lt;br /&gt;Shoot the gun at the IR Sensor&lt;br /&gt;IR Code: 0xb9 0xc2 0x86 0x0e 0x11 0x0f 0x11 0x0f 0x11 0x0e 0x12 0x0e 0x12 0x40 0x12 0x3f 0x12 0x40 0x12 0x0e 0x12 0x0f 0x11 0x0e 0x11 0x0f 0x11 0x0e 0x12 0x0e 0x11 0x0e 0x12 0x0e 0x11 0x0e 0x12 0x0e 0x12 0x0f 0x11 0x0e 0x12 0x0e 0x12 0x40 0x12 0x0e 0x12 0x3f 0x12 0x0e 0x12 0x0e 0x12 0x0f 0x11 0x0e 0x12 0x0e 0x12 0x0e 0x12 0x40 0x12 0x0e 0x12 0xff&lt;br /&gt;root@rwhiffen-OptiPlex-GX280:/tmp#&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;So I'm getting closer. The results are more inconsistent with the perl code than with the 'mode2 command, which makes me think I might want to do some 'expect' style perl coding with the app rather than direct. maybe something like:&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;  &lt;pre&gt;&lt;br /&gt;open(MODE,"|mode2 --driver=usb_uirt_raw --device=/dev/ttyUSB0 --mode");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;And then do all my interacting with the output via the MODE file handle. That would allow me to get some basic functionality going.&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-8056644126456715783?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/8056644126456715783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/09/perl-code-for-light-strike-decoding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/8056644126456715783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/8056644126456715783'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/09/perl-code-for-light-strike-decoding.html' title='Perl code for Light Strike decoding'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-3486763051350445918</id><published>2011-09-28T11:39:00.000-07:00</published><updated>2011-11-14T19:24:40.821-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Light Strike IR decoding part 2</title><content type='html'>The continuing saga of my efforts to hack a light strike laser tag system by reading the infrared signals it puts out…&lt;br /&gt;&lt;br /&gt;Ok so I just went from being totally stuck and posting that blog post, to being unstuck in about 30 minutes. Ok, so in &lt;a href="http://rich.whiffen.org/?p=178"&gt;the last post&lt;/a&gt;, I was thinking I needed to figure out what the bit encoding was for the pulses coming in. WHen you look at the in a long row, it's hard to see the patterns. So I was reading the man page for mode2, and it says there's another command line switch called --mode, which is helpfully described as " enable alternative display mode". Ok, what could it hurt right? So I ran it. Instead of getting the two column pulse/space list, you get a more helpful:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;6700     650      900      700      900      700&lt;br /&gt;900      700      900      700      900     3150&lt;br /&gt;900     3150      900     3150      900      750&lt;br /&gt;850      750      850      700      900      700&lt;br /&gt;900      700      850      700      900      700&lt;br /&gt;850      750      850      700      900      700&lt;br /&gt;900      700      900      700      850      750&lt;br /&gt;900     3200      850      700      900     3150&lt;br /&gt;900      700      850      700      900      700&lt;br /&gt;850      700      900      700      900      700&lt;br /&gt;900     3200      900      700      900  1382500&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Which is a lot easier to read, and makes deltas between two different settings stand out. That one was a blue, this one is a red.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;pre&gt;6700     650      900      700      900      700&lt;br /&gt;900      700      900      700      900     3150&lt;br /&gt;900      700      900      700      900      700&lt;br /&gt;900      700      900      700      900      700&lt;br /&gt;900      700      900      700      900      700&lt;br /&gt;900      700      900      700      900      700&lt;br /&gt;900      700      900      700      900      700&lt;br /&gt;900     3150      900      700      900     3150&lt;br /&gt;900      700      900      700      900      700&lt;br /&gt;900      700      900      700      900      700&lt;br /&gt;900     3150      900      700      900  2267300&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Notice how C2 R3 and C4 R3 change from 3150 to 700? That pattern holds for yellow and green as well. You end up with a pretty simple table:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-5cp5ZM6w4SI/TsHbZUQSh1I/AAAAAAAAAGU/XvFMeg0E13E/s1600/screen-shot-2011-09-28-at-22935-pm.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-5cp5ZM6w4SI/TsHbZUQSh1I/AAAAAAAAAGU/XvFMeg0E13E/s1600/screen-shot-2011-09-28-at-22935-pm.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you count the spaces as clock ticks and the pulses as 'bits' you can then start to map things out. The last huge number in C6 R11 is the time between the last event and the next event. The last event recorded does not have this value, it is blank and can be discarded. The first pulse is a 'double-high' value which marks the beginning of a frame. This gives you effectively 32 bits. Now I just have to get a perl or python script to read the device instead of the 'mode2' command and I'm off to the races. That will have to wait for another day however, because I need to get back to work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-3486763051350445918?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/3486763051350445918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/09/light-strike-ir-decoding-part-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3486763051350445918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3486763051350445918'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/09/light-strike-ir-decoding-part-2.html' title='Light Strike IR decoding part 2'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-5cp5ZM6w4SI/TsHbZUQSh1I/AAAAAAAAAGU/XvFMeg0E13E/s72-c/screen-shot-2011-09-28-at-22935-pm.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-3248068819148850676</id><published>2011-09-28T10:24:00.000-07:00</published><updated>2011-11-14T19:26:04.133-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Light Strike laser tag</title><content type='html'>&lt;p&gt;After reading a review on Ars Technica: Lawn warfare: &lt;a href="http://arstechnica.com/gaming/reviews/2011/07/light-strike-wants-to-bring-back-at-home-laser-tag-we-review-the-guns-and-accessories.ars"&gt;Light Strike brings laser tag back home&lt;/a&gt; I decided I had to have some of these at the office. They're pretty cool, mostly gimmicks but they do work. I bought myself a &lt;a href="http://www.wowwee.com/en/products/toys/light-strike/assault-strikers/assault-striker-d-c-r-012"&gt;D.C.R.-012&lt;/a&gt;. Am probably going to pick up some of the &lt;a href="http://www.wowwee.com/en/products/toys/light-strike/attachments"&gt;accessories&lt;/a&gt; as well. I've talked some co-workers into buying them, so we're almost ready to have some office warfare.&lt;/p&gt;&lt;p&gt;&lt;img title="dcr-icon.png" src="http://lh5.ggpht.com/-VyR0cgAkFzs/TsHbyd4O_jI/AAAAAAAAAGc/8d1ztnoy9_I/dcr-icon.png?imgmax=800" border="0" alt="dcr-icon" width="120" height="92" /&gt;&lt;/p&gt;&lt;p&gt;The trick is, you can only 'death match' each other for so long. And most of the that would be on the honor system, since you can self-respawn quickly. So I've set out to try and make my own 'targets' or flags to play capture the flag with. I have some &lt;a href="http://www.usbuirt.com/"&gt;USB-UIRT&lt;/a&gt; devices. I found some Linux drivers at &lt;a href="http://www.lirc.org/"&gt;LIRC.org&lt;/a&gt; and a CPAN &lt;a href="http://cpan.uwinnipeg.ca/htdocs/Lirc-Client/Lirc/Client.html"&gt;perl module&lt;/a&gt; for the driver. So far, so good. I'm able to detect gun output by running:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;mode2 --driver=uirt2_raw --device=/dev/ttyUSB0&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;From the command line. It gives me output like this:&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;pulse 6650&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 3200&lt;br /&gt;pulse 850&lt;br /&gt;space 3200&lt;br /&gt;pulse 850&lt;br /&gt;space 3200&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 700&lt;br /&gt;pulse 850&lt;br /&gt;space 700&lt;br /&gt;pulse 850&lt;br /&gt;space 700&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 3200&lt;br /&gt;pulse 850&lt;br /&gt;space 700&lt;br /&gt;pulse 850&lt;br /&gt;space 3200&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 700&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;space 700&lt;br /&gt;pulse 850&lt;br /&gt;space 3200&lt;br /&gt;pulse 850&lt;br /&gt;space 750&lt;br /&gt;pulse 850&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt;Unfortunately subsequent firings do not give me identical values. Some times the pulses are 50 higher, so 6700 rather than 850. Perhaps worse still, the other three colors (that was a 'blue team' laser) seem to have the same values. Next I'm going to plug it into a windows machine and run Girder on it and see what that gives me.&lt;br /&gt;&lt;br /&gt;Google wasn't very helpful, perhaps because Light Strike isn't a unique term to the laser tag guns. It's used in other contexts as well. So I think I'll pads this post with light strike hacking and other google-able terms. Light Strike IR hacking is a good example of what I was hoping to find a post about. ANyway, hopefully someone who is searching for linux IR hacking light strike guns will find me and we can team up.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-3248068819148850676?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/3248068819148850676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/09/light-strike-laser-tag.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3248068819148850676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3248068819148850676'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/09/light-strike-laser-tag.html' title='Light Strike laser tag'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-VyR0cgAkFzs/TsHbyd4O_jI/AAAAAAAAAGc/8d1ztnoy9_I/s72-c/dcr-icon.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-1898285513002116474</id><published>2011-07-26T08:28:00.000-07:00</published><updated>2011-11-14T19:29:28.889-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Consulting'/><title type='text'>Canon printer errors from Mac OS X (10.6 and 10.7)</title><content type='html'>&lt;p&gt;Occasionally when printing to our Canon iR C3080 from Mac OS X 10.6 (Snow Leopard) or 10.7 (Lion) we get the following error:&lt;/p&gt;&lt;p&gt;Cannot continue printing because an error occurred. To continue printing, select [Raster Mode] in [Quality]-[Quality Settings]-[Graphics Mode].: 15920&lt;/p&gt;&lt;p&gt;Google wasn't immediately helpful, so I pieced a few things together and wanted to write them down so I can remember how I fixed it if/when it happens again.&lt;/p&gt;&lt;p&gt;First, We're running the canon UFRII v2.21 drivers from the canon website, so start there if you're not running the specific drivers. Next, you must have admin privileges on your Mac to make the changes I'm about to describe.&lt;/p&gt;&lt;p&gt;Start by going to the CUPS home page: &lt;a href="http://localhost:631/"&gt;http://localhost:631/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;From here you can find out all kinds of interesting things that the system preferences app hides from you. From there, we need to go to the Printers Page. Click the Printers tab on the top of the web page. (&lt;a href="http://localhost:631/printers/"&gt;http://localhost:631/printers/&lt;/a&gt;). In this screen we click on the canon iR printer we need to fix.&lt;/p&gt;&lt;p&gt;&lt;img title="screen-shot-2011-07-26-at-111649-am.png" src="http://lh6.ggpht.com/-hM4tqLWqg1c/TsHckZQn9aI/AAAAAAAAAGk/dnqMqLFEoG4/screen-shot-2011-07-26-at-111649-am.png?imgmax=800" border="0" alt="Screen shot 2011 07 26 at 111649 am" width="480" height="90" /&gt;&lt;/p&gt;&lt;p&gt;In my case it's canon.streamsage.com. In the page that follows there is a drop down for "Administration". In that menu we need to select "Set Default Options". On that page we need to set the "General" options by clicking the General link.&lt;/p&gt;&lt;p&gt;&lt;img title="screen-shot-2011-07-26-at-112550-am.png" src="http://lh4.ggpht.com/-oKb1zXbECsI/TsHclEZyEHI/AAAAAAAAAGs/k6pcwTaEemg/screen-shot-2011-07-26-at-112550-am.png?imgmax=800" border="0" alt="Screen shot 2011 07 26 at 112550 am" width="480" height="194" /&gt;&lt;/p&gt;&lt;p&gt;We need to scroll down a bit on this page to find the "Graphics" option the original error complained about.&lt;/p&gt;&lt;p&gt;&lt;img title="screen-shot-2011-07-26-at-112651-am.png" src="http://lh5.ggpht.com/-_T6dllraIGI/TsHclgm5ddI/AAAAAAAAAG0/H19crz-v3T8/screen-shot-2011-07-26-at-112651-am.png?imgmax=800" border="0" alt="Screen shot 2011 07 26 at 112651 am" width="478" height="194" /&gt;&lt;/p&gt;&lt;p&gt;And set that to Raster Mode. You have to scroll to the bottom of the list of options and click the "Set Default Options" button. It should then prompt you for the admin password. Enter it and you're all set.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-1898285513002116474?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/1898285513002116474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/07/canon-printer-errors-from-mac-os-x-106.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/1898285513002116474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/1898285513002116474'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/07/canon-printer-errors-from-mac-os-x-106.html' title='Canon printer errors from Mac OS X (10.6 and 10.7)'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-hM4tqLWqg1c/TsHckZQn9aI/AAAAAAAAAGk/dnqMqLFEoG4/s72-c/screen-shot-2011-07-26-at-111649-am.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-7905807025757216308</id><published>2011-05-12T10:48:00.000-07:00</published><updated>2011-11-08T21:31:51.431-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><title type='text'>I think I might need to wear a watch again</title><content type='html'>&lt;p&gt;&lt;span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; color: #555555; line-height: 19px;"&gt;Watchmaker Fossil has a new digital watch they're planning to market under the&lt;/span&gt; &lt;span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; color: #555555; line-height: 19px;"&gt;Meta Watch brand&lt;/span&gt;&lt;span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; color: #555555; line-height: 19px;"&gt;. The website &lt;a href="http://thisismynext.com"&gt;ThisIsMyNext&lt;/a&gt; has a &lt;a href="http://thisismynext.com/2011/05/11/meta-watch-hands-on/"&gt;good write-up about it&lt;/a&gt;. In short, it's a bluetooth connected external display that you can push information to. The idea isn't new. &lt;a href="http://www.sonystyle.com/webapp/wcs/stores/servlet/ProductDisplay?storeId=10151&amp;amp;catalogId=10551&amp;amp;langId=-1&amp;amp;productId=8198552921665265457"&gt;SonyEricsson&lt;/a&gt; makes one &lt;a href="http://www.crunchgear.com/2011/01/05/casio-announces-prototype-bluetooth-watch-phone/"&gt;Casio&lt;/a&gt; announced one. &lt;a href="http://www.thinkgeek.com/"&gt;Thinkgeek.com&lt;/a&gt; sells more than one (&lt;a href="http://www.thinkgeek.com/gadgets/cellphone/9e31/"&gt;one&lt;/a&gt; and &lt;a href="http://www.thinkgeek.com/gadgets/watches/c16c/"&gt;two&lt;/a&gt;). There's probably others along the same line. The SonyEricsson one is the most interesting, it's not only a remote display of callerID but it also has control for your music player on the phone. It's close to what I'd like to have.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 13px; color: #555555; line-height: 19px;"&gt;Enter the Meta Watch. It's the same idea, but it's basically a blank slate. It's not designed for a specific purpose. It's make with customization in mind. So, you could, for example, push inbox counts, weather forecasts and other data like that. I'd like to use it with my ipod touch so it could summarize the nike+ or DigiFit data. Miles per hour, distance traveled, etc. It's a pain to look at that data on the actual iPod while you're exercising. It also is supposed to have an accelerometer, which gives other possibilities. You could count reps for exercise for example. You could flick your wrist to move from view to view. When you detect the bluetooth MAC address of someone you know, your watch could say "hey, John's near by" or "hide that window, your boss is coming". &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;font color="#555555" face="'Helvetica Neue', Helvetica, Arial, sans-serif" size="3"&gt;&lt;span style="font-size: 13px; line-height: 19px;"&gt;I don't wear a watch since I started carrying a cell phone but now I might have to again.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-7905807025757216308?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/7905807025757216308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2011/05/i-think-i-might-need-to-wear-watch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7905807025757216308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7905807025757216308'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2011/05/i-think-i-might-need-to-wear-watch.html' title='I think I might need to wear a watch again'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-7172611243104994811</id><published>2010-12-19T11:04:00.000-08:00</published><updated>2011-11-14T19:33:02.475-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Tinkering'/><category scheme='http://www.blogger.com/atom/ns#' term='Grab Bag'/><title type='text'>Mystery 5.8Gb of app data on my iPad</title><content type='html'>&lt;p&gt;So I go to sync my iPad for my short trip to Denver. I wanted to put a movie on it so I could watch something on the plane . Imagine my surprise when my iPad had these stats:&lt;/p&gt;&lt;p&gt;&lt;img title="201012191312.jpg" src="http://lh5.ggpht.com/-cOkOFNVpuqU/TsHdZZc2wBI/AAAAAAAAAG8/ubcIg67R1O8/201012191312.jpg?imgmax=800" border="0" alt="201012191312" width="480" height="66" /&gt;&lt;/p&gt;&lt;p&gt;5.8Gb of App data! Wow. Where did that come from? I go into the apps tab and sort my apps by size:&lt;/p&gt;&lt;p&gt;&lt;img title="201012191314.jpg" src="http://lh4.ggpht.com/-INY4IVuEKGw/TsHdaALmF2I/AAAAAAAAAHE/lKt7MkmZZko/201012191314.jpg?imgmax=800" border="0" alt="201012191314" width="256" height="478" /&gt;&lt;/p&gt;&lt;p&gt;The biggest app I have installed is 190Mb (big to be clear, but not 5.8Gb of big. If I add up all my Apps, I get somewhere in the 500Mb range. Where is all this space going? So I do some googling around and get no where fast. Turns out Apple has changed the way they do backups from version to version. Some say it should be under /private/Library. Some say /private/var, etc... Anyway, I found my backups under /Users/rwhiffen/Library/Application Support/MobileSync/Backup. Under there are some cryptic directory names, likely MD5 hashes. The one I'm interested in is from today when I'm syncing my iPad: 6bf83d2961ea2206b4c08edb555b2b0d89c7f218. Inside there are 4083 more hashed file names. One in particular is quite large:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;rwhiffen:6bf83d2961ea2206b4c08edb555b2b0d89c7f218 rwhiffen$ ls -lh 5180d2cec771957569b3dc0a8eed20b536fa9185&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-rw-r--r-- 1 rwhiffen rwhiffen 4.2G Dec 14 00:22 5180d2cec771957569b3dc0a8eed20b536fa9185&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;rwhiffen:6bf83d2961ea2206b4c08edb555b2b0d89c7f218 rwhiffen$&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;So that's probably my problem App. Now I just need to figure out how to get 5180d2cec771957569b3dc0a8eed20b536fa9185 translated into something meaningful. There are a few files:&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;-rw-r--r-- 1 rwhiffen rwhiffen 93500 Dec 19 13:01 Info.plist&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-rw-r--r-- 1 rwhiffen rwhiffen 660554 Dec 19 13:01 Manifest.mbdb&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-rw-r--r-- 1 rwhiffen rwhiffen 126656 Dec 19 13:01 Manifest.mbdx&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-rw-r--r-- 1 rwhiffen rwhiffen 7025 Dec 19 13:01 Manifest.plist&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-rw-r--r-- 1 rwhiffen rwhiffen 189 Dec 19 13:01 Status.plist&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;That probably have the data, just need to figure out how to read them. Info.plist just has some interesting xml data about my iPad. Manifest.plist looked promising. It was in binary so I had to convert it to xml first: plutil -convert xml1 Manifest.plist (be sure you copy it to a temp location first and don't convert the original...). Manifest.plist looked like a bust too. Status.plist is just the status of the last backup. So no useful stuff there. Ugh.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;So that means I need to try and slog through the mbdm and mbdx files. Yikes. Fortunately someone else has been there first: &lt;a href="http://stackoverflow.com/questions/3085153/how-to-parse-the-manifest-mbdb-file-in-an-ios-4-0-itunes-backup"&gt;http://stackoverflow.com/questions/3085153/how-to-parse-the-manifest-mbdb-file-in-an-ios-4-0-itunes-backup&lt;/a&gt; The user &lt;a href="http://stackoverflow.com/users/377335/galloglass"&gt;Galloglass&lt;/a&gt;' solution worked best for me. I cut and pasted his Python code into a file lsback.py and chmod'ed it 755.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;rwhiffen:6bf83d2961ea2206b4c08edb555b2b0d89c7f218 rwhiffen$ ./lsback.py | grep 5180d2cec771957569b3dc0a8eed20b536fa9185&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;-rw-r--r-- 000001f5 000001f5 4479500672 1291642994 1291642994 1291592204 (5180d2cec771957569b3dc0a8eed20b536fa9185)AppDomain-com.polishedplay.puppetpals::Documents/ipad/recordings/new/audio&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;rwhiffen:6bf83d2961ea2206b4c08edb555b2b0d89c7f218 rwhiffen$&lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;So it would seem that there is a stray audio recording for PupetPals , one of my kids games. So I deleted it, re-synced the iPad, then added the App back.&lt;/p&gt;&lt;p&gt;&lt;img title="201012191341.jpg" src="http://lh5.ggpht.com/-Q_dvhHjzOzQ/TsHdbDNrPDI/AAAAAAAAAHM/L1fcn4wdS7w/201012191341.jpg?imgmax=800" border="0" alt="201012191341" width="480" height="66" /&gt;&lt;/p&gt;&lt;p&gt;Now a more reasonable number. Still higher than I would have thought, but not 5.8Gb.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-7172611243104994811?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/7172611243104994811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2010/12/mystery-58gb-of-app-data-on-my-ipad.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7172611243104994811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7172611243104994811'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2010/12/mystery-58gb-of-app-data-on-my-ipad.html' title='Mystery 5.8Gb of app data on my iPad'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/-cOkOFNVpuqU/TsHdZZc2wBI/AAAAAAAAAG8/ubcIg67R1O8/s72-c/201012191312.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-7758665184620618163</id><published>2010-11-19T10:32:00.000-08:00</published><updated>2011-11-14T20:10:56.123-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Consulting'/><title type='text'>More splunk fun...</title><content type='html'>I've started setting up summary indexes. I take results and put them in a second index for reporting. First you have to create the new index, mine's called "dashboard_summarize". It will require a restart of splunk, just so you know. Next up, the ugly query:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;search = host="srchqenmana*" (source="/usr/local/tvs/apache-tomcat/logs/qlogger/*" NOT source="*.gz") "&amp;lt;A9_Request" AND NOT ("FFFFFFFFFFFF" OR "000013ED3AEB" OR "Agent.007") | lookup Market_by_Controller_ID Controller_ID as Controller_ID OUTPUT Market as Market | eval QueryFirstTwo=substr(TextQuery,1,2) | transaction MAC, QueryFirstTwo maxspan=5m maxpause=1m delim="," mvlist=TextQuery | eval LastQuery=mvindex(TextQuery, -1) | fillnull value=0 forward | eval MAC="costtimequalityscope".MAC | eval MAC=md5(MAC)|stats count(LastQuery) as QueryCount by LastQuery, Market, Controller_ID, StreamingServerID, forward | fields QueryCount LastQuery Controller_ID StreamingServerID Market forward |collect addtime=true index=dashboard_summarize&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Yikes! Lets break that down a bit. First up we have the sifting portion of the query. Basically search terms that rule data pieces in our out:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;host="srchqenmana*" (source="/usr/local/tvs/apache-tomcat/logs/qlogger/*" NOT source="*.gz") "&amp;lt;A9_Request" AND NOT ("FFFFFFFFFFFF" OR "000013ED3AEB" OR "Agent.007")&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Next up we have some data lookups. We take the numerical ControllerID and map that to a human readable market name like 'Salt Lake' or 'Bucks County'.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;lookup Market_by_Controller_ID Controller_ID as Controller_ID OUTPUT Market as Market&lt;br /&gt;&lt;/blockquote&gt;Next we start doing calculations, conversions and transformations of the data. We'll stanza by stanza this part:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;eval QueryFirstTwo=substr(TextQuery,1,2)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;a href="http://www.splunk.com/base/Documentation/latest/SearchReference/Eval"&gt;Eval&lt;/a&gt; a field called 'QueryFirstTwo' to the first two letters of the string TextQuery using the &lt;a href="http://www.splunk.com/base/Documentation/latest/SearchReference/CommonEvalFunctions"&gt;substr&lt;/a&gt; function&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;transaction MAC, QueryFirstTwo maxspan=5m maxpause=1m delim="," mvlist=TextQuery&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;This little gem is a beauty. I wish I could take credit for what the Splunk consultant did there. Basically we define what a single user search is here by defining what a &lt;a href="http://www.splunk.com/base/Documentation/4.1.5/SearchReference/Transaction"&gt;transaction&lt;/a&gt; is.. We do not count just the simple submission of a request, because we do live updating of search results after two letters. So if you were searching for the show HOUSE, with live updating you would make a request for HO, HOU, HOUS, HOUSE at every key press. That's great if your just measuring raw throughput, not not a valuable business data point. If everyone is searching for a really long search terms like SUPERNATURAL your usage stats would be skewed. So we roll those up into a single transaction by setting some parameters. First, we time box it at 5 minutes. Second we only allow for a 1 minute pause. Sure there are edge cases where you may exceed either of these time boundaries but it should be a wash over all. Further the MAC address and the first two letters of the search must also be the same. This lets us have typos later on. So if you did HOUU the HOUS because HO would match, it's still in the same transaction. And the last little bit, mvlist=TextQuery says to make a multi-value (or array) of TextQuery values used in this transaction. In my example the list would have ("HO", "HOU", "HOUS","HOUSE"). This comes up in our next stanza.&lt;br /&gt;&lt;blockquote&gt;eval LastQuery=mvindex(TextQuery, -1)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;If you look up &lt;a href="http://www.splunk.com/base/Documentation/latest/SearchReference/CommonEvalFunctions"&gt;mvindex&lt;/a&gt; and it's syntax, you see that we're setting the field LastQuery to the last entry in the list. In my example, LastQuery=HOUSE. Side note: the page linked for mvindex is titled 'Common Eval Functions' according to the URL. I'd hate to see the uncommon ones.&lt;br /&gt;&lt;blockquote&gt;fillnull value=0 forward | eval MAC="salted".MAC | eval MAC=md5(MAC)&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;I'm grouping the next three stanza's together because they're doing similar things. If the field named "forward" is null, set it to zero. Next we add a salt to the MAC address to obscure/anonymize it. The MAC (much like an IP address), while not directly identifying an individual is sensitive just the same, and needs to be hidden, so first we add the string &lt;em&gt;salted&lt;/em&gt; to the current value of MAC. Think of this like a password or key. Next we convert the string+MAC value to the MD5 HASH of that string. So 000013ED3AEB becomes salted000013ED3AEB which becomes ce431f1c1a634337ca1cdcde78a1d15f. Now if someone knows someone's MAC address and does &lt;em&gt;echo -n "000013ED3AEB" | md5sum&lt;/em&gt; to try and figure out their new obscured value, they can't because they don't know the SALT. And because the salt can be of arbitrary length, brute force isn't effective. So it's reasonably protected if for some reason the data needs to be shared with non-trusted parties.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;stats count(LastQuery) as QueryCount by LastQuery, Market, Controller_ID, StreamingServerID, forward, MAC&lt;/blockquote&gt;This one is fairly straight forward. Get the number of times the search term was searched, organized by Market (which we looked up in a table before) and Controller_ID, StreamingServerID, and the value of forward (which are app specific fields that only has meaning to us) The why of this is coming up.&lt;br /&gt;&lt;blockquote&gt;fields QueryCount LastQuery Controller_ID StreamingServerID Market forward, MAC&lt;/blockquote&gt;&lt;br /&gt;Next we want to take the fields listed above and output them in the search results (why is next).&lt;br /&gt;&lt;blockquote&gt;collect addtime=true index=dashboard_summary&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Lastly, we &lt;a href="http://www.splunk.com/base/Documentation/4.1.5/SearchReference/Collect"&gt;collect&lt;/a&gt; this data and store it into an index called 'dashboard_summary'. What we're doing is making a roll-up of searches and weeding out all the cruft that isn't needed to make the reports or dashboards. Further because we've scrubbed sensitive data, we now can let a larger audience view the data by giving them only permissions to this new index. Because the index is lean and mean, dashboards and reports are several orders of magnitude faster than going against the raw data. Further we've pre-paid a lot of calculation expense with the eval's and transaction logic. &amp;nbsp;&lt;br /&gt;Now I have an index to do my reporting out of that's much faster than the raw queries against all the data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-7758665184620618163?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/7758665184620618163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2010/11/more-splunk-fun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7758665184620618163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7758665184620618163'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2010/11/more-splunk-fun.html' title='More splunk fun...'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-3529919383612535216</id><published>2010-11-18T07:38:00.000-08:00</published><updated>2011-11-08T21:31:58.157-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Consulting'/><title type='text'>Working with Splunk</title><content type='html'>&lt;p&gt;I've been doing a lot of work with &lt;a href="http://www.splunk.com/"&gt;Splunk&lt;/a&gt; lately. Splunk is a powerful and flexible indexing tool. It slurps up log files and data and makes them searchable. I think the real power of Splunk over a lot of other log management and searching tools is it's ability to search across multiple servers for the same time period. Another powerful feature is it's ability to do field extraction. So when a log file says "IP_Address=10.11.12.13" you can do field related searches like "AND IP_Address=10.11.12.13" or more powerfully "NOT IP_Address=10.11.*"&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Fields are where I'm spending a lot of my time lately. In our current search and discovery platform we have lots of fields with interesting values from people making search requests. We have values such as channelmap, controllerID, MAC, TextQuery and a few other interesting values. Because we have these interesting field values and Splunk extracts them for us, we can generate very interesting usage reports. Such as number of unique users, users per market, etc. And because we have a relatively closed set of users, we can produce interesting numbers like the percentage of users our platform. Powerful stuff.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Anyway, I hope to write up some of my more interesting uses of splunk in the future.&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-3529919383612535216?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/3529919383612535216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2010/11/working-with-splunk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3529919383612535216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/3529919383612535216'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2010/11/working-with-splunk.html' title='Working with Splunk'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-5263619657422763467</id><published>2010-09-26T18:54:00.000-07:00</published><updated>2011-11-08T21:32:00.180-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Ping gets more useful</title><content type='html'>I didn't get &lt;a href="http://www.apple.com/itunes/ping/"&gt;Ping&lt;/a&gt; from Apple.  What good was it?  I mean even if you had all the artists in the iTunes 'verse online and updating, so what?  Well with the &lt;a href="http://www.macrumors.com/2010/09/25/apple-releases-itunes-10-0-1-with-ping-sidebar-and-bug-fixes/"&gt;recent update to iTunes&lt;/a&gt;, it's starting to become more of what I thought it should be.   They finally added some features that &lt;a href="http://iLike.com"&gt;iLike.com&lt;/a&gt; and &lt;a href="http://last.fm"&gt;last.fm&lt;/a&gt; had all along.&lt;br /&gt;&lt;blockquote&gt;iTunes 10.0.1 makes it easier to share your favorite music with your friends on Ping. You can now Like or Post about music right from your iTunes library. You can also easily see the recent activity of a selected artist in your library, or of all artists and friends you follow on Ping using the new Ping Sidebar.&lt;/blockquote&gt;&lt;br /&gt;So now it gets more integrated into the core App, you don't have to visit the iTunes store to view Ping info.  It has a nice side bar like ilike.com (a service I've stopped using some time ago).  You get a facebook/twitter style timeline of what others bought, followed, commented, etc.  All of this is nothing new in the 'social media' world.  Nor is it done innovatively or particularly well.  I think it's too much of a 'me too' move by Apple.  Simply putting Apples brand and market presence behind it isn't enough.  Google Wave?  Microsoft Zune or Bing? The product still has to be good and useful.  So far Ping seems to be neither to me.  It also seems to be solving a problem nobody has.  Facebook and Twitter tell me all about what my friends are up to.  Do I want to go yet another place to see what they're listening to?&lt;br /&gt;&lt;br /&gt;Hopefully Apple will roll out a regular string of improvements to the service.  In typical Apple fashion they're not rushing into this.  They released the first, fairly crippled version a few weeks ago.  They've already released the first update.  With any luck they'll release another before the years end.  I'd like to see it incorporate the Genius suggestions some way.  It'd also be interesting to give out some kind of badge or award for listening and rating.  They also need to improve the way you find people to follow and they suggestions they generate. Some other interesting features would be to suggest a 'mood' a person is in based on the music they listen to.&lt;br /&gt;&lt;br /&gt;Now on to the wild speculation based nothing except my wishful thinking.  Ok, suppose they get cool new features into Ping.  So what?  Is it enough to reach the tipping point?  I doubt it.  But what if it's part of a bigger plan?  What if Ping goes beyond iTunes and takes the next logical step and gets integrated into iPods, iPads and iPhones?  Now it's more than music.  But that's not enough. I can already twitter and facebook on those devices. What if it extends further to the &lt;a href="http://www.apple.com/appletv/"&gt;AppleTV&lt;/a&gt;? Now it's about what I watched in addition to what I listened to.  Now it's getting interesting.  That's one niche that hasn't been filled by cable or FiOS.  Tivo, Roku and Boxee are headed there, but they're one dimensional.   Watch a great TV show, then comment about it to all your friends.  Even better if it could be done while watching.  Ping your buddy while watching; 'Hey, I know you'd do exactly what &lt;a title="Howard Wolowitz" href="http://en.wikipedia.org/wiki/Howard_Wolowitz"&gt;Wolowitz&lt;/a&gt; did with the robot arm!'  Now Ping becomes something more than a copycat app.&lt;br /&gt;&lt;br /&gt;Anyway you slice it, Apple has a lot of work ahead of them if they hope to turn Ping into another reason to use iTunes and the Apple eco-system.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-5263619657422763467?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/5263619657422763467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2010/09/ping-gets-more-useful.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5263619657422763467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/5263619657422763467'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2010/09/ping-gets-more-useful.html' title='Ping gets more useful'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-2296460310575512753</id><published>2010-09-14T09:35:00.000-07:00</published><updated>2011-11-08T21:32:02.139-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Gadgets'/><title type='text'>Need some new fitness gadgets...</title><content type='html'>&lt;p&gt;So I have a GPS on my bike, an older 12-channel eTrex. It has it's problems. It looses signal too often in the city so my stats are off a bit (I've was at an elevation of -5 feet) for a mile or so today. So I'm looking for new gadgets to use for this.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So far I've come across the ANT+ system by &lt;a href="http://digifit.me/"&gt;Digifit&lt;/a&gt; and I think it does exactly what I want. Since I use my iPod when I ride anyway, it's one less gadget to carry around. &lt;a href="http://www.amazon.com/Digifit-Connect-Compatible-interoperable-proprietary/dp/B0036QIFPW/ref=sr_1_1?ie=UTF8&amp;amp;s=sporting-goods&amp;amp;qid=1284480060&amp;amp;sr=8-1"&gt;Amazon sells it&lt;/a&gt; for ~$80. Since ANT+ is a relatively open system, there's multiple vendors making gear for it:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Adidas sensors and devices (ANT+)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;CycleOps sensors and devices (ANT+)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Garmin sensors and devices (ANT+)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Quarq sensors and devices (ANT+)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Spinning® / StarTrac&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Tanita weight scales (ANT+)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Timex sensors and devices (ANT+)&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;Wahoo sensors and devices (ANT+)&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p&gt;Plus a host of others. So I can add a &lt;a href="http://www.amazon.com/Garmin-Speed-Cadence-Bike-Sensor/dp/B000BFNOT8/ref=pd_sim_sg_2"&gt;Garmin speed sensor&lt;/a&gt; and a &lt;a href="http://www.amazon.com/Garmin-010-10997-00-Heart-Rate-Monitor/dp/B000UOD5QM/ref=pd_sim_sg_1"&gt;heart rate monitor&lt;/a&gt;. If I go to the gym I can get the info from the StarTrac treadmills. Not sure I'll go as far as the Tanita scales though.&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-2296460310575512753?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/2296460310575512753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2010/09/need-some-new-fitness-gadgets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/2296460310575512753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/2296460310575512753'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2010/09/need-some-new-fitness-gadgets.html' title='Need some new fitness gadgets...'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-1818991264382313946</id><published>2010-09-14T08:55:00.000-07:00</published><updated>2011-11-14T19:34:11.918-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>Boxee pre-order available (why would you?)</title><content type='html'>&lt;p&gt;So Boxee is now availble for pre-order, a&lt;span style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;ccording to the press-release I was emailed:&lt;/span&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span style="border-collapse: collapse; font-size: 13px;"&gt;D-Link has signed up Amazon &lt;a style="color: #2a5db0;" href="http://amzn.to/theboxeeboxbydlink" target="_blank"&gt;http://amzn.to/theboxeeboxbydlink&lt;/a&gt; (in the US) and Best Buy &lt;a style="color: #2a5db0;" href="http://www.bestbuy.ca/boxee" target="_blank"&gt;http://www.bestbuy.ca/boxee&lt;/a&gt; / Future Shop &lt;a style="color: #2a5db0;" href="http://www.futureshop.ca/boxee" target="_blank"&gt;http://www.futureshop.ca/boxee&lt;/a&gt; (in Canada) as exclusive pre-order partners for the Boxee Box.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span style="border-collapse: collapse; font-size: 13px;"&gt;The highlights they point out:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span style="border-collapse: collapse; font-size: 13px;"&gt;it will have access to more HD content than its PC cousin&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span style="border-collapse: collapse; font-size: 13px;"&gt;no need for keyboard/mouse in the living room or running a 10ft cable to connect your laptop&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span style="border-collapse: collapse; font-size: 13px;"&gt;it’s beautiful, though a bit pointy in parts : )&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span style="border-collapse: collapse; font-size: 13px;"&gt;Beauty is in the eye of the beholder I guess, I don't care for it myself:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;img title="201009141143.jpg" src="http://lh4.ggpht.com/-OivU7hVd41w/TsHdsSbZXPI/AAAAAAAAAHU/pOUz8WN1SJk/201009141143.jpg?imgmax=800" border="0" alt="201009141143" width="400" height="400" /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: arial, sans-serif; font-size: small;"&gt;&lt;span style="border-collapse: collapse; font-size: 13px;"&gt;It's OK I guess, but that needs to sit next to your TV. It's only 4.5" x 4.5" x 4.6" so it's not too big, you could probably squeeze it on top of your DVR or cable box, but the area around it becomes unusable space for me. The one thing I loved: The remote. It has a basic 4-axis control pad with a 'select' button, a play/pause and what looks to be a power button. That's all run-of-the-mill stuff. The cool stuff is on the flip-side. Flip the remote over and it has a full keyboard. If you've ever tried to search on an AppleTV, Tivo or Cable remote you know how huge this is. No word so far on if it supports Hulu. The big thing for me is the price. $199 per unit. It's $100 more than the &lt;a href="http://store.apple.com/us/browse/home/shop_ipod/family/apple_tv?mco=MTM3NTM1Nzk"&gt;new Apple TV&lt;/a&gt; and $140 more than &lt;a href="http://www.roku.com/"&gt;a Roku&lt;/a&gt;. Unless they have Hulu, I think the Boxee box is DOA....&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-1818991264382313946?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/1818991264382313946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2010/09/boxee-pre-order-available-why-would-you.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/1818991264382313946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/1818991264382313946'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2010/09/boxee-pre-order-available-why-would-you.html' title='Boxee pre-order available (why would you?)'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/-OivU7hVd41w/TsHdsSbZXPI/AAAAAAAAAHU/pOUz8WN1SJk/s72-c/201009141143.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-4569657559060200926</id><published>2010-01-08T05:26:00.000-08:00</published><updated>2011-11-08T21:32:06.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><title type='text'>My kids will never have a 'must see TV' night</title><content type='html'>&lt;p&gt;There was a time when Thursday nights were 'must see TV' nights. Friends, Seinfeld and ER made a pretty compelling night of 'must see TV' as the slogan went. A significant portion of the nation would be sharing the same experience Thursday nights. I remember getting up early on a Saturday, even though it wasn't a school day because that's when the good cartoons where on. I doubt my kids will ever have that notion or experience. Between DVR/TiVo, On Demand broadcasts, Web delivery and AppleTV there's not as big a driver to sit down at a scheduled day and time and watch.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For the past few years we only had terrestrial broadcast TV and an AppleTV in the house. One time, while watching Arthur on PBS, Renee had to go to the bathroom and was jumping up and down demanding we 'pause it!', not understanding that not all TV shows were like the AppleTV version. A few months back we added Cable to the house and a DVR unit, so now we can pause live TV, further blurring the distinction between the on demand vs on schedule showings. She doesn't understand why she can't watch &lt;a href="http://www.zula.com/"&gt;Zula Patrol&lt;/a&gt; any time she wants and has to wait until 7:30 to see it. She's convinced its something that I'm not doing for her, and not a case of it not being available On Demand or via AppleTV. Further there's only one episode to watch and when it's done it's done. With all her other shows there's always another episode, so she asks to watch another Zula Patrol, and i have to tell her no. From her perspective it's no different then saying she can only watch one &lt;a href="http://pbskids.org/superwhy/"&gt;Super Why&lt;/a&gt;. We have more, I'm just not allowing her to watch them. Except in this case, we legitimately don't have more to watch. Kind of works in my favor I guess, there's no chance I'll cave in and let her watch a 2nd one.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;As more and more entertainment options become less tied to the providers schedule and less tied to the TV as the only way to watch it, the notion of a good night for TV will wither away. There will still be some notion of scheduling, but it'll be the date and time it's put on the distribution network. It probably won't be the same though. Even for me it's not quite the same. I love CBS's monday line-up, but I don't think I've watched any of them at there actual broadcast time in 2 or 3 years. I don't think TV's dead or going away. As &lt;a href="http://www.randallhounsell.com/randall-hounsell/2009/11/internet-video-endtoend-is-the-key.html"&gt;Randall Hounsell put it,&lt;/a&gt; TV is still "a lean back experience." People will still want to get someplace comfy and be immersed in a world that isn't there own.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Back when CD's were the norm, but vinyl records were still around, my over-used joke used to be that my kids were going to be asking me "Dad, how do we get this big black disc into the CD player?" Now I'm not so sure they'll even remember what a CD is. Never thought the same would happen for TV. The Qwest commercial from the late-90's is finally coming true.&lt;/p&gt;&lt;object width="425" height="344"&gt;&lt;br /&gt;  &lt;param name="movie" value="http://www.youtube.com/v/UZ9qcp6Lcno&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" /&gt;&lt;br /&gt;  &lt;param name="allowFullScreen" value="true" /&gt;&lt;br /&gt;  &lt;param name="allowscriptaccess" value="always" /&gt;&lt;br /&gt;  &lt;embed src="http://www.youtube.com/v/UZ9qcp6Lcno&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344" /&gt;&lt;br /&gt;&lt;/object&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;A tired man goes into a cheap motel in the middle of nowhere and asks about amenities. When he asks about entertainment, the girl responds "all rooms have every movie ever made in any language anytime day or night." &lt;span style="font-family: Helvetica, Helvetica, sans-serif;"&gt;It'll probably be 20 years after the fact, but it's coming.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-4569657559060200926?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/4569657559060200926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2010/01/my-kids-will-never-have-see-tv-night.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/4569657559060200926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/4569657559060200926'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2010/01/my-kids-will-never-have-see-tv-night.html' title='My kids will never have a &amp;#39;must see TV&amp;#39; night'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-8664050642444527116</id><published>2009-12-31T05:44:00.000-08:00</published><updated>2011-11-14T20:13:08.687-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Consulting'/><title type='text'>Getting there from here</title><content type='html'>&lt;p&gt;I've started this rambling post four or five times. Deleted it every time. So I've decided to take a different tact. Rather than writing a long post that says everything, I'm going to write pieces of it. This way I'll actually get something written. As the Japanese proverb goes "Vision without action is a daydream. Action without vision is a nightmare.” All too often I've run into folks who are long on vision but short on action. A few times I've been in organizations that are restructuring to better cope with the current environment. The ever present 're-org'. One of those was the transformation into a service delivery organization. Which was a good idea and there was good vision behind it. The action is where the idea died and cost people their jobs.&lt;/p&gt;&lt;p&gt;I've had this picture hanging around for a few years. I stole it from an issue of eWeek. It was from one of those articles that is really nothing more than a advertisement in essay form.&lt;br /&gt;&lt;img title="cci00001.jpg" src="http://lh3.ggpht.com/-AdKxYhDKWyw/TsHm0ezwc_I/AAAAAAAAAHg/ldD6-e4QACw/cci00001.jpg?imgmax=800" border="0" alt="Cci00001" width="438" height="478" /&gt;&lt;/p&gt;&lt;p&gt;This picture does a pretty good job at explaining what I mean. Although it's not the 'buzz word' it used to be, being a 'service based organization' was the goal of a lot of IT organizations. On paper it looks great. It can be an effective way to run an organization. Unfortunately the trick is getting from where you are to where you want to be. It's been all to common for organizations to 'green field' the new way of doing things and make a sweeping change to transform into the desired structure in the shortest possible time frame. And it's usually a disaster for the first two quarters. There's a lot of uncertainty on how things get done or who does them. Process bottlenecks creep up everywhere. There's inconsistency in implementation between teams. And while all of this is going on, real work needs to get done to keep the business going. After a while people start to revert to the old way of doing things or a hodge-podge in between the old and new.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;The step that gets missed is the transition and how much transition can be achieved in one fell swoop. If you're currently a 'turmoil' or 'reactive' organization and you want to be a service-based organization, it's unrealistic to jump right to the end state. With out learning the lessons that come with being reactive, it's difficult to be proactive. If an organization doesn't have a solid proactive foundation, it can never be service based. Worse yet, there are budgetary considerations that go along with crossing over from one level to another. Software and hardware tools are often needed to achieve the desired state. Although often over looked in the planning stages, it's possible to make up that budgetary gap. Another gap that's overlooked is the people side of things. I have never seen an organization budget staff time and overhead to these types of changes. It's always expected to be done in the margins after a one or two hour 'training course' that typically just reads the new process aloud to everyone in attendance. No attention is paid to how to get the staff to the end goal. No real-world examples provided for how things should work. No governing authority to turn to for guidance. No one to find parts of the organization that our floundering in the new process/structure and pitch in and help them through it. Proud in their new organizational structure and plan, leadership pass it down the chain, with implementation left as an exercise to the reader.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;So as I try to manage my team, I've tried to utilize some of the failure lessons I've learned. I don't make broad sweeping changes if avoidable. There always needs to be a balance of course, you don't want to make hundreds of small course corrections when a few larger ones will be as effective, but I lean towards the smaller changes. I plan in the overhead. If I'm going to add new processes or procedures to my staff's duties, I adjust time expectations accordingly. An example would be our post-mortems on outages. I wanted to change how that was done. It should be a 30 minute meeting, but because people were new to it, the first few where schedule for 60 to 90 minutes and we brought in lunch. Walk everyone through the new process a few times. Going back to the post-mortem example, we talked openly about the process and the actual problem in the same context. Giving people a new process with out a concrete example to work with leaves things to interpretation, and you'll get as many interpretations as you have staff members. By walking through it a few times with everyone they all here the same questions and my answers to those questions. It's not perfect or without flaws, but it seems to be working.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-8664050642444527116?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/8664050642444527116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2009/12/getting-there-from-here.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/8664050642444527116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/8664050642444527116'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2009/12/getting-there-from-here.html' title='Getting there from here'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/-AdKxYhDKWyw/TsHm0ezwc_I/AAAAAAAAAHg/ldD6-e4QACw/s72-c/cci00001.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406459933046343182.post-7897398950186915714</id><published>2009-12-31T05:33:00.000-08:00</published><updated>2011-11-14T20:15:30.922-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Technology'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>google's don't ask don't tell install problem...</title><content type='html'>&lt;p&gt;Yeah, yeah, I know... &lt;a href="http://rich.whiffen.org/?p=110"&gt;nobody but me&lt;/a&gt; seems to care. Anyway, it seems google has decided to update 'Google Voice and Video" to version 1.0.19.1554 and "Google Software Update: to version 1.0.7.1306. What's interesting about the 2nd one is what happens now when you try to launch the old "Google Update" application:&lt;/p&gt;&lt;p&gt;&lt;img title="finderscreensnapz001.jpg" src="http://lh6.ggpht.com/-p0IiIxZvcS0/TsHnTsdmI1I/AAAAAAAAAHo/asD9zAm_5C4/finderscreensnapz001.jpg?imgmax=800" border="0" alt="Finderscreensnapz001" width="101" height="70" /&gt;&lt;/p&gt;&lt;p&gt;You're greeted with this:&lt;/p&gt;&lt;p&gt;&lt;img title="google-updaterscreensnapz001.jpg" src="http://lh6.ggpht.com/-0e13k1BvB-g/TsHnUWBTPdI/AAAAAAAAAHw/4mLr_qIHdag/google-updaterscreensnapz001.jpg?imgmax=800" border="0" alt="Google updaterscreensnapz001" width="426" height="161" /&gt;&lt;/p&gt;&lt;p&gt;Only one option "Get More Google Software" which isn't what I asked for, I asked for Google updates. Ok, no problem, I'll just quit the app:&lt;/p&gt;&lt;p&gt;&lt;img title="google-updaterscreensnapz002.jpg" src="http://lh3.ggpht.com/-edtVWoxEkEg/TsHnVAT5GPI/AAAAAAAAAH4/kk3fV2_QaXc/google-updaterscreensnapz002.jpg?imgmax=800" border="0" alt="Google updaterscreensnapz002" width="229" height="182" /&gt;&lt;/p&gt;&lt;p&gt;Or maybe I won't since they've taken that choice (and the 'about' option so I can't tell they've updated it with out my knowledge perhaps). Oh well, lets take the only path given to me and lets "Get More Google Software"&lt;/p&gt;&lt;p&gt;&lt;img title="securityagentscreensnapz002.jpg" src="http://lh6.ggpht.com/-jy_YRJpDLMs/TsHnWQi_SaI/AAAAAAAAAIA/xm4igjw_txs/securityagentscreensnapz002.jpg?imgmax=800" border="0" alt="Securityagentscreensnapz002" width="478" height="408" /&gt;&lt;/p&gt;&lt;p&gt;Oh fun! Three new windows. One expected, two not. The google web page with mac software, a dialog box because finder needs permissions, and an disconcerting 'preparing to move to trash' dialog box. I just wanted to see if I was running the latest version of google earth and now I'm given this? Worse yet, is there's not much context for the permissions request:&lt;/p&gt;&lt;p&gt;&lt;img title="securityagentscreensnapz003.jpg" src="http://lh5.ggpht.com/-eUPJqMqnoas/TsHnXJlf7DI/AAAAAAAAAII/ItzhIx7unEc/securityagentscreensnapz003.jpg?imgmax=800" border="0" alt="Securityagentscreensnapz003" width="447" height="329" /&gt;&lt;/p&gt;&lt;p&gt;As before, it's not so much about the actual changes google has made to my machines, but the lack of permission they sought from me to do it. This one is particularly troublesome for me because they don't really give me any choice but to take their path and that path isn't clearly explained in their dialog boxes.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/406459933046343182-7897398950186915714?l=rich.whiffen.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rich.whiffen.org/feeds/7897398950186915714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rich.whiffen.org/2009/12/google-don-ask-don-tell-install-problem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7897398950186915714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406459933046343182/posts/default/7897398950186915714'/><link rel='alternate' type='text/html' href='http://rich.whiffen.org/2009/12/google-don-ask-don-tell-install-problem.html' title='google&amp;#39;s don&amp;#39;t ask don&amp;#39;t tell install problem...'/><author><name>rwhiffen</name><uri>http://www.blogger.com/profile/06076946494296623427</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/-p0IiIxZvcS0/TsHnTsdmI1I/AAAAAAAAAHo/asD9zAm_5C4/s72-c/finderscreensnapz001.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
