<?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-20698550</id><updated>2026-05-18T02:36:50.504-04:00</updated><category term="hacks"/><category term="gadgets"/><category term="cloud"/><category term="apps"/><title type='text'>Gadgets Apps Hacks</title><subtitle type='html'>reviews and tips for hardware, software and webapps</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gadgetsappshacks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>56</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-20698550.post-1846394522511939765</id><published>2019-05-12T14:35:00.002-04:00</published><updated>2022-06-12T11:14:37.174-04:00</updated><title type='text'>The only number whose Scrabble score equals itself is TWELVE</title><content type='html'>When Heather and I were playing Scrabble recently, one of us played TWELVE and were amused to observe that it scored 12 (it wasn&#39;t played on any premium squares). Scoring other numbers in our heads (ONE, TWO, THREE, etc.) we couldn&#39;t find any others that worked like this, and so we wondered if it was the only such number.&lt;br /&gt;
&lt;br /&gt;
I started by &lt;a href=&quot;http://www.gadgetsappshacks.com/2019/05/javascript-function-to-convert-number.html&quot; target=&quot;_blank&quot;&gt;writing a script which generated the written form of a number (1=ONE, 2=TWO, 666=SIX HUNDRED AND SIXTY SIX)&lt;/a&gt; and then added a &lt;a href=&quot;http://www.gadgetsappshacks.com/2019/05/javascript-function-to-calculate.html&quot; target=&quot;_blank&quot;&gt;function which calculated the Scrabble score for the word(s)&lt;/a&gt;. I ignored spaces and didn&#39;t consider premium squares or the maximum size of a scrabble board. I then used these to test the first few hundred thousand numbers, and found that the only match was TWELVE.&lt;br /&gt;
&lt;br /&gt;
I also found that the highest scoring number with n digits was the number made up purely of 6s. So 6 is the highest scoring 1 digit number, 66 is the highest scoring 2 digit number, etc. There were other numbers that scored as much (e.g. 65 scores as much as 66) but nothing that scored more. It was also obvious that the score for a number n does indeed tend to infinity as n tends to infinity, but much more slowly than n. So I set about proving that 12 was indeed the only number whose Scrabble score matches itself.&lt;br /&gt;
&lt;br /&gt;
&lt;h4&gt;
Proof Outline&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;we will start by proving (with proof by contradiction) that the highest scoring number with n digits is the number made up purely of 6s (so for 3 digits it is 666, 4 digits is 6666, etc.)&lt;/li&gt;
&lt;li&gt;we will observe that for all numbers with 3 or fewer digits there is only a single match (TWELVE) which we did by exhaustively testing all of them&lt;/li&gt;
&lt;li&gt;we will then prove (with proof by contradiction again) that for all numbers with more than 3 digits, the smallest value possible for the number (1000 for 3 digits, 10000 for 4 digits, etc) is bigger than the maximum score possible for that number&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;h4&gt;
Proof Details&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;For numbers &amp;lt; 10 we find the maximum scoring number is SIX with a score of 10 (FIVE also scores 10)&lt;/li&gt;
&lt;li&gt;For numbers &amp;lt; 100 we find the maximum scoring number is SIXTY SIX with a score of 25 (FIFTY SIX also scores 25)&lt;/li&gt;
&lt;li&gt;All numbers &amp;lt; 1000 with the digits abc are written &quot;a HUNDRED AND bc&quot; so the highest scoring must be &quot;SIX HUNDRED AND SIXTY SIX&quot; with a score of 51 which is indeed what we find&lt;/li&gt;
&lt;li&gt;Let us assume there is a number with n digits where one or more digit is not a 6 but that scores more than the the number with n 6 digits&lt;/li&gt;
&lt;li&gt;We can always find a number which scores more by substituting all the non 6 digits with 6s thus contradicting the assertion that the number we started with was bigger than the one with 6s&lt;/li&gt;
&lt;li&gt;So the highest scoring number with n digits is the number 666.....6 with n 6s - which can also be written (10^n - 1)*(2/3)&lt;/li&gt;
&lt;li&gt;Let us break our number into blocks of 3 digits (units, tens and hundreds making up the first block, then thousands, ten thousands, hundred thousands etc.)&lt;/li&gt;
&lt;li&gt;Each block will either be 6, 66 or 666 which have sores of 10, 25 and 51 respectively&lt;/li&gt;
&lt;li&gt;Each block will also either have a number name (THOUSAND, MILLION, TRILLION, etc.) after it, or the word AND before it (in the case of the final block)&lt;/li&gt;
&lt;li&gt;AND scores 4 and the highest scoring number name is QUATTUORDECILLION with a score of 29, so in total each block of 3 must have score no more than 51+29=80&lt;/li&gt;
&lt;li&gt;A number with n digits will have at most ⌈n/3⌉ blocks of 3 (n/3 rounded up to the nearest integer) and thus score at most ⌈n/3⌉*80&lt;/li&gt;
&lt;li&gt;We found through testing that for numbers with 3 or fewer digits the only match is TWELVE&lt;/li&gt;
&lt;li&gt;Let us assume there is a number X with n digits (where n&amp;gt;3) where the score f(X) equals X&lt;/li&gt;
&lt;li&gt;The value of X must be greater than or equal to 10^n since that is the smallest number with n digits&lt;/li&gt;
&lt;li&gt;And the score of X must be less than or equal to ⌈n/3⌉*80 as we have shown above&lt;/li&gt;
&lt;li&gt;Since we picked X where X=f(x) X itself must be less than or equal to ⌈n/3⌉*80&lt;/li&gt;
&lt;li&gt;So since X must be greater than 10^n and less than ⌈n/3⌉*80 it follows that 10^n must be less than ⌈n/3⌉*80&lt;/li&gt;
&lt;li&gt;But in fact 10^n is greater than n*100 (for all n&amp;gt;3) and n*100 is great than ⌈n/3⌉*80 since n&amp;gt;⌈n/3⌉&amp;nbsp;and 100 is bigger than 80&amp;nbsp;&lt;/li&gt;
&lt;li&gt;This contradicts our assertion that such an X exists thus proving that there is no such number X with more than 3 digits where X equals the Scrabble score of X&lt;/li&gt;
&lt;li&gt;Since we already know that the only number with 3 or fewer digits that scores itself is 12, we have now shown that 12 is indeed the only such number&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/1846394522511939765'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/1846394522511939765'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2019/05/the-only-number-whose-scrabble-score.html' title='The only number whose Scrabble score equals itself is TWELVE'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-3761108662932154282</id><published>2019-05-12T14:12:00.000-04:00</published><updated>2019-05-12T14:12:25.339-04:00</updated><title type='text'>Javascript function to convert a number into the English written format (1=ONE, 2=TWO, etc.)</title><content type='html'>This takes any positive integer number (up to 10^66-1) and returns the English written format (in upper case) for that number. So 1 -&amp;gt; ONE, 666 -&amp;gt; SIX HUNDRED AND SIXTY SIX.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;f&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;unction inWords(num) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; var a = [&quot;&quot;,&quot;ONE&quot;,&quot;TWO&quot;,&quot;THREE&quot;,&quot;FOUR&quot;,&quot;FIVE&quot;,&quot;SIX&quot;,&quot;SEVEN&quot;,&quot;EIGHT&quot;,&quot;NINE&quot;,&quot;TEN&quot;,&quot;ELEVEN&quot;,&quot;TWELVE&quot;,&quot;THIRTEEN&quot;,&quot;FOURTEEN&quot;,&quot;FIFTEEN&quot;,&quot;SIXTEEN&quot;,&quot;SEVENTEEN&quot;,&quot;EIGHTEEN&quot;,&quot;NINETEEN &quot;];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; var b = [&quot;&quot;,&quot;&quot;,&quot;TWENTY&quot;,&quot;THIRTY&quot;,&quot;FORTY&quot;,&quot;FIFTY&quot;,&quot;SIXTY&quot;,&quot;SEVENTY&quot;,&quot;EIGHTY&quot;,&quot;NINETY&quot;];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; var c = [&quot;THOUSAND&quot;,&quot;MILLION&quot;,&quot;BILLION&quot;,&quot;TRILLION&quot;,&quot;QUADRILLION&quot;,&quot;QUINTILLION&quot;,&quot;SEXTILLION&quot;,&quot;SEPTILLION&quot;,&quot;OCTILLION&quot;,&quot;NONILLION&quot;,&quot;DECILLION&quot;,&quot;UNDECILLION&quot;,&quot;DUODECILLION&quot;,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;TREDECILLION&quot;,&quot;QUATTUORDECILLION&quot;,&quot;QUINDECILLION&quot;,&quot;SEXDECILLION&quot;,&quot;SEPTEN-DECILLION&quot;,&quot;OCTODECILLION&quot;,&quot;NOVEMDECILLION&quot;,&quot;VIGINTILLION&quot;];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; if (num==0) return &quot;&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; if (num&amp;lt;20) return a[num].trim();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; if (num&amp;lt;100) return (b[Math.floor(num/10)] + &quot; &quot; + a[num%10]).trim();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; if (num&amp;lt;1000) return (a[Math.floor(num/100)] + &quot; HUNDRED&quot; + (num%100&amp;amp;&amp;amp;num%100&amp;lt;100?&quot; AND &quot;:&quot; &quot;) + inWords(num%100)).trim();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; for (var i=0; i&amp;lt;c.length; i++) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; var name = c[i];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; var lower = Math.pow(10,3+i*3);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; var upper = lower*1000;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; var test = num%lower;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; if (num&amp;lt;upper) return (inWords(Math.floor(num/lower)) + &quot; &quot; + name + (test&amp;amp;&amp;amp;test&amp;lt;100?&quot; AND &quot;:&quot; &quot;) + inWords(test)).trim();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; throw &quot;Too large for now&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/3761108662932154282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/3761108662932154282'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2019/05/javascript-function-to-convert-number.html' title='Javascript function to convert a number into the English written format (1=ONE, 2=TWO, etc.)'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-754838727142039206</id><published>2019-05-12T14:07:00.000-04:00</published><updated>2019-05-12T14:07:12.459-04:00</updated><title type='text'>Javascript function to calculate the Scrabble score for a word</title><content type='html'>This takes any string of characters and totals up how much it would be worth in Scrabble. It ignores any spaces or other non alphabet characters. It doesn&#39;t factor in any premium letter or word squares, and it doesn&#39;t care if you provide more letters than could possibly fit on a real Scrabble board.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;function scrabbleScore(word) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; var scores = [1,3,3,2,1,4,2,4,1,8,5,1,3,1,1,3,10,1,1,1,1,4,4,8,4,10];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; var score = 0;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; word = word.toUpperCase();&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; for (var i=0; i&amp;lt;word.length; i++) {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; var n = word.charCodeAt(i) - 65;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; if (n&amp;lt;0 || n&amp;gt;25) continue;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; score += scores[n];&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; return score;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/754838727142039206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/754838727142039206'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2019/05/javascript-function-to-calculate.html' title='Javascript function to calculate the Scrabble score for a word'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-2510215250778887346</id><published>2015-11-23T14:44:00.002-05:00</published><updated>2015-11-23T14:44:48.694-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>How to count how many photos you have in Google Photos</title><content type='html'>&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/AVvXsEiDfEzsniaEAC1A9xUhrRqPT1TYGwIIx4ETU5lFjWGrtKs4U_oInIZaM6vl7_8OUcUpj3mDvwA8oUewSga02fkMRjyWQrXrBzKXi2Ev9WdG6QswXsrhO3Fb3dnDm43wdVtic-Ym/s1600/google_photos.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDfEzsniaEAC1A9xUhrRqPT1TYGwIIx4ETU5lFjWGrtKs4U_oInIZaM6vl7_8OUcUpj3mDvwA8oUewSga02fkMRjyWQrXrBzKXi2Ev9WdG6QswXsrhO3Fb3dnDm43wdVtic-Ym/s200/google_photos.png&quot; width=&quot;200&quot;&gt;&lt;/a&gt;&lt;/div&gt;
I&amp;#39;m in the process of copying all my photos from over the years to Google Photos. They currently reside in Apple Photos, which reports exactly how many photos I have. But this seems to be a feature missing from Google Photos. I&amp;#39;m using the Google Photos Backup utility to upload all the photos, and it reports a count. But to be extra confident I&amp;#39;d like to see a count of how many are actually in Google Photos now. This article is about how I was able to get a count of photos from Google Photos.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2015/11/how-to-count-how-many-photos-you-have.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/2510215250778887346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/2510215250778887346'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2015/11/how-to-count-how-many-photos-you-have.html' title='How to count how many photos you have in Google Photos'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDfEzsniaEAC1A9xUhrRqPT1TYGwIIx4ETU5lFjWGrtKs4U_oInIZaM6vl7_8OUcUpj3mDvwA8oUewSga02fkMRjyWQrXrBzKXi2Ev9WdG6QswXsrhO3Fb3dnDm43wdVtic-Ym/s72-c/google_photos.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-925061824834800100</id><published>2015-09-10T12:31:00.002-04:00</published><updated>2021-01-21T10:45:13.090-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>How to draw a travel time boundary on Google Maps</title><content type='html'>&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/AVvXsEgRq8Q9aQ1fxrQwmx0Jj4wlDexsnPfiZg88S4anoaC-tHcpyeTBh4efoi71IWbbuYTzn1umP7MKRcEvph04dWwye5yEWnsXW5LdHp9Yd0hwTNdJsFftgoICFiattk3r6kseZgcn/s1600/travel-time-circle.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRq8Q9aQ1fxrQwmx0Jj4wlDexsnPfiZg88S4anoaC-tHcpyeTBh4efoi71IWbbuYTzn1umP7MKRcEvph04dWwye5yEWnsXW5LdHp9Yd0hwTNdJsFftgoICFiattk3r6kseZgcn/s1600/travel-time-circle.png&quot;&gt;&lt;/a&gt;&lt;/div&gt;
If you have a specific destination in mind, then Google Maps is perfect for estimating how long it will take to get there, by various modes of travel. But if you just want to know how far you could travel from a given address in an hour, then it isn&amp;#39;t much help.&lt;br&gt;
&lt;br&gt;
Perhaps you&amp;#39;re visiting somewhere new and just want to see what you could walk to within an hour of your hotel. Or you want to make a day trip somewhere and want to see where you could drive in a couple of hours.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2015/09/how-to-draw-travel-time-boundary-on.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/925061824834800100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/925061824834800100'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2015/09/how-to-draw-travel-time-boundary-on.html' title='How to draw a travel time boundary on Google Maps'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRq8Q9aQ1fxrQwmx0Jj4wlDexsnPfiZg88S4anoaC-tHcpyeTBh4efoi71IWbbuYTzn1umP7MKRcEvph04dWwye5yEWnsXW5LdHp9Yd0hwTNdJsFftgoICFiattk3r6kseZgcn/s72-c/travel-time-circle.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-3518981041039139462</id><published>2014-05-14T14:23:00.002-04:00</published><updated>2014-05-14T14:23:15.105-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Handheld Vibrating Timer Prototype using Trinket</title><content type='html'>&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/AVvXsEhvfd9tGJWvQjfzjiECTkgQxFVHzGpyid8RWSzyJCc6yKvIbWbp1nL9-gKJCJ3E_OZa2I31Qo93rJ-v3Cdkpy3kIlp0ezpzaBxyUC_0rTKmGLQ813D3lffTZZBT5g4d-QS2K3Ni/s1600/Vibrating+Timer+Prototype.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvfd9tGJWvQjfzjiECTkgQxFVHzGpyid8RWSzyJCc6yKvIbWbp1nL9-gKJCJ3E_OZa2I31Qo93rJ-v3Cdkpy3kIlp0ezpzaBxyUC_0rTKmGLQ813D3lffTZZBT5g4d-QS2K3Ni/s1600/Vibrating+Timer+Prototype.JPG&quot; height=&quot;240&quot; width=&quot;320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
There are times while exercising when it would be useful to have a simple one-button hand-held 30-second timer that vibrates. At least that&amp;#39;s what my wife tells me. This seemed like a good excuse to play with Adafruit&amp;#39;s mini microcontroller called &amp;quot;Trinket&amp;quot;. These are an $8 tiny board built around the Atmel ATtiny85.&lt;div&gt;
&lt;br&gt;&lt;/div&gt;
&lt;div&gt;
The idea of the device is simple. You press the button, and it vibrates quickly to notify you that it is armed. Then after 30 seconds it vibrates again to say the time is up. I might modify it later so that two quick pushes sets a 60 second timer, but I&amp;#39;m starting simple.&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2014/05/handheld-vibrating-timer-prototype.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/3518981041039139462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/3518981041039139462'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2014/05/handheld-vibrating-timer-prototype.html' title='Handheld Vibrating Timer Prototype using Trinket'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvfd9tGJWvQjfzjiECTkgQxFVHzGpyid8RWSzyJCc6yKvIbWbp1nL9-gKJCJ3E_OZa2I31Qo93rJ-v3Cdkpy3kIlp0ezpzaBxyUC_0rTKmGLQ813D3lffTZZBT5g4d-QS2K3Ni/s72-c/Vibrating+Timer+Prototype.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-8636717530148694420</id><published>2014-03-14T20:38:00.000-04:00</published><updated>2014-03-17T08:45:19.143-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>How to make a $30 internet connected door alarm</title><content type='html'>&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/AVvXsEirW86pWtai4PP9COE8-7zhN_8Vs9LDF0kcgMREKQiHHdgCu3deRKBv-GU33BOwvzJJIUfdch5wu6UuTADBmszdA_x2V-cscZl6TewJhwlVKAr_VSF1QZDdb-waB-TsZU3uM9UJ/s1600/door.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirW86pWtai4PP9COE8-7zhN_8Vs9LDF0kcgMREKQiHHdgCu3deRKBv-GU33BOwvzJJIUfdch5wu6UuTADBmszdA_x2V-cscZl6TewJhwlVKAr_VSF1QZDdb-waB-TsZU3uM9UJ/s1600/door.jpg&quot; height=&quot;320&quot; width=&quot;213&quot;&gt;&lt;/a&gt;&lt;/div&gt;
We run a vacation rental and have always wanted a simple way of knowing when our guests have checked-in. Some owners have a security system or electronic door lock that notifies them. But these often come with a subscription fee and seemed overkill for our purposes.&lt;br&gt;
&lt;br&gt;
What I&amp;#39;ll describe in this post is how we built a simple device that sends us an email each time the front door is opened or closed. We then use gmail filters to file these emails away most of the time. When we are waiting for a check-in we adjust the filters to bring our attention to it using the &lt;a href=&quot;http://www.gadgetsappshacks.com/2014/02/yet-another-led-gmail-notifier-using.html&quot; target=&quot;_blank&quot;&gt;LED gmail notifier&lt;/a&gt; that I posted about previously.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2014/03/how-to-make-30-internet-connected-door.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/8636717530148694420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/8636717530148694420'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2014/03/how-to-make-30-internet-connected-door.html' title='How to make a $30 internet connected door alarm'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirW86pWtai4PP9COE8-7zhN_8Vs9LDF0kcgMREKQiHHdgCu3deRKBv-GU33BOwvzJJIUfdch5wu6UuTADBmszdA_x2V-cscZl6TewJhwlVKAr_VSF1QZDdb-waB-TsZU3uM9UJ/s72-c/door.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-2799432375467635955</id><published>2014-02-24T13:35:00.002-05:00</published><updated>2022-03-05T09:46:50.520-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Calculating Distance between two locations in Google Spreadsheet</title><content type='html'>&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/AVvXsEigIm8GNM7Y5jKXCg3t522mQEP3f9TIukWfyX0TqmH7BhlgWKq_Bt-eMks9AUWVOJ1hl-mOfco5th8dB4rLC0N1BhhIQPO9aUhfWb947_1FQPLNNacg3347BOOyrFI38ekLvLOk/s1600/Google-maps-icon.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigIm8GNM7Y5jKXCg3t522mQEP3f9TIukWfyX0TqmH7BhlgWKq_Bt-eMks9AUWVOJ1hl-mOfco5th8dB4rLC0N1BhhIQPO9aUhfWb947_1FQPLNNacg3347BOOyrFI38ekLvLOk/s1600/Google-maps-icon.png&quot; width=&quot;180&quot;&gt;&lt;/a&gt;&lt;/div&gt;
Google Spreadsheets provide a lot of useful functions, but unfortunately nothing that calculates the distance between two locations. However, this is easy to add as a custom function using the Maps service available in Google Apps Script.&lt;br&gt;
&lt;br&gt;
Most of the other approaches I found online seemed to involve using the external APIs provided by Google Maps or MapQuest. But both these approaches required registering for a Developer API Key. The approach I describe here seems a lot simpler.&lt;br&gt;
&lt;br&gt;
I&amp;#39;ll show how to create the following functions and how they can be used in Google Spreadsheets&lt;br&gt;
&lt;br&gt;
DrivingMeters(origin, destination) - Driving Distance in Meters&lt;br&gt;
DrivingMiles(origin, destination) - as above but in Miles&lt;br&gt;
DrivingSeconds(origin, destination) - Driving Time in Seconds&lt;br&gt;
DrivingHours(origin, destination) - as above but in Seconds&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2014/02/calculating-distance-between-two.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/2799432375467635955'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/2799432375467635955'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2014/02/calculating-distance-between-two.html' title='Calculating Distance between two locations in Google Spreadsheet'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigIm8GNM7Y5jKXCg3t522mQEP3f9TIukWfyX0TqmH7BhlgWKq_Bt-eMks9AUWVOJ1hl-mOfco5th8dB4rLC0N1BhhIQPO9aUhfWb947_1FQPLNNacg3347BOOyrFI38ekLvLOk/s72-c/Google-maps-icon.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-7023770783017643478</id><published>2014-02-16T21:36:00.000-05:00</published><updated>2014-02-16T21:36:50.341-05:00</updated><title type='text'>Yet Another LED Gmail Notifier using a Nanode</title><content type='html'>&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/AVvXsEgU_hlBdMQp-MjZpUhyALLY7K-bS4M_mX5ohVnFft8TYRr3qGytiFLvGzEqdUpsOTE_v7q-ohlsv6TuTAq-VPr5C8i1b70AIG0wAq_tckY_ujKQt6H03yjSm0eV1eEFph8N_6vK/s1600/Gmail_logo.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU_hlBdMQp-MjZpUhyALLY7K-bS4M_mX5ohVnFft8TYRr3qGytiFLvGzEqdUpsOTE_v7q-ohlsv6TuTAq-VPr5C8i1b70AIG0wAq_tckY_ujKQt6H03yjSm0eV1eEFph8N_6vK/s1600/Gmail_logo.png&quot; height=&quot;144&quot; width=&quot;320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
This year we&amp;#39;ve begun having an &amp;quot;unplugged&amp;quot; day once a week - with no-one in the house using iphones, ipads, chromebooks, tvs, kindle, etc. But we still run a vacation rental business, and need to respond promptly to inquiries. So we wanted a way to be visually notified of those inquiries (without having to check our email, and being tempted to respond to non-business emails). The other requirement was that this device be standalone, and not required to be connected to a computer.&lt;br&gt;
&lt;br&gt;
There&amp;#39;s lots of other projects like this out there. Several of them need to be plugged into a computer. Others use the Raspberry Pi. I happened to have a Nanode sitting around unused, and wanted to build it with that. This article will show you how I light an LED when we receive an important email, and turn it out once it is read.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2014/02/yet-another-led-gmail-notifier-using.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/7023770783017643478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/7023770783017643478'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2014/02/yet-another-led-gmail-notifier-using.html' title='Yet Another LED Gmail Notifier using a Nanode'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU_hlBdMQp-MjZpUhyALLY7K-bS4M_mX5ohVnFft8TYRr3qGytiFLvGzEqdUpsOTE_v7q-ohlsv6TuTAq-VPr5C8i1b70AIG0wAq_tckY_ujKQt6H03yjSm0eV1eEFph8N_6vK/s72-c/Gmail_logo.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-654677096952173519</id><published>2014-01-30T11:52:00.004-05:00</published><updated>2021-10-03T11:11:56.022-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>How to record daily portfolio values in a Google Spreadsheet</title><content type='html'>&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/AVvXsEhT8YZwti9Tmd0RL3hSON6TmkhVbCIa9aLV6H1UIkSJvkk-KkCQoUrm9fxXtY51wEIwcDuh4qJbHR1Bt86paskqFta92jDPJDqCtlTagTxFLFRS98G6SZq91UJJs1N59DwCrsig/s1600/tickers.jpg&quot; style=&quot;clear: left; float: left; margin-bottom: 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/AVvXsEhT8YZwti9Tmd0RL3hSON6TmkhVbCIa9aLV6H1UIkSJvkk-KkCQoUrm9fxXtY51wEIwcDuh4qJbHR1Bt86paskqFta92jDPJDqCtlTagTxFLFRS98G6SZq91UJJs1N59DwCrsig/s1600/tickers.jpg&quot; width=&quot;320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
In another article I described how to &lt;a href=&quot;http://www.gadgetsappshacks.com/2013/08/how-to-automatically-record-daily.html&quot;&gt;automatically record the history of a row of values in a Google Spreadsheet&lt;/a&gt;. Essentially, it describes how to create a History sheet into which a new row is added each day capturing the values of some row that is elsewhere in the spreadsheet. I mentioned in that article that one limitation of the approach is that it only works for values and formulas that don&amp;#39;t require the spreadsheet to be open. Specifically, you can&amp;#39;t use that approach to record the history of values calculated using the GoogleFinance() function. This means that it can&amp;#39;t be used to record the history of a set of portfolio values.&lt;br&gt;
&lt;br&gt;
There is a workaround to this which involves using the Google Apps Script FinanceApp service. So if you have a spreadsheet with a set of ticker symbols and quantities, and you want to build a sheet which records a portfolio value at the close of each trading day, then read on...&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2014/01/how-to-record-daily-portfolio-values-in.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/654677096952173519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/654677096952173519'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2014/01/how-to-record-daily-portfolio-values-in.html' title='How to record daily portfolio values in a Google Spreadsheet'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT8YZwti9Tmd0RL3hSON6TmkhVbCIa9aLV6H1UIkSJvkk-KkCQoUrm9fxXtY51wEIwcDuh4qJbHR1Bt86paskqFta92jDPJDqCtlTagTxFLFRS98G6SZq91UJJs1N59DwCrsig/s72-c/tickers.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-4663307821877196986</id><published>2013-09-15T12:34:00.000-04:00</published><updated>2015-07-25T10:32:16.621-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Tweet old posts from a feed using Google Apps Script</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;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDxYUYJzQPLT35K07ObwEl2UGKIuBLR870Lr6_MU2bSxal1Vcf8sNnO8daHEpVP1FTix-_b2tZgLQ_gebpliNbm_2mhP6dfCfpbJqsKCaFTAQKJ-125ABKR9wAqyhTSpEG8Nu/s1600/Screen+Shot+2013-09-15+at+12.32.26+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;181&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDxYUYJzQPLT35K07ObwEl2UGKIuBLR870Lr6_MU2bSxal1Vcf8sNnO8daHEpVP1FTix-_b2tZgLQ_gebpliNbm_2mhP6dfCfpbJqsKCaFTAQKJ-125ABKR9wAqyhTSpEG8Nu/s200/Screen+Shot+2013-09-15+at+12.32.26+PM.png&quot; width=&quot;200&quot;&gt;&lt;/a&gt;&lt;/div&gt;
This article will show you how to create a simple twitter app using Google Apps Script to randomly tweet posts from any specified feed URL. For example, it can be scheduled to automatically tweet a random article from your blog once a day. If you have a WordPress blog, then another solution is to use the &lt;a href=&quot;http://wordpress.org/plugins/tweet-old-post/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Tweet Old Post plugin&lt;/a&gt;. However, no such plugin or gadget exists for Blogger, which is what prompted me to write this article. In addition, you can use this solution to post random articles from any feed for which you have the URL.&lt;br&gt;
&lt;br clear=&quot;all&quot;&gt;
Here&amp;#39;s the steps&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;Copy the Google Spreadsheet that contains the sample code&lt;/li&gt;
&lt;li&gt;Register a new application with Twitter&lt;/li&gt;
&lt;li&gt;Update the sample code with your feed URL and twitter keys&lt;/li&gt;
&lt;li&gt;Test the application and optionally schedule it to run automatically&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;b&gt;&lt;/b&gt;&lt;br&gt;
&lt;/div&gt;&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/09/tweet-old-posts-from-feed-using-google.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/4663307821877196986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/4663307821877196986'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/09/tweet-old-posts-from-feed-using-google.html' title='Tweet old posts from a feed using Google Apps Script'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGDxYUYJzQPLT35K07ObwEl2UGKIuBLR870Lr6_MU2bSxal1Vcf8sNnO8daHEpVP1FTix-_b2tZgLQ_gebpliNbm_2mhP6dfCfpbJqsKCaFTAQKJ-125ABKR9wAqyhTSpEG8Nu/s72-c/Screen+Shot+2013-09-15+at+12.32.26+PM.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-7272924035744033890</id><published>2013-09-05T15:25:00.002-04:00</published><updated>2022-06-12T11:31:14.871-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Calling a Web Service from Blogger using JSON-P and Google Apps Script</title><content type='html'>&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/AVvXsEizUTgVpYNk7UubeBUsK8dhCtGtiHpD255xp4qsO0G1KyDRd3Idm7BbZhfnTVjm33O7TwDsgHFWvYaobo0rU8dTCJ9jMNNVk436yvGOEl-P4f86QZx70DUMeWqnOEP3sWK9fdUi/s1600/JSON-P.png&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;270&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizUTgVpYNk7UubeBUsK8dhCtGtiHpD255xp4qsO0G1KyDRd3Idm7BbZhfnTVjm33O7TwDsgHFWvYaobo0rU8dTCJ9jMNNVk436yvGOEl-P4f86QZx70DUMeWqnOEP3sWK9fdUi/s320/JSON-P.png&quot; width=&quot;320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
This article will give a simple example of how to write a web app with Google Apps Script, and then make a call to this from a page posted on your blog at Blogger. Since you can&amp;#39;t host web apps on the same domain as your Blogger blog, you would normally be restricted from doing this by the &lt;b&gt;same origin policy&lt;/b&gt; enforced by javascript. That is, javascript in a page on one domain cannot make remote calls to services running on another domain. This policy is enforced to prevent vulnerabilities called &lt;b&gt;cross-site scripting&lt;/b&gt;.&lt;br&gt;
&lt;br&gt;But if you control both the content in your Blogger page, as well as the code of the web service, then there is a way to get around this using an approach called &lt;b&gt;JSON with padding&lt;/b&gt; or &lt;b&gt;JSONP&lt;/b&gt;. In this article I&amp;#39;ll share a simple example which you can modify to solve more complex problems where you want to execute some server side function in Google Apps Script without the user leaving the page of your blog.&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/09/calling-web-service-from-blogger-using.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/7272924035744033890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/7272924035744033890'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/09/calling-web-service-from-blogger-using.html' title='Calling a Web Service from Blogger using JSON-P and Google Apps Script'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizUTgVpYNk7UubeBUsK8dhCtGtiHpD255xp4qsO0G1KyDRd3Idm7BbZhfnTVjm33O7TwDsgHFWvYaobo0rU8dTCJ9jMNNVk436yvGOEl-P4f86QZx70DUMeWqnOEP3sWK9fdUi/s72-c/JSON-P.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-6764283320810821866</id><published>2013-08-06T13:48:00.001-04:00</published><updated>2017-10-24T14:17:07.309-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>How to automatically record a daily history of values in a Google Spreadsheet</title><content type='html'>&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/AVvXsEjEuMr0TMMovKpa5MGABtZiLXurzhgqOorlVM8V38b9_hVatbibDOPlNNUMbdFVHaQsZM1T8GcIakwT-7VH1OgksqCfuBxPRRPTA0nVqTp2pkL5oCz1CNWArddSqQLIgt3erWsp/s1600/Screen+Shot+2013-08-06+at+1.37.26+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;153&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEuMr0TMMovKpa5MGABtZiLXurzhgqOorlVM8V38b9_hVatbibDOPlNNUMbdFVHaQsZM1T8GcIakwT-7VH1OgksqCfuBxPRRPTA0nVqTp2pkL5oCz1CNWArddSqQLIgt3erWsp/s200/Screen+Shot+2013-08-06+at+1.37.26+PM.png&quot; width=&quot;200&quot;&gt;&lt;/a&gt;&lt;/div&gt;
Google Spreadsheet does a great job of recording a change history for edits that you make. But what if you want to have a spreadsheet with values that change based on some formula, and you would like to keep a history of those values. For example, perhaps you keep a spreadsheet for your spending budget, or your investment portfolio. You could open the spreadsheet each day and copy the values into a new sheet, but it would be nice to automate this. Fortunately this is fairly simple using Google Apps Script.&lt;br&gt;
&lt;br&gt;
Let&amp;#39;s suppose you have a spreadsheet with various tabs and values that you want to keep. The simplest way to get started is to create a new sheet, which we will call &amp;quot;History&amp;quot;. Each row in this new sheet will represent the values that you want to save each day, with a new row for each day. So column A will be the date, and columns B onwards will be values. In this history sheet the first row will be headings for your values, and the second row will be the current values. So cell B2 will be some formula that points at other cells on other sheets, and so is C2, D2 etc. for as many values as you want to save each day. Your new history sheet might look something like this&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/08/how-to-automatically-record-daily.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6764283320810821866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6764283320810821866'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/08/how-to-automatically-record-daily.html' title='How to automatically record a daily history of values in a Google Spreadsheet'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEuMr0TMMovKpa5MGABtZiLXurzhgqOorlVM8V38b9_hVatbibDOPlNNUMbdFVHaQsZM1T8GcIakwT-7VH1OgksqCfuBxPRRPTA0nVqTp2pkL5oCz1CNWArddSqQLIgt3erWsp/s72-c/Screen+Shot+2013-08-06+at+1.37.26+PM.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-4256655118259396666</id><published>2013-04-04T14:46:00.001-04:00</published><updated>2013-07-02T21:22:27.303-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadgets"/><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Cheap Prepaid Plan for AT&amp;T IPhone from $3.33/mo</title><content type='html'>&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/AVvXsEifgHWb2mwjZnS8b9yLu5Jrtqf2N62HFpxabY8JFdBnL86FHmxQYtETyjQFks45u2rju6meH51wO4SUAtKOoTFVrHsLNOXEioKc3ZWmu9v2-0eM0BeMWsMDmt_DezcW2PVvakEg/s1600/airvoice-purple1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifgHWb2mwjZnS8b9yLu5Jrtqf2N62HFpxabY8JFdBnL86FHmxQYtETyjQFks45u2rju6meH51wO4SUAtKOoTFVrHsLNOXEioKc3ZWmu9v2-0eM0BeMWsMDmt_DezcW2PVvakEg/s1600/airvoice-purple1.png&quot;&gt;&lt;/a&gt;&lt;/div&gt;
If you have an AT&amp;amp;T - or factory unlocked - IPhone, then &lt;a href=&quot;https://www.airvoicewireless.com/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Airvoice Wireless&lt;/a&gt; offers an extremely cheap prepaid option. If you use a lot of cellular data, then this is probably not the right plan for you. But if you are almost always covered by Wifi, and only need occasional cellular data, then this could save you a lot of money.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/04/cheap-prepaid-plan-for-at-iphone-from.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/4256655118259396666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/4256655118259396666'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/04/cheap-prepaid-plan-for-at-iphone-from.html' title='Cheap Prepaid Plan for AT&amp;T IPhone from $3.33/mo'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifgHWb2mwjZnS8b9yLu5Jrtqf2N62HFpxabY8JFdBnL86FHmxQYtETyjQFks45u2rju6meH51wO4SUAtKOoTFVrHsLNOXEioKc3ZWmu9v2-0eM0BeMWsMDmt_DezcW2PVvakEg/s72-c/airvoice-purple1.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-5033191184501639178</id><published>2013-04-02T11:59:00.000-04:00</published><updated>2013-04-02T11:59:48.851-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadgets"/><title type='text'>Electronics Kit for Teaching Children</title><content type='html'>&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/AVvXsEgDchuf-VEmgb-IJySr9YRzeHwytf8AACVow3l6CvA4Mx51cv8M0ZiBnGcZIMbz2PFYAS3KqHfdqSCqnQxYnZCl1dLVJlsowuJU3kgo1V53eR5DSOzOqOxSOF25VMjrrxjYb7p1/s1600/snapcircuitjrsc100.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;285&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDchuf-VEmgb-IJySr9YRzeHwytf8AACVow3l6CvA4Mx51cv8M0ZiBnGcZIMbz2PFYAS3KqHfdqSCqnQxYnZCl1dLVJlsowuJU3kgo1V53eR5DSOzOqOxSOF25VMjrrxjYb7p1/s320/snapcircuitjrsc100.jpg&quot; width=&quot;320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
As someone that has grown up playing with electronics, and more recently microcontrollers, I&amp;#39;ve tried before to introduce my daughter to them. She&amp;#39;s always found &amp;quot;real&amp;quot; electronics intimidating, and any kits, aimed at children, boring. When I recently decided to try again, I came across this &lt;a href=&quot;http://www.amazon.com/Elenco-SC-100-Snap-Circuits-Jr/dp/B00008BFZH&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Snap Circuits Jr SC-100 kit&lt;/a&gt; - for Ages 8-108.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/04/electronics-kit-for-teaching-children.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/5033191184501639178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/5033191184501639178'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/04/electronics-kit-for-teaching-children.html' title='Electronics Kit for Teaching Children'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDchuf-VEmgb-IJySr9YRzeHwytf8AACVow3l6CvA4Mx51cv8M0ZiBnGcZIMbz2PFYAS3KqHfdqSCqnQxYnZCl1dLVJlsowuJU3kgo1V53eR5DSOzOqOxSOF25VMjrrxjYb7p1/s72-c/snapcircuitjrsc100.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-1654360603098134675</id><published>2013-04-01T15:41:00.000-04:00</published><updated>2013-04-01T20:10:35.434-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadgets"/><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Making an On Air Light for under $5</title><content type='html'>&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/AVvXsEgynygnTvCxGA4iGlXblsYLHrii_qepZ5qiMLd8F5xhr6RK-31C7ZkpOwbqNYmMPHND_Is9iD_5xOS-eBXm7b91EKQqtDsGjRh5lRRcL2i2pV3fHsAyl1fCBn3Q5gvuhT1uddOS/s1600/IMG_0012_2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; 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/AVvXsEgynygnTvCxGA4iGlXblsYLHrii_qepZ5qiMLd8F5xhr6RK-31C7ZkpOwbqNYmMPHND_Is9iD_5xOS-eBXm7b91EKQqtDsGjRh5lRRcL2i2pV3fHsAyl1fCBn3Q5gvuhT1uddOS/s320/IMG_0012_2.jpg&quot; width=&quot;240&quot;&gt;&lt;/a&gt;&lt;/div&gt;
My daughter has been recording Youtube videos now for quite a while. And on several occasions I&amp;#39;ll walk into her room and disturb her during a recording. So I wanted to get her an &amp;quot;On Air&amp;quot; light, but I didn&amp;#39;t really want to spend $50. I found this &lt;a href=&quot;http://www.youtube.com/watch?v=8-QyNVRLLKk&quot; rel=&quot;&quot; target=&quot;_blank&quot;&gt;DIY Project: On-Air Studio Light&lt;/a&gt; video on Youtube, and built one. So here&amp;#39;s the steps I followed.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/04/making-on-air-light-for-under-5.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/1654360603098134675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/1654360603098134675'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/04/making-on-air-light-for-under-5.html' title='Making an On Air Light for under $5'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgynygnTvCxGA4iGlXblsYLHrii_qepZ5qiMLd8F5xhr6RK-31C7ZkpOwbqNYmMPHND_Is9iD_5xOS-eBXm7b91EKQqtDsGjRh5lRRcL2i2pV3fHsAyl1fCBn3Q5gvuhT1uddOS/s72-c/IMG_0012_2.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-3356170177057375612</id><published>2013-03-23T10:48:00.000-04:00</published><updated>2013-04-01T20:10:35.435-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="gadgets"/><title type='text'>More Chromebooks in our Family</title><content type='html'>&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/AVvXsEhBJl3eXAosU5f8Fxu6qH9k29D0nmauv9U3_bYtOE_DtOV623_0tNLUdY33mv2TcLq5d4KecU2WRLOkuO0bsS93gBf2VfUJ8cbXShEJ-JO0cl2e-NPPt5Pc1Boj2bzt65de-zm6/s1600/samsung_chromebook.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBJl3eXAosU5f8Fxu6qH9k29D0nmauv9U3_bYtOE_DtOV623_0tNLUdY33mv2TcLq5d4KecU2WRLOkuO0bsS93gBf2VfUJ8cbXShEJ-JO0cl2e-NPPt5Pc1Boj2bzt65de-zm6/s320/samsung_chromebook.jpg&quot; width=&quot;320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
Our Chromebook journey began in Jul 2011 when I bought a Samsung Series 5 3G. When I wrote about &lt;a href=&quot;http://www.gadgetsappshacks.com/2011/09/samsung-series-5-3g-chromebook-first.html&quot; target=&quot;_blank&quot;&gt;my experiences after the first month&lt;/a&gt;, I was beginning to get frustrated. And after 3 months, I called an &lt;a href=&quot;http://www.gadgetsappshacks.com/2011/10/chromebook-aw-snap.html&quot; target=&quot;_blank&quot;&gt;Aw Snap! &lt;/a&gt;timeout.&lt;br&gt;
&lt;br&gt;
I still loved the concept in principal. Simple to maintain and simple to replace/upgrade. But I decided that for me, it still wasn&amp;#39;t ready. So I passed my Samsung Series 5 off to my wife, and bought a MacBook Air.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/03/more-chromebooks-in-our-family.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/3356170177057375612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/3356170177057375612'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/03/more-chromebooks-in-our-family.html' title='More Chromebooks in our Family'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBJl3eXAosU5f8Fxu6qH9k29D0nmauv9U3_bYtOE_DtOV623_0tNLUdY33mv2TcLq5d4KecU2WRLOkuO0bsS93gBf2VfUJ8cbXShEJ-JO0cl2e-NPPt5Pc1Boj2bzt65de-zm6/s72-c/samsung_chromebook.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-6680788004339693746</id><published>2013-03-12T11:09:00.001-04:00</published><updated>2013-03-14T19:31:52.402-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Adding a Google Custom Search Engine to your Blog</title><content type='html'>&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/AVvXsEipVfXN3tHT3RLPZxCE10XFBoO9laXtJWqm04uJXuCfzYuveFgFfoFIPz_zgWszbBWPr8-TTTSQq7uTUtVLT_RXmfd5O02JRPjtlWJD3W5LnCRDArDVK3j5AVhk9QmUEqwqgidf/s1600/789477_magnifying_glass_2.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;132&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipVfXN3tHT3RLPZxCE10XFBoO9laXtJWqm04uJXuCfzYuveFgFfoFIPz_zgWszbBWPr8-TTTSQq7uTUtVLT_RXmfd5O02JRPjtlWJD3W5LnCRDArDVK3j5AVhk9QmUEqwqgidf/s200/789477_magnifying_glass_2.jpg&quot; width=&quot;200&quot;&gt;&lt;/a&gt;&lt;/div&gt;
The default search gadget for Blogger has been broken for a couple of weeks (see &lt;a href=&quot;https://productforums.google.com/forum/#!msg/blogger/nG3SKZhg-_E/y-6_GrM8Wa0J&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;this problem roll-up&lt;/a&gt;) so I decided to look for an alternative. Google offers custom search engines that are easy to configure and integrate into a Blogger blog, or any other web site. Here are the steps.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/03/adding-google-custom-search-engine-to.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6680788004339693746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6680788004339693746'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/03/adding-google-custom-search-engine-to.html' title='Adding a Google Custom Search Engine to your Blog'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipVfXN3tHT3RLPZxCE10XFBoO9laXtJWqm04uJXuCfzYuveFgFfoFIPz_zgWszbBWPr8-TTTSQq7uTUtVLT_RXmfd5O02JRPjtlWJD3W5LnCRDArDVK3j5AVhk9QmUEqwqgidf/s72-c/789477_magnifying_glass_2.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-6462406947458399600</id><published>2013-02-20T11:22:00.000-05:00</published><updated>2013-04-04T14:53:02.582-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadgets"/><title type='text'>Switching AT&amp;T iPhone 4S to Red Pocket Mobile</title><content type='html'>&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/AVvXsEj3lJrSlZRO43GVMwb3RRXNa5IpBEWHf0IZ4P2PUAaDsSOyT_w07QxVpPR7HnuNs_64MNjkxJw_UST5XdjPTvtm6u5Kh6cTc2w6mSKWiIDaFphdP_VW33Kv_qRp7R_bAAV3Kv2K/s1600/logo-rpm.gif&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3lJrSlZRO43GVMwb3RRXNa5IpBEWHf0IZ4P2PUAaDsSOyT_w07QxVpPR7HnuNs_64MNjkxJw_UST5XdjPTvtm6u5Kh6cTc2w6mSKWiIDaFphdP_VW33Kv_qRp7R_bAAV3Kv2K/s1600/logo-rpm.gif&quot;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;Update 4/4/13 - I have given up with Red Pocket (see note at bottom for details). But I can recommend Airvoice Wireless. See this article on &lt;a href=&quot;http://www.gadgetsappshacks.com/2013/04/cheap-prepaid-plan-for-at-iphone-from.html&quot;&gt;Airvoice Wireless for a prepaid plan starting at $3.33/mo&lt;/a&gt;.&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
When my AT&amp;amp;T iPhone 4S recently came off contract, I began to look for alternative plans. I originally picked Red Pocket, because it meant I didn&amp;#39;t need to jailbreak/unlock my phone. Red Pocket are an MVNO reselling AT&amp;amp;T airtime, so their sims should work in any AT&amp;amp;T phone. I ordered a MicroSIM from their web site for $9.99. It arrived in a few days, I popped it in, went through the Activate page on their web site, and within minutes I was setup with a new phone number. I could have also transferred a number, but since I use Google Voice, I always just get a new number.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/02/switching-at-iphone-4s-to-red-pocket.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6462406947458399600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6462406947458399600'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/02/switching-at-iphone-4s-to-red-pocket.html' title='Switching AT&amp;T iPhone 4S to Red Pocket Mobile'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3lJrSlZRO43GVMwb3RRXNa5IpBEWHf0IZ4P2PUAaDsSOyT_w07QxVpPR7HnuNs_64MNjkxJw_UST5XdjPTvtm6u5Kh6cTc2w6mSKWiIDaFphdP_VW33Kv_qRp7R_bAAV3Kv2K/s72-c/logo-rpm.gif" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-520903601543879578</id><published>2013-01-19T15:48:00.001-05:00</published><updated>2015-10-15T14:36:43.388-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gadgets"/><title type='text'>TruConnect Internet on the Go Mobile Hotspot</title><content type='html'>&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/AVvXsEgB7DGGIQwDpZrE6FulTe8fJXb0PI3qyKFXAsvC1v9NXpnM8tqzob-IGPFBwyZoQhO9BvlmcFDdVCeTmVFCGHvklgTKw9x2AlZfHfdzojI2mdDAtp8vWzT2kvcH3RC4roeTRCSI/s1600/internetonthego.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB7DGGIQwDpZrE6FulTe8fJXb0PI3qyKFXAsvC1v9NXpnM8tqzob-IGPFBwyZoQhO9BvlmcFDdVCeTmVFCGHvklgTKw9x2AlZfHfdzojI2mdDAtp8vWzT2kvcH3RC4roeTRCSI/s1600/internetonthego.jpg&quot;&gt;&lt;/a&gt;&lt;/div&gt;
Having recently moved somewhere with a cable internet service that is not completely reliable (is it anywhere?), we were looking for a backup solution. A lot of mobile hotspots require a contract and monthly plan, which was going to work out expensive. So I ended up going with a device from Walmart. For $79.88 I picked up the TruConnect Internet on the Go Mobile Hotspot. In the stores there&amp;#39;s no mention of &amp;quot;TruConnect&amp;quot; on the packaging, but that&amp;#39;s the company that Walmart has partnered with.&lt;br&gt;
&lt;br&gt;
You can buy this same device from TruConnect.com directly, but the service plan is priced differently. With TruConnect you pay a small monthly fee, and then a per MB fee. It&amp;#39;s still a very compelling value when compared with other contract or pay as you go mobile hotspots. But I didn&amp;#39;t really want to pay a monthly fee - even the small one that TruConnect charges - for something I would only use occasionally.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2013/01/truconnect-internet-on-go-mobile-hotspot.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/520903601543879578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/520903601543879578'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2013/01/truconnect-internet-on-go-mobile-hotspot.html' title='TruConnect Internet on the Go Mobile Hotspot'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgB7DGGIQwDpZrE6FulTe8fJXb0PI3qyKFXAsvC1v9NXpnM8tqzob-IGPFBwyZoQhO9BvlmcFDdVCeTmVFCGHvklgTKw9x2AlZfHfdzojI2mdDAtp8vWzT2kvcH3RC4roeTRCSI/s72-c/internetonthego.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-8984834733793402001</id><published>2011-12-29T11:17:00.000-05:00</published><updated>2019-02-18T10:51:24.417-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Hacking a Summer Infant Baby Monitor</title><content type='html'>&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/AVvXsEg2XtrPGS2TQCamH_8h9w-D_6XsiYxpwq2x-ciuPhWsQkTGq3gKscCYl7f1R95TqqsE38tkz2lXfJfm5PATDeS2NApJztcYqOOky0MWHS6OA1BwOUCKTUI16omWdbag6gvOr2Ai/s1600/photo+1.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 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/AVvXsEg2XtrPGS2TQCamH_8h9w-D_6XsiYxpwq2x-ciuPhWsQkTGq3gKscCYl7f1R95TqqsE38tkz2lXfJfm5PATDeS2NApJztcYqOOky0MWHS6OA1BwOUCKTUI16omWdbag6gvOr2Ai/s320/photo+1.JPG&quot; width=&quot;320&quot;&gt;&lt;/a&gt;&lt;/div&gt;
Quick post, mostly so that if I get back to this project I&amp;#39;ll remember where I left off. Opened up an old Summer Infant Baby Monitor. The screen part had long since broken been disposed of, but I still had the camera/microphone piece.&lt;br&gt;
&lt;br&gt;
The unit in two parts, that hinge on each other. The part in this picture contains the camera, microphone, and various LEDs - presumably infrared. The other part (pictured below) contains the power socket, switch, antenna, and a circuit that presumably deals with transmitting via RF.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2011/12/hacking-summer-infant-baby-monitor.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/8984834733793402001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/8984834733793402001'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2011/12/hacking-summer-infant-baby-monitor.html' title='Hacking a Summer Infant Baby Monitor'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2XtrPGS2TQCamH_8h9w-D_6XsiYxpwq2x-ciuPhWsQkTGq3gKscCYl7f1R95TqqsE38tkz2lXfJfm5PATDeS2NApJztcYqOOky0MWHS6OA1BwOUCKTUI16omWdbag6gvOr2Ai/s72-c/photo+1.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-1616128532523219032</id><published>2011-10-31T22:37:00.000-04:00</published><updated>2011-12-29T12:04:51.776-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="gadgets"/><title type='text'>Chromebook / Aw, Snap!</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://ecx.images-amazon.com/images/I/31M7FuTD1QL._AA300_.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://ecx.images-amazon.com/images/I/31M7FuTD1QL._AA300_.jpg&quot;&gt;&lt;/a&gt;&lt;/div&gt;
I&amp;#39;ve had my Samsung Series 5 3G Chromebook now for 3 months. You can read about my experiences when it &lt;a href=&quot;http://www.gadgetsappshacks.com/2011/07/samsung-series-5-3g-chromebook.html&quot;&gt;first arrived&lt;/a&gt;, and after the &lt;a href=&quot;http://www.gadgetsappshacks.com/2011/09/samsung-series-5-3g-chromebook-first.html&quot;&gt;first month&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
I use my Chromebook several hours a day 7 days a week. At home it is my primary computer. I probably only use my Windows laptop now twice a week at home, for quick things that my Chromebook cannot do (e.g. telnet&amp;#39;ing to a server or using a website that works in IE but not chrome).&lt;br&gt;
&lt;br&gt;
I love my Chromebook, and intend to continue to use it. But after 3 months of telling everyone how much I love it, I&amp;#39;ve finally come to accept that I cannot in good conscience recommend one to anyone else.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2011/10/chromebook-aw-snap.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/1616128532523219032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/1616128532523219032'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2011/10/chromebook-aw-snap.html' title='Chromebook / Aw, Snap!'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUN_5cCF5v0Mk_udjz4TB1EeGzh3DvtZRPn1KIPrZG1w6_TGkIhB-qYn-l9_HnqYnKWAw3-LfWTEMK_GdnHtn30kjgq83eLc656pHC54GHZPVQp7LcESNPYKuW9GMmqiwnvutQ/s72-c/screenshot-20111031-214755.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-2602809221957493590</id><published>2011-09-20T23:29:00.001-04:00</published><updated>2023-05-11T13:01:18.524-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Making Google Docs Forms send useful email notifications</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;div style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzS6TP9MPo87erCGAkgBM6gRqTqCsJ4D4t43Arb6fRikaBxjoEXml_IPcDMXuTSM3-nOxQRxmILn7bU5b_0lbBOPOMWeAjQKLu0W9PwZ66957g-GlLsR6nJaF8W4NfvOGsurqz/s1600/Optimized-contact_form.png&quot;&gt;&lt;/div&gt;&lt;/div&gt;
Forms created in Google Docs can serve as Contact Forms on your web site. You can enable notifications to receive an email when the form is submitted. However, by default the email just tells you that the form was submitted without providing any of the content. Often it would be more useful if the email provided the values submitted in the form. Especially if you are receiving the email on a mobile device where Google Docs is not that easy to navigate.&lt;br&gt;
&lt;br&gt;
Making a Google Form send the content of the form is actually quite straightforward. These are the steps that we will follow&lt;br&gt;
&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;Add an onFormSubmit script that sends the form values in an email&lt;/li&gt;
&lt;li&gt;Add an On Form Submit trigger to run this function&lt;/li&gt;
&lt;li&gt;Disable the default notification email&lt;/li&gt;
&lt;li&gt;Test&lt;/li&gt;
&lt;/ol&gt;
&lt;br&gt;
The following example assumes you&amp;#39;ve created a form with just two fields. The first field for an email address, and the second field for a name.&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2011/09/making-google-docs-forms-send-useful.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/2602809221957493590'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/2602809221957493590'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2011/09/making-google-docs-forms-send-useful.html' title='Making Google Docs Forms send useful email notifications'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzS6TP9MPo87erCGAkgBM6gRqTqCsJ4D4t43Arb6fRikaBxjoEXml_IPcDMXuTSM3-nOxQRxmILn7bU5b_0lbBOPOMWeAjQKLu0W9PwZ66957g-GlLsR6nJaF8W4NfvOGsurqz/s72-c/Optimized-contact_form.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-535020017464152235</id><published>2011-09-19T20:05:00.000-04:00</published><updated>2011-09-19T20:05:50.572-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Adding a Snow Effect on Blogger</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;div style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp2RJfaxNu5u_pZkg8ZjEZ0P7gm5PpG_A4ajRZUPfDuu0OGNOY28asfJHsTppW_9WgcF2Tr9D0WwUWYI_0q4xrNvfAEW2NLbqSQTsknU-D-AMaynXTIoBwEOe7ThGNlBfnQ_t7/s1600/Optimized-Snow5.JPG&quot; /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: inherit; white-space: pre-wrap;&quot;&gt;As people start to think about booking holidays for the upcoming winter season we add a snow effect to our &lt;a href=&quot;http://blog.beechmountainbliss.com/&quot; target=&quot;_blank&quot;&gt;Beech Mountain Bliss Blog&lt;/a&gt;. Thanks to a script by Kurt Grigg this is simple. In Blogger, go to Layout and add an HTML/JavaScript gadget - I name it &quot;Snow&quot;. Paste in the following.&lt;/span&gt;&lt;br clear=&quot;all&quot; /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: monospace; font-size: 12px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small; white-space: pre-wrap;&quot;&gt;&amp;lt;script src=&quot;http://snow-effect.googlecode.com/files/snow.js&quot; type=&quot;text/javascript&quot;&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small; white-space: pre-wrap;&quot;&gt;/***********************************************&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small; white-space: pre-wrap;&quot;&gt;* Snow Effect without images-by Kurt Grigg at http://www.btinternet.com/~kurt.grigg/javascript&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small; white-space: pre-wrap;&quot;&gt;* Script featured &amp;amp; available at Dynamic Drive at http://www.dynamicdrive.com/ &amp;nbsp; &lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small; white-space: pre-wrap;&quot;&gt;* Please keep this notice intact &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small; white-space: pre-wrap;&quot;&gt;***********************************************/   &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small; white-space: pre-wrap;&quot;&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; font-family: monospace; font-size: 12px; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white; white-space: pre-wrap;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;That&#39;s it. Save the gadget and view the Blog. You should see white dots drift down from the top.&lt;/span&gt;&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/535020017464152235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/535020017464152235'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2011/09/adding-snow-effect-on-blogger.html' title='Adding a Snow Effect on Blogger'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgp2RJfaxNu5u_pZkg8ZjEZ0P7gm5PpG_A4ajRZUPfDuu0OGNOY28asfJHsTppW_9WgcF2Tr9D0WwUWYI_0q4xrNvfAEW2NLbqSQTsknU-D-AMaynXTIoBwEOe7ThGNlBfnQ_t7/s72-c/Optimized-Snow5.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-20698550.post-6109333821096937501</id><published>2011-09-18T14:07:00.002-04:00</published><updated>2017-04-04T10:21:15.944-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="hacks"/><title type='text'>Bidding Tic Tac Toe Winning Strategy?</title><content type='html'>&lt;br&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;
&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE3FRxbauXmDG-s0Rh24EWhl_T9PnMdw3ZfG_laOP41tKfk985YLoz3glcZCdU3FgcwaN0YYzkbHoXsH3NTisaqmyVIcsUuLI6urRLaCUR8fS8mEVwXfpsm107Fvt9poWMf3WR/s1600/tictactoe-gambling.JPG&quot;&gt;&lt;/div&gt;
At a recent leadership program I was introduced to a bidding version of naughts and crosses. It is a blind bidding variant of &lt;a href=&quot;http://mathgradblog.williams.edu/gambling-tic-tac-toe/&quot; target=&quot;_blank&quot;&gt;Gambling Tic Tac Toe&lt;/a&gt; created by &lt;a href=&quot;http://www.math.ku.edu/~huneke/&quot; target=&quot;_blank&quot;&gt;Craig Huneke&lt;/a&gt;. Here are the rules&lt;br&gt;
&lt;br clear=&quot;all&quot;&gt;
&lt;ol&gt;
&lt;li&gt;Both players start with $3 in coins&lt;/li&gt;
&lt;li&gt;Both players write secret bids then reveal together&lt;/li&gt;
&lt;li&gt;The winner places their winning bid on the square of their choice to mark their move&lt;/li&gt;
&lt;li&gt;The winner now has less money to bid with. Repeat steps 2-3 until one player has a line of 3.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
For example, the game might go as follows&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Player 1 bids $0.75, and Player 2 bids $1&lt;/li&gt;
&lt;li&gt;Player 2 wins, and places $1 (their bid) on the center square&lt;/li&gt;
&lt;li&gt;Player 1 bids $1, and Player 2 bids $1.25&lt;/li&gt;
&lt;li&gt;Player 2 wins so places $1.25 on one of the corner squares&lt;/li&gt;
&lt;li&gt;Now Player 1 still has $3, but Player 2 is only left with $0.75&lt;/li&gt;
&lt;li&gt;Player 1 can now bid $1 three times in a row, getting three squares in a row and winning&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
It seemed that there should be a winning strategy. Perhaps always playing a third of your remaining funds. I started filling pages of paper with games. It seemed that bidding a third of your funds, rounded to the nearest penny was a good strategy. So I decided to write a program that could play this variant of gambling tic tac toe. I would then teach it various strategies and let it play against itself ala &lt;a href=&quot;http://www.imdb.com/title/tt0086567/&quot;&gt;Wargames (1983)&lt;/a&gt; but without the total global annihilation.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br&gt;
&lt;/div&gt;&lt;a href=&quot;http://gadgetsappshacks.blogspot.com/2011/09/bidding-tic-tac-toe-winning-strategy.html#more&quot;&gt;CLICK HERE TO CONTINUE READING »&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6109333821096937501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/20698550/posts/default/6109333821096937501'/><link rel='alternate' type='text/html' href='http://gadgetsappshacks.blogspot.com/2011/09/bidding-tic-tac-toe-winning-strategy.html' title='Bidding Tic Tac Toe Winning Strategy?'/><author><name>Alex</name><uri>http://www.blogger.com/profile/06964120219393260750</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgE3FRxbauXmDG-s0Rh24EWhl_T9PnMdw3ZfG_laOP41tKfk985YLoz3glcZCdU3FgcwaN0YYzkbHoXsH3NTisaqmyVIcsUuLI6urRLaCUR8fS8mEVwXfpsm107Fvt9poWMf3WR/s72-c/tictactoe-gambling.JPG" height="72" width="72"/></entry></feed>