<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.1" -->
<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/"
	>

<channel>
	<title>Tech Center Current &#187; Innovation</title>
	<link>http://blog.cccnext.net</link>
	<description>Technology news and articles</description>
	<pubDate>Tue, 13 May 2008 15:08:01 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
	<language>en</language>
			<item>
		<title>Content-aware image resizing</title>
		<link>http://blog.cccnext.net/2007/08/25/content-aware-image-resizing/</link>
		<comments>http://blog.cccnext.net/2007/08/25/content-aware-image-resizing/#comments</comments>
		<pubDate>Sun, 26 Aug 2007 03:28:41 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
		
		<category><![CDATA[Advanced]]></category>

		<category><![CDATA[Innovation]]></category>

		<category><![CDATA[Moderate]]></category>

		<guid isPermaLink="false">http://blog.cccnext.net/2007/08/25/content-aware-image-resizing/</guid>
		<description><![CDATA[<img src="http://blog.cccnext.net/files/image.gif" width="100" height="100" alt="">

At the 2007 SIGGRAPH conference, an annual convention for computer graphics specialists to discuss new computer graphics techniques and applications, Shai Avidan and Ariel Shamir of Mitsubishi Electric Research Laboratories demonstrated an innovative new method for resizing the dimensions of images. The new method, called content-aware image resizing, preserves the size and visual quality of the more important regions of the image by sacrificing accuracy in the less important areas. It's difficult to describe in words alone, so here is a video from the creators illustrating the impressive results:]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.cccnext.net/files/image.gif" width="100" height="100" alt=""></p>
<p>At the 2007 SIGGRAPH conference, an annual convention for computer graphics specialists to discuss new computer graphics techniques and applications, Shai Avidan and Ariel Shamir of Mitsubishi Electric Research Laboratories demonstrated an innovative new method for resizing the dimensions of images. The new method, called content-aware image resizing, preserves the size and visual quality of the more important regions of the image by sacrificing accuracy in the less important areas. It&#8217;s difficult to describe in words alone, so here is a video from the creators illustrating the impressive results:</p>
<p class="video"><object type="application/x-shockwave-flash" data="http://video.google.com/googleplayer.swf?docId=-147015999469236173&amp;hl=en" width="400" height="326">
<param name="movie" value="http://video.google.com/googleplayer.swf?docId=-147015999469236173&amp;hl=en"><a href="http://video.google.com/videoplay?docid=-147015999469236173">Demonstration video at Google Video</a></object></p>
<p>Classic resizing methods work by removing vertical and/or horizontal columns of pixels at regular intervals as needed to account for the difference between the original dimensions and the desired dimensions. As you shrink the image, you inevitably lose some of the detail. If the image consists of a single person and some unimportant surroundings, you could maximize the detail of the person in the resized image by first cropping out some of the surroundings so they don&#8217;t take up the precious pixel real estate in the final image.</p>
<p>But what about when an image consists of a person and a house with some featureless landscape in between? In order to preserve the detail of the person and the house, you would ideally want to remove some of that space between them. Simply cropping out that space and shoving the two sides of the image together would leave a very apparent and ugly division in the middle. There isn&#8217;t any good solution using classic resizing and slicing methods.</p>
<p>This is where content-aware image resizing comes in. Rather than just removing entire columns of pixels at regular intervals, this algorithm analyzes the image and determines the least noticeable sets of pixels to remove. It does this by calculating the &#8220;energy&#8221; of pixels. The energy relates to the relative visual importance of those pixels (in other words, how much the pixels stand out). By removing the pixels with the lowest energy, the image can be resized with minimal change to the most visually significant parts of the image.</p>
<p>There&#8217;s one more key aspect of the algorithm: Let&#8217;s imagine for a moment what would happen if it simply removed the lowest-energy pixels from each horizontal row. What if the lowest-energy pixel in one row were on one side of a house and the lowest-energy pixel on the next row were on the other side of the house? Suddenly, after removing those pixels, the edges of the house would be noticeably zig-zagged. So in order to also preserve the shapes in the image, the algorithm makes sure that it only removes pixels along continuous paths from one side of the image to the other side. The creators of this technique call these continuous paths &#8220;seams&#8221;.</p>
<p>This works great for shrinking images, but what about enlarging them? It turns out this algorithm is also well-suited for enlarging images. It follows the same procedure, except instead of removing the lowest-energy seams, it doubles them (with a little mixing to smooth them out). Since the seams are low-energy, doubling them has a minimal visual effect. In other words, the result doesn&#8217;t look nearly as blocky or blurry as it would with traditional resizing methods, and the sizes and shapes of the most important parts of the page are preserved.</p>
<p>The above video also illustrates how this concept can be used to convincingly remove whole objects from an image by manually forcing the algorithm to treat the particular object areas as being low-energy and then resizing appropriately.</p>
<p>An obvious limitation of the algorithm used in the above video is that it simply removes whole pixels rather than performing some sort of resampling. As I explained above, the classic resizing technique is to remove columns of pixels at regular intervals. While this is the fastest method, it also introduces significant visual data loss, even compared to other traditional resizing techniques.</p>
<p>Image resampling is a way to resize the image without completely discarding any pixel data, by instead calculating each pixel on the resized image as a combination of pixels on the original image. For example, if you were resizing the image to half its original height and width, each pixel on the resized image would be an equal mixture of four pixels (two by two) from the original image.</p>
<p>The content-aware image resizing algorithm could be modified to incorporate some aspect of this technique, by condensing pixels near the seams rather than stripping out the pixels entirely. This would probably improve the outcome of the last example in the above video, where the current algorithm&#8217;s limitations were quite apparent.</p>
<p>For more information, see the <a href="http://www.faculty.idc.ac.il/arik/imret.pdf">PDF</a>. The download may be temporarily unresponsive since it has recently been linked to by several very high-traffic websites.</p>
<p><strong title="August 29th, 2007">Update:</strong> Following the huge attention this new technique has received, co-inventor Shai Avidan has just been hired by Adobe, presumably to add this technology and other work to the popular Adobe Photoshop image editing software.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cccnext.net/2007/08/25/content-aware-image-resizing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google introduces tool for offline web apps</title>
		<link>http://blog.cccnext.net/2007/06/03/google-introduces-tool-for-offline-web-apps/</link>
		<comments>http://blog.cccnext.net/2007/06/03/google-introduces-tool-for-offline-web-apps/#comments</comments>
		<pubDate>Sun, 03 Jun 2007 15:06:16 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
		
		<category><![CDATA[Advanced]]></category>

		<category><![CDATA[Innovation]]></category>

		<category><![CDATA[Moderate]]></category>

		<category><![CDATA[Standards]]></category>

		<category><![CDATA[Web browsers]]></category>

		<guid isPermaLink="false">http://blog.cccnext.net/2007/06/03/google-introduces-tool-for-offline-web-apps/</guid>
		<description><![CDATA[<img src="http://blog.cccnext.net/files/google.gif" width="100" height="100" alt="">

Web applications have been all the buzz lately. Traditional desktop applications for e-mail, calendars, and basic word processing have begun losing favor to the online versions you can use in a web browser. Google has so far lead the pack in web application development, and they have recently released a tool which will help take web applications to the next level.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.cccnext.net/files/google.gif" width="100" height="100" alt=""></p>
<p>Web applications have been all the buzz lately. Traditional desktop applications for e-mail, calendars, and basic word processing have begun losing favor to the online versions you can use in a web browser. Google has so far lead the pack in web application development, and they have recently released a tool which will help take web applications to the next level.</p>
<p>Web applications have several advantages over traditional desktop applications. The data is stored at a central remotely-accessible location, so you can access it from any computer. The application is run within a web browser, so it isn&#8217;t dependent on certain operating systems or versions. The &#8220;software&#8221; itself is typically hosted by the vendor, so security updates and other improvements can be seamlessly deployed by the vendor without any user action or user responsibility. Companies like Google have more safeguards in place to prevent data loss than most users do, in case of hardware failure, cracking attempts, etc. Web applications are usually built on top of the well-established HTML, CSS, and DOM standards which may allow for better accessibility and user control over the presentation.</p>
<p>But along with these benefits, there are also some shortcomings to web applications. The data isn&#8217;t in the user&#8217;s control, so it may be difficult to manually move data in or out of some web applications. Although desktop applications have equal or higher potential for violating your privacy than web applications, it&#8217;s possible for advanced users and tools to monitor and control what your desktop applications are sending across the Internet; with web applications, it&#8217;s out of your hands. Software updates are typically done at the vendor&#8217;s whim, so you often don&#8217;t have the opportunity to review or prevent certain updates. Also, web applications generally require an Internet connection in order to function; if you&#8217;re on the road and aren&#8217;t near a hotspot, you may be completely unable to access your data.</p>
<p>Google has released an open source browser add-on called <a href="http://gears.google.com/">Google Gears</a> which will help to address that last shortcoming. Google Gears sets up a local database and <abbr title="Application Programming Interface">API</abbr> on your own computer which web applications can choose to use for offline storage and functionality.</p>
<p>This is similar to a proposed feature of the upcoming HTML 5 standard, due in 2010, which the developers of the Mozilla Firefox web browser plan to implement natively by the end of 2007. Unfortunately, Google Gears does not use the model proposed in the HTML 5 drafts, so there is currently an issue of two competing standards. This is unusual, since Google usually works closely with Mozilla on contributions like Firefox 2&#8217;s fraud protection and Firefox 3&#8217;s upcoming malware protection. Whether or not Firefox or any other browser will end up supporting Google Gears&#8217; API natively (without an add-on) is up in the air, and will probably depend on how widely Google Gears gets implemented in web applications, but Mozilla Technology Strategist Mike Shaver said that Mozilla wasn&#8217;t about to simply give up on the work already done on supporting the HTML 5 model. It will be possible for a browser to support both models at the same time if the browser developers choose to implement them.</p>
<p>For now, the Google Gears model is the only one of the two currently available to regular users, and it is available as an add-on for the Firefox and Internet Explorer web browsers on Windows, as well as Firefox on Linux and Mac. A Safari version is planned in the future. Google Gears is currently used by <a href="http://reader.google.com/">Google Reader</a>&#8217;s offline mode, and more web applications are expected to adopt it in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cccnext.net/2007/06/03/google-introduces-tool-for-offline-web-apps/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Website syndication with RSS and Atom</title>
		<link>http://blog.cccnext.net/2007/03/22/website-syndication-with-rss-and-atom/</link>
		<comments>http://blog.cccnext.net/2007/03/22/website-syndication-with-rss-and-atom/#comments</comments>
		<pubDate>Fri, 23 Mar 2007 03:14:17 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
		
		<category><![CDATA[Advanced]]></category>

		<category><![CDATA[Easy]]></category>

		<category><![CDATA[Innovation]]></category>

		<category><![CDATA[Moderate]]></category>

		<category><![CDATA[Software tutorials]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://blog.cccnext.net/2007/03/22/website-syndication-with-rss-and-atom/</guid>
		<description><![CDATA[<img src="http://blog.cccnext.net/files/feed.gif" width="100" height="100" alt="">

Feed-based website syndication has become popular in recent years, but there is still a lot of people who haven't learned about it and the benefits it brings.

Website syndication is a way to read about all of the recent news articles, blog posts, and website updates that interest you all in one place. In a single view, you can read headlines and summaries of articles on all of your favorite news sites and keep up-to-date without having to browse through all of those sites one-by-one every day. It streamlines your reading experience.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.cccnext.net/files/feed.gif" width="100" height="100" alt=""></p>
<p>Feed-based website syndication has become popular in recent years, but there is still a lot of people who haven&#8217;t learned about it and the benefits it brings.</p>
<p>Website syndication is a way to read about all of the recent news articles, blog posts, and website updates that interest you all in one place. In a single view, you can read headlines and summaries of articles on all of your favorite news sites and keep up-to-date without having to browse through all of those sites one-by-one every day. It streamlines your reading experience.</p>
<p>To get started with website syndication, you need to get something called a feed reader. Two popular ones are <a href="http://reader.google.com/">Google Reader</a> and <a href="http://www.bloglines.com/">Bloglines</a>. Most of the newest web browsers even have simple feed reading capabilities built-in. For the purposes of this post, I will assume you are starting out with Google Reader.</p>
<p>Once you have your feed reader, you need to look for feeds on your favorite websites. Feeds usually come in either the &#8220;RSS&#8221; or &#8220;Atom&#8221; variety. The difference between the two is negligible for most typical subscribers.</p>
<p>Many websites that offer feeds will provide some link on the page itself. You may see a plain text &#8220;RSS&#8221; or &#8220;Atom&#8221; link like in the sidebar of this blog; you may see an orange or blue &#8220;RSS&#8221;, &#8220;Atom&#8221;, or &#8220;XML&#8221; button (in this case, XML is just another term for either RSS or Atom); or you may see the standard orange feed icon shown at the top of this article. If you find one of these links, make note of its URL &#8212; the web address you see at the bottom of the browser window when you hover your mouse over the link. You can copy it to your clipboard by right-clicking the link and clicking &#8220;Copy Shortcut&#8221; or &#8220;Copy Link Location&#8221;.</p>
<p>When you have a feed URL, add it to your feed reader. In Google Reader, this is done by clicking the &#8220;Add subscription&#8221; button on the left side of the Google Reader screen, then typing or pasting the URL into the box that comes up, and finally clicking the &#8220;Add&#8221; button.</p>
<p>If you&#8217;re using the Firefox web browser, it can help you out with the above process: When you come across a page that offers a feed, an orange feed icon will appear on the right side of your URL bar. Click on the icon. It&#8217;ll either bring you to a new page or simply display a small list of available feeds, in which case just choose one. You&#8217;ll now be on a page with the text &#8220;Subscribe to this page using&#8221; and a dropdown list. From that list, pick Google Reader and click &#8220;Subscribe Now&#8221;. Finally, on the next page click &#8220;Add to Google Reader&#8221;. You&#8217;re now subscribed to the feed.</p>
<p>Once you have subscribed to a feed, your feed reader will automatically check for updates every few minutes. Feeds with updates will be indicated in the left column. You&#8217;ll read the feeds much like you read e-mails. Feel free to play around in the feed reader; once you get used to it, it will increase your productivity and make reading your daily news that much more relaxing.</p>
<p>If you just want to subscribe to the Tech Center Current blog for now, here&#8217;s a quick button to hurry you along: <a href="http://fusion.google.com/add?feedurl=http%3A//blog.cccnext.net/feed/"><img src="http://buttons.googlesyndication.com/fusion/add.gif" width="104" height="17" alt="Add to Google"></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cccnext.net/2007/03/22/website-syndication-with-rss-and-atom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>OpenID - a new standard for website logins</title>
		<link>http://blog.cccnext.net/2007/03/18/openid-a-new-standard-for-website-logins/</link>
		<comments>http://blog.cccnext.net/2007/03/18/openid-a-new-standard-for-website-logins/#comments</comments>
		<pubDate>Sun, 18 Mar 2007 12:54:41 +0000</pubDate>
		<dc:creator>David Hammond</dc:creator>
		
		<category><![CDATA[Advanced]]></category>

		<category><![CDATA[Innovation]]></category>

		<category><![CDATA[Moderate]]></category>

		<category><![CDATA[Standards]]></category>

		<guid isPermaLink="false">http://cvctest.cvc.edu:8080/2007/03/18/openid-a-new-standard-for-website-logins/</guid>
		<description><![CDATA[<img src="http://blog.cccnext.net/files/openid.gif" width="100" height="100" alt="">

Most of us probably have lots of user accounts on various websites, complete with their own specific usernames, passwords, and other information. Over time, all of these different user accounts can become difficult to keep track of.

This is where OpenID steps in. OpenID is a system designed to give you just one username and password that you can use on any website (once enough websites support it). It can also make registering for new user accounts faster and easier.]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.cccnext.net/files/openid.gif" width="100" height="100" alt=""></p>
<p>Most of us probably have lots of user accounts on various websites, complete with their own specific usernames, passwords, and other information. Over time, all of these different user accounts can become difficult to keep track of.</p>
<p>This is where OpenID steps in. OpenID is a system designed to give you just one username and password that you can use on any website (once enough websites support it). It can also make registering for new user accounts faster and easier.</p>
<p>Here&#8217;s how it works:</p>
<p>The first thing you do is sign up for an OpenID account from an OpenID provider. A lot of sites provide free OpenID accounts. <a href="http://www.myopenid.com/">MyOpenID</a> is a popular one. The sign-up process is quick, simple, and familiar.</p>
<p>The OpenID provider will give you something called an &#8220;OpenID URL&#8221;. This is a web address that you will use for your username on OpenID-supporting sites. For example, my OpenID URL is <code>dhammond.myopenid.com</code></p>
<p>Let&#8217;s say you want to sign up for an account on a website that supports OpenID. Take a look at <a href="http://jyte.com/auth/login">http://jyte.com/auth/login</a> as an example. In the login form, you will see an OpenID identity field, which looks like a regular username field but with the standard orange OpenID logo. In that field, you write your OpenID URL and click the &#8220;sign in&#8221; button.</p>
<p>When you click the button, you will be taken to your OpenID provider&#8217;s website where you fill in your password. You will then be returned to the site you came from (jyte.com in this example) and the site will complete the registration.</p>
<p>Basically, what this all does is establish a trusted connection between the site and the OpenID provider so you can keep your account details in one place &#8212; the OpenID provider. Once you have your initial OpenID account, you don&#8217;t have to worry about your username being taken on other sites because your OpenID URL is truly universally unique. And you know that your login password is the same for all of these sites because it&#8217;s only stored in one place. In fact, the various OpenID-supporting sites never even have to know your OpenID password; they instead get a separate difficult-to-crack &#8220;key&#8221; from the OpenID provider that is handled in the background.</p>
<p>OpenID has really taken off lately, with many big-name sites and products rushing to offer support for it.</p>
<ul>
<li><a href="http://www.mozilla.com/en-US/firefox/">Firefox 3</a> will have OpenID management built into the browser.</li>
<li>Microsoft is working on adding native support for OpenID in Windows itself.</li>
<li>AOL and Yahoo! are developing OpenID identity providers similar to myopenid.com.</li>
<li>OpenID logins are currently supported by <a href="http://imageshack.us/">ImageShack</a>, <a href="http://ma.gnolia.com/">Ma.gnolia</a>, <a href="http://technorati.com/">Technorati</a>, <a href="http://wikitravel.org/en/Main_Page">Wikitravel</a>, <a href="http://www.livejournal.com/">LiveJournal.com</a>, blogs using the <a href="http://www.movabletype.org/">Movable Type</a> blog system, and other sites. (See this <a href="https://www.myopenid.com/directory">list of OpenID-supporting sites</a> for more.)</li>
<li><a href="http://www.wikipedia.org/">Wikipedia</a> and <a href="http://digg.com/">digg.com</a> are among high-traffic sites that have announced plans to support OpenID logins in the near future.</li>
</ul>
<p>The OpenID standards are published under very liberal no-cost licenses. The owners of the rights to OpenID have stated, &#8220;Nobody should own this. Nobody&#8217;s planning on making any money from this. The goal is to release every part of this under the most liberal licenses possible, so there&#8217;s no money or licensing or registering required to play. It benefits the community as a whole if something like this exists, and we&#8217;re all a part of the community.&#8221;</p>
<p>More information is available from the following links:</p>
<ul>
<li><a href="http://en.wikipedia.org/wiki/OpenID">Wikipedia article on OpenID</a></li>
<li><a href="http://openid.net/">Official OpenID website</a></li>
</ul>
<p>Although it is significantly more difficult for a website to be written to support OpenID than traditional login systems, there is currently a lot of development work on library packages to manage this. I can see OpenID becoming very popular within the next couple of years if it can get enough early adopting websites.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cccnext.net/2007/03/18/openid-a-new-standard-for-website-logins/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
