<?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-5323075780064678586</id><updated>2024-03-05T03:00:56.252-06:00</updated><category term="Friends"/><category term="Math"/><category term="Home"/><category term="Technology"/><category term="Adventures"/><category term="Movies"/><category term="Books"/><category term="GooglePlus"/><category term="Health"/><category term="News"/><category term="Sports"/><category term="Family"/><category term="LaTeX"/><category term="Television"/><category term="Weather"/><category term="Extensions"/><category term="Google"/><category term="Politics"/><category term="Pool"/><category term="Facebook"/><category term="Music"/><category term="Problems"/><category term="Food"/><category term="GoogleMusic"/><category term="Musings"/><category term="OSX"/><category term="TipsForGoogle"/><category term="ChromeExtensions"/><category term="ChromeOS"/><category term="Dreams"/><category term="GoogleBlogger"/><category term="Pixel"/><category term="Divsie"/><category term="Flash"/><category term="GTD"/><category term="GoogleSearch"/><category term="Irving"/><category term="WebDevelopment"/><category term="Work"/><category term="Apple"/><category term="C++"/><category term="Chicago"/><category term="GitHub"/><category term="GoogleAppEngine"/><category term="GoogleDrive"/><category term="GoogleIO"/><category term="Linux"/><category term="MacBookPro"/><category term="MathJax"/><category term="Moving"/><category term="PlusOne"/><category term="Poker"/><category term="Privacy"/><category term="Pyramid"/><category term="RTM"/><category term="Reviews"/><category term="Revision Control"/><category term="School"/><category term="Scripts"/><category term="Security"/><category term="Solaris"/><category term="Solutions"/><category term="Threads"/><category term="Twitter"/><category term="Webservers"/><title type='text'>Crescat Scientia</title><subtitle type='html'>Personal Blog of Jeff Garrett, Software Developer in Chicago.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.jgarrett.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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>260</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-7849700861934411330</id><published>2013-11-01T23:43:00.003-05:00</published><updated>2013-11-01T23:43:56.553-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><title type='text'>Nexus 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/AVvXsEi-VjuOF7drAy5mjRQQVcoqP5wOFuETUaypeSc7hXRCxDjiD1ZsKitImjGciknHcXso93hRiFxgf85yr8D_D2jJAZDOOKSbwn2WP84qzJa-kxOPYuHigUbKEtU57N85-F1VhyphenhyphenMjR1DJASo/s1600/Screen+Shot+2013-11-01+at+11.42.15+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;95&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-VjuOF7drAy5mjRQQVcoqP5wOFuETUaypeSc7hXRCxDjiD1ZsKitImjGciknHcXso93hRiFxgf85yr8D_D2jJAZDOOKSbwn2WP84qzJa-kxOPYuHigUbKEtU57N85-F1VhyphenhyphenMjR1DJASo/s400/Screen+Shot+2013-11-01+at+11.42.15+PM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I cannot wait!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7849700861934411330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7849700861934411330'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/11/nexus-5.html' title='Nexus 5'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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/AVvXsEi-VjuOF7drAy5mjRQQVcoqP5wOFuETUaypeSc7hXRCxDjiD1ZsKitImjGciknHcXso93hRiFxgf85yr8D_D2jJAZDOOKSbwn2WP84qzJa-kxOPYuHigUbKEtU57N85-F1VhyphenhyphenMjR1DJASo/s72-c/Screen+Shot+2013-11-01+at+11.42.15+PM.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-4688550107091487951</id><published>2013-11-01T22:28:00.005-05:00</published><updated>2013-11-01T22:30:23.462-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GooglePlus"/><title type='text'>Google+ Custom URL</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/AVvXsEjE60X2WwRXWI9aQDfgyKXysCD9pNKYvGaRUKevN9FNYBWGhrveHlbwGLXYAeciS14H3IeMLSVY_AuUB5l0dLw8L_ECWKeQZAlT-bUViICbVlpYJoNtGkcKHeKLWvYda82ZLXvRuRoqBJg/s1600/Screen+Shot+2013-11-01+at+10.21.52+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;121&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE60X2WwRXWI9aQDfgyKXysCD9pNKYvGaRUKevN9FNYBWGhrveHlbwGLXYAeciS14H3IeMLSVY_AuUB5l0dLw8L_ECWKeQZAlT-bUViICbVlpYJoNtGkcKHeKLWvYda82ZLXvRuRoqBJg/s400/Screen+Shot+2013-11-01+at+10.21.52+PM.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I now have a custom URL! Find me at &lt;a href=&quot;https://google.com/+jeffgarrett&quot;&gt;google.com/+jeffgarrett&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/4688550107091487951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/4688550107091487951'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/11/google-custom-url.html' title='Google+ Custom URL'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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/AVvXsEjE60X2WwRXWI9aQDfgyKXysCD9pNKYvGaRUKevN9FNYBWGhrveHlbwGLXYAeciS14H3IeMLSVY_AuUB5l0dLw8L_ECWKeQZAlT-bUViICbVlpYJoNtGkcKHeKLWvYda82ZLXvRuRoqBJg/s72-c/Screen+Shot+2013-11-01+at+10.21.52+PM.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-7111042777732808189</id><published>2013-08-12T07:53:00.001-05:00</published><updated>2013-08-12T07:53:47.929-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Privacy"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Online Security</title><content type='html'>Sometimes I wish Lifehacker did a little bit more research. &lt;a href=&quot;http://lifehacker.com/this-graphic-shows-how-to-keep-your-browsing-email-an-1084193239&quot;&gt;Here&#39;s a graphic&lt;/a&gt; ostensibly showing how to secure your online communication.&lt;br /&gt;
&lt;br /&gt;
I&#39;m no expert, but let&#39;s go through some of these recommendations.&lt;br /&gt;
&lt;br /&gt;
DuckDuckGo... no. As has been &lt;a href=&quot;http://news.netcraft.com/archives/2013/06/25/ssl-intercepted-today-decrypted-tomorrow.html&quot;&gt;revealed recently&lt;/a&gt;, they are essentially an open book to intelligence agencies. If you want security, use Google!&lt;br /&gt;
&lt;br /&gt;
FireFox... yes. Good suggestion.&lt;br /&gt;
&lt;br /&gt;
Opera... no. See &lt;a href=&quot;http://news.netcraft.com/archives/2013/06/25/ssl-intercepted-today-decrypted-tomorrow.html&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Tor... too much work and &lt;a href=&quot;http://boingboing.net/2013/08/04/anonymous-web-host-shut-down.html&quot;&gt;probably not effective&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Chrome... what is with the unsubstantiated (and as far as I know) false rumor?&lt;br /&gt;
&lt;br /&gt;
HTTPS everywhere... yes. Good suggestion.&lt;br /&gt;
&lt;br /&gt;
Secure email... &lt;a href=&quot;http://www.theverge.com/2013/8/10/4608664/lavabit-founder-closed-his-secure-email-service-to-protect-the&quot;&gt;are there any services left?&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;http://www.wired.com/threatlevel/2007/11/hushmail-to-war/&quot;&gt;were they ever really secure?&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Avoid hotspots... really???&lt;br /&gt;
&lt;br /&gt;
Encryption... may be a good idea, but probably not &lt;a href=&quot;http://en.wikipedia.org/wiki/Key_disclosure_law#United_States&quot;&gt;truly effective&lt;/a&gt;&amp;nbsp;since the government can always jail you until you tell them the key.&lt;br /&gt;
&lt;br /&gt;
And what&#39;s with the repeated mention of advertising. Who cares if ads are displayed? This is supposed to be about keeping your communication private, not about preventing advertising.&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7111042777732808189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7111042777732808189'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/08/online-security.html' title='Online Security'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-3908277410143053276</id><published>2013-06-09T23:28:00.003-05:00</published><updated>2013-06-09T23:28:47.757-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ChromeOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixel"/><title type='text'>Medicare Cost Data and the Pixel</title><content type='html'>&lt;a href=&quot;http://www.cms.gov/Research-Statistics-Data-and-Systems/Statistics-Trends-and-Reports/Medicare-Provider-Charge-Data/Outpatient.html&quot;&gt;Extensive cost data&lt;/a&gt; for medical procedures has recently been released. I thought it might be interesting to explore it, and out of curiosity try to do so on the Pixel. Unfortunately, this highlights why ChromeOS still needs some work.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The spreadsheet cannot be uploaded to a Google Sheet, because it has more than 400 thousand cells. Oops. A second option was fusion tables, but fusion tables is &lt;a href=&quot;https://code.google.com/p/fusion-tables/issues/detail?id=86&quot;&gt;unable to geocode addresses&lt;/a&gt; split into multiple columns. In fact, Google&#39;s &lt;a href=&quot;https://support.google.com/fusiontables/answer/175922?hl=en&quot;&gt;recommended solution&lt;/a&gt; is to download and modify the file on something other than a Chromebook using Excel.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I was expecting problems with programming given the lack of editors, IDEs and build tools, but not basic spreadsheet tasks!&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3908277410143053276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3908277410143053276'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/06/medicare-cost-data-and-pixel.html' title='Medicare Cost Data and the Pixel'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-1324110986347013200</id><published>2013-06-01T00:26:00.000-05:00</published><updated>2013-06-01T00:26:00.862-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ChromeOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixel"/><title type='text'>More Pixel</title><content type='html'>After more Pixel use, I have encountered two minor issues with easy solutions to share.&lt;br /&gt;
&lt;br /&gt;
Firstly, the clock was off by two hours this morning. Since it was previously correct, and the timezone was set properly, I suspected an underlying NTP problem. But I found &lt;a href=&quot;https://groups.google.com/forum/#!topic/chromebook-central/Gw5d_iZtPZc&quot;&gt;this thread&lt;/a&gt; suggesting that the timezone setting is ignored in favor of the (unset) apps domain timezone setting. After setting the domain timezone, the time was correct again.&lt;br /&gt;
&lt;br /&gt;
Secondly, hiding Gmail labels by dragging them into the &quot;More Labels&quot; section doesn&#39;t work. I found &lt;a href=&quot;https://productforums.google.com/forum/?fromgroups#!topic/gmail/uj8lgZPWva0&quot;&gt;this thread&lt;/a&gt; explaining that the cause is the new &quot;Touch-enabled&quot; inbox view, and switching back to &quot;Comfortable&quot; returns the familiar behavior.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/1324110986347013200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/1324110986347013200'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/06/more-pixel.html' title='More Pixel'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-6705288932644097840</id><published>2013-05-29T22:30:00.002-05:00</published><updated>2013-05-29T22:30:54.278-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ChromeOS"/><category scheme="http://www.blogger.com/atom/ns#" term="Pixel"/><title type='text'>Pixel Suggestions</title><content type='html'>&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVzPcEHBHl9O0UtnyzvL03YylbuDJyuA0LbwLJ2SNJWcoYIUdZeXVah-Dvl1mxYCz8YT-C4dD-QI93dyLGNthRPwZlY2FzalQEC-sk4dze7h6kfM79zzBiQ4MXIcfhivS3ItgBnKYCkU/s1600/Screenshot+2013-05-29+at+9.55.36+PM.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkVzPcEHBHl9O0UtnyzvL03YylbuDJyuA0LbwLJ2SNJWcoYIUdZeXVah-Dvl1mxYCz8YT-C4dD-QI93dyLGNthRPwZlY2FzalQEC-sk4dze7h6kfM79zzBiQ4MXIcfhivS3ItgBnKYCkU/s320/Screenshot+2013-05-29+at+9.55.36+PM.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;
So I&#39;ve been playing with my new toy, the &lt;a href=&quot;http://www.google.com/intl/en_us/chrome/devices/chromebook-pixel/&quot;&gt;Chromebook Pixel&lt;/a&gt;. Everyone knows ChromeOS as the OS which is only a browser, but it is surprisingly capable. Of course, everything which works in Chrome, works well on the Pixel. This includes many Chrome apps, a few of which &lt;a href=&quot;https://support.google.com/chromeos/bin/answer.py?hl=en&amp;amp;answer=1056325&amp;amp;p=gsg_find_apps&quot;&gt;Google suggests&lt;/a&gt;&amp;nbsp;upon the first use. (Hint to Google: Fix all those broken links!)&lt;br /&gt;
&lt;br /&gt;
As a developer though, I spend most of my time either in a browser or in a shell. And on my laptops, most of the shell time is spent in ssh. ChromeOS works reasonably well for this. There are two apps I want to highlight for users like me. There are Chrome apps for &lt;a href=&quot;https://chrome.google.com/webstore/detail/secure-shell/pnhechapfaindjhompbnflcldabbghjo?hl=en&quot;&gt;secure shell&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;https://chrome.google.com/webstore/detail/vnc-viewer/iabmpiboiopbgfabjmgeedhcmjenhbla?hl=en&quot;&gt;VNC&lt;/a&gt;. So far, I have been able to live completely inside ChromeOS without resorting to developer mode. I will blog more tips as I find them.&lt;br /&gt;
&lt;br /&gt;
I&#39;ve found myself recommending the Pixel quite a bit. The free Drive storage offer is worth more than the cost of the machine. And ChromeOS can be replaced with your favorite Linux distribution. The screen is great, with more pixels per inch than Apple&#39;s &quot;retina&quot; MacBooks, and with a better aspect ratio too! A better machine, with Drive storage, without the Apple tax, and without OS/X&#39;s many flaws (window management???)... How could you pass it up?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/6705288932644097840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/6705288932644097840'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/05/pixel-suggestions.html' title='Pixel Suggestions'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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/AVvXsEjkVzPcEHBHl9O0UtnyzvL03YylbuDJyuA0LbwLJ2SNJWcoYIUdZeXVah-Dvl1mxYCz8YT-C4dD-QI93dyLGNthRPwZlY2FzalQEC-sk4dze7h6kfM79zzBiQ4MXIcfhivS3ItgBnKYCkU/s72-c/Screenshot+2013-05-29+at+9.55.36+PM.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-8056170487977819574</id><published>2013-05-28T19:53:00.000-05:00</published><updated>2013-05-28T19:53:17.163-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="GoogleIO"/><title type='text'>Google I/O 2013: Part 1</title><content type='html'>&lt;a href=&quot;http://4.bp.blogspot.com/-fQaLgRy9ods/UZOhBrlJQrI/AAAAAAAAFSw/D3fUelL-Tzc/s1600/13+-+1&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/a&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-fQaLgRy9ods/UZOhBrlJQrI/AAAAAAAAFSw/D3fUelL-Tzc/s1600/13+-+1&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://4.bp.blogspot.com/-fQaLgRy9ods/UZOhBrlJQrI/AAAAAAAAFSw/D3fUelL-Tzc/s320/13+-+1&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;Google I/O is over, and it was awesome! I&#39;ve been too busy to summarize it, so I&#39;ll post in chunks. This is the first part. A lot of this has already been covered in the tech media, but this is my take.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Devices:&lt;/b&gt;&amp;nbsp;There was little news on the device front. The rumored new Nexus 4 LTE and Nexus 7 refresh did not materialize. But, a pure Android version of the &lt;a href=&quot;http://www.anandtech.com/show/6962/the-nexus-experience-galaxy-s-4-what-we-know&quot;&gt;Samsung Galaxy S4&lt;/a&gt; was announced. It will be sold on the Play store for $649 and is expected on June 26. And a &lt;a href=&quot;http://androidandme.com/2013/05/news/white-nexus-4-and-android-4-3-coming-june-10th/&quot;&gt;white Nexus 4&lt;/a&gt; made an appearance. It will be sold on the Play store for $299 and is expected on June 10 with Android 4.3.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Android:&lt;/b&gt;&amp;nbsp;The rumored Android 4.3 was nowhere to be seen! Although &lt;a href=&quot;http://www.anandtech.com/show/6965/the-next-version-of-android-some-of-whats-coming&quot;&gt;we can infer some of the improvements&lt;/a&gt; scheduled for 4.3, this was a deliberate omission. It was Google&#39;s way of saying they don&#39;t need a new Android version to deliver improvements and new APIs. Considering the constant talk of fragmentation and handset makers struggling to keep up with upgrades, this is an interesting shift in policy.&lt;br /&gt;
&lt;br /&gt;
Instead, the majority of platform updates were bundled into a library, Google Play Services, which is available on Android devices back to Android 2.2 and which auto-updates just like the Play Store. &lt;a href=&quot;http://android-developers.blogspot.com/2013/05/social-gaming-location-and-more-in.html&quot;&gt;The functionality in Play Services&lt;/a&gt; includes a battery-friendly location provider, geofencing, activity recognition, cross-device notification syncing, &lt;a href=&quot;http://googleplusplatform.blogspot.com/2013/05/cross-platform-single-sign-on.html&quot;&gt;Google+ cross-platform single sign-on&lt;/a&gt;, the Maps API, Cloud Messaging, and multiplayer gaming functionality.&lt;br /&gt;
&lt;br /&gt;
The gaming functionality will also be &lt;a href=&quot;http://venturebeat.com/2013/05/15/why-google-play-game-services-works-on-ios/&quot;&gt;available on iOS&lt;/a&gt;.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8056170487977819574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8056170487977819574'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/05/google-io-2013-part-1.html' title='Google I/O 2013: Part 1'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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="http://4.bp.blogspot.com/-fQaLgRy9ods/UZOhBrlJQrI/AAAAAAAAFSw/D3fUelL-Tzc/s72-c/13+-+1" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-5860862675008336638</id><published>2013-02-03T17:38:00.001-06:00</published><updated>2013-02-03T17:38:54.189-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Divsie"/><category scheme="http://www.blogger.com/atom/ns#" term="WebDevelopment"/><title type='text'>Robust buildout</title><content type='html'>If you followed the pyramid instructions from &lt;a href=&quot;http://blog.jgarrett.org/2013/01/app-engine-and-pyramid.html&quot;&gt;a previous post&lt;/a&gt;, you have a buildout.cfg file which lists package dependencies. Unfortunately, buildout by default lacks some reproducibility. &lt;a href=&quot;http://maurits.vanrees.org/weblog/archive/2008/01/easily-creating-repeatable-buildouts&quot;&gt;Follow these instructions&lt;/a&gt;&amp;nbsp;to specify the exact versions of the packages to use, which can be determined with the following command:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;overflow: hidden; white-space: nowrap;&quot;&gt;
&lt;pre style=&quot;overflow-x: scroll;&quot;&gt;&lt;code&gt;bin/buildout -Novvvvv|sed -ne &#39;s/^Picked: //p&#39;|sort -u&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/5860862675008336638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/5860862675008336638'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/02/robust-buildout.html' title='Robust buildout'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-8097462946572712845</id><published>2013-02-02T10:15:00.000-06:00</published><updated>2013-08-08T12:56:49.563-05:00</updated><title type='text'>100 Best Companies to Work For (2013)</title><content type='html'>Fortune recently released their updated &quot;100 Best Companies to Work For&quot; list. CNNMoney has &lt;a href=&quot;http://money.cnn.com/magazines/fortune/best-companies/&quot;&gt;great coverage of the list&lt;/a&gt; with the particulars of each company. The only thing missing is a map. I mapped the corporate headquarters of each company. Check it out:&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe frameborder=&quot;0&quot; height=&quot;350&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;https://maps.google.com/maps/ms?msa=0&amp;amp;msid=212137109456712196522.0004d3930285a0818c943&amp;amp;ie=UTF8&amp;amp;t=m&amp;amp;ll=36.879621,-96.855469&amp;amp;spn=48.492807,74.707031&amp;amp;z=3&amp;amp;output=embed&quot; width=&quot;425&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;small&gt;View &lt;a href=&quot;https://maps.google.com/maps/ms?msa=0&amp;amp;msid=212137109456712196522.0004d3930285a0818c943&amp;amp;ie=UTF8&amp;amp;t=m&amp;amp;ll=36.879621,-96.855469&amp;amp;spn=48.492807,74.707031&amp;amp;z=3&amp;amp;source=embed&quot; style=&quot;color: blue; text-align: left;&quot;&gt;100 Best Companies to Work For (2013)&lt;/a&gt; in a larger map&lt;/small&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8097462946572712845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8097462946572712845'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/02/100-best-companies-to-work-for-2013.html' title='100 Best Companies to Work For (2013)'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-8309519476052346699</id><published>2013-01-29T06:55:00.003-06:00</published><updated>2013-01-29T06:55:33.861-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OSX"/><title type='text'>OS/X and terminals</title><content type='html'>Being new to OS/X, my first concern is a usable terminal. Here are a few tips...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;iTerm2&lt;/b&gt;&lt;br /&gt;
Apparently, Apple&#39;s terminal app really sucked in a previous life. It&#39;s better now, but &lt;a href=&quot;http://www.iterm2.com/&quot;&gt;iTerm2&lt;/a&gt;&amp;nbsp;had a head start. One of the most useful features is &quot;mouseless copy,&quot; i.e., copy by highlighting, which will be familiar to all Linux users. Other neat features include the &amp;nbsp;exposé tabs and search capabilities.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Fonts&lt;/b&gt;&lt;br /&gt;
Monaco is good. Other popular options are &lt;a href=&quot;http://www.levien.com/type/myfonts/inconsolata.html&quot;&gt;Inconsolata&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;http://blogs.adobe.com/typblography/2012/09/source-code-pro.html&quot;&gt;Source Code Pro&lt;/a&gt;,&amp;nbsp;a monospace relative of &lt;a href=&quot;http://blogs.adobe.com/typblography/2012/08/source-sans-pro.html&quot;&gt;Source Sans Pro&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Color Schemes&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://ethanschoonover.com/solarized&quot;&gt;Solarized&lt;/a&gt;&amp;nbsp;is available for iTerm2 and vim. Here are &lt;a href=&quot;http://code.google.com/p/iterm2/wiki/ColorGallery&quot;&gt;other options&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Mind Blowing&lt;/b&gt;&lt;br /&gt;
The potentially awesome feature of iTerm2 is &lt;a href=&quot;https://code.google.com/p/iterm2/wiki/TmuxIntegration&quot;&gt;tmux integration&lt;/a&gt;! You can attach to tmux sessions, and have their windows treated as normal tabs. It is a killer feature. A special patched version tmux is required, and it has plenty of drawbacks, but it&#39;s new. I&#39;ve used screen over tmux in the past, but this could be worth the change.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8309519476052346699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8309519476052346699'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/01/osx-and-terminals.html' title='OS/X and terminals'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-7353978857477931186</id><published>2013-01-27T14:33:00.001-06:00</published><updated>2013-02-11T10:53:28.320-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Divsie"/><category scheme="http://www.blogger.com/atom/ns#" term="GoogleAppEngine"/><category scheme="http://www.blogger.com/atom/ns#" term="OSX"/><category scheme="http://www.blogger.com/atom/ns#" term="Pyramid"/><category scheme="http://www.blogger.com/atom/ns#" term="WebDevelopment"/><title type='text'>App Engine and Pyramid</title><content type='html'>There are so many interesting libraries and frameworks which help bootstrap and start building modern web apps. I decided to explore some of the choices for a personal project. I want this project to run on Google&#39;s App Engine, using python on the server. Everything else is negotiable.&lt;br /&gt;
&lt;br /&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;b&gt;Setting up OS/X&lt;/b&gt;&lt;br /&gt;
Because I&#39;m new to OS/X, I didn&#39;t know the ins and outs of developing on it. This is a digression from the topic of this post, but here are a few tips which would have helped me. Firstly, you must&amp;nbsp;&lt;a href=&quot;http://blog.cingusoft.org/mac-osx-lion-virtualenv-and-could-not-call-in&quot;&gt;install the command-line development tools&lt;/a&gt;&amp;nbsp;because oddly, they aren&#39;t installed (even &lt;i&gt;after&lt;/i&gt; installing Xcode). Secondly, save yourself some trouble and avoid Apple&#39;s pre-installed python. Use the&amp;nbsp;&lt;a href=&quot;http://mxcl.github.com/homebrew/&quot;&gt;Homebrew version of python&lt;/a&gt;&amp;nbsp;instead.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;b&gt;Choosing a framework&lt;/b&gt;&lt;br /&gt;
There is no shortage of python-based web frameworks, including many which work on App Engine. Wikipedia has a &lt;a href=&quot;http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Python_2&quot;&gt;comparison&lt;/a&gt;. Two very popular choices are Django and Pyramid. I&#39;ve used Django before in a toy project, and its biggest selling point is its ORM. The Pylons (predecessor to Pyramid) creator thoughtfully described the differences in a &lt;a href=&quot;http://stackoverflow.com/questions/48681/pros-cons-of-django-vs-pylons&quot;&gt;StackOverflow answer&lt;/a&gt;. Here are a few talks worth watching discussing the options:&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/EKS-Y2lT2BQ&quot; width=&quot;547&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;http://www.youtube.com/embed/DBV0MsRu72M&quot; width=&quot;547&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
I chose Pyramid. It is flexible, popular, lightweight, and works on App Engine.&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;
&lt;b&gt;Getting started&lt;/b&gt;&lt;br /&gt;
Follow &lt;a href=&quot;http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/deployment/gae_buildout.html&quot;&gt;these instructions&lt;/a&gt;&amp;nbsp;to create a Pyramid-based App Engine project.&amp;nbsp;Remember to use the Homebrew version of python!&lt;br /&gt;
&lt;br /&gt;
Next, you&#39;ll want some boilerplate...&amp;nbsp;&lt;a href=&quot;https://github.com/h5bp/html5-boilerplate&quot;&gt;HTML5 boilerplate&lt;/a&gt;. Alternatively, check out&amp;nbsp;&lt;a href=&quot;http://www.initializr.com/&quot;&gt;Initializr&lt;/a&gt;, which has responsive and bootstrap-included versions of HTML5 boilerplate. This boilerplate also pulls in jQuery and a few other useful Javascript libraries.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Note:&lt;/i&gt;&amp;nbsp;Check out&amp;nbsp;&lt;a href=&quot;https://github.com/coto/gae-boilerplate&quot;&gt;GAE boilerplate&lt;/a&gt;. It uses webapp2 instead of Pyramid, so it&#39;s not directly applicable if you must have Pyramid. But it has basic user authentication and management which could give you a head start. The user authentication doesn&#39;t suit my purposes. I want to require user accounts to be tied to an &lt;a href=&quot;https://github.com/coto/gae-boilerplate/issues/226&quot;&gt;external identity provider&lt;/a&gt;&amp;nbsp;(no local passwords). And I want to handle multiple external accounts easily. For example, I would like to display &lt;a href=&quot;https://account-chooser.appspot.com/&quot;&gt;the account chooser&lt;/a&gt; when logging in via Google. GAE boilerplate uses the App Engine users service which doesn&#39;t display the account chooser. Even worse, logging out logs the user out of more than just the app. &lt;a href=&quot;https://code.google.com/p/googleappengine/issues/detail?id=5602&quot;&gt;It logs the user out of all Google services&lt;/a&gt; (Gmail and so on)! A better solution seems to be to avoid the App Engine users API completely, and instead use &lt;a href=&quot;https://developers.google.com/identity-toolkit/v2/acguide&quot;&gt;GITkit&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Stay tuned for more...&lt;/i&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7353978857477931186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7353978857477931186'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2013/01/app-engine-and-pyramid.html' title='App Engine and Pyramid'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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://img.youtube.com/vi/EKS-Y2lT2BQ/default.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-1558086918409451296</id><published>2012-12-22T01:53:00.000-06:00</published><updated>2012-12-22T01:53:13.017-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C++"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Solaris"/><category scheme="http://www.blogger.com/atom/ns#" term="Threads"/><title type='text'>Threads and Exceptions</title><content type='html'>I learned something recently. One should be careful with &lt;code&gt;catch(...)&lt;/code&gt;. And one should be very careful with &lt;code&gt;pthread_cancel&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
The catch-all has a limited uses of course, since you usually know the types of exception to expect. However, there is the rare occasion for its use. What I learned is that you must always re-throw the caught exception. If you don&#39;t, &lt;code&gt;pthread_cancel&lt;/code&gt; and &lt;code&gt;pthread_exit&lt;/code&gt; may break.&lt;br /&gt;
&lt;br /&gt;
The reason is that on Linux, those functions work by throwing a special exception. This exception is special and does not derive from &lt;code&gt;std::exception&lt;/code&gt;. You must re-throw it. It is possible to catch this exception alone and re-throw. In order to do that, see&amp;nbsp;&lt;a href=&quot;http://udrepper.livejournal.com/21541.html&quot;&gt;this post&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://skaark.wordpress.com/2010/08/26/pthread_cancel-considered-harmful/&quot;&gt;The same logic&lt;/a&gt; also implies that when using &lt;code&gt;pthread_cancel&lt;/code&gt;, you should not use functions which serve as cancellation points in destructors. In other words, it is best not to use &lt;code&gt;pthread_cancel&lt;/code&gt;.&lt;br /&gt;
&lt;br /&gt;
In summary:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;When using &lt;code&gt;catch(...)&lt;/code&gt;, always re-throw.&lt;/li&gt;
&lt;li&gt;Do not use &lt;code&gt;pthread_cancel&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Note: the same does not appear to be true on Solaris.&lt;br /&gt;
&lt;br /&gt;
References:&amp;nbsp;&lt;a href=&quot;http://udrepper.livejournal.com/21541.html&quot;&gt;Ulrich Drepper&#39;s blog&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;http://skaark.wordpress.com/2010/08/26/pthread_cancel-considered-harmful/&quot;&gt;Kenneth&#39;s blog&lt;/a&gt;.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/1558086918409451296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/1558086918409451296'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/12/threads-and-exceptions.html' title='Threads and Exceptions'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-8321772000577146579</id><published>2012-12-03T10:39:00.001-06:00</published><updated>2012-12-03T10:39:51.154-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="OSX"/><category scheme="http://www.blogger.com/atom/ns#" term="Scripts"/><title type='text'>runonce</title><content type='html'>I sometimes need a process running in the background. Long ago, I wrote a very simple script which runs a command if not already running. Now, it&#39;s updated for OS/X.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/jeffgarrett/scripts/blob/master/runonce&quot;&gt;https://github.com/jeffgarrett/scripts/blob/master/runonce&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8321772000577146579'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8321772000577146579'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/12/runonce.html' title='runonce'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-8160475937790688746</id><published>2012-12-02T19:17:00.000-06:00</published><updated>2012-12-02T19:45:12.421-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="GoogleBlogger"/><category scheme="http://www.blogger.com/atom/ns#" term="LaTeX"/><category scheme="http://www.blogger.com/atom/ns#" term="MathJax"/><title type='text'>MathJax for Blogger</title><content type='html'>For basic MathJax support in Blogger, all you have to do is edit the HTML of your template and put the following before&amp;nbsp;&lt;small&gt;&lt;code&gt;&amp;lt;/head&amp;gt;&lt;/code&gt;&lt;/small&gt;:&lt;br /&gt;
&lt;pre&gt;&lt;small&gt;&amp;lt;script type=&#39;text/x-mathjax-config&#39;&amp;gt;
MathJax.Hub.Config({tex2jax: {inlineMath: [[&#39;$&#39;,&#39;$&#39;], [&#39;\\(&#39;,&#39;\\)&#39;]],
                     displayMath: [[&#39;\\[&#39;,&#39;\\]&#39;], [&#39;$$&#39;,&#39;$$&#39;]]}});
&amp;lt;/script&amp;gt;
&amp;lt;script src=&#39;http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML&#39; type=&#39;text/javascript&#39;&amp;gt;
&amp;lt;/script&amp;gt;
&lt;/small&gt;&lt;/pre&gt;
This is all you have to do if you aren&#39;t using Blogger&#39;s dynamic views. The principal issue with this method is that RSS readers do not render the LaTeX. This was the justification for &lt;a href=&quot;https://github.com/jeffgarrett/browser-extensions&quot;&gt;the LaTeX for Blogger user script&lt;/a&gt;. But MathJax looks &lt;i&gt;so&lt;/i&gt; much better on a retina screen!&lt;br /&gt;
&lt;br /&gt;
It is possible to have the best of both worlds, and maybe one day I&#39;ll blog how...&lt;br /&gt;
$$\int_0^1 x^2 dx = \frac{1}{3}$$
Source: &lt;a href=&quot;http://checkmyworking.com/2012/01/how-to-get-beautifully-typeset-maths-on-your-blog/#blogger&quot;&gt;checkmyworking.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Edit:&lt;/b&gt;&amp;nbsp;Set your mobile template to &quot;Custom&quot; to pick up the MathJax on mobile.&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8160475937790688746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8160475937790688746'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/12/mathjax-for-blogger.html' title='MathJax for Blogger'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-3598496504863878735</id><published>2012-11-30T07:58:00.001-06:00</published><updated>2012-12-02T18:53:26.399-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="MacBookPro"/><category scheme="http://www.blogger.com/atom/ns#" term="OSX"/><title type='text'>New MacBook Suggestions</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;
So I have a new MacBook. It&#39;s my first and only Apple product. Any suggestions?&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
I&#39;m looking for a good terminal app and a good tiling window manager (a la i3).&amp;nbsp;Also, is there a way to maximize windows without making them full-screen?&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3598496504863878735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3598496504863878735'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/11/new-macbook-suggestions.html' title='New MacBook Suggestions'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-1226852819734088488</id><published>2012-11-21T07:01:00.001-06:00</published><updated>2012-11-21T07:03:07.910-06:00</updated><title type='text'>Battery Life Answer?</title><content type='html'>I may have found an answer to &lt;a href=&quot;http://blog.jgarrett.org/2012/11/android-42-battery-life.html&quot;&gt;my question&lt;/a&gt;. My battery life is back over 24 hours. Investigation suggested that it was syncing-related. I tried the following two things (after other failed attempts) based on the weak evidence I had:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Set my phone to &lt;b&gt;always&lt;/b&gt;&amp;nbsp;keep wi-fi on during sleep (under Wi-Fi, under Advanced in the menu). I have weak cellular coverage in my house, so falling back to cellular isn&#39;t necessarily better for battery.&lt;/li&gt;
&lt;li&gt;Disable &lt;b&gt;Currents&lt;/b&gt; from syncing. It is a heavy abuser, and I don&#39;t use it.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Problem solved.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
By the way, two apps I have used for keeping an eye on battery are &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.asksven.betterbatterystats&quot;&gt;BetterBatteryStats&lt;/a&gt;&amp;nbsp;(good for investigation) and &lt;a href=&quot;https://play.google.com/store/apps/details?id=net.hubalek.android.apps.reborn.pro&quot;&gt;Battery Widget? Reborn! Pro&lt;/a&gt;&amp;nbsp;(general purpose, good for keeping an eye on drain).&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/1226852819734088488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/1226852819734088488'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/11/battery-life-answer.html' title='Battery Life Answer?'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-4205977391042734259</id><published>2012-11-15T20:40:00.001-06:00</published><updated>2012-11-21T07:02:37.570-06:00</updated><title type='text'>Android 4.2 Battery Life? </title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;
My Galaxy Nexus&#39; battery life has gone from about 25 hours on 4.1 to 8 hours on 4.2. The same is not true of my Nexus 7.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
I haven&#39;t figured out what it could be. Any ideas?&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
Update:&amp;nbsp;&lt;a href=&quot;http://blog.jgarrett.org/2012/11/battery-life-answer.html&quot;&gt;Battery Life Answer?&lt;/a&gt;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/4205977391042734259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/4205977391042734259'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/11/android-42-battery-life.html' title='Android 4.2 Battery Life? '/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-3239127585281521992</id><published>2012-11-14T17:00:00.002-06:00</published><updated>2012-11-18T07:40:05.740-06:00</updated><title type='text'>Android Update Trick</title><content type='html'>Android 4.2 is rolling out to Galaxy Nexus and Nexus 7 devices. If you&#39;re impatient, there&#39;s a trick which worked for me:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Go to Settings&lt;/li&gt;
&lt;li&gt;Disable Wifi&lt;/li&gt;
&lt;li&gt;Go to Apps, then to All&lt;/li&gt;
&lt;li&gt;Find Google Services Framework&lt;/li&gt;
&lt;li&gt;Force Stop&lt;/li&gt;
&lt;li&gt;Clear Data&lt;/li&gt;
&lt;li&gt;Go back to Settings&lt;/li&gt;
&lt;li&gt;Enable Wifi&lt;/li&gt;
&lt;li&gt;Go to About phone/tablet&lt;/li&gt;
&lt;li&gt;Go to System updates&lt;/li&gt;
&lt;li&gt;Check now&lt;/li&gt;
&lt;/ul&gt;
Your mileage may vary.&lt;br /&gt;
&lt;br /&gt;
Source:&amp;nbsp;&lt;a href=&quot;http://www.gottabemobile.com/2012/11/13/nexus-7-android-4-2-jelly-bean-update-rolling-out-slowly/&quot;&gt;Gotta Be Mobile&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3239127585281521992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3239127585281521992'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/11/android-update-trick.html' title='Android Update Trick'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-6742258751754804533</id><published>2012-10-29T12:44:00.002-05:00</published><updated>2012-10-29T12:47:55.071-05:00</updated><title type='text'>Nexus Announcements</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/AVvXsEhq0220DyhMP4l8y-zW4EpzD0jgZHFDaDTov7EhSD-dKHdj4t5rERRSYf9z8T3Gve5i_DWQMUOE90aa4Swq3DhTOOeBWHvW879l41iiFf4NkRVrzbeE9uLju8tMcDZ6WMz5ASuEqg3tUEo/s1600/Nexus_v16_web_flat.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq0220DyhMP4l8y-zW4EpzD0jgZHFDaDTov7EhSD-dKHdj4t5rERRSYf9z8T3Gve5i_DWQMUOE90aa4Swq3DhTOOeBWHvW879l41iiFf4NkRVrzbeE9uLju8tMcDZ6WMz5ASuEqg3tUEo/s200/Nexus_v16_web_flat.png&quot; width=&quot;185&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Google canceled the Android event today due to the hurricane, but the expected products were still announced. Take a gander.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Nexus 4&lt;/h3&gt;
&lt;div&gt;
A new phone, the Nexus 7 was announced. The specs are below, with comparison to the previous Nexus and the recently announced iPhone 5. Most interestingly, it will support wireless charging.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;th&gt;Nexus 4&lt;/th&gt;&lt;th&gt;Galaxy Nexus (GSM)&lt;/th&gt;&lt;th&gt;iPhone 5&lt;/th&gt;&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Processor&lt;/td&gt;&lt;td&gt;Quad-core 1.5GHz&lt;/td&gt;&lt;td&gt;Dual-core 1.2GHz&lt;/td&gt;&lt;td&gt;Dual-core 1.3GHz&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Display&lt;/td&gt;&lt;td&gt;4.7&quot; 320ppi&lt;/td&gt;&lt;td&gt;4.65&quot; 316ppi&lt;/td&gt;&lt;td&gt;4&quot; 326ppi&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Camera&lt;/td&gt;&lt;td&gt;8MP&lt;/td&gt;&lt;td&gt;5MP&lt;/td&gt;&lt;td&gt;8MP&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Wireless charging&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;NFC&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;Yes&lt;/td&gt;&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Operating system&lt;/td&gt;&lt;td&gt;Android 4.2&lt;/td&gt;&lt;td&gt;Android 4.1&lt;/td&gt;&lt;td&gt;iOS 6&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Battery&lt;/td&gt;&lt;td&gt;2100mAh&lt;br /&gt;
15.3hr talk&lt;br /&gt;
390hr standby&lt;/td&gt;&lt;td&gt;1750 mAh&lt;/td&gt;&lt;td&gt;1440mAh&lt;br /&gt;
8hr talk&lt;br /&gt;
225hr standby&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Price&lt;/td&gt;&lt;td&gt;$300 (8G), $350 (16G)&lt;br /&gt;
Subsidized: $200 and up&lt;/td&gt;&lt;td&gt;$350 (discontinued)&lt;/td&gt;&lt;td&gt;$649 (16G), $749 (32G), $849 (64G)&lt;br /&gt;
Subsidized: $200 and up&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;br /&gt;
&lt;h3&gt;
Nexus 7&lt;/h3&gt;
The pricing of the Nexus 7 has been reduced. Formerly, the 8G version was $200 and the 16G version was $250. Now, the 8G version is discontinued, the 16G version is $200 and the 32G version is $250. Also, a version with 32G and HSPA+ data will be released on November 13 for $300.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Nexus 10&lt;/h3&gt;
&lt;div&gt;
A new Nexus 10-inch tablet with an extremely high resolution amazing display was announced. The Nexus 10 is 300ppi. For comparison, the iPad 3 and 4 are 264ppi. The Nexus 10 will be available for $400 (16G) and $500 (32G) on November 13.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Android 4.2&lt;/h3&gt;
&lt;div&gt;
An incremental version update to Android, still called Jelly Bean, accompanies the devices. As expected, it will support multiple users (on tablets). This could be an important feature for shared tablets.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Google Now&lt;/h3&gt;
&lt;div&gt;
Android 4.2 comes with an update to Google Now which adds flight information, restaurant and hotel reservations, and shipping details.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Photo Sphere&lt;/h3&gt;
&lt;div&gt;
Android has had panoramic photos for some time, but now that Apple has it, I guess it&#39;s time for something new. This new feature produces StreetView-inspired 360-degree immersive experiences, shareable on Google+ and Google Maps. This is potentially interesting.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Gesture Typing&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
Android 4.2 also includes Gesture Typing, which sounds like direct competition with Swype, and now SwiftKey Flow.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
Google Music&lt;/h3&gt;
&lt;div&gt;
The announcement included unexpected updates to the Google Music service. First, they will have a matching service. Apple was first with iTunes Match, and then Amazon with their Cloud match (both $25/year), and now Google comes along with their matching service (free). The benefit is that music files can be matched against the content library and users can access music they legally own without having to upload it all. For people with large mp3 libraries, this is a much quicker way to get started with online music. The matching service will come to Europe first on November 13. Google also announced a partnership with Warner Music Group, the major label holding out from listing on Google Music.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
Source:&amp;nbsp;&lt;a href=&quot;http://googleblog.blogspot.com/2012/10/nexus-best-of-google-now-in-three-sizes.html&quot;&gt;Google&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/6742258751754804533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/6742258751754804533'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/10/nexus-announcements.html' title='Nexus Announcements'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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/AVvXsEhq0220DyhMP4l8y-zW4EpzD0jgZHFDaDTov7EhSD-dKHdj4t5rERRSYf9z8T3Gve5i_DWQMUOE90aa4Swq3DhTOOeBWHvW879l41iiFf4NkRVrzbeE9uLju8tMcDZ6WMz5ASuEqg3tUEo/s72-c/Nexus_v16_web_flat.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-3671608744525494403</id><published>2012-10-06T12:04:00.001-05:00</published><updated>2012-10-06T12:04:27.225-05:00</updated><title type='text'>Funny!</title><content type='html'>Bing is aggressively advertising their Bing It On challenge, the &quot;Side-By-Side Search Off.&quot; So what do you get if you search for &quot;side by side search off&quot;?&amp;nbsp;Here&#39;s&amp;nbsp;&lt;a href=&quot;https://www.google.com/#q=side+by+side+search+off&quot; target=&quot;_blank&quot;&gt;Google.&lt;/a&gt;&amp;nbsp;Here&#39;s&amp;nbsp;&lt;a href=&quot;http://www.bing.com/search?q=side+by+side+search+off&quot; target=&quot;_blank&quot;&gt;Bing.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div&gt;
Google has Bing&#39;s challenge page as the first link. Bing doesn&#39;t even have it on the first page! Challenge lost.&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3671608744525494403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3671608744525494403'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/10/funny.html' title='Funny!'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-9087136348459510100</id><published>2012-09-05T19:21:00.000-05:00</published><updated>2012-09-05T19:21:32.161-05:00</updated><title type='text'>Everything is Relative</title><content type='html'>A Hulu commercial for IE9 shows a number of flattering quotes, including &quot;IE9 is amazingly fast,&quot; from no less than the New York Times.&amp;nbsp;That doesn&#39;t seem right.&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A search suggests this quote came from a September 2010 blog article, &lt;a href=&quot;http://gadgetwise.blogs.nytimes.com/2010/09/15/microsofts-new-browser-is-pretty-cool-no-seriously/&quot;&gt;&quot;Microsoft&#39;s New Browser Is Pretty Cool. No, Seriously.&quot;&lt;/a&gt;&amp;nbsp;The context of the quote is awesome (emphasis added):&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
First and foremost, IE9 is amazingly fast. Past versions of Internet Explorer always seemed bloated and slow, especially compared to Google‘s Chrome. But I’ve been using both for a week, and Microsoft’s browser &lt;b&gt;keeps up&lt;/b&gt; with Chrome on my PC. (Full disclosure: Microsoft lent me an &lt;b&gt;up-to-date laptop&lt;/b&gt; that shows off IE9 better than the bargain-priced netbook I usually work on.)&amp;nbsp;&lt;/blockquote&gt;
&amp;nbsp;And this is what they chose for the commercial!</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/9087136348459510100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/9087136348459510100'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/09/everything-is-relative.html' title='Everything is Relative'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-8947051244161837714</id><published>2012-06-14T23:00:00.000-05:00</published><updated>2012-06-14T23:00:05.028-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="GoogleSearch"/><category scheme="http://www.blogger.com/atom/ns#" term="TipsForGoogle"/><title type='text'>Tips for Google: Southwest in Flight Search</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/AVvXsEhBbAVGDD9yStkxTWFhVpqB9v3imcXccXxV5YqtiUIKeZ-w123bl7SJ81t9a9dbPVGWsKQNGoX68tBBmG-AVDDBP1mzEP7TknVJYzPHrQQiqLLlmZLml88uGpfZeaAIWglNi-cazfz93N0/s1600/southwest.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;83&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBbAVGDD9yStkxTWFhVpqB9v3imcXccXxV5YqtiUIKeZ-w123bl7SJ81t9a9dbPVGWsKQNGoX68tBBmG-AVDDBP1mzEP7TknVJYzPHrQQiqLLlmZLml88uGpfZeaAIWglNi-cazfz93N0/s400/southwest.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Google&#39;s flight search could be useful. But, sadly, they don&#39;t have my prices for Southwest Airlines. Something must be done!&lt;br /&gt;
&lt;br /&gt;
I can speculate a few reasons SWA excludes itself from other agencies or sites, and chooses to sell exclusively on their own website:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;It may cost money to be in those systems, either explicitly through fees or implicitly through added overhead due to commissions.&lt;/li&gt;
&lt;li&gt;Southwest might lose its reputation as a low-cost carrier if its fares were shown side-by-side with other carriers.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Regarding the first point, Google doesn&#39;t need the fee revenue, and including SWA in the search results will drive more traffic to SWA&#39;s own website. There is precedent. SWA lists fares both on Travelport and Expedia&#39;s Egencia. Comparison-shopping is ok for corporate travel, but not regular consumers?&lt;/div&gt;
&lt;br /&gt;
Regarding the second point, in my personal experience, Southwest&#39;s fares are definitely more expensive than competitors&#39;, to the tune of about 25%. But SWA is more customer-friendly. It is much better not being hit with fees for every little thing. Flying American? Want to check a bag? Fee. Want to switch flights? Fee. Want to cancel your reservation? Fee. Want to redeem a rewards ticket without enough notice? Fee.&lt;br /&gt;
&lt;br /&gt;
You pay more for Southwest&#39;s flexibility. Is it worth it? Probably.&lt;br /&gt;
&lt;br /&gt;
Maybe it doesn&#39;t make sense to allow &quot;ordinary&quot; people to comparison shop if they lose their reputation for being cheap. If big G really wanted to list SWA prices I can imagine, say, only listing their prices on pages where you also show the competitors&#39; fares with one checked bag included while also listing the base fare. That seems fair, pun intended.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8947051244161837714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/8947051244161837714'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/06/tips-for-google-southwest-in-flight.html' title='Tips for Google: Southwest in Flight Search'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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/AVvXsEhBbAVGDD9yStkxTWFhVpqB9v3imcXccXxV5YqtiUIKeZ-w123bl7SJ81t9a9dbPVGWsKQNGoX68tBBmG-AVDDBP1mzEP7TknVJYzPHrQQiqLLlmZLml88uGpfZeaAIWglNi-cazfz93N0/s72-c/southwest.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-7456768080577166271</id><published>2012-06-13T23:00:00.000-05:00</published><updated>2012-06-13T23:00:07.613-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="GoogleBlogger"/><category scheme="http://www.blogger.com/atom/ns#" term="TipsForGoogle"/><title type='text'>Tips for Google: Blogger Configurable Ad Formats</title><content type='html'>Blogger rolled out&amp;nbsp;&lt;a href=&quot;http://buzz.blogger.com/2011/09/dynamic-views-seven-new-ways-to-share.html&quot;&gt;dynamic views&lt;/a&gt;&amp;nbsp;some time ago. They provide a really nice, modern interface.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But, as far as I can tell, dynamic views ignore ad format settings, being able to choose the type and size of the ads. I absolutely hate flash ads, and if I can&#39;t prevent them, I&#39;ll just remove ads altogether.&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7456768080577166271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/7456768080577166271'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/06/tips-for-google-blogger-configurable-ad.html' title='Tips for Google: Blogger Configurable Ad Formats'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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-5323075780064678586.post-3447947918588419715</id><published>2012-06-12T23:00:00.000-05:00</published><updated>2012-06-12T23:00:11.089-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="GoogleBlogger"/><category scheme="http://www.blogger.com/atom/ns#" term="TipsForGoogle"/><title type='text'>Tips for Google: Blogger Scheduled Sharing</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/AVvXsEj1HD71VdZ_gW4CvJrA_gry0b08P5jzzSRd6fqg2NQBRb5IduyAP3bsOKGprC-BahS__roXsrjO9QT3TTVlm0Nlu5-5TBuoI2DEANqOsVAF9oxgdiQTnebY9Wn4UdE6bEuDOvtAMF82JFA/s1600/share.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; float: right; margin-bottom: 1em; margin-left: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1HD71VdZ_gW4CvJrA_gry0b08P5jzzSRd6fqg2NQBRb5IduyAP3bsOKGprC-BahS__roXsrjO9QT3TTVlm0Nlu5-5TBuoI2DEANqOsVAF9oxgdiQTnebY9Wn4UdE6bEuDOvtAMF82JFA/s1600/share.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Blogger supports sharing to Google+ from the list of posts. Blogger also supports this wonderful feature of scheduling posts. But you can&#39;t share a post until it is public.&lt;br /&gt;
&lt;br /&gt;
Wouldn&#39;t it be nice if you could share scheduled posts, meaning that when they become public, they will also be automatically shared to Google+?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3447947918588419715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/3447947918588419715'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/06/tips-for-google-blogger-scheduled.html' title='Tips for Google: Blogger Scheduled Sharing'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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/AVvXsEj1HD71VdZ_gW4CvJrA_gry0b08P5jzzSRd6fqg2NQBRb5IduyAP3bsOKGprC-BahS__roXsrjO9QT3TTVlm0Nlu5-5TBuoI2DEANqOsVAF9oxgdiQTnebY9Wn4UdE6bEuDOvtAMF82JFA/s72-c/share.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5323075780064678586.post-2888462946701749432</id><published>2012-06-11T23:00:00.000-05:00</published><updated>2012-06-11T23:00:12.101-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="GoogleDrive"/><category scheme="http://www.blogger.com/atom/ns#" term="TipsForGoogle"/><title type='text'>Tips for Google: Drive Archive Support</title><content type='html'>To start posting more regularly, I&#39;ll start a series on small pet peeves with Google products.&lt;br /&gt;
&lt;br /&gt;
Let&#39;s start with Google Drive. Google Drive can support archive file formats but only zip and rar &lt;a href=&quot;http://support.google.com/drive/bin/answer.py?hl=en&amp;amp;answer=2423485&quot;&gt;according to the support page&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
It should therefore be easy to add support for more archive formats, but notably missing are tar-based formats. Why not include uncompressed tar, and tar compressed with gzip, bzip2, and xz?&lt;br /&gt;
&lt;br /&gt;
Finally, I end with two questions whose answers are not obvious: does Drive&#39;s search functionality extend to documents included in an archive? And, can archives within archives be viewed as easily?</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/2888462946701749432'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5323075780064678586/posts/default/2888462946701749432'/><link rel='alternate' type='text/html' href='http://blog.jgarrett.org/2012/06/tips-for-google-drive-archive-support.html' title='Tips for Google: Drive Archive Support'/><author><name>Jeff Garrett</name><uri>http://www.blogger.com/profile/09936824681215941139</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></feed>