<?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>Ron on software &#187; Web</title>
	<atom:link href="http://rpstechnologies.net/ron/blog/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://rpstechnologies.net/ron/blog</link>
	<description>Thoughts on software development</description>
	<lastBuildDate>Sun, 29 Apr 2012 02:29:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Public mashup and data feed APIs</title>
		<link>http://rpstechnologies.net/ron/blog/2009/08/public_mashup_and_data_feeds/</link>
		<comments>http://rpstechnologies.net/ron/blog/2009/08/public_mashup_and_data_feeds/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 13:22:10 +0000</pubDate>
		<dc:creator>ron</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rpstechnologies.net/ron/blog/2009/08/public_mashup_and_data_feeds/</guid>
		<description><![CDATA[I&#8217;m doing some research for a possible venture.  A part of this venture would fall into the mashup category &#8211; pulling information from other sites and services, and combining it in a unique way.  Following are my initial notes on &#8230; <a href="http://rpstechnologies.net/ron/blog/2009/08/public_mashup_and_data_feeds/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m doing some research for a possible venture.  A part of this venture would fall into the mashup category &#8211; pulling information from other sites and services, and combining it in a unique way.  Following are my initial notes on some interesting APIs and information feeds:</p>
<p><a href="http://www.programmableweb.com/">Programmable Web</a> is a great resource for those building mashups &#8211; it has a directory of APIs and Mashups that make use of those APIs.  The blog post &#8220;<a href="http://compassioninpolitics.wordpress.com/2009/06/03/best-free-apis-for-web-developers/">Top Twenty Open APIs and Mashup Resources for Web Developers</a>&#8221; lists some of the most popular APIs.</p>
<p><a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fcode.google.com%2Ftransit%2Fspec%2Ftransit_feed_specification.html&amp;ei=_BJ1Sv-hFo2csgPEgrX0CA&amp;usg=AFQjCNGgPEnU4imJ3Z-gjXzAYe3IsJr0sA">Google Transit Feed Specification</a></p>
<ul>
<li>Provides information on stops, routes, calendar, fares, frequencies, usage policies</li>
<li>Unfortunately, only available for a limited set of metro areas</li>
</ul>
<p><a href="http://code.google.com/apis/maps/">Google Maps AJAX API</a>:</p>
<ul>
<li>AJAX API</li>
<li>Display map with road, satellite, hybrid, and terrain, by latitude &amp; longitude</li>
<li>Can respond to user events within the map &#8211; e.g. clicking, zooming in/out, panning, etc</li>
<li>Can manipulate map via JavaScript &#8211; adding markers, changing location, zoom, etc</li>
<li>Can create various types of overlays on the map</li>
<li>Includes google street view</li>
</ul>
<p><a href="http://code.google.com/apis/ajaxfeeds/">Google AJAX Feed API</a></p>
<ul>
<li>Include any RSS or ATOM feed on your site, with various presentation options</li>
</ul>
<p><a href="http://code.google.com/apis/opensocial/">OpenSocial</a></p>
<ul>
<li>Common API for multiple social networking sites, including hi5,  LinkedIn, MySpace, Netlog, Ning, orkut, and Yahoo.  Unfortunately Facebook is not one of them.</li>
<li>JavaScript APIs for client side and REST/RPC APIs for server side</li>
<li>Can be used to create apps that are embedded in social networking sites, as well as use user social information (user profile, friend lists, events) from social networks in your site.</li>
<li><a href="http://oauth.net/">OAuth</a> is used to allow users to authorize use of their social network information</li>
</ul>
<p><a href="http://code.google.com/apis/youtube/overview.html">YouTube APIs</a></p>
<ul>
<li>Integrate YouTube functionality into your site: video searches, upload videos, etc</li>
<li>Integrate video player into your site</li>
<li>Allow users to see/manage their favorites on your site</li>
<li>RSS/ATOM data feeds from YouTube</li>
</ul>
<p><a href="http://www.yelp.com/developers/documentation">YELP APIs</a></p>
<ul>
<li>REST APIs</li>
<li>Retrieve business info and reviews for a geographic region and business category.  This includes the business location, and their categories.</li>
<li>Retrieve neighborhood name and info by location</li>
<li>Retrieve reviews for a particular business</li>
<li>Retrieve business info and pictures</li>
<li>It looks like this isn&#8217;t a complete directory &#8211; only those businesses and features that have been rated are listed</li>
</ul>
<p><a href="http://www.zillow.com/howto/api/APIOverview.htm">Zillow APIs</a></p>
<ul>
<li>&#8220;Neighborhood and city affordability statistics: Zillow Home Value Index, Zestimate distribution, median single family home and condo values, average tax rates, and percentage of flips.&#8221;</li>
<li>Demographic data at the city and neighborhood level &#8211; local market data, affordability, household income, average age, commute time, etc.</li>
<li>Home Valuation: &#8220;Search results list, Zestimate<sup>®</sup> home valuations, home valuation charts, comparable houses, and market trend charts.&#8221;</li>
<li>Property Details: &#8220;Property-level data, including historical sales price and year, taxes, beds/baths, etc.&#8221;</li>
<li>Lists of counties, cities, ZIP codes, and neighborhoods, as well as latitude and longitude data for these areas so you can put them on a map.</li>
<li>&#8220;boundaries for nearly 7,000 neighborhoods and 150 cities&#8221;  available via Creative Commons license.</li>
<li>License restricts site from charging money for Zillow data</li>
</ul>
<p><a href="http://developer.yahoo.com/local/">Yahoo! Local Web Services</a></p>
<ul>
<li>REST APIs</li>
<li>Provides access to public collections created with Yahoo! Local Collections</li>
<li>Can perform local searches based on location, radius, route, categories: returns results with location info, ratings, categories, etc</li>
<li>Yahoo Local search web site: http://local.yahoo.com/ &#8211; You can see some of the information that&#8217;s available</li>
</ul>
<p><a href="http://www.walkscore.com/api.shtml">Walkscore API</a>:</p>
<ul>
<li>Get walk score by location</li>
</ul>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" src="http://img.zemanta.com/pixy.gif?x-id=11c844b6-4dc2-8014-8eb2-e17ac64063ef" alt="" /></div>
]]></content:encoded>
			<wfw:commentRss>http://rpstechnologies.net/ron/blog/2009/08/public_mashup_and_data_feeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up a virtual private server</title>
		<link>http://rpstechnologies.net/ron/blog/2009/02/setting-up-a-virtual-private-server/</link>
		<comments>http://rpstechnologies.net/ron/blog/2009/02/setting-up-a-virtual-private-server/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 01:53:17 +0000</pubDate>
		<dc:creator>ron</dc:creator>
				<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rpstechnologies.net/ron/blog/2009/02/setting-up-a-virtual-private-server/</guid>
		<description><![CDATA[I&#8217;ve had a dedicated server at a hosting provider that I&#8217;ve used to host applications and sites for years. I got a great price on the hosting package and it&#8217;s worked well, but the server&#8217;s growing long in the tooth &#8230; <a href="http://rpstechnologies.net/ron/blog/2009/02/setting-up-a-virtual-private-server/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve had a dedicated server at a hosting provider that I&#8217;ve used to host applications and sites for years. I got a great price on the hosting package and it&#8217;s worked well, but the server&#8217;s growing long in the tooth and needs an OS upgrade. I&#8217;ve also had some hardware failures in the past which caused some downtime.</p>
<p>In looking for a replacement to my current server, I&#8217;ve been looking into the <a href="http://en.wikipedia.org/wiki/Virtual_private_server">virtual private server</a> options. A virtual private server will allow me to start small and scale up as needed, minimize outages due to hardware problems, and should be more economical than dedicated hosting.</p>
<p>Most of the VPS providers I looked at were using the open source <a href="http://www.xen.org/">Xen</a> virtualization software, including <a href="http://www.google.com/url?sa=U&amp;start=1&amp;q=http://aws.amazon.com/ec2/&amp;ei=VQSGSZncNZicNerKiPID&amp;usg=AFQjCNF267xpekLBGEHpgz0OE156-3jYjg">Amazon EC2</a> and <a href="http://www.slicehost.com/">Slicehost</a>. Amazon EC2 has some nifty features, such as pre-configured virtual server images (e.g. JBoss stack image, PHP stack image, etc), and a web services interface to manipulate your server instances, creating or removing instances as needed.</p>
<p>Amazon EC2 charges by the amount of time your instance is running, which for me basically means the time your instance is available to serve traffic. This is a good feature for people that need to dial up instances to handle large loads of traffic or execute some processing intensive task. I was hoping that I wouldn&#8217;t get charged for time that the instance is effectively idle, but unless I want my instance to be unavailable for some time period, I&#8217;d get charged. Amazon charges $0.10 per instance hour for the smallest instance, which if you want a server available all the time, works out to ~ $74/month, which is more than I was paying for my dedicated server.</p>
<p>Slicehost lets you add and remove &#8220;slices&#8221; (server instances) via their control panel, as well as resizing silces. They don&#8217;t provide a web service interface to control your instances as Amazon does. Also, I don&#8217;t see a way to upload pre-built images, such as a Apache/Tomcat/MySQL, or a Apache/PHP/MySQL pre-built image. These would be nice features, but definitely not must-haves for me. Slicehost charges on a monthly basis, with a 256MB RAM instance costing $20/month, and a 512MB instance costing $38/month. I signed up for the 256MB instance running <a href="http://www.google.com/url?sa=U&amp;start=1&amp;q=http://www.ubuntu.com/&amp;ei=BxCGSZyfIqH4NPqavd4D&amp;usg=AFQjCNGldTNGj22Z9iINy0yA8EM7vfis6Q">Ubuntu</a> linux to try it out, and was surprised it was up and running with shell access within 5 minutes of submitting the request.</p>
<p>Since I got set up with Slicehost, they got acquired by Rackspace, the largest hosting provider in the U.S. I see this as largely positive &#8211; giving them access to Rackspace&#8217;s data centers and economies of scale. Hopefully Slicehost&#8217;s excellent operations, web control panel, and pricing will continue to impress me.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpstechnologies.net/ron/blog/2009/02/setting-up-a-virtual-private-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MyFaces and JBoss built-in implementation</title>
		<link>http://rpstechnologies.net/ron/blog/2008/10/myfaces-and-jboss-built-in-implementation/</link>
		<comments>http://rpstechnologies.net/ron/blog/2008/10/myfaces-and-jboss-built-in-implementation/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 14:57:51 +0000</pubDate>
		<dc:creator>ron</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rpstechnologies.net/ron/blog/2009/08/myfaces-and-jboss-built-in-implementation/</guid>
		<description><![CDATA[I&#8217;m working on a WebSphere-based application, and need to get it running on my Mac. RAD isn&#8217;t available for the Mac, and even if it was, it&#8217;s so far behind in Eclipse revisions that I can&#8217;t use most of the &#8230; <a href="http://rpstechnologies.net/ron/blog/2008/10/myfaces-and-jboss-built-in-implementation/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a WebSphere-based application, and need to get it running on my Mac. RAD isn&#8217;t available for the Mac, and even if it was, it&#8217;s so far behind in Eclipse revisions that I can&#8217;t use most of the Eclipse plugins I find useful.</p>
<p>So there&#8217;s a couple options for developing WebSphere-based applications on Eclipse/Mac:</p>
<ul>
<li><a href="http://www.myeclipseide.com/blue.php">MyEclipse Blue Edition</a> : An Eclipse distribution with WebSphere connectors. Bring your own WebSphere (e.g. <a href="http://www-01.ibm.com/software/webservers/appserv/express/">WebSphere Express</a>)</li>
<li>Make your application portable and develop on another app server : Develop on JBoss &amp; Eclipse, but deploy on WebSphere</li>
</ul>
<p>Right now I&#8217;m going with the second option, since a colleague already did most of the work of getting the application running under JBoss. I took the changes he had to make to get it to run under JBoss, and made them into a patch I could apply on top of the latest code from source control.</p>
<p>So far it&#8217;s working great. I just have to be careful to do a regression test in a RAD/WebSphere environment before any changes can be handed over to QA.</p>
<p>I did run into a problem with clashing JSF libraries in JBoss:</p>
<p><span style="font-family:Geneva;">09:25:40,120 WARN [JBossJSFConfigureListener] MyFaces JSF implementation found! This version of JBoss AS ships with the java.net implementation of JSF. There are known issues when mixing JSF implementations. This warning does not apply to MyFaces component libraries such as Tomahawk. However, myfaces-impl.jar and myfaces-api.jar should not be used without disabling the built-in JSF implementation. See the JBoss wiki for more details.<br />
09:25:40,126 WARN [config] Unable to process deployment descriptor for context &#8216;null&#8217;<br />
09:25:40,443 ERROR [STDERR]</span> <span style="font-family:Geneva;color:#000080;text-decoration:underline;">java.lang.UnsupportedOperationException</span><span style="font-family:Geneva;"><br />
09:25:40,444 ERROR [STDERR] at com.sun.faces.config.ConfigureListener$InitFacesContext.getViewRoot(</span><span style="font-family:Geneva;color:#000080;text-decoration:underline;">ConfigureListener.java:1690</span><span style="font-family:Geneva;">)<br />
09:25:40,444 ERROR [STDERR] at com.sun.faces.util.MessageFactory.getMessage(</span><span style="font-family:Geneva;color:#000080;text-decoration:underline;">MessageFactory.java:113</span><span style="font-family:Geneva;">)<br />
09:25:40,444 ERROR [STDERR] at com.sun.faces.util.MessageUtils.getExceptionMessageString(</span><span style="font-family:Geneva;color:#000080;text-decoration:underline;">MessageUtils.java:277</span><span style="font-family:Geneva;">)<br />
09:25:40,444 ERROR [STDERR] at com.sun.faces.config.ConfigureListener.configure(</span><span style="font-family:Geneva;color:#000080;text-decoration:underline;">ConfigureListener.java:855</span><span style="font-family:Geneva;">)<br />
09:25:40,444 ERROR [STDERR] at com.sun.faces.config.ConfigureListener.configure(</span><span style="font-family:Geneva;color:#000080;text-decoration:underline;">ConfigureListener.java:502</span><span style="font-family:Geneva;">)<br />
09:25:40,444 ERROR [STDERR] at com.sun.faces.config.ConfigureListener.contextInitialized(</span><span style="font-family:Geneva;color:#000080;text-decoration:underline;">ConfigureListener.java:402</span><span style="font-family:Geneva;">)<br />
09:25:40,444 ERROR [STDERR] at org.jboss.web.jsf.integration.config.JBossJSFConfigureListener.contextInitialized(</span><span style="font-family:Geneva;color:#000080;text-decoration:underline;">JBossJSFConfigureListener.java:69</span><span style="font-family:Geneva;">)<br /></span></p>
<p>The MyFaces Tomahawk components are an implementation of, and extension of the standard JSF components. This complicates things because when you use application servers that bring their own implementations, such as JBoss and WebSphere, you have to somehow get the application server to not load its implementation ahead of MyFaces. I wish MyFaces had just made their extended components use a separate namespace and we could then use their components while still keeping the application server JSF implementation.</p>
<p>For JBoss, the solution is to set a parameter that instructs JBoss to ignore its own JSF implementation in favor of yours. The following article describes the solution:</p>
<p>http://www.jboss.org/community/docs/DOC-10182</p>
]]></content:encoded>
			<wfw:commentRss>http://rpstechnologies.net/ron/blog/2008/10/myfaces-and-jboss-built-in-implementation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenID, Yahoo, and other news</title>
		<link>http://rpstechnologies.net/ron/blog/2008/01/openid-yahoo-and-other-news/</link>
		<comments>http://rpstechnologies.net/ron/blog/2008/01/openid-yahoo-and-other-news/#comments</comments>
		<pubDate>Mon, 21 Jan 2008 14:51:36 +0000</pubDate>
		<dc:creator>ron</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://rpstechnologies.net/ron/blog/2009/08/openid-yahoo-and-other-news/</guid>
		<description><![CDATA[Recent OpenID developments&#8230; At the end of this month, Yahoo will be supporting OpenID. Any Yahoo user that chooses to enable the feature will be able to use their Yahoo ID on sites that support OpenID. The announcement doesn&#8217;t mention &#8230; <a href="http://rpstechnologies.net/ron/blog/2008/01/openid-yahoo-and-other-news/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Recent OpenID developments&#8230;</p>
<p>At the end of this month, <a href="http://openid.yahoo.com/">Yahoo will be supporting</a> <a href="http://en.wikipedia.org/wiki/OpenID">OpenID</a>. Any Yahoo user that chooses to enable the feature will be able to use their Yahoo ID on sites that support OpenID. The announcement doesn&#8217;t mention Yahoo accepting OpenIDs from other providers, so this is probably only one-way for now. So put together the population of Yahoo users which are now getting OpenID support, and AOL users, which have had it for a while, and you have a pretty large chunk of the web population that have OpenIDs (once they enable them anyways). Now we need more websites to accept OpenIDs from other providers.</p>
<p>I&#8217;m waiting for <a href="http://www.acegisecurity.org/">Acegi</a> to support OpenID so I can build support into a webapp I&#8217;m working on. Looks like there&#8217;s been some <a href="http://raykrueger.blogspot.com/2008/01/acegi-openid-support-update.html">recent progress</a> on that front.</p>
<p>Another OpenID related, if a bit old, tidbit &#8211; <a href="https://www.myopenid.com/">MyOpenId</a> <a href="http://janrain.com/blog/2007/10/17/myopenid-adds-information-card-support/">now supports</a> <a href="http://en.wikipedia.org/wiki/Information_Card">Information Card</a> as a means to authenticate with MyOpenID. So when prompted to authenticate to MyOpenID, you can present an Information Card and authenticate without using a username or password at all.</p>
]]></content:encoded>
			<wfw:commentRss>http://rpstechnologies.net/ron/blog/2008/01/openid-yahoo-and-other-news/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>This blog is now an OpenID</title>
		<link>http://rpstechnologies.net/ron/blog/2007/10/this-blog-is-now-an-openid/</link>
		<comments>http://rpstechnologies.net/ron/blog/2007/10/this-blog-is-now-an-openid/#comments</comments>
		<pubDate>Thu, 04 Oct 2007 21:12:00 +0000</pubDate>
		<dc:creator>ron</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Security]]></category>

		<guid isPermaLink="false">http://rpstechnologies.net/ron/blog/2007/10/this-blog-is-now-an-openid/</guid>
		<description><![CDATA[[update: when I switched to WordPress, I made http://rpstechnologies.net/ron my OpenID page - see that URL instead of this blog for the OpenID headers] This blog is now my OpenID. OpenID is a decentralized single sign-on system for the web. &#8230; <a href="http://rpstechnologies.net/ron/blog/2007/10/this-blog-is-now-an-openid/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight: bold;">[update: when I switched to WordPress, I made </span><a href="http://rpstechnologies.net/ron">http://rpstechnologies.net/ron</a><span style="font-weight: bold;"> my OpenID page - see that URL instead of this blog for the OpenID headers]</span></p>
<p>This blog is now my <a href="http://en.wikipedia.org/wiki/OpenID">OpenID</a>. OpenID is a decentralized single sign-on system for the web. I&#8217;d been hearing about it for a while, and when I looked into it, I liked what I saw, so started using it for <a href="http://ma.gnolia.com/">Magnolia</a> and <a href="http://www.plaxo.com/">Plaxo</a>. Unlike single sign-on systems such as MS Passport, OpenID is completely open in licensing and implementations, and is truly decentralized. Anyone can set up to be an OpenID provider, and there are several options including <a href="https://www.myopenid.com/">myOpenID</a>, <a href="https://pip.verisignlabs.com/">Verisign</a>, <a href="http://dev.aol.com/aol-and-63-million-openids">AOL</a>, and open source providers. I also like that it&#8217;s a simple system and relatively easy to implement. There are several OpenID libraries, including libraries for Java, Python, Ruby, and PHP.</p>
<p>When using OpenID, a URL is your unique identifier, which you use to sign into websites that support OpenID. Normally the URL is hosted on a OpenID provider such as myOpenID (e.g. http://rsmith847.myopenid.com/). But OpenID also supports delegation, where you can use any web page as your OpenID. For this to work, the web page you want to use as your OpenID has to have some  tags in the header that instruct any OpenID consumer (the site you&#8217;re trying to log into) to go to your OpenID provider to sign you in. Why this extra level of indirection? So you can use the same web page as your OpenID even if you change OpenID providers. Simon Willison&#8217;s <a href="http://simonwillison.net/2006/Dec/19/openid/">blog</a> has clear instructions on how to set up any web page as an OpenID.</p>
<p>So if you look at the source for this web page, you&#8217;ll see two  tags at the bottom of the header, which point to my OpenID provider (myOpenID at the moment). For some reason Plaxo had problems accepting my web page URL as an OpenID, so I had to fall back to using my myOpenID URL. Magnolia had no problems with it.</p>
<p>Technorati Tags: <a class="performancingtags" href="http://technorati.com/tag/openid" rel="tag">openid</a></p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=565c3586-c880-8a35-a1d6-08c92d1b0b91" /></div>
]]></content:encoded>
			<wfw:commentRss>http://rpstechnologies.net/ron/blog/2007/10/this-blog-is-now-an-openid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

