<?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:blogger='http://schemas.google.com/blogger/2008' 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-3735290701038758936</id><updated>2024-09-22T17:09:41.889-07:00</updated><category term="iPhone"/><category term="audio"/><category term="WAF"/><category term="server"/><category term="sideproject"/><category term="AirPlay"/><category term="WorkInProgress"/><category term="HTPC"/><category term="KitchenPC"/><category term="Linux"/><category term="software"/><category term="blab"/><category term="digital frames"/><category term="kids"/><category term="Car"/><category term="Frontend"/><category term="Guinea Pig PC"/><category term="WDTV"/><category term="client"/><category term="frustration"/><category term="OSX"/><category term="den"/><category term="disaster"/><category term="drives"/><category term="music"/><category term="networking"/><category term="printing"/><title type='text'>Two Body Problem</title><subtitle type='html'>Living the high WAF</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-6721165777061745751</id><published>2014-12-06T23:32:00.000-08:00</published><updated>2014-12-06T23:32:21.744-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="sideproject"/><title type='text'>USB Battery Backup Unit</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPFZ3zwmbcKOJZBiBBcugRYk8YqpJzI1W1wSKkW8W3xN7beZaSVZS4Cl_J9V7KbaUd9vg-wseYTNr4QoIH-Qkr7xTVxP7kUUqZcmhWee2dHbQtjABHuD6gDQ3BdINhBahaVp6D1SsDoQ0/s640/blogger-image--905603509.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPFZ3zwmbcKOJZBiBBcugRYk8YqpJzI1W1wSKkW8W3xN7beZaSVZS4Cl_J9V7KbaUd9vg-wseYTNr4QoIH-Qkr7xTVxP7kUUqZcmhWee2dHbQtjABHuD6gDQ3BdINhBahaVp6D1SsDoQ0/s640/blogger-image--905603509.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjleKkstkmXNf7U1TE-NMoflosa74Tk_dE56-uu-8D1Gb72Fj10tBvS7mtReY5vhENrBpB0v_rKI0uNO37Dc13nWaqUYO2Sy3-l9mAIm89OzqiqlGHsZPblR9s6hr6-qtj4T2J-R45xj44/s640/blogger-image--1222157509.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjleKkstkmXNf7U1TE-NMoflosa74Tk_dE56-uu-8D1Gb72Fj10tBvS7mtReY5vhENrBpB0v_rKI0uNO37Dc13nWaqUYO2Sy3-l9mAIm89OzqiqlGHsZPblR9s6hr6-qtj4T2J-R45xj44/s640/blogger-image--1222157509.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7dO4mFXDjDtb9cuTrfvE2fyp9OpE0qQmtT6-As8yH63mGlVQxZc41mp__LsW0Ei-a_Uu30T0ge_8Q7FU698J6YlKD6Xka6a7NHbqD4hyphenhyphenDEcRhxSMZHeVS7BSoDnIdOzWmoF9BpUzVxoc/s640/blogger-image--131899540.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7dO4mFXDjDtb9cuTrfvE2fyp9OpE0qQmtT6-As8yH63mGlVQxZc41mp__LsW0Ei-a_Uu30T0ge_8Q7FU698J6YlKD6Xka6a7NHbqD4hyphenhyphenDEcRhxSMZHeVS7BSoDnIdOzWmoF9BpUzVxoc/s640/blogger-image--131899540.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix1m9UH7yv99fT6I97LFJr8Uk1PTYA_Kb-vtNJOIJF1orsEdy2zzpz444HgTNvBOCphqLGMB7d93NK4gCITFaruYIBGfT6p3_SZ_kjCNlBbKu-WhDi_ib78elBGSQZBczOVWQ3lGt9l7M/s640/blogger-image--1165312294.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When I returned a modem I was renting from my ISP, the company didn&#39;t want back the&amp;nbsp;&lt;a href=&quot;http://www.belkin.com/us/p/P-BU3DC001-12V/&quot;&gt;battery backup unit&lt;/a&gt; that came with it. Don&#39;t let that $129 retail price fool you, these go for at best &lt;a href=&quot;http://www.ebay.com/sch/i.html?_from=R40&amp;amp;_trksid=p2050601.m570.l1311.R3.TR8.TRC1.A0.H0.Xbelkin+battery&amp;amp;_nkw=belkin+battery+backup+rev+b&amp;amp;_sacat=0&quot;&gt;$30 on eBay&lt;/a&gt;. I&#39;m not really one for selling stuff on eBay anyway, so I thought I&#39;d come up with a little project.&lt;br /&gt;
&lt;br /&gt;
The battery backup unit has an output of 3A, 12V. Taking a page from &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/airplay-in-my-car.html&quot;&gt;my previous 12V effort&lt;/a&gt;, I thought I could easily convert the 12V to a 5V USB connection and use it as a backup power supply for my wife and my phones. The battery is 7.2 Ah, so somewhat similar to this much smaller&amp;nbsp;&lt;a href=&quot;http://amzn.com/B00EF1OGOG&quot;&gt;Anker battery backup&lt;/a&gt;. Although I don&#39;t think you can charge the Anker and my phone simultaneously off AC like my unit will do.&lt;br /&gt;
&lt;br /&gt;
In addition to the &lt;a href=&quot;http://www.belkin.com/us/p/P-BU3DC001-12V/&quot;&gt;Belkin battery unit&lt;/a&gt;, here&#39;s what I used:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://amzn.com/B00G8WLW2Y&quot;&gt;12V plug socket&lt;/a&gt;, $6&lt;br /&gt;
&lt;a href=&quot;http://amzn.com/B00DAGJ8PO&quot;&gt;Dual USB car charger&lt;/a&gt;, $8 (Although, I should have got &lt;a href=&quot;http://amzn.com/B009O4BXGS&quot;&gt;this 3A one&lt;/a&gt; instead)&lt;br /&gt;
&lt;a href=&quot;http://amzn.com/B00LVFDLUO&quot;&gt;Heat shrink tubing&lt;/a&gt;, $9&lt;br /&gt;
&lt;a href=&quot;http://amzn.com/B000K7GRCI&quot;&gt;Solderless wire terminal and crimping tool&lt;/a&gt;, $13&lt;br /&gt;
&lt;br /&gt;
Here&#39;s what I did. I&#39;m sure it isn&#39;t best practice.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCiDSgkEqmct1dmNTcyB5-4RtKACVsI1NzPYbnSJA6lnNC5sqO1AFjcIp_qAyhoONlyYjkOpXTtXnEQlxPi2afaDUCIyyMrjth07nMMYouUFEGPEb1hrOPzEWI3IhgknLRjp80JHQ8Ow/s640/blogger-image-992931092.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCiDSgkEqmct1dmNTcyB5-4RtKACVsI1NzPYbnSJA6lnNC5sqO1AFjcIp_qAyhoONlyYjkOpXTtXnEQlxPi2afaDUCIyyMrjth07nMMYouUFEGPEb1hrOPzEWI3IhgknLRjp80JHQ8Ow/s320/blogger-image-992931092.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
First, I chopped off the output lead on the power supply. I wasn&#39;t sure which of the two wires was positive or negative so I tested them with a multimeter and labeled them.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Rx1Xd4nL5wdYp07DbZRyTAbhK6Wd86LofrSfE5_M_ZTGjnz1kF9TQPYILkZR-vCwYnISO-Taz-Ao3LZwDeF7TSY6Vn9ksrYj_ePBUTEfveBF12qcPPhHSyllI_EupIe4BFsnlKKiwDc/s640/blogger-image--1679787707.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_Rx1Xd4nL5wdYp07DbZRyTAbhK6Wd86LofrSfE5_M_ZTGjnz1kF9TQPYILkZR-vCwYnISO-Taz-Ao3LZwDeF7TSY6Vn9ksrYj_ePBUTEfveBF12qcPPhHSyllI_EupIe4BFsnlKKiwDc/s320/blogger-image--1679787707.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Here&#39;s the 12V terminal. I clipped off the eye terminals after I took this photo.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPFZ3zwmbcKOJZBiBBcugRYk8YqpJzI1W1wSKkW8W3xN7beZaSVZS4Cl_J9V7KbaUd9vg-wseYTNr4QoIH-Qkr7xTVxP7kUUqZcmhWee2dHbQtjABHuD6gDQ3BdINhBahaVp6D1SsDoQ0/s1600/blogger-image--905603509.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPFZ3zwmbcKOJZBiBBcugRYk8YqpJzI1W1wSKkW8W3xN7beZaSVZS4Cl_J9V7KbaUd9vg-wseYTNr4QoIH-Qkr7xTVxP7kUUqZcmhWee2dHbQtjABHuD6gDQ3BdINhBahaVp6D1SsDoQ0/s320/blogger-image--905603509.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
I stripped the ends of the wires and connected the corresponding leads on the power supply and 12v terminal using the butt-couplers.&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjleKkstkmXNf7U1TE-NMoflosa74Tk_dE56-uu-8D1Gb72Fj10tBvS7mtReY5vhENrBpB0v_rKI0uNO37Dc13nWaqUYO2Sy3-l9mAIm89OzqiqlGHsZPblR9s6hr6-qtj4T2J-R45xj44/s1600/blogger-image--1222157509.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjleKkstkmXNf7U1TE-NMoflosa74Tk_dE56-uu-8D1Gb72Fj10tBvS7mtReY5vhENrBpB0v_rKI0uNO37Dc13nWaqUYO2Sy3-l9mAIm89OzqiqlGHsZPblR9s6hr6-qtj4T2J-R45xj44/s320/blogger-image--1222157509.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
I covered the couplers with some shrink tube and added some strain relief with some cable ties.&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7dO4mFXDjDtb9cuTrfvE2fyp9OpE0qQmtT6-As8yH63mGlVQxZc41mp__LsW0Ei-a_Uu30T0ge_8Q7FU698J6YlKD6Xka6a7NHbqD4hyphenhyphenDEcRhxSMZHeVS7BSoDnIdOzWmoF9BpUzVxoc/s1600/blogger-image--131899540.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7dO4mFXDjDtb9cuTrfvE2fyp9OpE0qQmtT6-As8yH63mGlVQxZc41mp__LsW0Ei-a_Uu30T0ge_8Q7FU698J6YlKD6Xka6a7NHbqD4hyphenhyphenDEcRhxSMZHeVS7BSoDnIdOzWmoF9BpUzVxoc/s320/blogger-image--131899540.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Here is the USB adapter in the 12V terminal. As I noted above, this is a 1A version. The power supply is capable of 3A output so it would be better to use a USB adapter capable of doing the same. I&#39;m going to get a 3A version and toss this one in my luggage or something.&lt;br /&gt;
&lt;br /&gt;
The smart thing to do here would be to test the USB output. I wasn&#39;t sure how to do that so I plugged in an old USB device, in this case my wife&#39;s old iPhone 3 that my son plays on occasionally. He probably get&#39;s too much screen time anyway.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix1m9UH7yv99fT6I97LFJr8Uk1PTYA_Kb-vtNJOIJF1orsEdy2zzpz444HgTNvBOCphqLGMB7d93NK4gCITFaruYIBGfT6p3_SZ_kjCNlBbKu-WhDi_ib78elBGSQZBczOVWQ3lGt9l7M/s1600/blogger-image--1165312294.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEix1m9UH7yv99fT6I97LFJr8Uk1PTYA_Kb-vtNJOIJF1orsEdy2zzpz444HgTNvBOCphqLGMB7d93NK4gCITFaruYIBGfT6p3_SZ_kjCNlBbKu-WhDi_ib78elBGSQZBczOVWQ3lGt9l7M/s320/blogger-image--1165312294.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Hey, it&#39;s charging! Right now the power supply is plugged into an AC outlet&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX5_x_t-yQfriWcTi-HPnAgHPB7veARCU_wFHnLd4aTqTJSjBqq6Cl5HJnTibBm6Czd3hglmohuPC4OJWCBUOeVVmBVgW4Cd8bF9yWWLEs-kyjPDPbgUqdnXC51hoLM_SRXYf84GRtZCU/s640/blogger-image-1796110712.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX5_x_t-yQfriWcTi-HPnAgHPB7veARCU_wFHnLd4aTqTJSjBqq6Cl5HJnTibBm6Czd3hglmohuPC4OJWCBUOeVVmBVgW4Cd8bF9yWWLEs-kyjPDPbgUqdnXC51hoLM_SRXYf84GRtZCU/s320/blogger-image-1796110712.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
In this configuration I unplugged the power supply and the iPhone is charging off the backup battery. Success!&lt;br /&gt;
&lt;br /&gt;
I haven&#39;t decided where I want to put this yet. I was thinking I would hide it near my charging station and always keep the phone chargers plugged into it. In the event of a power outage, our phones would still charge up.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/6721165777061745751/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2014/12/usb-battery-backup-unit.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6721165777061745751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6721165777061745751'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2014/12/usb-battery-backup-unit.html' title='USB Battery Backup Unit'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCCiDSgkEqmct1dmNTcyB5-4RtKACVsI1NzPYbnSJA6lnNC5sqO1AFjcIp_qAyhoONlyYjkOpXTtXnEQlxPi2afaDUCIyyMrjth07nMMYouUFEGPEb1hrOPzEWI3IhgknLRjp80JHQ8Ow/s72-c/blogger-image-992931092.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-6550036461394734873</id><published>2014-05-13T12:17:00.000-07:00</published><updated>2014-05-13T12:17:06.922-07:00</updated><title type='text'>Half Baked Idea: Virtual Gaming Table</title><content type='html'>I was taking a look at some of the impressive RPG scenery out there for the table top RPGs I don&#39;t seem to have time to play, and I came across &lt;a href=&quot;http://miniaturesforroleplaying.blogspot.com/2012/08/tabletop-terrain-battlemats-floortiles.html&quot;&gt;this post&lt;/a&gt;. This guy made a virtual table top by mounting a mirror on the ceiling and directing a projected image on to a table.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiKS_cHdSJ5SfaTOqIKs-fKtfYE7mZrkjhNxSS4CbJKr3It_YagexB7axoaIgdEAe-RzlHsgqjkQmiSsnT24DA4u4dvQvwBsNbrJuC4Wj6_Nllw9PlJ2YgpgoelxRt5mGOfJos0ZMHbIjA/s1600/Video+Monitor+RPG+Tabletop+3.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiKS_cHdSJ5SfaTOqIKs-fKtfYE7mZrkjhNxSS4CbJKr3It_YagexB7axoaIgdEAe-RzlHsgqjkQmiSsnT24DA4u4dvQvwBsNbrJuC4Wj6_Nllw9PlJ2YgpgoelxRt5mGOfJos0ZMHbIjA/s1600/Video+Monitor+RPG+Tabletop+3.jpg&quot; height=&quot;320&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
A few years ago I did something similar when I was playing a D&amp;amp;D campaign with the DM on the other side of the country. We projected the game table onto the wall though. Projecting onto a table opens up some possibilities that might make it easier to use. For example, I could project regular tabletop games. I&#39;ve been thinking of starting up a junior role playing game with my son. so this is something to keep in mind.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/6550036461394734873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2014/05/half-baked-idea-virtual-gaming-table.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6550036461394734873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6550036461394734873'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2014/05/half-baked-idea-virtual-gaming-table.html' title='Half Baked Idea: Virtual Gaming Table'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjiKS_cHdSJ5SfaTOqIKs-fKtfYE7mZrkjhNxSS4CbJKr3It_YagexB7axoaIgdEAe-RzlHsgqjkQmiSsnT24DA4u4dvQvwBsNbrJuC4Wj6_Nllw9PlJ2YgpgoelxRt5mGOfJos0ZMHbIjA/s72-c/Video+Monitor+RPG+Tabletop+3.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-4994804332718037806</id><published>2014-02-06T13:22:00.001-08:00</published><updated>2014-02-06T13:23:46.941-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Guinea Pig PC"/><category scheme="http://www.blogger.com/atom/ns#" term="HTPC"/><category scheme="http://www.blogger.com/atom/ns#" term="kids"/><category scheme="http://www.blogger.com/atom/ns#" term="WAF"/><title type='text'>OMG It Works! Sorta.</title><content type='html'>&lt;a href=&quot;http://www.twobodyproblem.com/2014/02/installing-mce-like-its-2005.html&quot;&gt;Yesterday&lt;/a&gt;, I posted on my desire to be able to watch broadcast TV in my home theater without using an HTPC or buying any new equipment (like a standalone TV tuner). My plan was to install a copy of Windows XP Media Center Edition 2005 (MCE) on my former HTPC along with a USB TV tuner and use my Xbox 360 as a media center extender. It turns out my plan works (sorta)!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVVODe5OpRkCnal_Olk0qbZT7eY1av_jre9nGaJj4bpEriYvmb2rQPzFpOaNqLnjZKzIizf2BDWN87mMrQrtRLhMJQnemp2QyLtvvdeEc1k6VqzZXEk16yRb97EY1ua3DBZZdJIfYDXno/s640/blogger-image--2014160160.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVVODe5OpRkCnal_Olk0qbZT7eY1av_jre9nGaJj4bpEriYvmb2rQPzFpOaNqLnjZKzIizf2BDWN87mMrQrtRLhMJQnemp2QyLtvvdeEc1k6VqzZXEk16yRb97EY1ua3DBZZdJIfYDXno/s400/blogger-image--2014160160.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Analog SD TV in all it&#39;s glory!&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&amp;nbsp;The short version is I am able to stream the analog standard-definition TV signal to my Xbox 360 from my MCE PC. Going into this I knew that the 2005 version of MCE required an analog tuner of some kind, even if in addition to a digital one. My USB TV tuner, the  &lt;a href=&quot;http://www.hauppauge.com/site/products/data_hvr950q.html&quot;&gt;WinTV-HVR-950Q&lt;/a&gt;, is a hybrid tuner capable of tuning analog TV, over-the-air digital broadcasts, and clear-QAM digital cable signal. According to the TV tuner documentation, it requires at least the Windows Vista version of Media Center. Apparently, this is true, in that I haven&#39;t yet been able to get the digital tuner to work in MCE 2005, but the analog tuner is functional.&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgERpTQ7ExinM-ZocTUQS2q7OH9eFbyGw2VlcqVcuqW_2Bwxn7YHrt3NgRo5yQF9p2r1nbnzgKg6gKdrWCeuXtrD3LFn3F75SMuHQc-j6KbilEUQHqW44xp16DJfKOIxbQrS8AjcRfTOK4/s400/blogger-image-1991655767.jpg&quot; style=&quot;margin-left: auto; margin-right: auto;&quot; width=&quot;400&quot; /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;You get the Media Center Extender code from the Xbox System Settings Menu&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
There were a few hiccups. First of all, Microsoft does not make it easy to install the PC extender software in MCE 2005 anymore. Or if it is already installed, I couldn&#39;t find it. I was, however, able to find a link to the software from &lt;a href=&quot;http://blog.jasontsang.ca/2008/05/windows-xp-sp3-vs-media-center-2005.html&quot;&gt;this page&lt;/a&gt;. After installing the software I was able to enter the 8-digit code from my Xbox and connect it as an extender. The next problem is I was unable to manually set up the tuner or the channel guide. When I tried, the Media Center program would lock up with ehrec.exe eating up 50% of the CPU. The problem with ehrec.exe eating CPU seems to be fairly common, but I haven&#39;t been able to resolve it yet. I think the next thing I&#39;ll try is to reinstall &lt;a href=&quot;http://www.microsoft.com/en-us/download/details.aspx?id=12939&quot;&gt;MCE rollup 2&lt;/a&gt;. I have a feeling that if I&#39;m able to resolve this, I might be able to get the digital tuner to work. If it doesn&#39;t I&#39;ll start thinking if I want to do Plan B, which is to install Windows 7. I&#39;m pretty sure this would be fairly straightforward to get working, but I&#39;m not sure it&#39;s worth it. For what I would pay for a copy of Windows 7 (and probably an SSD so it will run on my old PC) I could probably buy a better PC with Windows 7 already installed.&lt;br /&gt;
&lt;br /&gt;
So what&#39;s in store next? When my wife and I have parties, we typically put on &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;rct=j&amp;amp;q=&amp;amp;esrc=s&amp;amp;source=web&amp;amp;cd=1&amp;amp;cad=rja&amp;amp;ved=0CCcQFjAA&amp;amp;url=http%3A%2F%2Fmarketplace.xbox.com%2FProduct%2FKinect-Party%2F66acd000-77fe-1000-9115-d8025841125c&amp;amp;ei=3PfzUsH2I-fuyAHxn4CYCg&amp;amp;usg=AFQjCNG6Lj76JnQP17grJpsIfxmez7kzNQ&amp;amp;sig2=9riRZy4mblOqe-kC6zKhcQ&amp;amp;bvm=bv.60983673,d.aWc&quot;&gt;Kinect Party&lt;/a&gt; for the kids before dinner then a movie afterward. I got tired of switching playback devices so I re-encoded a bunch of the kids movies into an Xbox 360 friendly format and streamed them from my network storage drive, which has built in media server capability. In order to free up some space on that drive, I&#39;d like to move the kids&#39; movies to the HTPC backed computer and serve it to the Xbox. I&#39;ll either use the built in Media Center capability (I don&#39;t remember if there were limitations for this) or &lt;a href=&quot;http://www.ps3mediaserver.org/&quot;&gt;PS3 Media Server&lt;/a&gt;. Along the same lines, I have encoded some of the things my wife likes to watch on her iPad in an appropriate format. I plan on setting up iTunes on this computer so she can stream them to her iPad or one of our AppleTVs. &lt;br /&gt;
&lt;br /&gt;
Also, although the digital tuner isn&#39;t currently working in Media Center, it does work in other TV watching programs. Generally speaking, my wife and I mostly use various streaming services for our TV shows, but occasionally there are things I would like to record so I&#39;d like to have that capability. In the &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/back-from-dead.html&quot;&gt;old days&lt;/a&gt;, I was able to do this and strip out the commercials automatically. That would be a nice back from the dead feature. Perhaps I can re-encode them for iPad automatically too.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/4994804332718037806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2014/02/omg-it-works-sorta.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/4994804332718037806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/4994804332718037806'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2014/02/omg-it-works-sorta.html' title='OMG It Works! Sorta.'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVVODe5OpRkCnal_Olk0qbZT7eY1av_jre9nGaJj4bpEriYvmb2rQPzFpOaNqLnjZKzIizf2BDWN87mMrQrtRLhMJQnemp2QyLtvvdeEc1k6VqzZXEk16yRb97EY1ua3DBZZdJIfYDXno/s72-c/blogger-image--2014160160.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-5785874105582483620</id><published>2014-02-05T16:14:00.000-08:00</published><updated>2014-02-05T16:18:36.357-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Guinea Pig PC"/><category scheme="http://www.blogger.com/atom/ns#" term="HTPC"/><category scheme="http://www.blogger.com/atom/ns#" term="WAF"/><category scheme="http://www.blogger.com/atom/ns#" term="WDTV"/><title type='text'>Installing MCE, like its 2005!</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh2XQjp5bRsRL9pReQzrXMUwEehwLG525KAivVhn8y6BfuHpzaMd_Imxs5gztFZwgBzyjKkxEvx0N-k7KI_JkKsZHGBCmH59E53181p_s5s30phuhRc8Aj_nmynT_NkouPd3dnlf2Np98/s640/blogger-image-398521026.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh2XQjp5bRsRL9pReQzrXMUwEehwLG525KAivVhn8y6BfuHpzaMd_Imxs5gztFZwgBzyjKkxEvx0N-k7KI_JkKsZHGBCmH59E53181p_s5s30phuhRc8Aj_nmynT_NkouPd3dnlf2Np98/s320/blogger-image-398521026.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt; &lt;/div&gt;
Only 52 more updates to go!&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
It&#39;s been a while since I posted, but a few months ago I got fed up with my HTPC and banished it from the theater. It ended up in the den, where it&#39;s my Skype and guinea pig machine. What I like about an HTPC is you can potentially&amp;nbsp; have one playback device that can do everything. On the downside, I could never get it to be as seemless as I would like. When it was time to watch a movie, my wife would send me out 20 min in advance to set everything up and fix any problems that would pop up. Eventually, it got to be too much, even for me.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
The current playback devices in the theater are a Xbox 360, a Samsung network-connected blu-ray player and a WD TV Live Plus. The workhorse of the theater is the WD TV. This little guy can play back almost anything I throw at it. In my case, I stream videos to it off two NAS drives. I&#39;m not 100% convinced this is the best way to go, but it&#39;s what I&#39;m doing for now. I could stream to the blu-ray player, but it doesn&#39;t always play nice with MKV files (it works better with a connected USB drive) and I don&#39;t care for the user interface all that much. I like the look of the Xbox 360, but Microsoft is very particular about the files you can stream to it, and most of my files wouldn&#39;t make the cut without decoded them in an undesirable way. The downside with the WDTV is the interface isn&#39;t particularly pretty. With &lt;a href=&quot;http://b-rad.cc/&quot;&gt;alternate firmware&lt;/a&gt; you can change this, and I played around with this back with my generation one WDTV, but I haven&#39;t done it yet with the 2nd generation WDTV Live Plus.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
One deficiency I have in the current set up is I don&#39;t have a way to watch live TV. I have a 1st generation HDHomerun (HDHR) which essentially makes two over the air or unencrypted cable tuners available over the network. With the HTPC I was able to use the HDHR to watch broadcast TV, however, I couldn&#39;t stream from the HDHR to any of the other playback devices in the theater. In an impulse buy I purchased new &lt;a href=&quot;http://www.silicondust.com/products/hdhomerun/hdhomerun/&quot;&gt;HD Homerun Plus&lt;/a&gt;. This device promises to transcode video on the fly to stream to any of your devices, but I couldn&#39;t get it to work very well. Granted I didn&#39;t try very long, but for what I wanted it for, this purchase was overkill and I sent it back. I also have a USB TV tuner, &lt;a href=&quot;http://www.hauppauge.com/site/products/data_hvr950q.html&quot;&gt;WinTV-HVR-950Q&lt;/a&gt;. This will also work only with the PC.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
I feel stupid for not thinking of it sooner, but it turns out I have everything I need watch broadcast TV in the theater. All I have to do is reinstall Windows XP on the former HTPC, specifically Windows XP Media Center Edition 2005 (MCE). It so happens I have a legitimate copy of this, from back when I first got into HTPCs back in, well, 2005 or so. If I set up the PC with MCE and the USB TV tuner I should be able watch broadcast TV via the Media Center application on the Xbox 360. The key word here is &quot;should&quot;. I&#39;ll report back when I&#39;m done installing the 136 updates, software, drivers and rebooting 12 times. If it doesn&#39;t work, I have a few ideas about what I can do instead.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/5785874105582483620/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2014/02/installing-mce-like-its-2005.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/5785874105582483620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/5785874105582483620'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2014/02/installing-mce-like-its-2005.html' title='Installing MCE, like its 2005!'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjh2XQjp5bRsRL9pReQzrXMUwEehwLG525KAivVhn8y6BfuHpzaMd_Imxs5gztFZwgBzyjKkxEvx0N-k7KI_JkKsZHGBCmH59E53181p_s5s30phuhRc8Aj_nmynT_NkouPd3dnlf2Np98/s72-c/blogger-image-398521026.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-9106216614311732</id><published>2013-09-24T17:02:00.003-07:00</published><updated>2013-09-24T17:03:32.441-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blab"/><category scheme="http://www.blogger.com/atom/ns#" term="sideproject"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Math, for fun!</title><content type='html'>My recent attempts at programming have inspired me to try to get better at it. This is by no means new, but I&#39;ve been working at solving the problems in &lt;a href=&quot;http://projecteuler.net/&quot;&gt;Project Euler&lt;/a&gt;. It&#39;s a collection of math problems which you typically have to write some
 sort of program to solve. After you complete a problem you get access to a 
