<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>JimBergman.net</title>
	<atom:link href="http://jimbergman.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://jimbergman.net</link>
	<description>startups &#124; technology &#124; design &#124; software development</description>
	<lastBuildDate>Sat, 04 Feb 2012 09:04:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mobile Browser Reported Screen Sizes &#8211; Jan 2012</title>
		<link>http://jimbergman.net/mobile-browser-reported-screen-sizes-2012-01/</link>
		<comments>http://jimbergman.net/mobile-browser-reported-screen-sizes-2012-01/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 06:46:39 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[mobile development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mobile browser]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=313</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p>HTML5 / CSS3 development for mobile browsers needs to be aware of the reported screen size to effectively build a mobile site.</p>
<p>However, the screen resolution listed in the device specifications is NOT the same as what is reported by the mobile browser itself. Specifically, what is the window size information available via JavaScript using window.innerWidth and window.innerHeight. It is usually very different than the device&#8217;s screen resolution.</p>
<p>The iPhone and iPad are consistent and predictable. All iPhones report a window size of 320 x 460, and all iPads report a window size of 768 x 1004.</p>
<p>The &#8216;fun&#8217; part is supporting the wide variety of window sizes on Android devices. However, it is exceptionally hard to find data on the window size different devices report via JavaScript.</p>
<p>A month ago I released a <a href="https://bitly.com/scorekeepr-android" title="link to ScoreKeepr app in Android Market" target="_blank">mobile app for Android</a> and <a href="https://bitly.com/scorekeepr-ios" title="link to ScoreKeepr app in Apple iOS App Store" target="_blank">iOS called ScoreKeepr</a>. During the update check to my server, the app reports the device&#8217;s windows size.</p>
<p>Here are the most common reported screen sizes for Android devices (in Portrait orientation):</p>
<p>Android phones<br />
320 px width &#8211; 90% of devices queried<br />
360 px width &#8211; 10% of devices queried</p>
<p>Android tablets<br />
800 px width &#8211; 1 device reporting (insufficient data)</p>
<p>Using this information, you can more easily develop your CSS media queries, knowing what sizes your app is likely to encounter in the wild.</p>
<p>This will be an ongoing monthly report, and will reflect different reported window sizes when new devices are introduced. By regularly reporting this information, a trend over time can be identified.</p>
<p>What information are you collecting from your apps? Please share your suggestions for additional anonymous information to collect. Information must be available via JavaScript query.</p>
<p>UPDATE FEB 1st: final numbers for January 2012 included</p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/mobile-browser-reported-screen-sizes-2012-01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Supporting the SOPA/PIPA Site Blackout Movement</title>
		<link>http://jimbergman.net/supporting-the-sopa-pipa-site-blackout-movement/</link>
		<comments>http://jimbergman.net/supporting-the-sopa-pipa-site-blackout-movement/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 20:52:06 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[blackout]]></category>
		<category><![CDATA[PIPA]]></category>
		<category><![CDATA[SOPA]]></category>
		<category><![CDATA[SOPAblackout]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=291</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p>The majority of the internet community is taking a stand against <a href="http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act" title="Wikipedia entry for SOPA" target="_blank">SOPA/PIPA</a> which attempts to fight copyright infringement through Internet censorship, and bypass the due process of law by allowing alleged copyright infringers to be forcibly taken offline without a trial.</p>
<p>Many internet companies have stated their opposition to SOPA/PIPA, such as Google, Reddit, Facebook, Twitter and Wikipedia. An excellent analysis is <a href="http://blog.reddit.com/2012/01/technical-examination-of-sopa-and.html" title="SOPA/PIPA analysis on Reddit" target="_blank">here on Reddit</a>.</p>
<p>To be clear, this is NOT objecting to copyright law, and NOT in support of copyright infringers.</p>
<p>On January 18th, many websites around the world are blacking out to protest this poorly thought out and technology ignorant legislation, before it is voted on by the US Congress and Senate.</p>
<p>JimBergman.net will take part in the blackout movement from 12am PST to 11pm PST on January 18th.</p>
<p>Thanks to Toby for making the <a href="http://blog.eagerterrier.co.uk/2012/01/stop-sopa-blackout-wp-plugin/" title="Wordpress SOPA Blackout plugin" target="_blank">WordPress SOPA Blackout plugin</a>, available for <a href="http://wordpress.org/extend/plugins/sopa-blackout/" title="Wordpress SOPA Blackout plugin download" target="_blank">download here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/supporting-the-sopa-pipa-site-blackout-movement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Just Blog Something!</title>
		<link>http://jimbergman.net/just-blog-something/</link>
		<comments>http://jimbergman.net/just-blog-something/#comments</comments>
		<pubDate>Tue, 10 Jan 2012 10:18:28 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[asides]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=267</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p>A New Year, a new challenge from <a href="http://twitter.com/photomatt" title="Matt's twitter" target="_blank">Matt Mullenweg</a>, the creator of WordPress, and <a href="http://twitter.com/anildash" title="Anil's twitter" target="_blank">Anil Dash</a>, a well-known technology entrepreneur.</p>
<p>The challenge is <a href="http://ma.tt/2012/01/just-blog-something/" title="link to Matt's post Just Blog Something!" target="_blank">Just Blog Something!</a></p>
<p><a href="https://twitter.com/anildash/status/153902700910747648"><img src="http://jimbergman.net/wp-content/uploads/Anil-Dash-Blog-Something-tweet.jpg" title="@AnilDash Blog Something tweet" width="577" height="265" class="size-full wp-image-300" border=0 /></a><!-- [tweet_embed id=153902700910747648] --></p>
<p>So, take an hour a week and just blog something. Write about something interesting or humorous or maddening that happened. Write about something you care about. Writing is a like a muscle in that is develops only when used. You&#8217;ll write better the more you write. And with over 20 unpublished posts, I&#8217;m almost half done for the year (providing there&#8217;s something good there).</p>
<p>So just write. <a href="http://dictionary.reference.com/browse/let+the+chips+fall+where+they+may" title="definition for this phrase" target="_blank">And let the chips fall where they may.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/just-blog-something/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android 2.3 ‘Gingerbread’ WebSocket support</title>
		<link>http://jimbergman.net/android-2-3-websocket-support/</link>
		<comments>http://jimbergman.net/android-2-3-websocket-support/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 08:46:21 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[website development]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[gingerbread]]></category>
		<category><![CDATA[websocket]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=220</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://developer.android.com/sdk/android-2.3.html">Android 2.3 Gingerbread</a> beta was recently released to developers.<a href="http://www.android.com/images/gingerdroid.png" rel="prettyPhoto"><img src="http://www.android.com/images/gingerdroid.png" align="right" title="GingerDroid courtesy Google, Inc." border=0></a></p>
<p>The Android 2.3 SDK information does not mention a browser upgrade or support for <a href="http://en.wikipedia.org/wiki/WebSockets">websockets</a> specifically. So there is no official word from Google regarding websockets being included when Android 2.3 is released.</p>
<p>Taking a look at the beta 1 release of the Android 2.3 SDK, the browser in the emulator is the same version as in Android 2.2 FroYo. Here are screencaps from the browser in the Android 2.3 emulator and a screencap from the browser in Android 2.2. Note the browser version is the same in each screencap.</p>
<p>&nbsp;</p>
<div><center><a href="http://jimbergman.net/wp-content/images/Android-2.3-emulator-websocket.png" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/images/Android-2.3-emulator-websocket.png" width=240 height=400></a>&nbsp;&nbsp;&nbsp;<a href="http://jimbergman.net/wp-content/images/Android-2.2-Evo-websocket.png" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/images/Android-2.2-Evo-websocket-s.png" width=240 height=400></a></center></div>
<p>&nbsp;</p>
<p>Considering that the browser in Android is based on the same <a href="http://en.wikipedia.org/wiki/WebKit">open-source WebKit browser</a> used in the iPhone and iPad, and Apple recently released websocket support in iOS 4.2, it is reasonable to predict that Google will include websocket support in the Android browser very soon, and hopefully in Android 2.3.</p>
<p>I <a href="http://www.quora.com/Will-Android-2-3-Gingerbread-have-WebSockets-support">posted this question to Quora</a>. We&#8217;ll see if someone with more info can add to this.</p>
<p><a href="http://creativecommons.org/about/licenses/"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" title="Creative Commons - Attribution Non-Commercial Share Alike" border=0></a></p>
<p><span style="display: none;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">Android 2.3 ‘Gingerbread’ WebSocket support</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/android-2-3-websocket-support/" property="cc:attributionName" rel="cc:attributionURL">Jim Bergman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/about" rel="cc:morePermissions">http://jimbergman.net/about</a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/android-2-3-websocket-support/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WebSockets supported in iOS 4.2</title>
		<link>http://jimbergman.net/websockets-supported-in-ios-4-2/</link>
		<comments>http://jimbergman.net/websockets-supported-in-ios-4-2/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 08:50:47 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[mobile development]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[website development]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[websocket]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=210</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p>Apple released iOS 4.2 in November 2010, and part of that release was support for websocket in the web browser.</p>
<p>This was confirmed in a visit to a local Apple store. Here are some screencaps grabbed of the iPhone 4:</p>
<p><center><a href="http://jimbergman.net/wp-content/images/iPhone-iOS4.2-screencap-2.png" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/images/iPhone-iOS4.2-screencap-2s.png" width=160 height=240></a>&nbsp;&nbsp;&nbsp;<a href="http://jimbergman.net/wp-content/images/iPhone-iOS4.2-screencap-1.png" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/images/iPhone-iOS4.2-screencap-1s.png" width=160 height=240></a></center></p>
<p>iOS 4.2 is also available for the iPad, which is a huge improvement. iOS 4.0 was only for the iPhone, and the iPad was still using iOS 3. Here are the iPad screencaps to confirm websocket support on the iPad:</p>
<p><center><a href="http://jimbergman.net/wp-content/images/iPad-iOS4.2-screencap-2.png" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/images/iPad-iOS4.2-screencap-2s.png" width=192 height=256></a>&nbsp;&nbsp;&nbsp;<a href="http://jimbergman.net/wp-content/images/iPad-iOS4.2-screencap-1.png" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/images/iPad-iOS4.2-screencap-1s.png" width=192 height=256></a></center></p>
<p><a href="http://jimbergman.net/websockets-iphone-os-4/">Apple had websocket support in the beta of iOS 4.0</a>, but removed it before release. Whatever reason it was not included iOS 4.0 must have been resolved in iOS 4.2.</p>
<p><a href="http://creativecommons.org/about/licenses/"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" title="Creative Commons - Attribution Non-Commercial Share Alike" border=0></a></p>
<p><span style="display: none;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">WebSockets supported in iOS 4.2</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/websockets-supported-in-ios-4-2/" property="cc:attributionName" rel="cc:attributionURL">Jim Bergman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/about" rel="cc:morePermissions">http://jimbergman.net/about</a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/websockets-supported-in-ios-4-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fing-Fong-Fooey</title>
		<link>http://jimbergman.net/fing-fong-fooey/</link>
		<comments>http://jimbergman.net/fing-fong-fooey/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 11:23:41 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[asides]]></category>
		<category><![CDATA[featured]]></category>
		<category><![CDATA[Fing Fung Fooey]]></category>
		<category><![CDATA[Fing Fung Phooey]]></category>
		<category><![CDATA[Fing-Fong-Fooey]]></category>
		<category><![CDATA[Fing-Fong-Phooey]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=192</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://jimbergman.net/wp-content/images/HouseMD-Fing-Fong-Fooey.jpg" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/images/HouseMD-Fing-Fong-Fooey.jpg" align=left width=360 title="photo copyright 2010 Fox Television"></a>Fing-Fong-Fooey is a game similar to <a href="http://en.wikipedia.org/wiki/Rock-paper-scissors">Rock-Paper-Scissors</a>, with the same purpose, to select one person in a group to be &#8216;it&#8217;.</p>
<p>While Rock-Paper-Scissors (also called <a href="http://www.urbandictionary.com/define.php?term=roshambo">Ro-Sham-Bo</a>) works with two people at a time, Fing-Fong-Fooey is more easily used with a group of people.</p>
<p>It works like this:</p>
<p>Everyone stands together in a circle, and each person makes a fist.</p>
<p>All together in unison, count to three while saying &#8216;Fing-Fong-Fooey&#8217;, and move your fist up and down with the count.</p>
<p>When Fooey is reached, each person holds out one, two or three fingers.</p>
<p>Add up the total number of fingers shown for all players.</p>
<p>Starting from the person that called for Fing-Fong-Fooey, count counter-clockwise starting with the person to their right.</p>
<p>The last person counted is &#8216;it&#8217;.</p>
<p>Example:</p>
<p>John, Lee and Mary are deciding who will drive everyone to the beach. Mary calls for Fing-Fong-Fooey. John is to Mary&#8217;s right and Lee is to her left. Each makes a fist and counts together Fing-Fong-Fooey. On Fooey, John puts out 2 fingers, Lee puts out 3 and Mary puts out 2. The total number of fingers is 7. Mary&#8217;s counts to 7 starting to her right. John-Lee-Mary-John-Lee-Mary-John. John was the last person counted and is &#8216;it&#8217;. He is the driver for today&#8217;s trip.</p>
<p>A variation that works better for larger groups, is to hold out up to as many fingers as there are people in the group. If there are five people, each person can hold out 1, 2, 3, 4 or 5 fingers. Otherwise there is an advantage to be one of the last counted in the circle.</p>
<p>This game was used in the <a href="http://www.imdb.com/media/rm197034240/tt1697219">TV show House M.D. in the first episode of season 7</a>. Dr. Taub calls for Fing-Fong-Fooey with Dr. Chase and Dr. Foreman. Dr. Taub holds out two fingers, Dr. Foreman holds out two fingers, and Dr. Chase holds out one finger. The total number of fingers is five. Starting with Dr. Foreman who is to the right of Dr. Taub, the count goes Foreman-Chase-Taub-Foreman-Chase. Dr. Chase is &#8216;it&#8217;.</p>
<p><object width="560" height="340"><param name="movie" value="http://www.youtube.com/v/uSLp5ca9Lsk?fs=1&amp;hl=en_US&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/uSLp5ca9Lsk?fs=1&amp;hl=en_US&amp;rel=0&amp;color1=0x234900&amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"></embed></object></p>
<p>The game is alternately called Fing-Fong-Phooey, although the preferred spelling is Fing-Fong-Fooey.</p>
<p><a href="http://creativecommons.org/about/licenses/"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" title="Creative Commons - Attribution Non-Commercial Share Alike" border=0></a></p>
<p><span style="display: none;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">Fing Fing Fooey</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/fing-fong-fooey/" property="cc:attributionName" rel="cc:attributionURL">Jim Bergman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/about" rel="cc:morePermissions">http://jimbergman.net/about</a>.</span></p>
<p><script src="http://www.stumbleupon.com/hostedbadge.php?s=5&#038;r=http://jimbergman.net/fing-fong-fooey/"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/fing-fong-fooey/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WebSockets NOT supported in iOS 4.0</title>
		<link>http://jimbergman.net/websockets-iphone-os-4/</link>
		<comments>http://jimbergman.net/websockets-iphone-os-4/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 08:58:36 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[technology]]></category>
		<category><![CDATA[website development]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[iOS4]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone os 4]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[websocket]]></category>
		<category><![CDATA[websocket example]]></category>
		<category><![CDATA[websocket test]]></category>
		<category><![CDATA[websockets]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=181</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p><b>UPDATE December 2010:</b> <a href="http://jimbergman.net/websockets-supported-in-ios-4-2/">iOS 4.2 now has websocket support</a></p>
<p><b>UPDATE July 2010:</b> since the beta 2 release of iOS4, Apple has disabled websockets support. A few readers pointed this out, so I made a trip to an Apple Store it run a few tests.</p>
<p><a href="http://jimbergman.net/wp-content/uploads/2010/07/iPhone4_iOSv4_WebSocket_test.png" rel="prettyPhoto"><img src="http://jimbergman.net/wp-content/uploads/2010/07/iPhone4_iOSv4_WebSocket_test_sm.png" title="iPhone4 iOS v4 WebSocket test" width="320" height="480" class="aligncenter size-full wp-image-187" /></a></p>
<p>Confirmed: iOS4 as it is released reports it does NOT have websocket support.</p>
<p>
ORIGINAL POST:</p>
<p>Since the Safari web browser on the iPhone is based on WebKit, it makes sense that at some point support for WebSockets would make it to the iPhone.</p>
<p>Safari on iPhone OS 4.0 beta 2 supports WebSocket.</p>
<p><img src="http://jimbergman.net/wp-content/images/WebSocketTest_iPhone_4.0b2.png"></p>
<p>Once OS 4 is available for the iPad, support should be there as well.</p>
<p>Thanks to reader <a href="http://tech.element77.com/2010/04/safari-on-iphone-os-40-supports.html">Arun for pointing this out</a>.</p>
<p><a href="http://creativecommons.org/about/licenses/"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" title="Creative Commons - Attribution Non-Commercial Share Alike" border=0></a></p>
<p><span style="display: none;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">WebSockets NOT supported in iOS 4.0</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/websockets-iphone-os-4/" property="cc:attributionName" rel="cc:attributionURL">Jim Bergman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/about" rel="cc:morePermissions">http://jimbergman.net/about</a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/websockets-iphone-os-4/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Test your web browser for WebSocket support</title>
		<link>http://jimbergman.net/websocket-web-browser-test/</link>
		<comments>http://jimbergman.net/websocket-web-browser-test/#comments</comments>
		<pubDate>Thu, 10 Dec 2009 01:34:50 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[website development]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[websocket]]></category>
		<category><![CDATA[websocket example]]></category>
		<category><![CDATA[websocket test]]></category>
		<category><![CDATA[websockets]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=102</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p><script type="text/javascript" src="http://jimbergman.net/scripts/WebSocketTest.js"></script>Google announced an improved way for a web application to communicate with a server. The new method is called Web Sockets. You can <a href="http://blog.chromium.org/2009/12/web-sockets-now-available-in-google.html" target="_new">read more info here on Web Sockets</a>.</p>
<p>Here is a quick test to see if your web browser supports Web Sockets. At the time this post was published Google Chrome developer channel release 4.0.249.0 is the only browser to support Web Sockets.</p>
<p><center><a href="javascript:WebSocketTest()" title="Click here to run Web Socket test"><img src="http://jimbergman.net/wp-content/images/WebSocketTest.png" border=0></a></center></p>
<p>
<p>Here is the JavaScript code (<a href="http://jimbergman.net/scripts/WebSocketTest.js">or right click and save file as <code>WebSocketTest.js</code></a>):<code>
<pre>
function WebSocketTest()
{
  if ("WebSocket" in window)
  {
    // Google example code
    //  var ws = new WebSocket("ws://example.com/service");
    //  ws.onopen = function()
    //  {
    //    // Web Socket is connected. You can send data by send() method
    //    ws.send("message to send"); ....
    //  };
    //  ws.onmessage = function (evt) { var received_msg = evt.data; ... };
    //  ws.onclose = function() { // websocket is closed. };
    alert("WebSockets supported here!rnrnBrowser: " + navigator.appName + " " + navigator.appVersion + "rnrntest by jimbergman.net (based on Google sample code)");
  }
  else
  {
    // the browser doesn't support WebSockets
    alert("WebSockets NOT supported here!rnrnBrowser: " + navigator.appName + " " + navigator.appVersion + "rnrntest by jimbergman.net (based on Google sample code)");
  }
}
</pre>
<p></code></p>
<p>Sample HTML code (save file as <code>WebSocketTest.html</code> in same folder as <code>.js</code> file above):<code>
<pre>
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;JimBergman.net - JavaScript: WebSocketTest&lt;/title&gt;
&lt;script type="text/javascript" src="WebSocketTest.js"&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body bgcolor="#FFFFFF"&gt;
&lt;a href="javascript:WebSocketTest()"&gt;Run WebSocket test&lt;/a&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p></code></p>
<p><center><br />
<hr width=75%>UPDATE:<br />
<hr width=75%>
<p>Result of this test on an Windows 7 PC in Google Chrome v4.0.249.0</p>
<p><img src="http://jimbergman.net/wp-content/images/WebSocketTest_Chrome_4.0.249.0.png"></p>
<hr width=75%>
<p>Result of this test on an Windows 7 PC in Mozilla Firefox v3.5.5</p>
<p><img src="http://jimbergman.net/wp-content/images/WebSocketTest_Firefox_3.5.5.png"></p>
<hr width=75%>
<p>Result of this test on an Windows 7 PC in Microsoft Internet Explorer v8.0.7100.0</p>
<p><img src="http://jimbergman.net/wp-content/images/WebSocketTest_IE8_0.7100.0.png"></p>
<hr width=75%>
<p>Result of this test on an Apple iPhone in OS 3.1.2</p>
<p><img src="http://jimbergman.net/wp-content/images/WebSocketTest_iPhone_IMG_0981.png"></p>
<p></center></p>
<p><a href="http://creativecommons.org/about/licenses/"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" title="Creative Commons - Attribution Non-Commercial Share Alike" border=0></a></p>
<p><span style="display: none;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">Test your web browser for WebSocket support</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/websocket-web-browser-test/" property="cc:attributionName" rel="cc:attributionURL">Jim Bergman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/about" rel="cc:morePermissions">http://jimbergman.net/about</a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/websocket-web-browser-test/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>7 Groundrules For An Intelligent Conversation</title>
		<link>http://jimbergman.net/7-groundrules-for-an-intelligent-conversation/</link>
		<comments>http://jimbergman.net/7-groundrules-for-an-intelligent-conversation/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 23:25:53 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[featured]]></category>
		<category><![CDATA[personal development]]></category>
		<category><![CDATA[art of conversation]]></category>
		<category><![CDATA[conversation]]></category>
		<category><![CDATA[intelligent]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=25</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.typetees.com/product/1515/The_art_of_conversation_is_like_kinda_dead_and_stuff"><img src="http://jimbergman.net/wp-content/images/1515-tee_large.png" height=318 width=318 border=0 align=left></a> Everybody loves a great conversation. It is one of life&#8217;s simple pleasures. Sharing ideas and perspectives is a great way feel alive and connected. Looking back at the high points in your life, I hope there are some Intelligent Conversations in there.</p>
<p>So establishing some groundrules for an Intelligent Conversation can help you avoid getting sidetracked and wasting time. A groundrule is an agreement between everyone that is the foundation for what you are about to do. House rules is another common phrase used to describe groundrules.</p>
<p>Especially with all the political and financial news lately, there are many important things that are hard to talk about constructively.</p>
<p>Here is how to prepare for an Intelligent Conversation.</p>
<p><strong>(1) Accept the other person WILL disagree with you.</strong></p>
<p>This stops a lot of people right away. An Intelligent Conversation is not &#8220;cram your ideas down the other person&#8217;s throat&#8221;. The whole point of an Intelligent Conversation is to try and see the other person&#8217;s perspective. Just because someone disagrees with you doesn&#8217;t automatically make you wrong or stupid. Or them wrong or stupid!</p>
<p>It is best not to care if the other person comes around to your way of thinking or not. Your objective is not to prove the other person wrong, but to LEARN if your perspective is the most correct and useful.</p>
<p>If you want to have a conversation with someone that agrees with you, you can do that by yourself.</p>
<p><strong>(2) No name calling or personal attacks. Ever!</strong></p>
<p>This is an absolute requirement. Rather than saying &#8220;You&#8217;re a dumbass,&#8221; try &#8220;I disagree with that view, and here are my reasons why.&#8221;</p>
<p>Focus on ideas and concepts, not on the person sharing those ideas and concepts.</p>
<p>Telling someone why you think their idea is incorrect is vastly different than telling someone they&#8217;re stupid for thinking that way.</p>
<p>The first way will keep them open to what you&#8217;re saying, the second will make them defensive and they will stop listening.</p>
<p><strong>(3) Always be polite.</strong></p>
<p>There are many things included in this groundrule:</p>
<p>Listen first (Don&#8217;t interrupt.)</p>
<p>Be respectful and courteous (Don&#8217;t be condescending, rude or dismissive.)</p>
<p>Give the other people a chance to be heard (Don&#8217;t be a &#8216;ball hog&#8217; and do all the talking.)</p>
<p>A bad example is the way discussions are held on cable news or talk shows. They are trying to get people to watch and sell advertising much more than they are trying to help you become better informed.</p>
<p>A good example? A well respected journalist is perhaps is the way it supposed to be done. How does Barbara Walter have a conversation vs Howard Stern? (I&#8217;m using these as an example of their style, not their substance.)</p>
<p><strong>(4) Try and understand from their point of view.</strong></p>
<p>Try listening to just the words the other person is using. Repeat back to the person what they just said, and see if you got it right before sharing your opinion. Ask them politely to explain to you again if you did not correctly understand what they are communicating.</p>
<p>Where many people get caught up is they hear what they want to hear. They filter what they hear through their own beliefs. Try to put yourself in the other person&#8217;s shoes.</p>
<p>For example, I like baseball more than football. Some people think that means I hate football. That&#8217;s not what I said &#8212; I like football too &#8212; but there is an assumption on the meaning.</p>
<p>&#8220;You shall listen to all sides and filter them for yourself.&#8221; — Walt Whitman</p>
<p><strong>(5) Be willing to check your facts, and admit when you need more information or need to do more research.</strong></p>
<p>&#8220;I don&#8217;t know&#8221; or &#8220;I don&#8217;t know enough&#8221; is not a bad thing.</p>
<p>Nobody knows everything, and there will be times people know things that you don&#8217;t. Stubbornly sticking to incorrect facts and information defeats the purpose of having an Intelligent Conversation.</p>
<p>Having an open mind has got to be one of the hardest things to do. But it can be one of the most rewarding.</p>
<p>This is really hard to do with topics like politics and religion. There may even be topics that have to be off limits, and cannot be discussed.</p>
<p><strong>(6) Separate the emotional from the factual.</strong></p>
<p>There are times you&#8217;ll feel a certain way about something just because. That&#8217;s OK. Everyone has things they believe that are not rooted in any fact.</p>
<p>There are things you associate very powerful positive or negative feelings with that hugely influence how you feel. Even if the facts contradict how you feel.</p>
<p>Accept your feelings, and accept other people&#8217;s feelings. This where you have to exercise self control, as feelings are not likely to change.</p>
<p><strong>(7) Be humble in victory and gracious in defeat.</strong></p>
<p>Nobody likes a gloating winner and nobody likes a bitter loser.</p>
<p>If you do persuade others to see things your way, be kind and tread lightly, or you may change their mind back. So no bragging or boasting about how smart you are or how right you are.</p>
<p>If you have changed your mind and now agree with someone else&#8217;s point of view, be grateful to have learned something new. It is not a contest to be won or lost.</p>
<p>Thank you for reading my thoughts on having an Intelligent Conversation.</p>
<p>What do you think? Are there any more rules that should be added to this list? Or any removed?<br />
<TABLE style="background-color:#6AFB92"" border="0" padding=3 width=500></p>
<td>UPDATE 2009-12-29: An excellent post on How To Disagree on Paul Graham&#8217;s blog here: <a href="http://www.paulgraham.com/disagree.html">http://www.paulgraham.com/disagree.html</a></td>
<p></TABLE></p>
<p><span>Written by Jim Bergman copyright 2008<br />
Please excerpt no more than 50 words and link back to this page.</span></p>
<p><a href="http://creativecommons.org/about/licenses/"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" title="Creative Commons - Attribution Non-Commercial Share Alike" border=0></a></p>
<p><span style="display: none;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">7 Groundrules For An Intelligent Conversation</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/7-groundrules-for-an-intelligent-conversation/" property="cc:attributionName" rel="cc:attributionURL">Jim Bergman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/about" rel="cc:morePermissions">http://jimbergman.net/about</a>.</span></p>
<p><script src="http://www.stumbleupon.com/hostedbadge.php?s=5&#038;r=http://jimbergman.net/7-groundrules-for-an-intelligent-conversation/"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/7-groundrules-for-an-intelligent-conversation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Adding Costco Gas Stations to Google Maps</title>
		<link>http://jimbergman.net/adding-costco-gas-stations-to-google-maps/</link>
		<comments>http://jimbergman.net/adding-costco-gas-stations-to-google-maps/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 10:37:59 +0000</pubDate>
		<dc:creator>Jim Bergman</dc:creator>
				<category><![CDATA[website development]]></category>
		<category><![CDATA[costco]]></category>
		<category><![CDATA[google maps]]></category>

		<guid isPermaLink="false">http://jimbergman.net/?p=16</guid>
		<description><![CDATA[ ...]]></description>
			<content:encoded><![CDATA[<p>How many time have you gone to search for something on the Internet, and it just wasn&#8217;t there?</p>
<p>Many times travelling over the last few years, I&#8217;ve wanted to know where there was a Costco gas station along my route. Their gas prices are usually the most competitive in a particular area. Finding a location along your route is hard to do when all you have is a list sorted alphabetically by State and City.</p>
<p>So I took the <a href="http://www.costcoconnection.com/connection/gas_stations/" target="_new">PDF of Costco Gas Stations from the Costco website</a>, extracted it, massaged the data to import it into a database, converted it into KML, and added it to Google Maps.</p>
<p><iframe width="550" height="600" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=116228428954942756678.0004577569302bcbdd873&amp;ll=37.300275,-97.03125&amp;spn=90,113.203125&amp;output=embed&amp;s=AARTsJpBYMbYE861vKC55VNVS3CR0CaTag"></iframe><br /><small><a href="http://maps.google.com/maps/ms?ie=UTF8&amp;hl=en&amp;msa=0&amp;msid=116228428954942756678.0004577569302bcbdd873&amp;ll=37.300275,-97.03125&amp;spn=90,113.203125&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p>
<p>I discovered after importing the data, that Google Maps paginates your data set after 200 entries. Since the original data was sorted by State and the City, all the locations are not shown at once. There are 300 Costco Gas Stations in the list.</p>
<p>A more useful arrangement would be to sort the data by ZIP code, and break it into two sets: East and West. I&#8217;ll try to find some time for that in the next week.</p>
<p>There were some data validation problems with the original data set also, mainly having to do with non-plain text characters in the data. For example, 1001 Boul. Jean-Baptiste-Rolland, Saint-Jérôme, Quebec J7Y 4Y7 failed validation. The é and ô had to be changed to e and o.</p>
<p>Disclaimer: I was not asked by Costco to do this, and have no ties other than a common membership.</p>
<p>In what way could this map be improved? Leave your suggestions in the comments.</p>
<p><a href="http://creativecommons.org/about/licenses/"><img src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" title="Creative Commons - Attribution Non-Commercial Share Alike" border=0></a></p>
<p><span style="display: none;"><a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/"><img alt="Creative Commons License" style="border-width:0" src="http://i.creativecommons.org/l/by-nc-sa/3.0/88x31.png" /></a><br /><span xmlns:dc="http://purl.org/dc/elements/1.1/" href="http://purl.org/dc/dcmitype/Text" property="dc:title" rel="dc:type">Adding Costco Gas Stations to Google Maps</span> by <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/adding-costco-gas-stations-to-google-maps/" property="cc:attributionName" rel="cc:attributionURL">Jim Bergman</a> is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/3.0/">Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License</a>.<br />Permissions beyond the scope of this license may be available at <a xmlns:cc="http://creativecommons.org/ns#" href="http://jimbergman.net/about" rel="cc:morePermissions">http://jimbergman.net/about</a>.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://jimbergman.net/adding-costco-gas-stations-to-google-maps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

