<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Cantoni.org</title>
<link>http://www.cantoni.org/</link>
<atom:link rel="self" type="application/rss+xml" href="http://www.cantoni.org/rss.xml" />
<description>Brian Cantoni writes about software development, interesting mobile websites, and occasionally sports.</description>
<language>en-us</language>
<copyright>Copyright 2012 Brian Cantoni</copyright>
<creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license>
<lastBuildDate>Fri, 06 Apr 2012 08:45:47 -0800</lastBuildDate>
<pubDate>Mon, 07 May 2012 16:28:21 -0800</pubDate><generator>http://www.movabletype.org/?v=4.35-en</generator>
<docs>http://blogs.law.harvard.edu/tech/rss</docs> 
<item>
<title>Masters Golf Mobile Website</title>
<link>http://www.cantoni.org/2012/04/06/masters-golf-mobile-website</link>
<author>Brian Cantoni</author>
<description>If you want to keep up with the 2012 Masters golf tournament from your mobile phone, look no further than http://masters.com. They&apos;ve done a nice job of mobile detection, giving a focused view of the leaderboard and other key content... (104 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/04/06/masters-golf-mobile-website</guid>
<content:encoded><![CDATA[<p>If you want to keep up with the 2012 Masters golf tournament from your mobile phone, look no further than <a href="http://masters.com" title="2012 Masters Golf Tournament">masters.com</a>. They&#8217;ve done a nice job of mobile detection, giving a focused view of the leaderboard and other key content:</p>

<div class="mt-image-center">
<img alt="Masters Mobile Website" src="http://cdn.scooterlabs.com/images/masters-mobile.png" width="368" height="716" />
<div class="image-caption">
Masters Mobile Website on iPhone</div>
</div>

<p>By comparison if you visit the <a href="http://masters.com" title="2012 Masters Golf Tournament">Masters</a> site from a desktop browser, you get a &#8220;full&#8221; desktop experience, including a video that runs as soon as you visit the site.</p>

<p>On the mobile site I noticed the highlight videos worked correctly on my Android phone, but not on the iPhone for some reason.</p>


]]></content:encoded>
<category>Mobile</category>
<pubDate>Fri, 06 Apr 2012 08:45:47 -0800</pubDate>
</item><item>
<title>Yahoo! Open Hack Day Videos</title>
<link>http://www.cantoni.org/2012/04/04/yahoo_open_hack_day_videos</link>
<author>Brian Cantoni</author>
<description>Reminiscing about the good old days at Yahoo, I&apos;m enjoying watching again the &quot;Hackumentary&quot; movie that Ricky Montalvo made for the 2008 Open Hack day at Yahoo. Read on for links to all 4 videos. (154 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/04/04/yahoo_open_hack_day_videos</guid>
<content:encoded><![CDATA[<p>Reminiscing about the good old days at Yahoo, I&#8217;m enjoying watching again the &#8220;Hackumentary&#8221; movie that Ricky Montalvo made for the 2008 Open Hack day at Yahoo:</p>

<blockquote>
  <p>What if the world&#8217;s largest online media corporation opened its doors to &#8220;hackers&#8221; allowed them access to some of its most important features to see what they could create?</p>
  
  <p>That&#8217;s what happened in September 2008, when over 300 developers descended on Yahoo!&#8217;s campus for an event that is every coder&#8217;s dream.</p>
  
  <p>This first Yahoo! short film documentary will present the intense, fun and real-life Hack culture as illustrated by the Open Hack Day attendees. The short will show the lives of the participating hackers as they hack and compete in the ultimate in developer/coder showdown, discovering not only their obsessive &#8220;hack&#8221; habits and personalities, but also share what the developer community is all about. </p>
</blockquote>

<p><br>
<strong>Part 1</strong></p>

<iframe src="http://player.vimeo.com/video/5598914?byline=0&amp;portrait=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

<p><br>
<strong>Part 2</strong></p>

<iframe src="http://player.vimeo.com/video/5612817?byline=0&amp;portrait=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

<p><br>
<strong>Part 3</strong></p>

<iframe src="http://player.vimeo.com/video/5615073?byline=0&amp;portrait=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>

<p><br>
<strong>Part 4</strong></p>

<iframe src="http://player.vimeo.com/video/5632851?byline=0&amp;portrait=0" width="500" height="281" frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>


]]></content:encoded>
<category>Fun</category>
<pubDate>Wed, 04 Apr 2012 20:05:13 -0800</pubDate>
</item><item>
<title>Mobile Wi-Fi Testing with Mac OS X</title>
<link>http://www.cantoni.org/2012/03/26/mobile-wifi-testing-mac</link>
<author>Brian Cantoni</author>
<description>Continuing my work with mobile website testing, here are the steps to create a local Wi-Fi network from a Mac laptop. This allows mobile phones and tablets to connect through the laptop for either a proxy configuration (like Charles), or passive monitoring (like tcpdump or Wireshark). Read on to learn how to set this up quickly... (307 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/03/26/mobile-wifi-testing-mac</guid>
<content:encoded><![CDATA[<p>Continuing my work with mobile website testing, here are the steps to create a local Wi-Fi network from a Mac laptop. Just like we showed <a href="http://www.cantoni.org/2012/03/23/mobile-wifi-testing-windows-7" title="Mobile Wi-Fi Testing with Windows 7">Windows 7 Wi-Fi sharing</a>, this allows mobile phones and tablets to connect through the laptop for either a proxy configuration (like Charles), or passive monitoring (like tcpdump or Wireshark).</p>

<p>The test setup I&#8217;m using has the laptop connected through a wired network cable, and using the laptop&#8217;s Wi-Fi as a local access point or hotspot:</p>

<div class="mt-image-center">
<img alt="Mac Wireless Test Setup" src="http://cdn.scooterlabs.com/images/mac-wireless-testing.png" width="482" height="238" />
<div class="image-caption">
Mac Wireless Test Setup</div>
</div>

<p>Not surprisingly, doing this on a Mac is easier than Windows 7. Here are the steps to create a shared Wi-Fi connection:</p>

<ol>
<li>Connect the laptop to a wired Ethernet connection. Go to System Preferences &#8658; Network &#8658; AirPort; make sure AirPort is on, and disconnect from any wireless networks. Confirm that the internet connection is working in this wired configuration.</li>
<li>Go to the Sharing settings (click Show All &#8658; Sharing.</li>
<li>Click to highlight Internet Sharing on the left (but don&#8217;t click the check box yet).</li>
<li>Ensure &#8220;Share your connection from&#8221; is set to Ethernet, and &#8220;to computers using&#8221; is set to AirPort.</li>
<li>Click AirPort options, give it a network name, enable encryption and enter a password (I usually use WEP here but you could pick one of the more robust options)</li>
<li>Click the check mark for Internet Sharing, and choose Start at the confirmation dialog.</li>
<li>Your AirPort symbol in the Apple menu bar should now have a gray background with a white arrow pointing up.</li>
<li>Now you should be able to connect to your local network using a mobile phone or tablet, using the network name you used above.</li>
</ol>

<p>When you are done testing, make sure to turn off the shared Wi-Fi network by unchecking Internet Sharing.</p>


]]></content:encoded>
<category>Mobile</category>
<pubDate>Mon, 26 Mar 2012 17:57:41 -0800</pubDate>
</item><item>
<title>Mobile Wi-Fi Testing with Windows 7</title>
<link>http://www.cantoni.org/2012/03/23/mobile-wifi-testing-windows-7</link>
<author>Brian Cantoni</author>
<description>In some recent mobile website testing (e.g., using Fiddler to capture Android web traffic), I&apos;ve found it helpful to create a local Wi-Fi network on my Windows 7 laptop. This allows connecting mobile phones and tablets and ensuring the network traffic flows through the laptop, allowing a proxy configuration (like Fiddler), or passive monitoring (like tcpdump or Wireshark). Read on to learn how to create this local Wi-Fi test setup. (527 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/03/23/mobile-wifi-testing-windows-7</guid>
<content:encoded><![CDATA[<p>In some recent mobile website testing (e.g., <a href="http://www.cantoni.org/2011/06/28/debug-http-android-fiddler" title="Debug HTTP Traffic From Android Tablets Using Fiddler">using Fiddler to capture Android web traffic</a>), I&#8217;ve found it helpful to create a local Wi-Fi network on my Windows 7 laptop. This allows connecting mobile phones and tablets and ensuring the network traffic flows through the laptop, allowing a proxy configuration (like Fiddler), or passive monitoring (like tcpdump or Wireshark).</p>

<p>The test setup I&#8217;m using has the laptop connected through a wired network cable, and using the laptop&#8217;s Wi-Fi as a local access point or hotspot:</p>

<div class="mt-image-center">
<img alt="Windows Wireless Test Setup" src="http://cdn.scooterlabs.com/images/windows-wireless-testing.png" width="482" height="238" />
<div class="image-caption">
Windows Wireless Test Setup</div>
</div>

<p>Here are the steps to create a shared Wi-Fi connection:</p>

<p>First, connect the laptop to a wired ethernet connection. If the Wi-Fi adapter is connected to a network, disconnect it. Confirm that the internet connection is working in this wired configuration.</p>

<p>Next, open a command prompt in administrator mode (e.g. right click on a Cmd shortcut and choose &#8220;Run as Administrator&#8230;&#8221;).</p>

<p>Use these commands to create a local &#8220;virtual Wi-Fi&#8221; network, replacing MyNet and MyPassword with values of your choice:</p>

<pre><code class="no-highlight">netsh wlan set hostednetwork mode=allow ssid=MyNet key=MyPassword
netsh wlan start hostednetwork
</code></pre>

<p>Finally, share your wired internet connection with the virtual Wi-Fi adapter we just created. Now click Control Panel &#8658; Network and Internet &#8658; Network and Sharing Center &#8658; Change Adapter Settings. Right-click your wired internet connection and select Properties. On the Sharing tab, check &#8220;Allow other network users to connect&#8230;&#8221; and choose your Virtual Wi-Fi Adaptor. (For an example see this <a href="http://www.cantoni.org/images/network-settings.png">screenshot</a> from my PC; the wired connection is &#8220;LAN&#8221;, and the virtual Wi-Fi is &#8220;Wireless Network Connection 2&#8221;.)</p>

<p>Now you should be able to connect to your local network using a mobile phone or tablet, using the network name you used above (e.g., MyNet).</p>

<p>Once everything is running and a mobile device is connected, you can show the current network status:</p>

<pre><code class="no-highlight">C:\>netsh wlan show hostednetwork

Hosted network settings
-----------------------
    Mode                   : Allowed
    SSID name              : "Variable"
    Max number of clients  : 100
    Authentication         : WPA2-Personal
    Cipher                 : CCMP

Hosted network status
---------------------
    Status                 : Started
    BSSID                  : ac:81:12:2e:1a:da
    Radio type             : 802.11n
    Channel                : 11
    Number of clients      : 1
        bc:47:60:fb:1a:75        Authenticated
</code></pre>

<p>When you are done testing, make sure to turn off the shared Wi-Fi network:</p>

<pre><code class="no-highlight">netsh wlan stop hostednetwork
</code></pre>

<p>For more information, see these write-ups which helped me figure out the details of this technique:</p>

<ul>
<li><a href="http://www.techradar.com/news/computing/pc/how-to-turn-your-windows-7-laptop-into-a-wireless-hotspot-657138" title="How to turn your Windows 7 laptop into a wireless hotspot - Techradar.com">Techradar - How to turn your Windows 7 laptop into a wireless hotspot</a></li>
<li><a href="http://www.bestvpnservice.com/blog/how-to-share-vpn-connection-over-wifi" title="How to Share VPN Connection Over WiFi | Converting your Laptop/Devices into WiFi VPN Router - BestVPNService.com">BestVPNService - How to share VPN connection over Wi-Fi</a></li>
</ul>

<p>Instead of the manual steps I list above, here are a couple of software solutions that can manage these settings for you. On my HP laptop, I could not get either to work correctly, but these may be worth trying:</p>

<ul>
<li><a href="http://virtualrouter.codeplex.com/" title="Virtual Router - Wifi Hot Spot for Windows 7 / 2008 R2">Virtual Router</a> - open source</li>
<li><a href="http://connectify.me/">Connectify Me</a> - commercial program with a free &#8220;light&#8221; version</li>
</ul>


]]></content:encoded>
<category>Mobile</category>
<pubDate>Fri, 23 Mar 2012 14:19:48 -0800</pubDate>
</item><item>
<title>Adding DuckDuckGo Search Box to Movable Type</title>
<link>http://www.cantoni.org/2012/03/21/duckduckgo-search-box-movable-type</link>
<author>Brian Cantoni</author>
<description>DuckDuckGo is a search engine startup whose claim to fame is a strict privacy policy, focusing on delivering high quality results without tracking their users. Like most search engines, DuckDuckGo also has a search box capability that can be used for site-specific search. Read on to learn how to implement this with Movable Type. (237 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/03/21/duckduckgo-search-box-movable-type</guid>
<content:encoded><![CDATA[<p><a href="http://duckduckgo.com" title="DuckDuckGo">DuckDuckGo</a> is a search engine startup whose claim to fame is their strict <a href="http://duckduckgo.com/privacy.html" title="DuckDuckGo Privacy Policy">privacy policy</a>:</p>

<blockquote>
  <p>DuckDuckGo does not collect or share personal information. That is our privacy policy in a nutshell. The rest of this page tries to explain why you should care. </p>
</blockquote>

<p>Like most other search engines, DuckDuckGo offers a search box code snippet that can be used for site-specific search. Adding this to a Movable Type blog is very straightforward:</p>

<ol>
<li>Create your own <a href="http://duckduckgo.com/search_box.html" title="DuckDuckGo Search Box">search box</a> on the DuckDuckGo site (make sure to add your domain in the Site Search field); copy and save the iframe code snippet</li>
<li>Login to your Movable Type installation and navigate to the Widgets page</li>
<li>Create a new widget named &#8220;SearchDuckDuckGo&#8221; and set the content as shown below</li>
<li>Add the SearchDuckDuckGo widget to the appropriate widget set</li>
<li>Rebuild your blog to see the results</li>
</ol>

<p>The Movable Type widget code will look like the following, with the &lt;iframe> portion copied from the DuckDuckGo site:</p>

<pre><code class="xml">&lt;div class="widget-search widget">
  &lt;h3 class="widget-header">Search</h3>
  &lt;div class="widget-content">
    &lt;iframe src="http://duckduckgo.com/...">&lt;/iframe>
  &lt;/div>
&lt;/div>
</code></pre>

<p>If you have a little more room, you can get fancier and include the DuckDuckGo logo, or use the banner version which has a quick summary of the service:
<br></p>

<div class="mt-image-center">
<img alt="DuckDuckGo Search Box Examples" src="http://cdn.scooterlabs.com/images/duckduckgo.png" width="346" height="277" />
<div class="image-caption">
DuckDuckGo Search Box Examples</div>
</div>

<p>Note: These steps were confirmed on Movable Type 4.x and should be similar on 5.x.</p>


]]></content:encoded>
<category>Web</category>
<pubDate>Wed, 21 Mar 2012 12:28:33 -0800</pubDate>
</item><item>
<title>How to Remove Yourself from www.Spoke.com and Center.Spoke.com</title>
<link>http://www.cantoni.org/2012/02/23/remove-yourself-from-spoke</link>
<author>Brian Cantoni</author>
<description>This is an update to my 2010 article about removing yourself from Spoke. Since that time, the original Spoke service split into two variants: www.Spoke.com and Center.Spoke.com. The directions for removing yourself have changed slightly, and here are the details... (541 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/02/23/remove-yourself-from-spoke</guid>
<content:encoded><![CDATA[<p>This is an update to my <a href="http://www.cantoni.org/2010/04/15/remove-yourself-spoke" title="How to Remove Yourself from Spoke.com">2010 article about removing yourself from Spoke</a>. Since that time, the original Spoke service split into two variants: www.Spoke.com and Center.Spoke.com.</p>

<p>To remove your profile from both services, their FAQ provides the steps needed:</p>

<p><a href="http://center.spoke.com/resources/faq/#faq-id2242572"><strong>I found my Profile in search engines like Google and I don&#8217;t want it there. How do I remove it?</strong></a></p>

<blockquote>
  <p>Both members and non-members of Center.Spoke have the choice to remove their profile from being viewed in search engines, although the process for each is different. Members can remove their information using functionality for managing their profile. Simply edit your privacy settings to &#8216;Private&#8217; and the profile will be removed from any Search Engine results.</p>
  
  <p>If you would prefer to remove your profile from search engines, but are not a member, access your profile by searching for your name on Center.Spoke.com and choosing the profile you would like to remove. When viewing the profile, click the &#8220;This is me&#8221; button. On the next page, locate the &#8216;To suppress your profile, click here&#8217; link on the right side of the next page and follow the instructions.</p>
  
  <p>Please note, you will need access to a corporate email address to remove a profile, but that access to the email address associated with the profile you would like to remove is not mandatory. Center.Spoke requires a corporate email address to remove profiles so that identities can be verified and fraudulent claims can be avoided. If you do not have a corporate email address, please log a support ticket for further assistance. </p>
</blockquote>

<p><a href="http://center.spoke.com/resources/faq/#faq-rmprof"><strong>How do I remove my profile from the new service, WWW.Spoke.com?</strong></a></p>

<blockquote>
  <p>Removing member information from www.spoke.com is easy. We ask that you do so sparingly, as the collective value to the business information ecosystem is made greater by every relevant piece of data that we are able to provide it with. However, that being said, we are sensitive to the fact that not every business professional wants to have a presence on the internet and for these cases, we&#8217;ve put in place a process that you can use to request suppression.</p>
  
  <p>First start from a page on www.spoke.com (note that if you are reading this, you are on center.spoke.com, not www.spoke.com). Simply go to your profile page, click the link at the bottom that will initiate this removal process, and submit the completed form. After we have approved your request, it is important to note that it can take from a few days to several weeks for links to a profile to be fully removed from search engines&#8217; rankings. Unfortunately this part of the process is not under our control and is dependent upon the indexing activities of the search engines.</p>
</blockquote>

<p>After following these steps, your Spoke.com page will probably appear up in search results for a little while, but should eventually clear stop. In any case, anyone clicking on my profile will just see the message &#8220;This profile is no longer available&#8221;.</p>

<p>I recommend <strong>not installing</strong> their toolbar or providing any further information on the site. You should be able to give just enough to &#8220;claim&#8221; your profile, then disable the public view of it.</p>


]]></content:encoded>
<category>Web</category>
<pubDate>Thu, 23 Feb 2012 14:12:28 -0800</pubDate>
</item><item>
<title>Galaxy Tab 10.1 HTTP Proxy Settings</title>
<link>http://www.cantoni.org/2012/02/20/galaxy-tab-http-proxy-settings</link>
<author>Brian Cantoni</author>
<description>In a previous note about monitoring HTTP traffic from Android tablets, I recommended using a 3rd-party app to change the settings. Now the latest software update for my Galaxy Tab 10.1 allows this directly, so these are some updated instructions and screenshots. (284 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/02/20/galaxy-tab-http-proxy-settings</guid>
<content:encoded><![CDATA[<p>In a previous note about <a href="http://www.cantoni.org/2011/06/28/debug-http-android-fiddler" title="Debug HTTP Traffic From Android Tablets Using Fiddler">debugging HTTP traffic from Android tablets using Fiddler</a>, I had recommended using the Android app <a href="https://market.android.com/details?id=org.credil.proxysettings" title="HTTP Proxy Settings app on Android Market">HTTP Proxy Settings</a> because my version of Android didn&#8217;t have direct support for setting the HTTP proxy manually. Now with my latest Android 3.1 updates, my Galaxy Tab 10.1 <strong>does</strong> support this directly, but it&#8217;s not quite obvious how to change it.</p>

<p>Here are the steps to manually set your own HTTP proxy for the Galaxy Tab:</p>

<p>First, tap on the Settings &rarr; Wireless &amp; Network &rarr; Wi-Fi settings. Under the list of Wi-Fi networks, tap and hold on your currently connected network:</p>

<div class="mt-image-center">
<img alt="Tap and hold on your Wi-Fi connection" src="http://www.cantoni.org/images/tab-wifi.png" width="354" height="354" />
<div class="image-caption">
Find the Wi-Fi network you&#8217;re connected to, and tap & hold</div>
</div>

<p>When the choice pops up, select Modify Network:</p>

<div class="mt-image-center">
<img alt="Tap on Modify Network" src="http://www.cantoni.org/images/tab-wifi-hold.png" width="358" height="128" />
<div class="image-caption">
Tap on Modify Network</div>
</div>

<p>Next, in the network settings dialog, scroll down to find the Proxy Settings entry. (You may want to drop the onscreen keyboard to make it easier to find.) Change the Proxy Settings choice to Manual, then enter the proxy hostname or IP address, and the port number:</p>

<div class="mt-image-center">
<img alt="Manual Proxy Settings" src="http://www.cantoni.org/images/tab-proxy.png" width="470" height="476" />
<div class="image-caption">
Change Proxy Settings to Manual, then enter hostname (or IP address) and port number</div>
</div>

<p>With these changes in place, all HTTP traffic from the Android browser should now connect through the proxy you specified. In my case I&#8217;m using Fiddler on a Windows PC, so I&#8217;m using the IP address of that PC, and the default Fiddler port of 8888.</p>

<p>Remember to change the Proxy Settings value back to None when you are done testing.</p>

<p>Also note that these changes <strong>only affect the Android browser</strong>, and don&#8217;t work for other Android applications.</p>


]]></content:encoded>
<category>Mobile</category>
<pubDate>Mon, 20 Feb 2012 21:10:11 -0800</pubDate>
</item><item>
<title>JIRA OnDemand: Great Solution For Vendors and Partners</title>
<link>http://www.cantoni.org/2012/01/26/jira-ondemand</link>
<author>Brian Cantoni</author>
<description>Keeping track of technical issues, bugs and tasks between companies can be a real hassle. In my current job we switched from emailing Excel spreadsheets to hosted JIRA (OnDemand) which costs only $10/month for up to 10 users. (193 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/01/26/jira-ondemand</guid>
<content:encoded><![CDATA[<p>Keeping track of technical issues, bugs and tasks between companies can be a real hassle. In my <a href="http://citrixonline.com/">current job</a>, we&#8217;ve been using Excel spreadsheets with a couple of partners, emailing them back and forth with changes and updates. These quickly get out of sync, causing us to lose track of important issues. Also, this is only helpful for a very short summary of each issue &#8212; forget trying to have a more detailed conversation or screenshot attachments.</p>

<p>For one project we decided to try <a href="http://www.atlassian.com/software/jira/pricing/?tab=ondemand" title="Atlassian JIRA">JIRA OnDemand</a> and couldn&#8217;t be happier with the results. For only $10/month for the first 10 users, we&#8217;ve got a shared online tracking system that both companies can access. We divided the 10 users up across the two companies, and were up and running in about 10 minutes.</p>

<p>It helps that JIRA is pretty simple to learn and use, especially for anyone who&#8217;s used any type of bug tracking system. We&#8217;ve got email notifications, attachment support, and the ability to converse in detail on each issue as we resolve them.</p>

<p>Highly recommended!</p>

<div class="mt-image-center">
<a href="http://www.cantoni.org/assets_c/2012/01/jira-ondemand-80.html" onclick="window.open('http://www.cantoni.org/assets_c/2012/01/jira-ondemand-80.html','popup','width=1030,height=671,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://www.cantoni.org/assets_c/2012/01/jira-ondemand-thumb-200x130-80.png" width="200" height="130" alt="JIRA OnDemand pricing starts at an easy $10 per month for 10 users!"  /></a><div class="image-caption">JIRA OnDemand pricing starts at an easy $10 per month for 10 users</div></div>


]]></content:encoded>
<category>Tools</category>
<pubDate>Thu, 26 Jan 2012 13:28:01 -0800</pubDate>
</item><item>
<title>Stack Overflow: Kind of Addicting</title>
<link>http://www.cantoni.org/2012/01/23/stack-overflow</link>
<author>Brian Cantoni</author>
<description>Over this past Christmas break I spent some more time on Stack Overflow, answering some questions in a few areas I felt I could contribute. As I answered and contributed more, I saw how the reputation and badges system can really draw you in. Not as a motivator per se, but it&apos;s fun to get &quot;kudos&quot; when someone finds your answers or edits helpful. (185 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/01/23/stack-overflow</guid>
<content:encoded><![CDATA[<p>Over this past Christmas break I spent some more time on <a href="http://stackoverflow.com/">Stack Overflow</a>, answering some questions in a few areas I felt I could contribute. As I answered and contributed more, I saw how the reputation and badges system can really draw you in. Not as a motivator per se, but it&#8217;s fun to get &#8220;kudos&#8221; when someone finds your answers or edits helpful.</p>

<p>Some conclusions so far:</p>

<ul>
<li>Some questions get answered <em>very quickly</em> - if you watch the most recent questions you&#8217;ll see a small number of page views, but a bunch of answers already. Must be a lot of people watching the newest questions and trying to contribute.</li>
<li>Answering older questions is worthwhile if the originator has a decent accept rate. Corollary: it&#8217;s not worth bothering with really old questions asked by <em>User1234</em> with only 1 reputation point.</li>
<li>Editing tag (wiki) descriptions is a good way to contribute for lesser-known tags.</li>
<li>Upvoting good quality questions and answers is a good way to keep up the overall quality level of the site</li>
</ul>

<p><br></p>

<div class="mt-image-center">
<a href="http://stackoverflow.com/users/9965/brianc">
<img src="http://stackoverflow.com/users/flair/9965.png" width="208" height="58" alt="profile for BrianC at Stack Overflow, Q&amp;A for professional and enthusiast programmers" title="profile for BrianC at Stack Overflow, Q&amp;A for professional and enthusiast programmers">
</a>
<div class="image-caption">Check out my sweet Stack Overflow flair badge!</div>
</div>


]]></content:encoded>
<category>Web</category>
<pubDate>Mon, 23 Jan 2012 19:08:26 -0800</pubDate>
</item><item>
<title>Curl Cheat Sheet</title>
<link>http://www.cantoni.org/2012/01/10/curl-cheat-sheet</link>
<author>Brian Cantoni</author>
<description>Curl is a very handy tool for downloading pretty much anything from a URL, and should be in every web developer&apos;s toolkit. However, the sheer number of Curl options can be overwhelming. Here I give a quick summary of the most common options and a few typical examples. (605 Words)</description>
<guid isPermaLink="true">http://www.cantoni.org/2012/01/10/curl-cheat-sheet</guid>
<content:encoded><![CDATA[<p>This is a quick introduction and cheat sheet for <a href="http://curl.haxx.se/" title="cURL and libcurl homepage">Curl</a> - a very handy command-line tool for downloading pretty much anything from a URL.</p>

<p>The <a href="http://curl.haxx.se/" title="cURL and libcurl homepage">Curl website</a> describes it as:</p>

<blockquote>
  <p>&#8230; a command line tool for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, kerberos&#8230;), file transfer resume, proxy tunneling and a busload of other useful tricks.</p>
</blockquote>

<p>There are many things that Curl can do, and there is a voluminous <a href="http://curl.haxx.se/docs/manpage.html" title="cURL manpage">man page</a> that lists all of the details.</p>

<p>Here I want to boil down all those options into the most common and useful ones for web or webservices developers (using HTTP/HTTPS protocols). If you don&#8217;t already have Curl installed on your system (try running <code>curl</code> from a command prompt), see Getting Curl below.</p>

<h2>Basic Usage</h2>

<p>The basic form of all Curl commands is:</p>

<pre><code class="no-highlight">curl [options...] &lt;url></code></pre>

<p>For example:</p>

<pre><code class="no-highlight">$ curl http://www.google.com/humans.txt
Google is built by a large team of engineers, designers, researchers, robots, and others in many different sites across the globe. It is updated continuously, and built with more tools and technologies than we can shake a stick at. If you'd like to help us out, see google.com/jobs.</code></pre>

<h2>Common Options</h2>

<p>Options are the real power of of Curl. Here we&#8217;ll cover the most common ones that I&#8217;ve used for typical web and webservices development. (You can get the full set of options on your system with <code>curl --help</code> or <code>curl --manual</code>.)</p>

<dl>

<dt>-A / &#8212;user-agent AGENT</dt>
<dd>Set the HTTP User Agent string if you don&#8217;t want the default &#8220;curl&#8221; string</dd>
<dt>&#8212;compressed</dt>
<dd>Add the HTTP header to request compressed content, if the server can provide it</dd>
<dt>-d / &#8212;data DATA</dt>
<dd>Set data to be sent with a POST request</dd>
<dt>-D / &#8212;dump-header FILE</dt>
<dd>Save the response headers to a separate file</dd>
<dt>-H / &#8212;header HEADER</dt>
<dd>Set a custom HTTP header</dd>
<dt>-i / &#8212;include</dt>
<dd>Include the response headers in the output</dd>
<dt>-k / &#8212;insecure</dt>
<dd>Skip SSL certification verification</dd>
<dt>-o / &#8212;output FILE</dt>
<dd>Write output to a file rather than stdout</dd>
<dt>-s / &#8212;silent</dt>
<dd>Run silently (i.e., don&#8217;t show progress meter)</dd>
<dt>&#8212;trace-ascii FILE</dt>
<dd>Write request and response headers and data to local file</dd>
<dt>-x / &#8212;proxy HOST:PORT</dt>
<dd>Route data through the given proxy</dd>
<dt>-X / &#8212;request METHOD</dt>
<dd>Set custom HTTP method (GET, PUT, POST, DELETE)</dd>
</dl>

<h2>Examples</h2>

<h3>Fetch and Save Web Page</h3>

<pre><code class="no-highlight">$ curl --silent http://boston.com -o boston.html  
$ head boston.html
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
&lt;html lang="en">
&lt;head>
&lt;meta http-equiv="Refresh" content="900;url=?refresh=true">
&lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
&lt;title>Boston.com - Boston, MA news, breaking news, sports, video&lt;/title></code></pre>

<h2>Check Size Without Downloading</h2>

<pre><code class="no-highlight">$ curl --head http://s3.amazonaws.com/hanselminutes/hanselminutes_0300.mp3
HTTP/1.1 200 OK
x-amz-request-id: 31D80700E3C2811E
Date: Wed, 11 Jan 2012 04:01:35 GMT
Last-Modified: Sat, 07 Jan 2012 02:49:49 GMT
ETag: "1d08609ab5434eea651e95af332ddb3a"
Accept-Ranges: bytes
Content-Type: audio/mpeg
Content-Length: 24474192
Server: AmazonS3</code></pre>

<h2>Getting Curl</h2>

<p>If you&#8217;re running Mac OSX, Linux, FreeBSD, or similar systems, you&#8217;ve probably already got Curl installed. (Try <code>curl --version</code> to double-check your version.)</p>

<p>If you&#8217;re running Windows, you&#8217;ll need to download it yourself. Start at the <a href="http://curl.haxx.se/download.html" title="cURL downloads">Curl downloads page</a> and find the Win32 section. I suggest the &#8220;Win32 - Generic binary, with SSL&#8221; option. You will also need the <a href="http://www.shininglightpro.com/products/Win32OpenSSL.html" title="Win32 OpenSSL">Windows OpenSSL libraries</a>; I suggest using the &#8220;Win32 OpenSSL v1.x Light&#8221; installer. Make sure to put both Curl and OpenSSL libraries in the same location, and add that location to your path.</p>


]]></content:encoded>
<category>Tools</category>
<pubDate>Tue, 10 Jan 2012 19:40:24 -0800</pubDate>
</item>
</channel>
</rss>