forum where people are discussing the problem. In the ones I&#39;ve seen so 
far, there&#39;s a bunch of people discussing various ways to code the 
problem and some math genius who solved it just with math theorems. I&#39;m up to problem 5.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/9106216614311732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/09/math-for-fun.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/9106216614311732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/9106216614311732'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/09/math-for-fun.html' title='Math, for fun!'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2165471926882648917</id><published>2013-09-19T11:42:00.000-07:00</published><updated>2013-09-19T11:42:33.919-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="digital frames"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Revisiting Photo Prep for Digital Frames</title><content type='html'>&lt;a href=&quot;http://www.twobodyproblem.com/2013/08/photo-formatting-program.html&quot;&gt;Previously&lt;/a&gt;, I made a Matlab script that&amp;nbsp; automatically detected the faces in a photo then cropped and resized the photo centered around the faces. Portrait photos were formatted for an 800x600 frame and landscape photos were formatted for a 1920x1080 frame. The script also had the option to disable face detection and use the center of the uncropped image as the center of the center point. I had about 700 photos I wanted to process so I ran the script both with and without face detection enabled. About 70% of the images looked ok with the face detected results, 15% with the image centered results, and 15% with neither.&lt;br /&gt;
&lt;br /&gt;
All in all, however, manually picking out the images from the face-detected and image-centered sets was more work than I wanted to do. There&#39;s probably a better process I could come up with, maybe a script that shows both images and lets you pick one, but I don&#39;t think I&#39;ll ever process that many images in a single time again. The question is what do I do about the 100 or so photos that I have to crop and resize by hand. My solution is the following Matlab script. It borrows heavily from the face-detection version but instead of running the face-detection scheme the user selects a point manually. It took about a minute to process approximately 100 images. I suspect I will just use this version in the future.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre&gt;% Manually selects central point to crop images for frames
%
% Last modified: 09/10/13
% Aaron Potter

clear all
close all

% set input and output subdirectories
InDir = &#39;Input&#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Input subdirectory name
OutDir = &#39;Output&#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Output subdirectory name
FilePattern = fullfile(InDir, &#39;*.jpg&#39;);
jpgFiles = dir(FilePattern);

% load an example image (single file mode
%File = uigetfile(&#39;*.jpg&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Returns file name as a string 
%InImage = imread(File);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Reads image file into variable
%img = rgb2gray(InImage);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Converts to grayscale

for k=1:length(jpgFiles)

% Read in image file
%
% file = &#39;test.jpg&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % test file (skips file selection)
% InImage = imread(file);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Reads test image file into variable

&amp;nbsp;&amp;nbsp;&amp;nbsp; BaseFileName = jpgFiles(k).name;
&amp;nbsp;&amp;nbsp;&amp;nbsp; File = fullfile(InDir,BaseFileName);
&amp;nbsp;&amp;nbsp;&amp;nbsp; InImage = imread(File);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Reads image file into variable
&amp;nbsp;&amp;nbsp;&amp;nbsp; img = rgb2gray(InImage);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Converts to grayscale

% Determine if image file is Portrait or Landscape
%
% Height = InSize(1,1);
% Width = InSize(1,2);

&amp;nbsp;&amp;nbsp;&amp;nbsp; InSize = size(img);
&amp;nbsp;&amp;nbsp;&amp;nbsp; if InSize(1,1) &amp;gt; InSize(1,2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InType = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Portrait
&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InSize(1,1) &amp;lt; InSize(1,2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InType = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Landscape
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InType = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Square
&amp;nbsp;&amp;nbsp;&amp;nbsp; end

% display the image
imagesc(img)
colormap gray
axis image
axis off

% select point in image
CenterPoint = ginput(1);
close

% testing
%
% display(CenterPoint);
&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;% Scale photos depending on type
%
% Portrait photos to 800 width
% Landscape photos to 1920 width
% square photos to 800 width
% crop rectangle defined as [xmin ymin width height]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if InType==1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Portrait
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaleFactor = InSize(1,2)/800;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledHeight = InSize(1,1)/ScaleFactor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledCenter = round(CenterPoint/ScaleFactor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % shift crop region if cropped region using faces center 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would extend past the edge of the image (i.e. images
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would be too small
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset = ScaledHeight-(ScaledCenter(1,2)+300);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ScaledCenter(1,2)+300 &amp;gt; ScaledHeight
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option1&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif ScaledCenter(1,2)-300 &amp;lt; 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option2&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option3&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Landscape
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 1920]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaleFactor = InSize(1,2)/1920;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledHeight = InSize(1,1)/ScaleFactor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledCenter = round(CenterPoint/ScaleFactor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % shift crop region if cropped region using faces center 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would extend past the edge of the image (i.e. images
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would be too small
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset = ScaledHeight-(ScaledCenter(1,2)+540);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ScaledCenter(1,2)+540 &amp;gt; ScaledHeight
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-540+Offset 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option1&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif ScaledCenter(1,2)-540 &amp;lt; 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-540+Offset 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option2&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-540 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option3&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Square
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [800 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaleFactor = InSize(1,2)/800;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledHeight = InSize(1,1)/ScaleFactor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledCenter = round(CenterPoint/ScaleFactor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300 800 600];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % shift crop region if cropped region using faces center 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would extend past the edge of the image (i.e. images
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would be too small
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset = ScaledHeight-(ScaledCenter(1,2)+300);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ScaledCenter(1,2)+300 &amp;gt; ScaledHeight
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option1&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif ScaledCenter(1,2)-300 &amp;lt; 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option2&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option3&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end

% Write resized image to file in output subdirectory
&amp;nbsp;&amp;nbsp;&amp;nbsp; CropImage = imcrop(OutImage,CropRect);
&amp;nbsp;&amp;nbsp;&amp;nbsp; InFilename = strtok(File,&#39;.&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; OutFilename = strcat(InFilename,&#39;_f.jpg&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; FullOutFilename = strrep(OutFilename, InDir, OutDir);
&amp;nbsp;&amp;nbsp;&amp;nbsp; imwrite(CropImage,FullOutFilename,&#39;jpg&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
end
&lt;/pre&gt;
&lt;/blockquote&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2165471926882648917/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/09/revisiting-photo-prep-for-digital-frames.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2165471926882648917'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2165471926882648917'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/09/revisiting-photo-prep-for-digital-frames.html' title='Revisiting Photo Prep for Digital Frames'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2949547259979361860</id><published>2013-09-11T15:35:00.001-07:00</published><updated>2013-09-11T16:58:51.426-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AirPlay"/><category scheme="http://www.blogger.com/atom/ns#" term="audio"/><title type='text'>Audiophile Raspberry Pi</title><content type='html'>Lifehacker has a &lt;a href=&quot;http://lifehacker.com/raspyfi-is-a-audiophiles-custom-raspberry-pi-operating-1293657071&quot;&gt;post&lt;/a&gt; on a audiophile Raspberry Pi distribution. I&#39;m hardly an audiophile but this might be a good way to add audio nodes, possibly of better quality to my &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/kitchen-pc-hardware.html&quot;&gt;Airplay based whole house audio system&lt;/a&gt;. The key would be to integrate RAOP, which is reverse engineered Airplay. The same Lifehacker author has an &lt;a href=&quot;http://lifehacker.com/5978594/turn-a-raspberry-pi-into-an-airplay-receiver-for-streaming-music-in-your-living-room&quot;&gt;earlier post&lt;/a&gt; on using Raspberry pi as an Airplay receiver, but it looks like it&#39;s based around XBMC. As is, I&#39;m not sure how well it will work headless.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;.HelveticaNeueUI&#39;;&quot;&gt;Another option might be a &lt;/span&gt;TP-LINK &lt;a href=&quot;http://www.amazon.com/TP-LINK-TL-WR703N-Portable-802-11n-Wireless/dp/B0083Z54P0&quot;&gt;TL-WR703N&lt;/a&gt; Router based solution. It looks like it is possible to add the &lt;a href=&quot;https://openwrt.org/&quot;&gt;OpenWRT&lt;/a&gt; based firmware with Airplay implemented either &lt;a href=&quot;http://mikekazakov.blogspot.com/2012/12/tp-link-tl-mr3020-as-airplay-receiver.html&quot;&gt;yourself&lt;/a&gt;, for as a &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/airplay-in-my-car.html#comment-1029879885&quot;&gt;commenter mentioned&lt;/a&gt;, an already built system is &lt;a href=&quot;http://airenabler.qnology.com/&quot;&gt;available for sale&lt;/a&gt; for about half the price of a new Airport Express.&lt;br /&gt;
&lt;br /&gt;
Update (9/11/13): A commenter on the Lifehacker post says the RaspyFi distro supports Airplay out of the box. I didn&#39;t see any documentation that supports this, but the &lt;a href=&quot;http://www.raspyfi.com/forum/&quot;&gt;RaspyFi forum&lt;/a&gt; seems to suggest this is true. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2949547259979361860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/09/audiophile-raspberry-pi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2949547259979361860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2949547259979361860'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/09/audiophile-raspberry-pi.html' title='Audiophile Raspberry Pi'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-7552295682769830293</id><published>2013-08-22T20:31:00.000-07:00</published><updated>2013-09-19T11:48:15.891-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="digital frames"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><title type='text'>Photo Formatting Program (Updated)</title><content type='html'>As I mentioned &lt;a href=&quot;http://www.twobodyproblem.com/2013/08/work-in-progress-photo-formatting.html&quot;&gt;previously&lt;/a&gt;, I wanted a program that would automatically format my photos to be used on my digital frames. I&#39;m pretty sure this would be trivial for an actual programmer, but I&#39;ll post it anyway.&amp;nbsp; I have two frames, one is a standard 7&quot; digital frame with 800x600 
resolution and the second is a converted 19&quot; LCD monitor operating at 
1920×1080 (i.e. 1080p). I don&#39;t like the black borders around photos with the wrong resolution so I would like to resize and crop the photos for their intended frame. In this program, portrait photos are resized and cropped for the 800x600 frame and landscape photos are resized and cropped for the 1920x1080 frame. The program finds the faces in the photo, determines the mid point between them, and uses that as the center of the cropped region.&lt;br /&gt;
&lt;br /&gt;
I tested the program in Matlab 2012b (32bit) in Windows. It requires the &lt;a href=&quot;http://www.mathworks.com/matlabcentral/fileexchange/20976-fdlibmex-fast-and-simple-face-detection&quot;&gt;fdlibmex&lt;/a&gt; library for face detection, which should go in the same directory as the Matlab *.m file. As written the program looks for jpg photo files in the Input subdirectory and writes the output files to the Output subdirectory.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update (8/28/13):&lt;/b&gt; &lt;br /&gt;
Fixed several bugs and tested on a larger sample size.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Images without faces detected are processed, the code crops the middle section of the image. &lt;/li&gt;
&lt;li&gt;The code now checks that cropped region won&#39;t exceed the size of the image, resulting in a cropped image that is too small. There is also an option to disable face detection altogether.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;hr /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;pre&gt;% Sorts photos by portrait/landscape then crops centered on faces
%
% Last modified: 08/28/13
% Aaron Potter

clear all
close all

InDir = &#39;Input&#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Input subdirectory name
OutDir = &#39;Output&#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Output subdirectory name
FilePattern = fullfile(InDir, &#39;*.jpg&#39;);
jpgFiles = dir(FilePattern);

FaceCheck = &#39;0&#39;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % 1/0 for enable/disable face checking

for k=1:length(jpgFiles)

% Read in image file
%
% file = &#39;test.jpg&#39;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % test file (skips file selection)
% InImage = imread(file);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Reads test image file into variable

&amp;nbsp;&amp;nbsp;&amp;nbsp; BaseFileName = jpgFiles(k).name;
&amp;nbsp;&amp;nbsp;&amp;nbsp; File = fullfile(InDir,BaseFileName);
&amp;nbsp;&amp;nbsp;&amp;nbsp; InImage = imread(File);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Reads image file into variable

% Determine if image file is Portrait or Landscape
%
% Height = InSize(1,1);
% Width = InSize(1,2);

&amp;nbsp;&amp;nbsp;&amp;nbsp; InSize = size(InImage);
&amp;nbsp;&amp;nbsp;&amp;nbsp; if InSize(1,1) &amp;gt; InSize(1,2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InType = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Portrait
&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InSize(1,1) &amp;lt; InSize(1,2)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InType = 2;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Landscape
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; InType = 3;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Square
&amp;nbsp;&amp;nbsp;&amp;nbsp; end

% Find Faces
%
% Returns a vector with the x-position, y-position, and size as a square
&amp;nbsp;&amp;nbsp;&amp;nbsp; if FaceCheck == 1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GrayImage = rgb2gray(InImage);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Converts to grayscale, required by face search function
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pos = fdlibmex(GrayImage);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Performs face search
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NumFaces = length(Pos(:,1));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Number of faces found
&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NumFaces = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; if NumFaces &amp;gt; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Proceed if there faces are detected 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Reject faces smaller than a limit. 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % &#39;fdlibmex&#39; detects faces as small as 15 x 15 pixels
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Limit = 120;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Cut-off limit in pixels (default 120)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OverLimitFaces = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Index for over limit face count
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i = 1:NumFaces
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Pos(i,3) &amp;gt; Limit&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Column 3 is the face sizes
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OverLimitFaces = OverLimitFaces + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if OverLimitFaces &amp;gt; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Proceed if there are faces over limit 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BigFace = zeros(OverLimitFaces,3);&amp;nbsp; % Set size of positon matrix of faces over limit
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Index for cycling through face matrix rows
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for i = 1:NumFaces
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if Pos(i,3) &amp;gt; 100
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BigFace(n,:) = Pos(i,:);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; n = n + 1;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clear n

% Find center point between all the faces
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CenterPoint = zeros(1,2);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CenterPoint(1) = round(sum(BigFace(:,1))/OverLimitFaces);&amp;nbsp;&amp;nbsp;&amp;nbsp; % X-coordinate
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CenterPoint(2) = round(sum(BigFace(:,2))/OverLimitFaces);&amp;nbsp;&amp;nbsp;&amp;nbsp; % Y-coordinate

% Scale photos depending on type
%
% Portrait photos to 800 width
% Landscape photos to 1920 width
% square photos to 800 width
% crop rectangle defined as [xmin ymin width height]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if InType==1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Portrait
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaleFactor = InSize(1,2)/800;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledHeight = InSize(1,1)/ScaleFactor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledCenter = round(CenterPoint/ScaleFactor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % shift crop region if cropped region using faces center 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would extend past the edge of the image (i.e. images
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would be too small
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset = ScaledHeight-(ScaledCenter(1,2)+300);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ScaledCenter(1,2)+300 &amp;gt; ScaledHeight
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option1&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif ScaledCenter(1,2)-300 &amp;lt; 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option2&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option3&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Landscape
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 1920]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaleFactor = InSize(1,2)/1920;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledHeight = InSize(1,1)/ScaleFactor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledCenter = round(CenterPoint/ScaleFactor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % shift crop region if cropped region using faces center 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would extend past the edge of the image (i.e. images
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would be too small
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset = ScaledHeight-(ScaledCenter(1,2)+540);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ScaledCenter(1,2)+540 &amp;gt; ScaledHeight
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-540+Offset 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option1&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif ScaledCenter(1,2)-540 &amp;lt; 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-540+Offset 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option2&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-540 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option3&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Square
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [800 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaleFactor = InSize(1,2)/800;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledHeight = InSize(1,1)/ScaleFactor;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScaledCenter = round(CenterPoint/ScaleFactor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300 800 600];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % shift crop region if cropped region using faces center 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would extend past the edge of the image (i.e. images
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % would be too small
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Offset = ScaledHeight-(ScaledCenter(1,2)+300);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ScaledCenter(1,2)+300 &amp;gt; ScaledHeight
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option1&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif ScaledCenter(1,2)-300 &amp;lt; 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300+Offset 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option2&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 ScaledCenter(1,2)-300 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(&#39;option3&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %CropImage = imcrop(OutImage,CropRect);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Testing
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %CropImage = OutImage;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(File);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(InSize(1,1));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(CenterPoint);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(ScaleFactor);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(ScaledCenter);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(ScaledHeight);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(Offset);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %display(CropRect);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %clear OutImage
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %clear InImage
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %Scale/crop photos without over-limit faces detected
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if InType==1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Portrait
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Edge = round(InSize(1,2)/(800*4));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 Edge 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Landscape
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Edge = round(InSize(1,2)/(1920*4));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 1920]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 Edge 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Square
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Edge = round(InSize(1,2)/(800*4));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [800 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 Edge 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp; else&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; %Scale/crop photos faces detected
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if InType==1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Portrait
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Edge = round(InSize(1,2)/(800*4));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 Edge 800 599];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Landscape
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Edge = round(InSize(1,2)/(1920*4));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [NaN 1920]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 Edge 1920 1079];
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; elseif InType==3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Square
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Edge = round(InSize(1,2)/(800*4));
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OutImage = imresize(InImage, [800 800]);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CropRect = [0 Edge 800 599];&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; end
&amp;nbsp;&amp;nbsp;&amp;nbsp; %clear OutImage
&amp;nbsp;&amp;nbsp;&amp;nbsp; %clear InImage
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
% Write resized image to file in output subdirectory
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; CropImage = imcrop(OutImage,CropRect);
&amp;nbsp;&amp;nbsp;&amp;nbsp; InFilename = strtok(File,&#39;.&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; OutFilename = strcat(InFilename,&#39;_f.jpg&#39;);
&amp;nbsp;&amp;nbsp;&amp;nbsp; FullOutFilename = strrep(OutFilename, InDir, OutDir);
&amp;nbsp;&amp;nbsp;&amp;nbsp; imwrite(CropImage,FullOutFilename,&#39;jpg&#39;);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; % Disable for testing
&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;/pre&gt;
&lt;/blockquote&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/7552295682769830293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/08/photo-formatting-program.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/7552295682769830293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/7552295682769830293'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/08/photo-formatting-program.html' title='Photo Formatting Program (Updated)'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-4076624070831323143</id><published>2013-08-07T13:36:00.000-07:00</published><updated>2013-08-07T13:36:05.236-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="digital frames"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="WorkInProgress"/><title type='text'>Work In Progress: Photo Formatting Program</title><content type='html'>Because I don&#39;t have enough things I&#39;m concurrently working on (and none of this stuff obviously has a deadline), I thought I would work on a program that would prepare my digital photos for my two digital frames. I have a little programming experience, I took some classes in college and have done a little over the years though grad school and work, but I&#39;m so out of practice and do it so infrequently, I might as well be a beginner. Hopefully if I give myself software projects I can improve my skills a little, as well as automate some of the digital grunt work in my life.&lt;br /&gt;
&lt;br /&gt;
I have two frames, one is a standard 7&quot; digital frame with 800x600 resolution and the second is a converted 19&quot; LCD monitor operating at 1920×1080 (i.e. 1080p). I don&#39;t like it when portrait photographs are displayed on the frames leaving dark margins on the edges. I tried using the smaller frame in portrait mode, but I don&#39;t like how it looks. If I were to use it this way, it still wouldn&#39;t be labor free since the as far as I can tell the frame doesn&#39;t have a setting to automatically rotate each image. I would have to manually rotate them. Digital camera photos tend to have a 1.33 aspect ratio while my converted monitor has a 1.78 aspect ratio. Previously I prepared photos for this frame by resizing the photos to a width of 1920 pixels then cropping out a section1080 pixels high. For a few photos I cropped out a 1920x1080 section without resizing, but this tends to look too big. My plan is to take the landscape photos and resize and crop them for the larger frame and take the portrait photos and resize and crop out a 800x600 portrait section for the smaller frame.&lt;br /&gt;
&lt;br /&gt;
Here&#39;s what I would like the program to do:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Decide if a photo is portrait or landscape, and sort them into different directory&lt;/li&gt;
&lt;li&gt;Resize the images to the appropriate size &lt;/li&gt;
&lt;li&gt;Find the faces in the images&lt;/li&gt;
&lt;li&gt;Find the centroid of the faces and put it in the top 1/3 line of the crop region, making sure that nobody is cut off.&lt;/li&gt;
&lt;li&gt;crop and save the images.&lt;/li&gt;
&lt;/ul&gt;
We&#39;ll see how my automated cropping plan works.&amp;nbsp; If it doesn&#39;t work out I&#39;ll have it pop open a selection window to manually choose a crop region with the defined size. As a feasibility exercise, I was able to get &lt;a href=&quot;http://www.mathworks.com/matlabcentral/fileexchange/20976-fdlibmex-fast-and-simple-face-detection&quot;&gt;this&lt;/a&gt; face detection function working in Matlab. Ideally, I&#39;d ultimately like to have a standalone program rather than Matlab, but that may take considerably longer.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/4076624070831323143/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/08/work-in-progress-photo-formatting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/4076624070831323143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/4076624070831323143'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/08/work-in-progress-photo-formatting.html' title='Work In Progress: Photo Formatting Program'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-6494449365783384190</id><published>2013-08-06T22:23:00.001-07:00</published><updated>2013-08-07T12:37:59.693-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WorkInProgress"/><title type='text'>Ideas?</title><content type='html'>Here are some things that I have around that I would like to find a use for. I&#39;m open to suggestions.&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/WD_TV#WD_TV_Live_Plus&quot;&gt;WDTV Live Plus&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;A late-2006 or mid-2007 &lt;a href=&quot;http://en.wikipedia.org/wiki/Macbook_pro&quot;&gt;first generation Macbook Pro&lt;/a&gt; with a poorly functioning screen&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.notebookreview.com/default.asp?newsID=2366&quot;&gt;Dell Lattitude X1&lt;/a&gt; (essentially the same as a Samsung Q30)&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.projectorcentral.com/Panasonic-PT-AE900U.htm&quot;&gt;PT-AE900U&lt;/a&gt; 720p projector&lt;/li&gt;
&lt;li&gt;An Harmon Kardon 5.1 AV Receiver&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/6494449365783384190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/08/ideas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6494449365783384190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6494449365783384190'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/08/ideas.html' title='Ideas?'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-1128181046230230343</id><published>2013-08-05T12:58:00.001-07:00</published><updated>2013-08-05T21:25:47.894-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="audio"/><category scheme="http://www.blogger.com/atom/ns#" term="HTPC"/><category scheme="http://www.blogger.com/atom/ns#" term="KitchenPC"/><category scheme="http://www.blogger.com/atom/ns#" term="WorkInProgress"/><title type='text'>To Do List</title><content type='html'>Last Updated: August 5, 2013&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Theater HTPC&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Get Blu Ray disc playback working&lt;br /&gt;
Set up external programs (Netflix, Hulu, etc)&lt;br /&gt;
Choose a remote control setup and configure &lt;a href=&quot;http://www.eventghost.org/&quot;&gt;Eventghost&lt;/a&gt;&lt;br /&gt;
Get better front speakers&lt;br /&gt;
Move noisy AV equipment into the garage (Xbox, HTPC)&lt;br /&gt;
Fix screen velvet border&lt;br /&gt;
New decor design (curtains, carpet, sofa covers, wall paint)&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Den HTPC&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
Finish setting up external programs (Netflix, Skype, etc)&lt;br /&gt;
Find way to return to &lt;a href=&quot;http://xbmc.org/&quot;&gt;XBMC&lt;/a&gt; easily from external programs &lt;br /&gt;
Configure Xbox controller&lt;br /&gt;
Install and configure game emulators&lt;br /&gt;
AV cabinet for Den &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Whole House Audio&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;
Add screen controls for volume&lt;br /&gt;
Configure kitchen PC for optional &quot;headless&quot; operation with a &quot;headless&quot; mode button&lt;br /&gt;
Add IR control to kitchen PC&amp;nbsp; &lt;br /&gt;
Add more standalone audio nodes &lt;br /&gt;
Improve audio node speakers/amplifiers &lt;br /&gt;
Configure &lt;a href=&quot;http://www.rogueamoeba.com/airfoil/speakers.php&quot;&gt;Airfoil Speakers&lt;/a&gt; on HTPCs&lt;br /&gt;
Add scanner to kitchen PC &lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Other Projects&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
Add bluetooth input to the other car &lt;br /&gt;
Garage door open/closed notifier&lt;br /&gt;
Rec Room open/closed notifier or motion detector&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/1128181046230230343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/08/to-do-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/1128181046230230343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/1128181046230230343'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/08/to-do-list.html' title='To Do List'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2122017579135277424</id><published>2013-08-02T17:04:00.001-07:00</published><updated>2013-08-02T23:01:00.029-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AirPlay"/><category scheme="http://www.blogger.com/atom/ns#" term="audio"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="KitchenPC"/><title type='text'>Kitchen PC: Software Configuration</title><content type='html'>If there is one thing I&#39;ve learned about my family computing projects over the years is the software makes or breaks the whole project. It can&#39;t take more than a few actions for PC to perform it&#39;s task, otherwise it isn&#39;t going to be used. My goal for the kitchen PC is for me or my wife to wake the thing up and have it playing music in one click. I don&#39;t think I&#39;m there yet, but I&#39;m on my way.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;The Guts&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
As I mentioned in the &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/kitchen-pc-hardware.html&quot;&gt;hardware post for the kitchen PC&lt;/a&gt;, with an iOS device you can stream to a single Airport Express, the advantage to using a PC (or a Mac, for that matter) is it is possible to stream to multiple Airport Expresses simultaneously. The most straightforward way to do this is to use iTunes. Of course, using iTunes isn&#39;t exactly the most well regarded music software, and using it to stream will limit you to only music you can import or get from iTunes. My preferred technique is to run Rogue Amoeba&#39;s &lt;a href=&quot;http://www.rogueamoeba.com/airfoil/windows/&quot;&gt;Airfoil&lt;/a&gt;, which allows you to stream audio from any program to multiple Airport Express units. It largely runs in the background, although you need to open it up if you want to change which Airport Expresses you want to broadcast to, or which application you&#39;re broadcasting from. I recommend enabling Airfoil&#39;s&lt;a href=&quot;http://weblog.rogueamoeba.com/2013/03/02/airfoil-for-windows-3-4-brings-improved-audio-capture/&quot;&gt; Instant On feature&lt;/a&gt; which can eliminate having to restart the applications to capture the audio in Airfoil.&lt;br /&gt;
&lt;br /&gt;
The weak point with Airfoil, in my opinion, is you need to open it up and switch sources. One way around this is to stick to a single source. I&#39;m trying to only use Chrome-web apps to keep to a single source. Opening a page in app mode eliminates the toolbars and tab markers, so the page looks like a standalone app. So far it looks promising, but I&#39;m not 100% sold on the Spotify web app. Also, I haven&#39;t decided what to do with my local music, but I will probably use Google Music once I get it all properly tagged, right now my Google Music is a mess.&lt;br /&gt;
&lt;br /&gt;
To open a page in Chrome app mode create a shortcut with the following (using TuneIn as an example)&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
c:\Program Files\Google\Chrome\Application --app=http://tunein.com&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&amp;nbsp;The User-Interface&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrpU8X7V7RaK391ArCRTLTPrf1Wnm5icF0LK9fJGzbdtXeGhpKnv-fxxRKIEr6l4NYUf6s9sSWsjt_NM-MCyhy78TAIgDUBVNugwEyTaORKDsPyzGne49o00uWXm4mzmCvEqq-yzGtWE4/s1600/Tablet-desktop.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrpU8X7V7RaK391ArCRTLTPrf1Wnm5icF0LK9fJGzbdtXeGhpKnv-fxxRKIEr6l4NYUf6s9sSWsjt_NM-MCyhy78TAIgDUBVNugwEyTaORKDsPyzGne49o00uWXm4mzmCvEqq-yzGtWE4/s320/Tablet-desktop.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Here&#39;s what I&#39;m starting with&lt;/div&gt;
&lt;br /&gt;
I imagine the user-interface for this project will evolve. To start off, I put the start menu at the top of the screen. It looks OSX-esque from an earlier attempt to see if I could make a mock-Macintosh and I can&#39;t remember how to undo it. There are also a few desktop icons. Once things are running smoothly I may hide the start menu and task bar and remove the icons. At the bottom of the screen I have &lt;a href=&quot;http://rocketdock.com/&quot;&gt;Rocketdock&lt;/a&gt; running. I have the dock set to always be on top and to not autohide.&amp;nbsp; I also turned off, minimize to the dock. For icons, I got free Rocketdock compatible icons from Icon Database. I&#39;m using the &lt;a href=&quot;http://lostintortola.deviantart.com/art/Android-Icons-ICS-Optics-310735094&quot;&gt;ICS Optics set&lt;/a&gt; by &lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;a class=&quot;u&quot; href=&quot;http://lostintortola.deviantart.com/&quot;&gt;lostintortola&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;. &lt;br /&gt;
&lt;br /&gt;
In the middle of the dock I put the music apps, I think I will primarily use, on the left side I put video apps, I may occasionally use, and on the right side I put miscellaneous other apps. Here they are in order from left to right.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/tv&quot;&gt;YouTube&lt;/a&gt;: I have this set to the YouTube Leanback TV-friendly interface. &lt;/li&gt;
&lt;li&gt;Live-TV application: I have an old &lt;a href=&quot;http://www.silicondust.com/products/hdhomerun/atsc/&quot;&gt;HD Homerun&lt;/a&gt; on my network, this starts the &lt;a href=&quot;http://www.silicondust.com/support/hdhomerun/instructions/quicktv/&quot;&gt;QuickTV&lt;/a&gt; application that will play broadcast TV via an antenna in my attic. It seems like the computer isn&#39;t quite fast enough to playback the mpeg2 video stream, but since other video files run decently, that could also be that I had bad reception at when I was testing it. I used &lt;a href=&quot;http://www.cccp-project.net/&quot;&gt;CCCP&lt;/a&gt; to install an mpeg2 compatible codec.&lt;/li&gt;
&lt;li&gt;Video Files: This opens a grid &lt;a href=&quot;http://rocketdock.com/addon/docklets/30962&quot;&gt;stack docklet&lt;/a&gt; that shows the contents of a video folder on my NAS. &lt;/li&gt;
&lt;li&gt;Music: Currently this opens another stack docklet that points to my music folder, but the plan is to have this point to &lt;a href=&quot;https://play.google.com/music/listen?u=0#/now&quot;&gt;Google Music&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://tunein.com/&quot;&gt;TuneIn&lt;/a&gt;: This site collects internet-broadcasting terrestrial radio stations. I set up favorites for the local stations we tend to listen to.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.spotify.com/&quot;&gt;Spotify&lt;/a&gt;: The subscription music service. There is both a &lt;a href=&quot;https://play.spotify.com/&quot;&gt;web app&lt;/a&gt; and &lt;a href=&quot;https://www.spotify.com/us/download/windows/&quot;&gt;desktop app&lt;/a&gt;, The desktop app seems to perform better, and gives you more options, but I am going to try the web app again, to see if I get used to it.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.skype.com/en/&quot;&gt;Skype&lt;/a&gt;: This opens the chat program in it&#39;s standard window. I don&#39;t foresee broadcasting this over the whole house. That might be a little quickly.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.google.com/chrome/&quot;&gt;Chrome&lt;/a&gt;: Opens a standard Chrome browser window&lt;/li&gt;
&lt;li&gt;Airfoil: Opens the Airfoil App&lt;/li&gt;
&lt;li&gt;Recycling Bin: I&#39;ll probably get rid of this as soon as I figure out how to put it somewhere else.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Remote Control&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Having the tablet screen is nice, but it&#39;s also nice to be able to control music playback remotely. I&#39;ve installed &lt;a href=&quot;http://remoteless.no/&quot;&gt;Remoteless for Spotify&lt;/a&gt; on our iPhones to do that, at least with Spotify. Remoteless also has a version only for Airfoil, but so far I primarily use Spotify on this machine and Airfoil control is baked into that version as well. &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Tidbits&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A few odds and ends to make the system work better.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://www.autohotkey.com/&quot;&gt;Autohotkey&lt;/a&gt;: This project is actually my first experience with this Windows scripting program. On startup, the screen is upside down relative to the user (it&#39;s actually right side up relative to the keyboard). I have a one line script that sends Ctrl + Alt + Up Arrow to rotate the screen. I believe this is particular to this tablet. Occasionally I&#39;ll do something that will cause the screen to rotate back (so it is upside down to me). I put a shortcut on the desktop and in the quickrun toolbar that will execute this hotkey. I am going to try &lt;a href=&quot;http://www.desimonesystems.com/suspendtrigger/&quot;&gt;Hybernate Trigger&lt;/a&gt; to try to run this script when the computer wakes up.&lt;/li&gt;
&lt;li&gt;Standby at night: I set up a batch file (from&lt;a href=&quot;http://stackoverflow.com/questions/6351861/how-to-initiate-standby-sleep-from-command-line&quot;&gt; this source&lt;/a&gt;) in the task scheduler so the computer will go into Standby mode at night. &lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.tightvnc.com/&quot;&gt;TightVNC&lt;/a&gt;: It is much easier to configure things on another PC while I sit on my couch rather than trying to use the stylus and a mini-wireless keyboard in the kitchen.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://rainmeter.net/cms/&quot;&gt;Rainmeter&lt;/a&gt;: I&#39;m playing around with the desktop customization program, Rainmeter. I&#39;d like to put a clock, weather, and maybe a music player on the desktop. I haven&#39;t used Rainmeter before. Years ago I used &lt;a href=&quot;http://www.samurize.com/modules/news/&quot;&gt;Samurize&lt;/a&gt;, which is similar.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Upgrade Ideas&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Software wise, I suspect it&#39;s going to take a while to converge on the right user interface. Ideally, I wouldn&#39;t have to open up Airfoil. Also, I&#39;d like to set up the desktop to display useful information like the weather.&lt;br /&gt;
&lt;br /&gt;
If you missed it, see my take on the kitchen PC hardware, &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/kitchen-pc-hardware.html&quot;&gt;here&lt;/a&gt;. </content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2122017579135277424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/08/kitchen-pc-software-configuration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2122017579135277424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2122017579135277424'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/08/kitchen-pc-software-configuration.html' title='Kitchen PC: Software Configuration'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrpU8X7V7RaK391ArCRTLTPrf1Wnm5icF0LK9fJGzbdtXeGhpKnv-fxxRKIEr6l4NYUf6s9sSWsjt_NM-MCyhy78TAIgDUBVNugwEyTaORKDsPyzGne49o00uWXm4mzmCvEqq-yzGtWE4/s72-c/Tablet-desktop.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-7185838102694749792</id><published>2013-07-30T10:13:00.001-07:00</published><updated>2013-07-30T10:13:54.361-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="networking"/><title type='text'>Extending Your Wifi Network with an Old Router</title><content type='html'>Here&#39;s some &lt;a href=&quot;http://lifehacker.com/how-to-extend-your-wi-fi-network-with-an-old-router-915783308&quot;&gt;timely information from Lifehacker&lt;/a&gt;. A couple of months ago, the unreliability of the aging Airport express I was using as a wireless access point in my detached garage pushed me into action. Ok, I&#39;m exagerating a little here. I had been annoyed by this for a while, but it was fairly low on the priority list.&lt;br /&gt;
&lt;br /&gt;
I use a wired gateway/router provided by my ISP as the router for my network, then I have two wireless access points, one for the house and one for the garage. In the house I have an &lt;a href=&quot;http://www.asus.com/Networking/RTN66U/&quot;&gt;Asus RT-N66U&lt;/a&gt; (I realize I don&#39;t need a router here, but I wanted the option to use it as one in the future). This replaced a &lt;a href=&quot;http://reviews.cnet.com/routers/linksys-wrt610n-simultaneous-dual/4505-3319_7-33132573.html&quot;&gt;Linksys WRT610n&lt;/a&gt;, which is a fairly new router, but gave me enough problems that I wasn&#39;t happy with it. However, when I set up the Linksys router as an access point in the garage, it works like a champ.&lt;br /&gt;
&lt;br /&gt;
The Lifehacker article primarily deals with setting up an old router as a wifi repeater. Since I ran an Ethernet cable under the house&amp;nbsp; to each of the access points (fun, let me tell you) I didn&#39;t need this functionality. There isn&#39;t much to do technically. Go into the setup for each access point using a browser, to make life easier, I recommend connecting to the access point directly using an Ethernet cable. Set it to act as an access point instead of a router and set each access point to broadcast the same wireless network. I have 802.11g and 802.11n 5GHz networks broadcasting, for 802.11g, you want to make sure they are operating on different channels with minimal overlap. For two access points, use channels 1 and 11. I haven&#39;t played around the 802.11n settings yet, both access points are set to their automatic values. Generally, my understanding is that there is much less interference possible in this band. I may come back to this in the future.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/7185838102694749792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/extending-your-wifi-network-with-old.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/7185838102694749792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/7185838102694749792'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/extending-your-wifi-network-with-old.html' title='Extending Your Wifi Network with an Old Router'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2535259299272713128</id><published>2013-07-29T13:10:00.002-07:00</published><updated>2013-08-02T23:02:55.830-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AirPlay"/><category scheme="http://www.blogger.com/atom/ns#" term="audio"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="KitchenPC"/><category scheme="http://www.blogger.com/atom/ns#" term="music"/><title type='text'>Kitchen PC: The Hardware</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Part of the reason &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/back-from-dead.html&quot;&gt;I decided to resurrect this blog&lt;/a&gt;
 was I had a cabinet full of old computers, internet appliances, and AV 
equipment that I wasn&#39;t using, but they work well enough that I really 
didn&#39;t want to dump them in the e-waste.&amp;nbsp; A couple &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/work-in-progress-kitchen-pc.html&quot;&gt;weeks ago&lt;/a&gt; or so, I decided to adapt an old tablet computer to be an under-the-counter kitchen PC. My goal is to have a PC in the kitchen that I can use to control a whole-house music system. I suspect with this project the software is going to change more frequently than the hardware so I am going to divide posts on this project along those lines. I&#39;ll talk about the my generation one hardware configuration here, and my first stab at a software configuration in a later post.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
This isn&#39;t my first attempt at a whole house audio system. I have had some of the music nodes active, at least I have played around with them previously, but in order to play anything I had to go to sneak into the den where the general use computer resides. This is decidedly a low &lt;a href=&quot;http://en.wikipedia.org/wiki/Wife_acceptance_factor&quot;&gt;WAF&lt;/a&gt; technique. For a while I was using a remote control app on my phone to control the music on my den PC, but this was annoying for me, especially since that computer was often tied up doing other things. I could stream directly from my phone to a single music node, but in order to &lt;a href=&quot;http://weblog.rogueamoeba.com/2012/02/12/send-audio-from-ios-to-multiple-speakers-with-airfoil/&quot;&gt;stream from your phone to multiple nodes&lt;/a&gt;, at least using an &lt;a href=&quot;http://en.wikipedia.org/wiki/AirPlay&quot;&gt;Airplay&lt;/a&gt; based system, you need a PC committed to the task. When I started brainstorming this project, I thought I would hide a PC in the laundry room, pantry, or on top of the kitchen cabinets, but since I was planning on adapting a tablet I thought it might be useful to try to take advantage of the screen rather than hide it and &lt;a href=&quot;http://lifehacker.com/5196069/build-an-under+the+cabinet-kitchen-pc-from-an-old-laptop&quot;&gt;mount it underneath the cabinets and actually use it as a kitchen PC&lt;/a&gt;. The spot next to the refrigerator was good since I wasn&#39;t exactly sure how this would look and that spot is normally a mess anyway.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Starting materials&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The tablet PC I am using is an &lt;a href=&quot;http://h71016.www7.hp.com/html/interactive/tc4200/model.html&quot;&gt;HP TC4200&lt;/a&gt;. I bought this PC of Ebay for about $100 several years ago, when it was already obsolete, for my wife to use for her lectures when she started teaching. I spent another $50 or so on more memory, a new hard drive and (I think) a new battery. She used it for a year or two before she was able to get a new tablet PC. It hasn&#39;t done much since then except be my guinea pig.&amp;nbsp;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www7.pcmag.com/media/images/89985-hp-compaq-tc4200-swivel.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;302&quot; src=&quot;http://www7.pcmag.com/media/images/89985-hp-compaq-tc4200-swivel.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
From &lt;a href=&quot;http://www.pcmag.com/slideshow_viewer/0,3253,l=144944&amp;amp;a=144957&amp;amp;po=1,00.asp&quot;&gt;PC Magazine&lt;/a&gt; (this tablet PC was quite expensive, back in the day)&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The audio nodes are based around &lt;a href=&quot;http://support.apple.com/kb/SP76&quot;&gt;first generation Airport Express&lt;/a&gt; units. &lt;a href=&quot;http://www.twobodyproblem.com/2013/07/airplay-in-my-car.html&quot;&gt;As I mentioned before&lt;/a&gt;, I have a few of these. I used them as both a router and an access point over the years as well as units to just serve as Airplay nodes, but recently they found themselves in the future e-waste cabinet. For reasons that aren&#39;t clear to me, they seem to develop problems working as a wireless router or access point. It turns out that even when these units are no longer ideal as a reliable access point, they can still work fine as an Airplay output node, especially if you operate them wired into the ethernet network. I&#39;ve been trying them out in this capacity. Streaming from one of our i-devices to an Airport Express set up in the kitchen.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://media.gdgt.com/img/product/4/37s/apple-airport-express-4gl-800.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://media.gdgt.com/img/product/4/37s/apple-airport-express-4gl-800.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
From &lt;a href=&quot;http://gdgt.com/apple/airport/express/&quot;&gt;Gdgt&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: 14px;&quot;&gt;
For each audio node I would like to have a decent amplifier and speakers. For the amplifiers I&#39;m planning on using T-class units. I already have 2, a &lt;a href=&quot;http://www.apartmenttherapy.com/realview-dayton-dta1-tamp-80395&quot;&gt;Dayton Audio DTA-1&lt;/a&gt; and a &lt;a href=&quot;http://www.parts-express.com/pe/showdetl.cfm?partnumber=310-302&quot;&gt;Lepai &lt;/a&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;a href=&quot;http://www.parts-express.com/pe/showdetl.cfm?partnumber=310-302&quot;&gt;LP-A68&lt;/a&gt;. For the speakers I am planning on using pairs of&lt;a href=&quot;http://www.stereophile.com/content/dayton-audio-b652-loudspeaker&quot;&gt; Dayton B652&lt;/a&gt;. I have two pairs of these already one of which I am using and the other I am planning on swapping out from another location. I purchased these all from &lt;a href=&quot;http://www.parts-express.com/&quot;&gt;Parts Express&lt;/a&gt;. For future nodes my plan is to use &lt;a href=&quot;http://reviews.cnet.com/amplifiers-preamps-processors/lepai-lp-2020a/4505-7871_7-35190789.html&quot;&gt;Lepai-2020A+&lt;/a&gt; for the amplifier, although I may swap out the amplifier attached to the PC with a higher quality USB soundcard/amp, perhaps a &lt;a href=&quot;http://www.parts-express.com/pe/showdetl.cfm?Partnumber=310-312&amp;amp;FTR=topping%20tp30&quot;&gt;Topping TP30&lt;/a&gt;. I&#39;ll also try to find smaller, higher quality speakers. I think I may swap out the Polk&lt;span style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;span id=&quot;btAsinTitle&quot;&gt;RM6751 speakers in my theater for something else (thinking &lt;a href=&quot;http://www.hometheater.com/content/pioneer-sp-bs22-lr-speaker-system&quot;&gt;Pioneer SP-BS22-LR&lt;/a&gt;) and use them&lt;span style=&quot;font-size: small;&quot;&gt; around the house. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;font-size: small; font-weight: normal;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Initial placement&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
As I mentioned before, placed the tablet PC underneath the cabinet, next to the refrigerator. The nice part about this arrangement, besides being out of the way, is that when the screen is fully closed, the pc is almost totally hidden from view. Initially I mounted the computer under the cabinet similar to &lt;a href=&quot;http://bluelinecity.com/projects/kitchenet/&quot;&gt;this Lifehacker inspired post&lt;/a&gt; using two coat hangers held in place by two shelving screws, but this prevented the screen from folding up all the way, which I didn&#39;t like. For my second attempt I used four pieces of 4&quot;x2&quot; industrial strength Velcro, to hold the computer in place, two on each side of the computer. Before attaching the Velcro pieces to the computer I cut them along the access panel seams, in the unlikely event I want to change out the hard disk or the battery. At first I was concerned the PC would fall down during the 24 hours it takes for the adhesive to take hold, so I tried to use some fishing wire tied around the leftover screws to strain relief the velcro. It turned out this wasn&#39;t necessary and the Velcro adhesive worked fine without any additional support.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJaoSDYV2Fl3uWmjfYamnBfPJHAmvflrElJEQHF6XmQHa45iLdouGfE8r3fCT-hf55GgDW-hMWwMCKiAuvMuAUhFInrDnm_JYi6e0Qg97ztB1lwAfsXLCSTgxMkRrjDRyB6DfBj-qfACc/s1600/blogger-image-846667589.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJaoSDYV2Fl3uWmjfYamnBfPJHAmvflrElJEQHF6XmQHa45iLdouGfE8r3fCT-hf55GgDW-hMWwMCKiAuvMuAUhFInrDnm_JYi6e0Qg97ztB1lwAfsXLCSTgxMkRrjDRyB6DfBj-qfACc/s320/blogger-image-846667589.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
The power brick plugs into the PC in the front, on the side toward the user so I had to reposition the computer on the velcro to make room for the cable and the backside of the lower lip of the cabinet front. I put the power brick on top of the refrigerator underneath the cabinet so it is out of view and plugged it into the outlet behind the refrigerator. I used some masking tape to keep the power cord out of view, but I will probably come back to this with a better solution. The audio amplifier and speakers are top of the cabinet. They are mostly hidden from view but from some vantage points you can see the speakers (part of the reason I&#39;d like to replace them with smaller speakers). I drilled holes through the bottom and top of the cabinet over the refrigerator and routed a power and audio cable to the top of the cabinet. The audio input of the PC is a 3.5mm mini connector (like a headphone jack) and the amplifier has left and right RCA inputs, so I used a long &lt;a href=&quot;http://www.monoprice.com/products/product.asp?c_id=102&amp;amp;cp_id=10218&amp;amp;cs_id=1021816&amp;amp;p_id=9766&amp;amp;seq=1&amp;amp;format=2&quot;&gt;mini-to-mini cable&lt;/a&gt;, &lt;a href=&quot;http://www.monoprice.com/products/product.asp?c_id=104&amp;amp;cp_id=10429&amp;amp;cs_id=1042901&amp;amp;p_id=7230&amp;amp;seq=1&amp;amp;format=2&quot;&gt;a mini stereo union&lt;/a&gt;, and &lt;a href=&quot;http://amzn.com/B000067RBT&quot;&gt;3.5mm mini-to-RCA Y-cable&lt;/a&gt; to connect the two, although if I had a long enough Y-cable around I would have used only that. The 3.5mm jack is on the side of the computer away from the refrigerator so I routed the cable along the back of the cabinet and again held it in place with tape. I&#39;m still playing around with the best way to do this. I want to keep the cable hidden but it keeps getting in the way of the latch when I try to open the folded-up screen. I may try to route it around the front of the PC as well.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPeId91nrwlIH3tvdwmixleZ1H66l3743rjeLN0sMRSIpgevYnib2GzK0_SReqQ53ITzsZc8UXv8oYvTwF16E_6kDWZrUYxP-bIwuYDK8XqiOb9z-hagYtjmhZiNzCKxF-v5YOhrjwow/s1600/IMG_0065.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOPeId91nrwlIH3tvdwmixleZ1H66l3743rjeLN0sMRSIpgevYnib2GzK0_SReqQ53ITzsZc8UXv8oYvTwF16E_6kDWZrUYxP-bIwuYDK8XqiOb9z-hagYtjmhZiNzCKxF-v5YOhrjwow/s320/IMG_0065.JPG&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Here&#39;s the alcove with the kitchen PC with the screen closed. I should really clean this area up.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb3UStezfFcEqSct78DxY91zBxLGxMc6pk6sPBy1mDpmWeAm29UvnVBoG-0wAGz9gDM9jXd7JWPO0D7UIiKmCcqxmC2yqdA5yG-e8f4HG5gHK4oj3T1tywGR5B5mDh-GIW-zBtj1h4nCQ/s1600/IMG_0066.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjb3UStezfFcEqSct78DxY91zBxLGxMc6pk6sPBy1mDpmWeAm29UvnVBoG-0wAGz9gDM9jXd7JWPO0D7UIiKmCcqxmC2yqdA5yG-e8f4HG5gHK4oj3T1tywGR5B5mDh-GIW-zBtj1h4nCQ/s320/IMG_0066.JPG&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
Here&#39;s the kitchen PC screen open.&lt;/div&gt;
&lt;br /&gt;
That&#39;s the starting hardware configuration. I&#39;ll talk about the software configuration in a later post. Maybe I&#39;ll clean up the pile of paperwork too!&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;Upgrade ideas&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
1.&amp;nbsp; Better speakers. &lt;br /&gt;
2.&amp;nbsp; Integrated USB sound card and amplifier combo.&lt;br /&gt;
3.&amp;nbsp; IR receiver to control with a traditional (i.e. non-iPhone remote).&lt;br /&gt;
4.&amp;nbsp; USB notifier light, something like &lt;a href=&quot;http://makezine.com/2012/07/11/blink1-the-usb-rgb-led-status-light/&quot;&gt;this&lt;/a&gt;. I&#39;m not sure exactly what I would want it to tell me, but I think this would be straightforward to do.&lt;br /&gt;
5. Integrate with a motion activated camera to log who comes to the front/back doors.&lt;br /&gt;
6. I wonder if I could use this PC as a bluetooth speaker phone?&lt;br /&gt;
7. USB thermometer and/or humidity sensor to display or track indoor temperate.&lt;br /&gt;
8. Wireless USB thermometer or weather station to display and track outdoor weather info.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update! (8/2/13)&lt;/b&gt;&lt;br /&gt;
My first take on the software configuration for the kitchen PC is &lt;a href=&quot;http://www.twobodyproblem.com/2013/08/kitchen-pc-software-configuration.html&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2535259299272713128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/kitchen-pc-hardware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2535259299272713128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2535259299272713128'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/kitchen-pc-hardware.html' title='Kitchen PC: The Hardware'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJaoSDYV2Fl3uWmjfYamnBfPJHAmvflrElJEQHF6XmQHa45iLdouGfE8r3fCT-hf55GgDW-hMWwMCKiAuvMuAUhFInrDnm_JYi6e0Qg97ztB1lwAfsXLCSTgxMkRrjDRyB6DfBj-qfACc/s72-c/blogger-image-846667589.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-7113183265188847645</id><published>2013-07-22T10:54:00.001-07:00</published><updated>2013-07-24T16:47:37.656-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AirPlay"/><category scheme="http://www.blogger.com/atom/ns#" term="audio"/><category scheme="http://www.blogger.com/atom/ns#" term="Car"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="WAF"/><title type='text'>Airplay in my car (Updated!)</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
I was inspired by this &lt;a href=&quot;http://lifehacker.com/how-to-add-airplay-to-your-car-for-high-quality-wirele-512312902&quot;&gt;recent Lifehacker post&lt;/a&gt; by Ben Novakovic to try to assemble an Airplay receiver for my car. My car doesn&#39;t have a bluetooth receiver while I could probably put something together that used bluetooth, but I liked the idea of using wifi based Airplay better. In Ben&#39;s post, he converted a new &lt;a href=&quot;http://support.apple.com/kb/SP651&quot;&gt;2nd generation Airport Express&lt;/a&gt; to run off a 5V USB power supply.&amp;nbsp; I already have several &lt;a href=&quot;http://support.apple.com/kb/SP76&quot;&gt;1st generation Airport Express&lt;/a&gt; units, a few of which I wasn&#39;t using. Assuming they can also be run of a 5V USB power supply, I would like to use one of them instead. I should note that while this worked great in my garage, I encountered audio problems, probably due to the wifi connection, as I was driving around town.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Hardware Setup&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
A Google search revealed that power supply failure on the 1st generation Airport Express units was fairly common and there were a few &lt;a href=&quot;http://weistudio.com/mac_ape.htm&quot;&gt;useful&lt;/a&gt; &lt;a href=&quot;http://www.instructables.com/id/Converting-a-Broken-Airport-Express-PSU-with-an-US/&quot;&gt;posts&lt;/a&gt; on converting them to run off USB. Like the 2nd generation unit, the 1st generation Airport Express runs off 3.3V and 5V. The previous posts, used a card reader board to step down the voltage, my plan was to use the &lt;a href=&quot;http://www.ebay.com/itm/281058278731?ssPageName=STRK:MEWNX:IT&amp;amp;_trksid=p3984.m1497.l2649&quot;&gt;step down converter&lt;/a&gt;, Ben specified in his post.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm4muHlMkwtTXt0RxjusZSWgipzRQe1RUQcrWIM85vf_kLIV60Lygim10jGKmDdZrgGN4JBEsszSh8eDYX45vee0Gtm3IROQjgC8-aFeotYj4vpfCK1KD0FS6_tQhYLIOBNz-Lr0Y05lM/s320/CameraZOOM-20130703151205697.jpg&quot; width=&quot;240&quot; /&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&amp;nbsp;The 1st generation Airport Express, with the case ready to be opened.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
As you&#39;d expect from an Apple product, the 1st generation Airport Express is a pain to open. The two plastic halves of the unit are melted together. Rather than use a saw, I used a small screwdriver to break the plastic seam and pry the unit open. Once open the power supply can easily be removed with a single screw.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq95WSbuMwVWMeKm9wrqV57gp2OA8Py0WAdHI1G1w7Fmf3jPdL2zveGb_vE2x68h-HlRHYcaJbUJADN0svDngmxMuF_kgTgnt2YBBBSsHzpugwWZGbS81s8mq2oirOJV_o1fLhLrRGV-I/s1600/CameraZOOM-20130703151240079.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq95WSbuMwVWMeKm9wrqV57gp2OA8Py0WAdHI1G1w7Fmf3jPdL2zveGb_vE2x68h-HlRHYcaJbUJADN0svDngmxMuF_kgTgnt2YBBBSsHzpugwWZGbS81s8mq2oirOJV_o1fLhLrRGV-I/s320/CameraZOOM-20130703151240079.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
The open Airport Express, The top half is the power supply.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcDPEBTtgYHd_-4DzATQgBB7O8ZgW-YBY4qjxfjZzJnvWmadjLMzmPCMxqAo1yNzvIh0CPoDYcMBM-5H9fJaCIz3-knGS0HOvIRn2NyxWmnBz6Q8KD_ZwGL-73Jt5xHIemK5een4ao3zU/s1600/CameraZOOM-20130703154927440.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcDPEBTtgYHd_-4DzATQgBB7O8ZgW-YBY4qjxfjZzJnvWmadjLMzmPCMxqAo1yNzvIh0CPoDYcMBM-5H9fJaCIz3-knGS0HOvIRn2NyxWmnBz6Q8KD_ZwGL-73Jt5xHIemK5een4ao3zU/s320/CameraZOOM-20130703154927440.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;The power supply half of the Airport Express with the power supply removed&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
There are six wires coming out of the Airport Express controller going to a socket connector. Three black (ground), two orange (3.3V) and one red (5V). I wanted to preserve the connector on the&amp;nbsp; Airport Express controller in the event I wanted to reassemble the Airport to it&#39;s original state so I constructed a pin connector that would mate to it. I shorted the same color wire pins together and soldered a couple inches of wire off the black (ground), orange (3.3V) and red (5V) leads. For the USB connector, I sacrificed a USB cable then soldered the red (5V) and black (ground) to the matching pin connector cable. My soldering skills aren&#39;t that great, so I soldered a few inches of wire onto the step-down converter leads, black (ground), red (VIN, i.e. voltage input 5V), orange (OUT, i.e. voltage output, 3.3V).&amp;nbsp; Finally, I soldered connector/USB wires to the appropriate wire lead on the step down converter. I secured the step-down transformer and strain-relieved the wires using kapton tape. There is probably a better way to do this, but I am used to clugeing things with kapton tape.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoMcKQU5Chz-wmlBpYk12uex6Yi-kivHxYJNKnabExQ54eF29keIav-H_WWs0kmgASmldJNC58IbHAuJBFmKPd2SWrVvWPIlp_2MNGjlKDP1iWIsB6FzhRB74YhRFL5eO3hSjMUQjkCME/s1600/CameraZOOM-20130703151041877.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoMcKQU5Chz-wmlBpYk12uex6Yi-kivHxYJNKnabExQ54eF29keIav-H_WWs0kmgASmldJNC58IbHAuJBFmKPd2SWrVvWPIlp_2MNGjlKDP1iWIsB6FzhRB74YhRFL5eO3hSjMUQjkCME/s320/CameraZOOM-20130703151041877.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
The wiring harness I assembled. The step-down transformer is on the 
right the connections to the controller half of the Airport Express are 
on the left..&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhu4hET3MgOuNaizPfDFHC3Tf6T8VVCT35Rdr68KEl2u-gq9TLgOC1FQQ3-ep7KYRFUCaXnE9FHx232Y_jWRTW6cLpF26wKEVAB9VIgITFwtKgGWZfz8ykjEy8wEZVrCbasU7sOk-5Vdc/s320/CameraZOOM-20130703155943506.jpg&quot; width=&quot;320&quot; /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
The wiring harness secured to the empty half of the Airport Express with kapton tape. &lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFlWy-APvVza7lAYapD691qmkVd1GnJMxmEpzTO0b6MBoLfA_6EyL7epSvOmdjR1wiC_rH3yslhHshZcx_EZlMR9iKQNFk6jYIlYYVGlR2v646_Vtygx7tYiZGBOFQxP7vIj4APIowZOs/s1600/CameraZOOM-20130703160349153.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSl4MH1SjhqumzNxY5R507XZKSH3yOoEX19mR1TABc_dncdAg76gZ_o884UAJ53AXOQya6rF-S1hS_57RGdwnFT00Y2LL5z3cbgIBq9z8mR_2XfvZH2WNqSeDtJ8TkBbNey8Lz0ymUy58/s1600/CameraZOOM-20130703160447050.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSl4MH1SjhqumzNxY5R507XZKSH3yOoEX19mR1TABc_dncdAg76gZ_o884UAJ53AXOQya6rF-S1hS_57RGdwnFT00Y2LL5z3cbgIBq9z8mR_2XfvZH2WNqSeDtJ8TkBbNey8Lz0ymUy58/s320/CameraZOOM-20130703160447050.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
It powers up!&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1URs8zjp6r9I8JOJIgQcKb8B-Ais0Mdr6ehqBd27v9v1rDR4s7yZ3IPPCi3WgQlAlo8optYbwLRA8RP2KxuNX-Cm1q-aZ92unaRqNNY3fe755PNZ3-eGgDf3rSRwWX1DVUtnqeJofU-I/s1600/CameraZOOM-20130703161426354.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1URs8zjp6r9I8JOJIgQcKb8B-Ais0Mdr6ehqBd27v9v1rDR4s7yZ3IPPCi3WgQlAlo8optYbwLRA8RP2KxuNX-Cm1q-aZ92unaRqNNY3fe755PNZ3-eGgDf3rSRwWX1DVUtnqeJofU-I/s320/CameraZOOM-20130703161426354.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
I put the Airport Express back together with white vinyl tape that I had. I also strain-relieved the USB cable.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Software Configuration &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
The process for configuring the 1st generation Airport Express is similar to the process outlined in the Lifehacker article, although with fewer options. The important point is to set the Airport Express to create a wireless network and to enable the Airplay. I gave my wireless network a clever name.&amp;nbsp; To set the Airport Express create a wireless network, open up the Airport Utility (I used the &lt;a href=&quot;http://support.apple.com/kb/dl1547&quot;&gt;Windows version&lt;/a&gt;) and click &quot;manual setup&quot;. You should be in the &quot;Airport&quot; configuration section. On the Base Station tab, give the Airport Express a name and a password. On the wireless tab, change the wireless mode to create a wireless network. Give your network whatever level of security you feel will make your network safe as you zoom around town. I don&#39;t think the radio mode matters, but if you are attempting to do this with an 802.11n capable 1st generation unit (Gen 1.5) you should make sure your network is 802.11g compatible. Next go to the Music configuration section and enable Airplay. Finally save your configuration.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div data-textannotation-id=&quot;96b1dd2b2f63cb3b4255676332851dca&quot;&gt;
Your phone, or other Airplay transmitting device should be configured as described in the Lifehacker article, but I&#39;ll summarize them here. The goal is to connect to the airport express wireless network for music but use your phone&#39;s cellular network connection for data. You can set this up in advance either before you start or using a USB auto (12V) power adapter. Directions for an iPhone, summarized from the Lifehacker article are as follows: Go to the wifi settings then press the arrow next to your car&#39;s wifi network name to view the setup options.&amp;nbsp; Change the IP address type to static and enter 10.0.1.4 for the&amp;nbsp; IP address and 255.255.0.0 for the Subnet Mask. Leave Router, DNS, and Search Domains blank. After some initial road testing I played around with the settings some more. I&#39;ll explain them in more detail below.&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTTKuNEWaFVQuvWy8WcryZc8e7EHNAqVMA3qghRHDe37RMEK5PiDALlaex4zx5G-dHg3BLnORZPgMgZDtG4TpGtf_FvMzPPJuTBIAGpWbwWmnBBeAeYHQrNHzGu7PWzeCdBi5EKtjIaSs/s1600/Photo+Jul+17,+9+07+40+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTTKuNEWaFVQuvWy8WcryZc8e7EHNAqVMA3qghRHDe37RMEK5PiDALlaex4zx5G-dHg3BLnORZPgMgZDtG4TpGtf_FvMzPPJuTBIAGpWbwWmnBBeAeYHQrNHzGu7PWzeCdBi5EKtjIaSs/s320/Photo+Jul+17,+9+07+40+PM.png&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div data-textannotation-id=&quot;96b1dd2b2f63cb3b4255676332851dca&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div data-textannotation-id=&quot;96b1dd2b2f63cb3b4255676332851dca&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Car Integration! &lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I want to keep my Airport Express hidden in my glove box. I&#39;m not really a car guy, but I figured I could wire some USB ports into the glove box. I also wanted to run a hidden audio cable from the stereo head unit to the glove box where it would connect to my hidden Airport express. Fortunately in my car, the fuse box is right next to the glove box. I used an &lt;a href=&quot;http://www.amazon.com/gp/product/B007FFG5YI/ref=oh_details_o00_s00_i00?ie=UTF8&amp;amp;psc=1&quot;&gt;Add-a-circuit fuse tap&lt;/a&gt; and an appropriate fuse to add a circuit and connected it to this &lt;a href=&quot;http://www.amazon.com/gp/product/B00CTGB24G/ref=oh_details_o08_s00_i00?ie=UTF8&amp;amp;psc=1&quot;&gt;12v-to-5V Step-down voltage converter&lt;/a&gt; with two USB ports. there is also a single USB version. I should note that I was pretty nervous about violating my &quot;don&#39;t break the car&quot; spousal pledge. &lt;a href=&quot;http://www.mazdas247.com/forum/showthread.php?123769475-Glovebox-power-outlet%28s%29-install&quot;&gt;This post&lt;/a&gt; on a similar car to mine gave me the courage to try.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx4zMT6vK3XxI_lqHTPIsXM7_Oou_hmcb6yObKb_l2OT8WxGwAx6xHToF6v7Ds-4PpsPrtflOnJuisDF9pwoa57MCkchRpdzeyKKM1MGHTvrbKbv3ODfyOmEh6U8AfQWaLP0T9noWZZ8E/s1600/IMG_0005.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx4zMT6vK3XxI_lqHTPIsXM7_Oou_hmcb6yObKb_l2OT8WxGwAx6xHToF6v7Ds-4PpsPrtflOnJuisDF9pwoa57MCkchRpdzeyKKM1MGHTvrbKbv3ODfyOmEh6U8AfQWaLP0T9noWZZ8E/s320/IMG_0005.JPG&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
The wiring harness to convert 12v power from the car to two 5v USB connections&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6iMlgD295KudTXAWxpeR8irxwaygYr-o8FIESWB9uoSTtfOokKOVYSjO2PjSTpCGOOkiYRIIikypMmx1K2MCf3ngfzp9c2rOtVVBPXLRozd4xOFnK4YDlP0r4535kK_Kn1-73ydluymo/s1600/IMG_0009.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6iMlgD295KudTXAWxpeR8irxwaygYr-o8FIESWB9uoSTtfOokKOVYSjO2PjSTpCGOOkiYRIIikypMmx1K2MCf3ngfzp9c2rOtVVBPXLRozd4xOFnK4YDlP0r4535kK_Kn1-73ydluymo/s320/IMG_0009.JPG&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
The USB power supply wired into the car. I&#39;m close to violating my &quot;Don&#39;t break the car&quot; pledge&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
For the audio cable, my car&#39;s stock stereo has an auxilary input jack near in the center console near the shifter. When I started out on this project, I was prepared to run a moderately visible mini cable (i.e. headphone jack) from this port into the glovebox. It turns out there is an inexpensive &lt;a href=&quot;http://www.amazon.com/gp/product/B006FFCONA/ref=oh_details_o02_s00_i00?ie=UTF8&amp;amp;psc=1&quot;&gt;cable that plugs into the back of the head unit&lt;/a&gt;, replacing the console port with a mini cable that I can run to the glovebox. I imagine there may be similar cables available for other cars.&amp;nbsp; The stock head unit has the capability to connect satellite radio that isn&#39;t being used. In my ideal world, I would tie into that port on the head unit and re-enable the console Aux port. I couldn&#39;t figure out how to easily do that, so I may come back to it later. I was also thinking I might open up the stereo again and add a line from the unused console Aux port to the glovebox. Then if I wanted to re-enable the console port, I could swap it easily. If I was really inspired, I could add a switch.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgU93Fqssle0BQT4A0-NCuscKNC3quAGzdnXJxtjQwZX0ZADCpUYQZr4tQ3F2BOA20rKakxiTm_034Vh51SWsSJ_Nf4d6Z8O6MlKfLswH8ePq5Ok_T3LFxlE9hAle_OcSs3Js_GujG_5U/s1600/blogger-image-1646964039.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgU93Fqssle0BQT4A0-NCuscKNC3quAGzdnXJxtjQwZX0ZADCpUYQZr4tQ3F2BOA20rKakxiTm_034Vh51SWsSJ_Nf4d6Z8O6MlKfLswH8ePq5Ok_T3LFxlE9hAle_OcSs3Js_GujG_5U/s320/blogger-image-1646964039.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Mazda doesn&#39;t make this simple. It&#39;s a miracle I didn&#39;t lose any screws.&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Once everything was connected I tried to hide it in the glove box as much as possible. I mounted the USB power transformer to the side of the glovebox with mounting tape, and the Airport Express on top of a plastic piece in the middle of the box. I also used a few pieces of electrical tape to hold the audio mini cable in place.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqJxeHd6dan6pvwpVeYSW-37u-9iUnVBZ7izUbOrmGw7sVSG3wIxuekFQLG1p8CgbEix4axLkOK_z29Ha1RyN80kUr7nU1YJDrPCXhODD1QEhgz9WD-De2eL8fvCMinj9dsLYTI1qG_gw/s1600/IMG_0029.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqJxeHd6dan6pvwpVeYSW-37u-9iUnVBZ7izUbOrmGw7sVSG3wIxuekFQLG1p8CgbEix4axLkOK_z29Ha1RyN80kUr7nU1YJDrPCXhODD1QEhgz9WD-De2eL8fvCMinj9dsLYTI1qG_gw/s320/IMG_0029.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
Everything connected and hidden away.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
When I start the car it takes 30 seconds or so for the Car wifi network to come up. One issue, is my phone can still access my normal home wifi network in the garage. So I have to either switch it manually or start the music playing after I drive off.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu5IxD0mt7yeAV_Av6BreILwqjTF7EwhAmUUbxSElFUj26ECCZsL5CWVV1rJl3cWR0DUxm7g0eFrVQp8tAR-ERx-Yiumvz-lPVrFNkm2CFIqzlWocu-hDzv0r5Aqx_62LOQqw_iRHkgv0/s1600/Photo+Jul+17,+9+09+06+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu5IxD0mt7yeAV_Av6BreILwqjTF7EwhAmUUbxSElFUj26ECCZsL5CWVV1rJl3cWR0DUxm7g0eFrVQp8tAR-ERx-Yiumvz-lPVrFNkm2CFIqzlWocu-hDzv0r5Aqx_62LOQqw_iRHkgv0/s320/Photo+Jul+17,+9+09+06+PM.png&quot; width=&quot;180&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;The end result!&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Road Testing&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
In my garage, everything works perfectly, but taking it out for a drive it there seems to be a fairly severe audio skip problem. Doing some searching online revealed that this is a fairly common problem with Airplay through Airport Express Gen1 units, although I&#39;ve never had a problem with this at home. I suspect driving around town you encounter a range of different 2.4GHz enviroments. I tried a few things to rectify this, and have seen some improvements. First I went into the Airport Express configuration application and into wireless settings. I clicked the Wireless Options button and did the following:&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
1. Set the wireless channel to 11 &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
2. Set the multicast rate to 24Mbs &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
2. Enabled Interface Robustness&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
3. Enabled WPA security (previously, I used an open network)&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Some more things to try:&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
1 It looks like because of &lt;a href=&quot;http://en.wikipedia.org/wiki/Electromagnetic_interference_at_2.4_GHz&quot;&gt;car alarms&lt;/a&gt;, I might have better luck with channel 1.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
2. I might try decreasing the broadcast power.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
3. I&#39;ll try turning off the bluetooth on my phone. Although I have future plans for this. &lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;If all else fails...&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
I have a bluetooth USB audio dongle. I&#39;ll swap out the Airport for this. Sad panda.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Update&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
I tried the things on my list and there are still audio dropouts. I ended up swapping the Airport Express out for a &lt;a href=&quot;http://www.amazon.com/Stereo-Bluetooth-Receiver-Adapter-Speaker/dp/B008RWQLK6&quot;&gt;USB to 3.5mm bluetooth dongle&lt;/a&gt;. The nice thing is it is all still hidden in my glove box. I used this particular dongle with a 12V auto adapter and had all kinds of problems. It works so smoothly now, I think the problem was the power port I was using.&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Upgrade ideas:&amp;nbsp;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
1. Tie into the Satellite connection on the head unit and re-enable the front panel Aux input.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
2. If option 1 isn&#39;t possible, run a line from the front panel Aux input to the glovebox and integrate a switch.&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
3. I&#39;d like to get a remote control, &lt;a href=&quot;http://www.amazon.com/Satechi-MediaRemote-Bluetooth-Multi-Media-Control/dp/B00824948U/ref=wl_it_dp_o_pC_nS_nC?ie=UTF8&amp;amp;colid=2ZOJH430CN2HZ&amp;amp;coliid=I2YWUF7R39ATJS&quot;&gt;such as this one&lt;/a&gt;, secured to the steering wheel.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/7113183265188847645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/airplay-in-my-car.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/7113183265188847645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/7113183265188847645'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/airplay-in-my-car.html' title='Airplay in my car (Updated!)'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm4muHlMkwtTXt0RxjusZSWgipzRQe1RUQcrWIM85vf_kLIV60Lygim10jGKmDdZrgGN4JBEsszSh8eDYX45vee0Gtm3IROQjgC8-aFeotYj4vpfCK1KD0FS6_tQhYLIOBNz-Lr0Y05lM/s72-c/CameraZOOM-20130703151205697.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2465712678704121628</id><published>2013-07-18T14:44:00.001-07:00</published><updated>2013-07-22T10:54:43.969-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="audio"/><category scheme="http://www.blogger.com/atom/ns#" term="client"/><category scheme="http://www.blogger.com/atom/ns#" term="den"/><category scheme="http://www.blogger.com/atom/ns#" term="Frontend"/><category scheme="http://www.blogger.com/atom/ns#" term="HTPC"/><category scheme="http://www.blogger.com/atom/ns#" term="kids"/><category scheme="http://www.blogger.com/atom/ns#" term="WAF"/><title type='text'>Great moments in home theater computing</title><content type='html'>I just promised the babysitter that there would be sound for the TV the next time she came over. &lt;br /&gt;
&lt;br /&gt;
I should note that this is my secondary system, not my theater, that we basically only use for the kids or video calls with the grandparents.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2465712678704121628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/great-moments-in-home-theater-comuting.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2465712678704121628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2465712678704121628'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/great-moments-in-home-theater-comuting.html' title='Great moments in home theater computing'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2114693790654121412</id><published>2013-07-16T08:01:00.001-07:00</published><updated>2013-07-18T14:48:42.009-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AirPlay"/><category scheme="http://www.blogger.com/atom/ns#" term="Car"/><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="WAF"/><category scheme="http://www.blogger.com/atom/ns#" term="WorkInProgress"/><title type='text'>Work in Progress: In-car Airplay</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmaa5bDsdrbHEWR5RNNI2dkUR9YJtg9FjDxpuV_MYlb6Frj4_Kl9NjNa3Md3OJXJoICTt-lAISEXPP7erYnzVOhl5K0BgQVf7Vcj954qMB5-kFjGCjl0okoNWtyQwAyEw3Fh05NJfyGC4/s640/blogger-image-1646964039.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmaa5bDsdrbHEWR5RNNI2dkUR9YJtg9FjDxpuV_MYlb6Frj4_Kl9NjNa3Md3OJXJoICTt-lAISEXPP7erYnzVOhl5K0BgQVf7Vcj954qMB5-kFjGCjl0okoNWtyQwAyEw3Fh05NJfyGC4/s640/blogger-image-1646964039.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;b&gt;This is an example of low WAF&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
There&#39;s just some tidying up left to do on this project, and it was a lot of fun. I&#39;ll try to write it up soon.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2114693790654121412/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/work-in-progress-in-car-airplay.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2114693790654121412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2114693790654121412'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/work-in-progress-in-car-airplay.html' title='Work in Progress: In-car Airplay'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmaa5bDsdrbHEWR5RNNI2dkUR9YJtg9FjDxpuV_MYlb6Frj4_Kl9NjNa3Md3OJXJoICTt-lAISEXPP7erYnzVOhl5K0BgQVf7Vcj954qMB5-kFjGCjl0okoNWtyQwAyEw3Fh05NJfyGC4/s72-c/blogger-image-1646964039.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-6033629653973228934</id><published>2013-07-12T22:58:00.001-07:00</published><updated>2013-07-18T14:46:17.654-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="audio"/><category scheme="http://www.blogger.com/atom/ns#" term="KitchenPC"/><category scheme="http://www.blogger.com/atom/ns#" term="WorkInProgress"/><title type='text'>Work in Progress: Kitchen PC</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL8DY0wGQq1wLU9gCiv7_NOnhv95s2P51DYnKJwAiQme67TCMUMOVMHs0ILv9voyhc8Jo6IsVJ51mNvESpd1tn9ygL7fNUbzyEMKeA-PaNJ2jh9QDY3xskbbMNoI_IbVWP5NkZMm05VrY/s640/blogger-image-846667589.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL8DY0wGQq1wLU9gCiv7_NOnhv95s2P51DYnKJwAiQme67TCMUMOVMHs0ILv9voyhc8Jo6IsVJ51mNvESpd1tn9ygL7fNUbzyEMKeA-PaNJ2jh9QDY3xskbbMNoI_IbVWP5NkZMm05VrY/s640/blogger-image-846667589.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
Caution: Work in progress! I&#39;m repurposing an old tablet PC as an under-cabinet kitchen PC. Hopefully when it&#39;s done, it will be the brains behind a home brew poor man&#39;s whole house audio system a la Sonos. When it&#39;s more mature, I&#39;ll do a bigger post with links.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/6033629653973228934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/work-in-progress-kitchen-pc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6033629653973228934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/6033629653973228934'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/work-in-progress-kitchen-pc.html' title='Work in Progress: Kitchen PC'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhL8DY0wGQq1wLU9gCiv7_NOnhv95s2P51DYnKJwAiQme67TCMUMOVMHs0ILv9voyhc8Jo6IsVJ51mNvESpd1tn9ygL7fNUbzyEMKeA-PaNJ2jh9QDY3xskbbMNoI_IbVWP5NkZMm05VrY/s72-c/blogger-image-846667589.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-3869778286860723209</id><published>2013-07-10T22:19:00.001-07:00</published><updated>2013-07-10T22:43:57.414-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><title type='text'>&quot;New&quot; Phone</title><content type='html'>This past month my wife and I were finally able to get in sync with our phone contracts. To mark this happy occasion I purchased us both iPhone 5 phones. Of course this means that Apple with come out with a new phone next month. After some soul searching I decided I was ok with this.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;My wife is coming from an iPhone 4, so an iPhone 5 is clearly and upgrade. Ever since she got an iPad she doesn&#39;t really use her phone all that much. Her primary uses are messaging me, maps, Yelp, and maybe Facebook and Instagram. I&#39;ve tried to get her to use a To Do app, but not with much success. Apple&#39;s next phone probably won&#39;t be a big advantage to her.&lt;br /&gt;
&lt;br /&gt;
I&#39;m actually coming to the iPhone 5 from a rooted Samsung Galaxy S2 Skyrocket running Android Jelly Bean. Stat wise, the iPhone 5 isn&#39;t that much better, and I was certainly losing features by moving to iPhone. The main reason I was replacing the Skyrocket, however, was that the hardware was infuriating. The stock battery wouldn&#39;t even last a day so I had to buy a giant replacement battery, the charger connection was flakey and would pop out half the time. I took to using a piece of tape to hold the charging cable in. &lt;br /&gt;
&lt;br /&gt;
There are things I absolutely like about Android. I like how you can customize nearly everything. I like how it is straightforward to put your information right in front of you. I like how you can easily share data between apps. I like how the system is open and you can tweak it to do all kinds of interesting things without feeling like you are getting away with something. I have a Kindle Fire as an iPad decoy for the kids and I think Android will be good on a tablet, that you don&#39;t have to depend on. I&#39;m thinking about getting one for news reading and the like.&lt;br /&gt;
&lt;br /&gt;
I have a few concerns about using an iPhone, mainly concerning the interface. My phone before the Samsung was a iPhone 3GS, that I had jailbroken. The jailbreaking made it somewhat unstable, but I liked how it did a better job putting information in front of you than stock iOS. With iOS 6, iPhone does a better job at this out of the box and I really hope I don&#39;t have to jailbrake the phone.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/3869778286860723209/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/new-phone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/3869778286860723209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/3869778286860723209'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/new-phone.html' title='&quot;New&quot; Phone'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-8526308043256284464</id><published>2013-07-09T15:00:00.000-07:00</published><updated>2013-07-09T15:00:00.731-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="blab"/><title type='text'>Back From the Dead</title><content type='html'>I started this blog to chronicle my, often unsuccessful, attempts to make a family friendly home theater PC sort of AV setup. Unfortunately, through a move and another baby I let the blog slide into the abyss. A few days ago, however, I happened to check the Blogger dashboard and it seems 
that my measly comatose blog actually gets a few hits now and then. You know what? I still work on a number of projects that might be interesting to someone and let&#39;s be honest, an AV setup is never really finished. I&#39;m going to try to bring the blog back!&lt;br /&gt;
&lt;br /&gt;
For the hell of it, let&#39;s take a look at the todo list from 2010 and see what still applies. In future posts I&#39;ll elaborate on the things that are still applicable.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Redo all the movie sheets&lt;/strike&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
I found a way to automate this using a movie sheet generator for the WDTV, but I don&#39;t currently use movie sheets or the WDTV.&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Re-rip movies as MKV&#39;s without any compression (yuck)&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
I used &lt;a href=&quot;http://lifehacker.com/5498519/makemkv-rips-dvds-and-blu+rays-with-just-two-clicks&quot;&gt;MakeMKV&lt;/a&gt; to do this. It was time consuming. I&#39;ll touch on what I think is the best way to do this later.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Set up the HDHomerun to record OTA HDTV&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
I&#39;ve had this working in the past, and it is currently partially functional. In that I can use the HDHomerun to watch broadcast TV&amp;nbsp; in one room and on my wife&#39;s iPad, but we rarely watch broadcast TV so it hasn&#39;t been a huge priority. I don&#39;t use it to record TV, but it is still technically possible, although it isn&#39;t integrated into the system very well. I have some ideas on implementing this better that I&#39;d like to get to at some point, so I&#39;ll put it on the new To do list.&amp;nbsp; &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Find  a solution for removing commercials from recordings, preferably  automatically&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
At one point I had this working, but it is currently disabled. I didn&#39;t like what running an old PC all the time was doing to my electric bill. It has been so long and the software I would use in a new system is so different, that I would probably have to start from scratch if I did this again. I&#39;ll add this to the To do list, but at the bottom.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Configure print server&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
I don&#39;t currently have a printer at home. Back in 2010, my thinking was to use my router as a print server and at one point it was doing that. Then the printer died, and I didn&#39;t replace it. The router died too, but that&#39;s another story. In any case, with new hardware, setting up a print server is a pretty trivial thing to do&lt;strike&gt;&lt;br /&gt;&lt;/strike&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Configure iTunes to  play and serve music, control via iPhone.&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
This was working, but I managed to lose all my ripped music, which led me to start using Spotify rather than iTunes (which I absolutely loathe, anyway). Also for the past two years I&#39;ve had an Android phone which led to it&#39;s own set of integration problems. My current attempt at a whole house audio system is an active project that I&#39;d like to write about soon.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;I&lt;strike&gt;nstall remote desktop  client&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
My intent here was to be able to access a headless PC server. This was working and I used both &lt;a href=&quot;http://www.tightvnc.com/&quot;&gt;TightVNC&lt;/a&gt; and &lt;a href=&quot;http://www.splashtop.com/home&quot;&gt;Splashtop&lt;/a&gt;. I ultimately stopped running a PC server and switched to a low power NAS appliance so this became obsolete. I used it again when I ran an HTPC connected to a projector. The goal here was to be able to make changes to the HTPC without powering up the projector. I don&#39;t currently use an HTPC with the projector but I&#39;m planning to in the future, so I&#39;ll almost certainly come back to this.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Find a way to automatically upload photos to Flickr&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
I currently use &lt;a href=&quot;http://flickrsync.freehostia.com/&quot;&gt;Flickrsync&lt;/a&gt;. I have a couple &lt;a href=&quot;http://www.eye.fi/&quot;&gt;Eye-Fi&lt;/a&gt; cards and it is possible to use the Eye-Fi software and Eye-Fi phone apps to automatically upload photos to Flickr. Unfortunately, you can&#39;t upload to more than one online service, which I would like to do.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Set the small drive as cold storage&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
I&#39;ve had a few hard drives in the past few years. I&#39;m not even sure what I was referring to here. I need to get this all straightened out. &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Install an NFS server  for windows&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
I honestly don&#39;t remember if I got too this or not. The main reason for the NFS server was to serve files to the first generation WDTV which had a hard time with Samba (i.e. Windows) servers. Not long after the move I replaced the the first generation WDTV with newer hardware where this wasn&#39;t necessary.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strike&gt;Install a bittorrent client and with a web based UI&lt;/strike&gt;&lt;/li&gt;
&lt;li&gt;&lt;strike&gt;Restore available data from online backup&lt;/strike&gt;&lt;/li&gt;
&lt;li&gt;&lt;strike&gt;reformat large drive&lt;/strike&gt;&lt;/li&gt;
&lt;li&gt;&lt;strike&gt;copy data to the large drive&lt;/strike&gt;&lt;/li&gt;
&lt;li&gt;&lt;strike&gt;Set the large drive to be automatically backed up&lt;/strike&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/8526308043256284464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2013/07/back-from-dead.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/8526308043256284464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/8526308043256284464'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2013/07/back-from-dead.html' title='Back From the Dead'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-1348101390036551026</id><published>2010-04-26T21:34:00.000-07:00</published><updated>2010-04-28T22:11:14.854-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="server"/><title type='text'>To Do List</title><content type='html'>To Do List: To get the Windows based server up and running I need to set up the following (last update 4/28/10):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Redo all the movie sheets&lt;/li&gt;&lt;li&gt;Re-rip movies as MKV&#39;s without any compression (yuck)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Set up the HDHomerun to record OTA HDTV&lt;/li&gt;&lt;li&gt;Find  a solution for removing commercials from recordings, preferably  automatically&lt;/li&gt;&lt;li&gt;&lt;strike&gt;Configure print server&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;Configure iTunes to  play and serve music, control via iPhone&lt;/li&gt;&lt;li&gt;Install remote desktop  client&lt;/li&gt;&lt;li&gt;Find a way to automatically upload photos to Flickr&lt;/li&gt;&lt;li&gt;Set the small drive as cold storage&lt;/li&gt;&lt;li&gt;Install an NFS server  for windows&lt;/li&gt;&lt;li&gt;&lt;strike&gt;Install a bittorrent client and with a web based UI&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;&lt;strike&gt;Restore available data from online backup&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;&lt;strike&gt;reformat large drive&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;&lt;strike&gt;copy data to the large drive&lt;/strike&gt;&lt;/li&gt;&lt;li&gt;&lt;strike&gt;Set the large drive to be automatically backed up&lt;/strike&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/1348101390036551026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2010/04/to-do-list.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/1348101390036551026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/1348101390036551026'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2010/04/to-do-list.html' title='To Do List'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-260660953198539320</id><published>2010-04-23T22:14:00.000-07:00</published><updated>2013-07-09T12:01:01.153-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="disaster"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="server"/><title type='text'>Apocalypse!</title><content type='html'>I haven&#39;t had much to report for the last 4 months. Everything was running incredibly smoothly. The system would go weeks without needing to be restarted. I could add stuff to the server and the client wouldn&#39;t miss a beat. The wife was happy. The kid was happy. Even I was happy. &lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Than the apocalypse hit.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I was intending to back up my data before the move both locally and online. Unfortunately I didn&#39;t get around to it. Now I&#39;m paying.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
We had a power failure this past week. The data on my 2TB drive, the one formatted as ext3 and connected to the Ubuntu server is inaccessible. I haven&#39;t reformatted it yet to see if the drive is salvageable, but from what I could find online, it doesn&#39;t look good. &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Re-ripping movies and music is disappointing, repeating that work will take much more time than I have, but it&#39;s all replaceable.  The most important thing on the drive was my family photos and videos. Luckily I had another external drive that I had backed these up to. Additionally that drive is backed up online. Plug in the backup drive.  Power light is on, no driving spinning up sound.  Hmm, not good. There is a chance this drive is still alive but the enclosure is dead. I&#39;m not hopeful though. To top it off, my internet service went out this week so I didn&#39;t have a way to check my online backup, or do any proper online diagnostics. When I finally got online this evening, I was able to check the online backup and I have everything backed up to September of last year. I have a few suspicions but I&#39;m not sure why there isn&#39;t more recent. It will take several days to restore the online data that I can.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
There is some good news. I had a 500GB drive and a 1TB drive that I managed to survive the move. I hadn&#39;t had a chance to reformat them and press them into service. The 500GB has most of my photos, music, and some of my ripped TV shows. The 1TB has a good hunk of my ripped movies. The Mac has our recent photos and home movies, back to November of last year. Fortunately I didn&#39;t get around to cleaning it up yet. The big casualty are the photos and home movies from October 2009. Luckily, the best photos I uploaded to Flickr, so even that isn&#39;t a total loss.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now some hard choices.  I decided to take Ubuntu off the Dell laptop media server and replace it with it&#39;s original Windows XP operating system. I like Linux, and I want to keep experimenting with it, but I don&#39;t trust myself with it enough to allow something like this to happen again. I suspect there will be some things that will be more difficult with a Windows server than with Linux. However, there will also be new features with the Windows server that I wasn&#39;t able to figure out with Linux. &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The next posts, I&#39;ll explain what sort of software choices I&#39;m going to make for the server reborn. &lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/260660953198539320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2010/04/apocalypse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/260660953198539320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/260660953198539320'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2010/04/apocalypse.html' title='Apocalypse!'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2834115064527114950</id><published>2010-01-07T12:34:00.000-08:00</published><updated>2010-01-07T12:47:19.496-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="kids"/><category scheme="http://www.blogger.com/atom/ns#" term="sideproject"/><title type='text'>Sideproject: &quot;Carputer&quot; FINALE</title><content type='html'>The iPhone as kid passification worked out great. The handlebar holder worked great on the headrest. I used a little scrap of plastic tubing to widen the headrest post so the holder would stay put. Although the kid normally likes to hold the iPhone once I started a movie he didn&#39;t compain.&lt;br /&gt;&lt;br /&gt;There were very few hickups on our San Jose to LA drive. In a way it worked too well. We started out after dinner and I was hoping that he would fall asleep at some point into Toy Story 2 but he was persistent at stayed awake all the way through and into some of Wall-E.  In principal we could do longer trips, but Pixar is going to have to put out more movies.  The only problem, and it isn&#39;t related to the techology is that in the final approach he woke up and was crying about sitting for so long.* I think in the future we&#39;ll try starting earlier and taking a dinner break about half way.&lt;br /&gt;&lt;br /&gt;All in all the iPhone &quot;carputer&quot; was a success. I can see it working on airplanes as well. The hangup there is going to be battery life. Most planes we fly don&#39;t seem to have power ports. I imagine a collection of battery packs will do the trick.&lt;br /&gt;&lt;br /&gt;*That&#39;s our interpretation. He kept saying &quot;I have a poopie&quot; when he didn&#39;t.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2834115064527114950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2010/01/sideproject-carputer-finale.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2834115064527114950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2834115064527114950'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2010/01/sideproject-carputer-finale.html' title='Sideproject: &quot;Carputer&quot; FINALE'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-2991326223760158426</id><published>2009-12-16T12:30:00.000-08:00</published><updated>2009-12-16T12:30:00.637-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="iPhone"/><category scheme="http://www.blogger.com/atom/ns#" term="sideproject"/><title type='text'>Sideproject tidbits</title><content type='html'>It&#39;s been an exceptionally busy December so I have not had too much time to fiddle with the HTPC setup. Here&#39;s  some updates on the sideprojects:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.twobodyproblem.com/2009/11/sideproject-carputer.html&quot;&gt;&quot;Carputer&quot; Sideproject Update&lt;/a&gt;: I couldn&#39;t find an sufficiently inexpensive LCD screen to make this worthwhile so I&#39;m just going to use the iPhone screen. (The model I linked to isn&#39;t in stock anywhere). For the kid, I&#39;m going to use a &lt;a href=&quot;http://www.amazon.com/gp/product/B001OK5RLC/ref=ox_ya_oh_product&quot;&gt;motorcycle handlbar iPhone mount &lt;/a&gt;to hold the iPhone to to the passenger seat headrest. I&#39;ve already re-encoded his movies and tested them out on the iPhone. Works great!&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://blog.twobodyproblem.com/2009/12/sideproject-phone-service.html&quot;&gt;Phone Service Sideproject Update&lt;/a&gt;: I haven&#39;t had a chance to use Fring yet but the native Skype iPhone app works well at home using SkypeOut. I had the first hiccup last night (unfortnately when talking to my Dad, who&#39;s picky about these things). While I was talking I seemed to lose wifi signal and the call came in and out before disconnecting. I was all of 5 feet from the router so I&#39;m not sure what the problem was. It seemed to be a problem with the iPhone since the mac was fine. Cycling the wifi seemed to fix the problem.&lt;br /&gt;&lt;br /&gt;So far we have not really made too much use of the SkypeIn number. I can see that answering a Skype call with the iPhone Skype app just isn&#39;t going to happen. I don&#39;t think Shanna answered a call via Skype on the mac yet. I&#39;ve only done it once or twice. I paid for 3 months so I&#39;ll give it until then to decide if it&#39;s worth keeping.</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/2991326223760158426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2009/12/sideproject-tidbits.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2991326223760158426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/2991326223760158426'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2009/12/sideproject-tidbits.html' title='Sideproject tidbits'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3735290701038758936.post-1660314914656251464</id><published>2009-12-10T06:41:00.000-08:00</published><updated>2009-12-10T06:44:50.171-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Frontend"/><category scheme="http://www.blogger.com/atom/ns#" term="WDTV"/><title type='text'>TV Look of the month</title><content type='html'>This is what the UI on my WDTV looks like these days. As Shanna says, every time I turn on the TV it looks different. The WDTV skin is &lt;a href=&quot;http://wdtvforum.com/main/index.php?topic=2220.0&quot;&gt;Minimalistic&lt;/a&gt; by Lilibabe.&lt;br /&gt;&lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/qIYeZpKb5d0&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1&quot;&gt;&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot;&gt;&lt;param name=&quot;allowScriptAccess&quot; value=&quot;always&quot;&gt;&lt;embed src=&quot;http://www.youtube.com/v/qIYeZpKb5d0&amp;amp;rel=0&amp;amp;color1=0xb1b1b1&amp;amp;color2=0xcfcfcf&amp;amp;hl=en_US&amp;amp;feature=player_embedded&amp;amp;fs=1&quot; type=&quot;application/x-shockwave-flash&quot; allowfullscreen=&quot;true&quot; allowscriptaccess=&quot;always&quot; height=&quot;344&quot; width=&quot;425&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.twobodyproblem.com/feeds/1660314914656251464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.twobodyproblem.com/2009/12/tv-look-of-month.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/1660314914656251464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3735290701038758936/posts/default/1660314914656251464'/><link rel='alternate' type='text/html' href='http://www.twobodyproblem.com/2009/12/tv-look-of-month.html' title='TV Look of the month'/><author><name>Aaron</name><uri>http://www.blogger.com/profile/16999881739932310401</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-0m7DttxSi1lc3xyqXllRmVe0nXVTgnJq6CkIUthfLQRxxCt4IXEDEJnXNMGvkP1L8kiDKnrgL1XkbPbeSIe1gwhHLVQZUcAz6ZkXc5J2MVUisk_o2G6tQMJKcvwS_K0/s220/astroblasters2.jpg'/></author><thr:total>0</thr:total></entry></feed>