<?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>Emerald Coast News &#187; Internet</title>
	<atom:link href="http://atd.agranite.com/emerald-coast/artic/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://atd.agranite.com/emerald-coast</link>
	<description></description>
	<lastBuildDate>Sat, 25 May 2013 12:48:24 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>How to Write a Simple WordPress Plugin Tutorial</title>
		<link>http://atd.agranite.com/emerald-coast/internet/wp-hacks/</link>
		<comments>http://atd.agranite.com/emerald-coast/internet/wp-hacks/#comments</comments>
		<pubDate>Thu, 02 May 2013 11:38:03 +0000</pubDate>
		<dc:creator>Grand Can</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[plugin that pops-up image]]></category>
		<category><![CDATA[simple wp plugin tutorial]]></category>
		<category><![CDATA[wordpress hack]]></category>
		<category><![CDATA[wordpress plugin]]></category>
		<category><![CDATA[wordpress plugin tutorial]]></category>

		<guid isPermaLink="false">http://atd.agranite.com/emerald-coast/entertainment/wp-hacks/</guid>
		<description><![CDATA[Someone's going to ask, "But, where's the finished plugin?" Hey, I just wrote several pages of tutorial that not only included all of the code, but explained why and how it all worked. You write the plugin.]]></description>
				<content:encoded><![CDATA[<h2><span style="font-family: Tahoma;">Simple WordPress plugin- let me know what do you think.</span></h2>
<p><span id="more-30"></span></p>
<p>A plugin that pops-up images when you mouse-over certain words.<br />
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script><br />
<span style="font-family: Tahoma;">Today I am going to demonstrate a plugin that is like the acronym plugin, except it&#8217;s going to display an image popup instead of text.</span></p>
<div><span style="font-family: Tahoma;">To begin, you&#8217;re going to need a text editor. I recommend one of the syntax-highlighting variety. My commercial editors of choice at the moment are TextPad or EditPad Pro. Notepad doesn&#8217;t syntax-highlight, but it works fine. Macintosh users are on their own with this, but I&#8217;ve heard the word BBEdit uttered more than once. Whatever you use, open a blank file.</span></div>
<div><span style="font-family: Tahoma;">The first thing to do is to name and document the plugin so that it appears in the WordPress administration console. We&#8217;re going to call our plugin &#8220;ImagPop&#8221;. The plugin header tells WordPress what to do with the plugin file. Insert something to this effect at the top of your plugin file, placing the appropriate information in the appropriate fields:</span></div>
<blockquote><p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">&lt;?php /* Plugin Name: ImagPop Plugin URL: http://atd.agranite.com/emerald-coast/internet/wp-hacks/ Description: A plugin that pops-up images when you mouse-over certain words. Author: ATD Version: 1.10 Author URL: http://www.atd.agranite.com*/ ?&gt;</span></span></code></p></blockquote>
<p><span style="font-family: Tahoma;">Some notes about the plugin header: All of the header info is inside of a block comment. That&#8217;s because none of it is executable. WordPress scans the plugins directory for files that contain this header information. When it finds the headers, it includes the plugin file. No header, no include.</span></p>
<p><span style="font-family: Tahoma;">The <em>Plugin URI</em> is the URI of the plugin, where users can expect to find a link to the latest downloadable version. The <em>Author URI</em> is the URI of your site, where users can find out more information about the person in the <em>Author</em> field.</span></p>
<p><span style="font-family: Tahoma;">In recent versions of WordPress you can no longer put full HTML in your Description field, however, it seems that anchor tags (you know, &lt;a href=&#8221;http://www.example.com&#8221; mce_href=&#8221;http://www.example.com&#8221;&gt;) do work. If you want to direct users to a configuration page for your plugin, you might figure out how to put it here. (Note that this tutorial isn&#8217;t going to cover assembly of a configuration page.)&gt;</span></p>
<p><span style="font-family: Tahoma;"><strong>Now</strong>, <strong>about plugin hooks:<br />
</strong><br />
Plugin hooks are the main way to get plugins to &#8220;go&#8221; in WordPress.</span></p>
<p><span style="font-family: Tahoma;">Spread throughout the WordPress code are hooks that can call your plugin code. There is one that is called whenever a user posts a comment. There is one that is called whenever a new user registers. Pretty much any WordPress action you can think of has a plugin hook waiting for plugins to take advantage of.</span></p>
<p><span style="font-family: Tahoma;">You can get a list of hooks over at the <a href="http://codex.wordpress.org/Plugin_API">WordPress Codex</a>. This list is currently in-production, but will fill out in time.</span></p>
<p><span style="font-family: Tahoma;">There are two types of hooks, Actions and Filters. Actions are triggered when a specific WordPress action takes place, like when a new post is submitted. WordPress doesn&#8217;t ask for any information back from the plugin, it just tells the plugin &#8220;this thing happened&#8221; and moves on.</span></p>
<p><span style="font-family: Tahoma;">With Filters, WordPress expects that your plugin is going to process a certain chunk of data and return it, like displaying the text of a post. WordPress will pass the text of the post into the plugin, the plugin will process the text and return it, and WordPress will display the processed text. Since more than one plugin can attach to the same hook, each plugin can make the changes it needs to the filtered text.</span></p>
<p><span style="font-family: Tahoma;">We want to a Filters because we&#8217;re going to cause some specific text in the post to pop up an image. We&#8217;re going to do this by putting some tags around the text. Using the &#8220;the_content&#8221; filter is our best bet.</span></p>
<p><span style="font-family: Tahoma;">Here&#8217;s how to plug into a hook. Add this under your plugin header:</span></p>
<blockquote><p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">&lt;?php add_filter('the_content', 'imagpop_the_content'); function imagpop_the_content($content) { return $content; } ?&gt;</span></span></code></p></blockquote>
<p><span style="font-family: Tahoma;">This code adds a &#8220;sink&#8221; (think about where heat goes &#8211; into a &#8220;heat<em>sink</em>&#8220;) to the filter event &#8220;the_content&#8221; so that any time WordPress wants to display post content, it will pass the post content to a function named &#8220;imagpop_the_content&#8221;. This is called &#8220;<em>registering a plugin sink</em>&#8220;.</span></p>
<p><span style="font-family: Tahoma;">You can see the empty imagpop_the_content() function, too. The function imagpop_the_content() is a <em>sink</em> for the &#8220;the_content&#8221; hook. I mention this just so that we all know what we&#8217;re talking about.</span></p>
<p><span style="font-family: Tahoma;">Note that this plugin will now run, although it doesn&#8217;t actually do any processing. Just upload it to your plugins directory (/wp-content/plugins) and activate it in your WordPress admin console.</span></p>
<p><span style="font-family: Tahoma;">If you remove the</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">return $content;</span></span></code><span style="font-family: Tahoma;">what do you think will happen? All of your post text will appear to have been deleted. Don&#8217;t panic! Remember that WordPress expects filters to return their values so that they can be sent to the browser. Just put that line back and everything will be fine.</span></p>
<p><span style="font-family: Tahoma;">Try this for fun: Replace</span></p>
<p><code><span style="font-family: Tahoma;">return $content;</span></code><span style="font-family: Tahoma;">with</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">return "Kumquat";</span></span></code><span style="font-family: Tahoma;">. See what it does? I think you may be starting to get the idea.</span></p>
<p><span style="font-family: Tahoma;">When you&#8217;re done playing with your posts, move on to the next page, where we&#8217;ll discuss finding &#8220;words&#8221; to pop. </span><span style="font-family: Tahoma;">Well, now all we need to do is change the post content so that the text we&#8217;re looking for is wrapped with a special &#8220;popup&#8221; tag.</span></p>
<div><span style="font-family: Tahoma;"><span style="font-family: Tahoma;">We have the content of the post, as passed into our function by WordPress as the variable</span></span></div>
<div><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$content</span></span></code><span style="font-family: Tahoma;">. All we need to do is:</span></div>
<ol>
<li><span style="font-family: Tahoma;">Have a list of things to pop up and what to display.</span></li>
<li><span style="font-family: Tahoma;">Look through the content of the post and wrap thost things with the special tag.</span></li>
</ol>
<p><span style="font-family: Tahoma;">Ok, let&#8217;s make a list.</span></p>
<p><span style="font-family: Tahoma;">Above the line that registers your plugin sink, add this:</span></p>
<blockquote><p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$imagpops = array ( 'dog'=&gt;'http://www.example.com/images/dog.jpg', );</span></span></code></p></blockquote>
<p><span style="font-family: Tahoma;">This creates an associative array (a named list) of images to use when certain text appears in the post. Whenever the content contains &#8220;dog&#8221;, we&#8217;re going to make that text pop up dogs picture.</span></p>
<p><span style="font-family: Tahoma;">Optionally change &#8216;dog&#8217; to &#8216;chocolate&#8217;, but don&#8217;t forget to change the image to one that actually exists.</span></p>
<p><span style="font-family: Tahoma;">So we have the list, now we need to wrap the list items when they appear in the post content. This is pretty easy to do with one of the built-in PHP replace functions and a little array manipulation.</span></p>
<p><span style="font-family: Tahoma;">Inside our array sink, lets start adding some code:</span></p>
<blockquote><p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">function imagpop_the_content($content) { global $imagpops; $search_strings = array_keys($imagpops); $replace_strings = array_values($imagpops); $search_strings = array_map('imagpop_search', $search_strings); $replace_strings = array_map('imagpop_replace', $replace_strings); $content = preg_replace($search_strings, $replace_strings, $content); return $content; }</span></span></code></p></blockquote>
<p><span style="font-family: Tahoma;">Now what the heck does <em>that</em> do?</span></p>
<p><span style="font-family: Tahoma;">First, we need to bring the</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$imagpops</span></span></code><span style="font-family: Tahoma;">array into the scope of the function, otherwise it won&#8217;t be defined when we try to use it.</span></p>
<p><span style="font-family: Tahoma;">Then, we set</span></p>
<p><code><span style="font-family: Tahoma;">$search_strings</span></code><span style="font-family: Tahoma;">to just the key part (&#8216;mom&#8217;) of the</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$imagpops</span></span></code><span style="font-family: Tahoma;">array, and $replace_strings to just the value part (&#8216;http://www.example.com/images/dog.jpg&#8217;) of the</span></p>
<p><code><span style="font-family: Tahoma;">$imagpops</span></code><span style="font-family: Tahoma;">array.</span></p>
<p><span style="font-family: Tahoma;">Because we&#8217;re going to use the PHP function</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">preg_replace()</span></span></code><span style="font-family: Tahoma;">to do our replacing, all of the search strings need to be in regular expression format. You don&#8217;t need too firm a grasp on <a href="http://www.regular-expressions.info/">regular expressions</a> to follow along. Just know that the searching part of the regular expression needs to be delimited at the beginning and end by the same character. Since our array keys are not delimited, we need to add those delimiters. That&#8217;s where the PHP function</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">array_map()</span></span></code><span style="font-family: Tahoma;"><span style="background-color: #f0f0f0;">comes into play.</span></span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">array_map()</span></span></code><span style="font-family: Tahoma;">calls a function, passing each element in the array to it. The function returns a replacement value for each element. The result of</span></p>
<p><code><span style="font-family: Tahoma;">array_map()</span></code><span style="font-family: Tahoma;">is a new array with modified values as changed by the specified function.</span></p>
<p><span style="font-family: Tahoma;">In the case of</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$search_strings</span></span></code><span style="font-family: Tahoma;">, we&#8217;re going to use a function called &#8216;imagpop_search&#8217;, and in the case of</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$replace_strings</span></span></code><span style="font-family: Tahoma;">, we&#8217;re going to use a function called &#8216;imagpop_replace&#8217;. Check these out and add them to the plugin below the plugin event sink:</span></p>
<blockquote><p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">function imagpop_search($value) { return '#\b' . $value .'\b#i'; } function imagpop_replace($value) { return '&lt;a class="imagpop" href="#" mce_href="#"&gt;\0&lt;img src="' . $value . '" /&gt;&lt;/a&gt;'; }</span></span></code></p></blockquote>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">imagpop_replace()</span></span></code><span style="font-family: Tahoma;">returns a pretty wild-looking result. Basically, it&#8217;s creating an</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">&lt;a&gt;</span></span></code><span style="font-family: Tahoma;">wrapper for the replaced word (denoted by the regular expression replacement &#8220;\0&#8243;) and adding an</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">&lt;img&gt;</span></span></code><span style="font-family: Tahoma;">tag with the src set from the</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$imagpops</span></span></code><span style="font-family: Tahoma;"><span style="background-color: #f0f0f0;">array values (</span></span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">$value</span></span></code><span style="font-family: Tahoma;"><span style="background-color: #f0f0f0;">).</span></span></p>
<p><span style="font-family: Tahoma;">Yeah, it&#8217;s a little more complicated than the &#8220;Simple&#8221; in this post title implied, but it gives you a lot of flexibility in what you can accomplish.</span></p>
<p><span style="font-family: Tahoma;">One last thing about array_map() and then we&#8217;ll move on: The second parameter is a <em>string</em>, even though it&#8217;s talking about a function. Don&#8217;t use just the function name in there &#8211; be sure you put the function name in quotes!</span></p>
<p><span style="font-family: Tahoma;">If you&#8217;ve followed along with the project so far, you should save and try what you have. When you look at your WordPress output on the home page or a single post, you will notice that there are images everywhere where there used to be only the word &#8220;dog&#8221;. If you view the source of the page, you&#8217;ll see that every time you used the word &#8220;dog&#8221; our plugin wrapped it with an achor tag and an image.</span></p>
<p><span style="font-family: Tahoma;">Want to try something fun? Try having</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">imagpop_replace()</span></span></code><span style="font-family: Tahoma;">return something else entirely.Try</span></p>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">return 'cat';</span></span></code><span style="font-family: Tahoma;">. Do you see the change? Pretty cool how that works, huh?</span></p>
<p>Well, now that we&#8217;ve got the anchors in there, how do we get them to pop up the image instead of just showing it? Ah, that&#8217;s in our next step&#8230;<span style="font-family: Tahoma;">In case you were thinking that I had quit talking about WordPress and had moved into a PHP tutorial, keep following. I promise that I get back to some important stuff.</span></p>
<div><span style="font-family: Tahoma;"><span style="font-family: Tahoma;">To make our anchor tags pop up images, we&#8217;re going to use a CSS technique inspired by one I found on <a href="http://www.meyerweb.com/eric/css/edge/popups/demo.html">meyerweb</a>, another WordPress-powered site. </span></span></div>
<div><span style="font-family: Tahoma;">Basically, you use CSS to change the display of the specially classed &#8220;imagpop&#8221; anchor tags. You simply define a few rules in CSS like this:</span></div>
<blockquote><p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">a.imagpop { position:relative; text-decoration: none; border-bottom: 1px dotted #0000FF; } a.imagpop img { display: none; } a.imagpop:hover img { display: block; position: absolute; padding: 5px; margin: 10px; z-index: 100; color: #AAA; background: black; text-align: center; } </span></span></code></p></blockquote>
<p><span style="font-family: Tahoma;">The</span> <code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">&lt;img&gt;</span></span></code><span style="font-family: Tahoma;">tags inside of the anchor are styled not to appear by default. When you move the mouse over the anchor that trips the</span> <code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">:hover</span></span></code><span style="font-family: Tahoma;">CSS state, which reveals the image as a floating &#8220;tooltip&#8221;.</span> <span style="font-family: Tahoma;">Of course this is not the difinitive method for creating tooltip-like popups, but it&#8217;s easier than describing a ton of javascript when our focus here is WordPress. Anyway, if you follow through with the rest of the tutorial, you&#8217;ll have enough knowledge to replace it when you find something better.</span> <span style="font-family: Tahoma;">A question you might have at this point might be, &#8220;How do you get the CSS to be part of the template without editing the site&#8217;s theme CSS file?&#8221; I&#8217;m glad you&#8217;re following along.</span> <span style="font-family: Tahoma;">We accomplish that using another plugin hook: The wp_head Action. For more on that, turn the page.</span><span style="font-family: Tahoma;">The wp_head action is a plugin hook that executes inside the</span></p>
<div><span style="font-family: Tahoma;"><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">&lt;head&gt;</span></span></code><span style="font-family: Tahoma;">tag of the site output. The</span></span></div>
<p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">&lt;head&gt;</span></span></code><span style="font-family: Tahoma;">tag is where you usually add references to styles and stylesheets. And that&#8217;s exactly what we&#8217;re going to do.</span> <span style="font-family: Tahoma;">Let&#8217;s register a hook sink for the wp_head action:</span></p>
<blockquote><p><code><span style="background-color: #f0f0f0;"><span style="font-family: Tahoma;">add_action('wp_head', 'imag_wp_head'); function imag_wp_head($unused) { echo '&lt;style type="text/css" media="screen"&gt; &lt;!-- PUT STYLES HERE --&gt; &lt;/style&gt;\n'; } </span></span></code></p></blockquote>
<p><span style="font-family: Tahoma;">There are a few items of note here. First off, &#8220;PUT STYLES HERE&#8221; means just that. Grab the styles from the previous page, and put them in that spot.</span> <span style="font-family: Tahoma;">Next, you&#8217;ll note that this sink function uses the PHP command</span> <code><span style="font-family: Tahoma;">echo</span></code><span style="font-family: Tahoma;">. You need to be careful using echo in plugin functions. You will probably not use echo in a Filter, but you might in an Action. Since wp_head is an Action hook, you&#8217;re doing fine.</span> <span style="font-family: Tahoma;">So what will happen is this: When the output page is constructed, WordPress will build the &lt;head&gt; section of the page. Before it&#8217;s done, all of the plugin sinks for the the wp_head hook will be called. WordPress doesn&#8217;t care what they do or if they return any value. Ours writes some style information to the browser. Control then passes back to WordPress, and it finishes construction of the page, including filtering all of the posts for our popup words.</span> I should mention that this is probably not the best way to do a larger project. When you add code to the head of the output page like this, you increase the size of the page somewhat. It&#8217;s not a lot, but after many hits it starts to pile up. You might do better using a CSS import command to import style information. You could even use the plugin file itself as the imported file! I&#8217;ll leave this as an exercise for the user, or the topic for my next tutorial.</p>
<p><span style="font-family: Tahoma;">Someone&#8217;s going to ask, &#8220;But, where&#8217;s the finished plugin?&#8221; Hey, I just wrote several pages of tutorial that not only included all of the code, but explained why and how it all worked. <em>You</em> write the plugin.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://atd.agranite.com/emerald-coast/internet/wp-hacks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Managing Photos Online in a Flash</title>
		<link>http://atd.agranite.com/emerald-coast/internet/managing-photos-online/</link>
		<comments>http://atd.agranite.com/emerald-coast/internet/managing-photos-online/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 10:45:38 +0000</pubDate>
		<dc:creator>Grand Can</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[askfrank.net]]></category>
		<category><![CDATA[Managing Photos Online in a Flash]]></category>
		<category><![CDATA[online tools]]></category>
		<category><![CDATA[seo tools]]></category>

		<guid isPermaLink="false">http://atd.agranite.com/emerald-coast/?p=124</guid>
		<description><![CDATA[The Digital Dilemma So you finally gave in and bought a digital camera, thinking it would the answer to all your photographic needs. After all, a digital camera offers an easy, cost-effective way to take photos – not to mention that wonderful instant-gratification factor. But now there is a whole new set of issues to [...]]]></description>
				<content:encoded><![CDATA[<p><strong>The Digital Dilemma</strong></p>
<p>So you finally gave in and bought a digital camera, thinking it would the answer to all your photographic needs. After all, a digital camera offers an easy, cost-effective way to take photos – not to mention that wonderful instant-gratification factor.<span id="more-124"></span></p>
<p>But now there is a whole new set of issues to deal with – storing, organizing and sharing your pictures – which can be a conundrum for even the most organized shutterbug.<br />
<br />
It’s enough to make you long for the old shoebox-filing method. But by arming yourself with some basic information, you can easily get your digital photos under control.</p>
<p>Storing photos online has many advantages over downloading them to your computer’s hard drive. By using an Internet-based site, you can view your files from any computer with an online connection. You also have the security of knowing if your home computer does a crash-and-burn act, your pictures are safe. And many sites offer the latest photo-editing options that you may not have on your standard computer or camera software.</p>
<p>Storage longevity is the main concern with online sites. Check the “Terms” section of your chosen site to see how long your files will be posted. Also, research your obligation for purchasing prints; some sites require users to buy a preset number of prints each year to keep their membership active.</p>
<p>When you join an online photo-management site, determine how you would like to organize your photos. Most sites will allow you to sort by date, album name or key word. Visit sites to determine which has the best sorting tools for you, and stick with the process. As with any other filing system, consistency is key.<br />
<br />
Sharing photos may be one of the best benefits of shooting with a digital camera, but there are a few downsides to consider. Many sites won’t allow recipients to save or print pictures at home – this is where the companies make their money, after all. As well, most sites require all viewers to establish memberships. While the memberships usually are free, it may deter some recipients from accepting your invitation.</p>
<p>Those minor drawbacks aside, the perk of sharing pictures via an online photo management site makes the process worth it. As soon as your pictures are uploaded, you can begin to share your pictures with friends and family, most often through e-mail invitations.</p>
<p>You can choose to share all of your pictures, an entire album or a few selected pictures. And while most sites have a storage-size limit, they still allow users much more flexibility than is available when sending pictures by e-mail.</p>
<p>Take some time to test two or three sites, keeping your personal needs in mind, and you will find that managing your photos online actually is easy, fast and, best of all, almost always free.</p>
]]></content:encoded>
			<wfw:commentRss>http://atd.agranite.com/emerald-coast/internet/managing-photos-online/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Link exchange manual by AskFrank.net</title>
		<link>http://atd.agranite.com/emerald-coast/internet/link-exchange-manual/</link>
		<comments>http://atd.agranite.com/emerald-coast/internet/link-exchange-manual/#comments</comments>
		<pubDate>Sat, 13 Apr 2013 10:26:20 +0000</pubDate>
		<dc:creator>Grand Can</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[ask frank]]></category>
		<category><![CDATA[back links]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[domain age]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[link exchange]]></category>
		<category><![CDATA[page rank]]></category>
		<category><![CDATA[seo tools]]></category>

		<guid isPermaLink="false">http://atd.agranite.com/emerald-coast/?p=73</guid>
		<description><![CDATA[In todays  virtual world, many small businesses have to relay on anything that low cost and at the same time brings more sales at the end of the day. Link exchange becomes a part of everyday website owner&#8217;s life and to be successful in that, one needs to understand the system. SEO Tools  do help [...]]]></description>
				<content:encoded><![CDATA[<p>In todays  virtual world, many small businesses have to relay on anything that low cost and at the same time brings more sales at the end of the day.</p>
<p><span id="more-73"></span></p>
<p>Link exchange becomes a part of everyday website owner&#8217;s life and to be successful in that, one needs to understand the system.</p>
<p><a href="http://www.askfrank.net/">SEO Tools</a>  do help when considering link partner and their recent post explains to some of us who are not that bright in the linking jungle how to create mutual relationship with related businesses and what to look for to avoid costly mistakes down the road.</p>
<p>Things like checking Google cache, domain age, Page Rank and so are essential in order to acquire web links from partners that will benefit both for years to come.</p>
<p>Please visit AskFrank.net for more info related to  <a href="http://www.askfrank.net/links-exchange-tutorial.php">Link Exchange Tutorial</a></p>
]]></content:encoded>
			<wfw:commentRss>http://atd.agranite.com/emerald-coast/internet/link-exchange-manual/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TweeTube Helps Your Videos Go Viral</title>
		<link>http://atd.agranite.com/emerald-coast/internet/tweetube-helps-your-videos-go-viral/</link>
		<comments>http://atd.agranite.com/emerald-coast/internet/tweetube-helps-your-videos-go-viral/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 10:10:38 +0000</pubDate>
		<dc:creator>Grand Can</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[TweeTube Helps Your Videos Go Viral]]></category>

		<guid isPermaLink="false">http://atd.agranite.com/emerald-coast/?p=54</guid>
		<description><![CDATA[Early this year, someone realized there was a need for an easy way to share videos on Twitter. TweeTube was born. Not only does it provide you with a simple way to share videos on Twitter, but it also gives you the ability to see if people are actually clicking your video link and allows [...]]]></description>
				<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-56" title="tweetube1" src="http://atd.agranite.com/emerald-coast/wp-content/uploads/2009/01/tweetube1-300x104.png" alt="tweetube1" width="300" height="104" />Early this year, someone realized there was a need for an easy way to share videos on Twitter. <a href="http://tweetube.com">TweeTube</a> was born. Not only does it provide you with a simple way to share videos on Twitter, but it also gives you the ability to see if people are actually clicking your video link and allows commenting right on the site.<span id="more-54"></span></p>
<p>You already have an account on TweeTube. Just log in with your Twitter username and password. If you’re familiar with TwitPic, the interface for TweeTube will seem very familiar. There is a public timeline where you can see recently shared videos as well as popular videos.</p>
<p>To share a video, you can search for it and use the Share button. There is also a nifty bookmarklet that you can drag to your bookmark bar. Click it when you see a video you want to share, add a description, and hit share this video. Doesn’t get much simpler than that.<br />
<br />
If you look at My Shared Videos, you’ll see all the videos you have shared along with how many clicks each video has received. This is how you can tell if anyone is actually watching your videos.</p>
<p>Another featured I like is the ability to add comments right on the video. When someone leaves a comment, you recieve it as a reply. This allows conversation to build around your videos, but also continues to promote your video as the discussion builds.</p>
<p>TweeTube currently only supports YouTube, but they are looking to add more services and need your input.</p>
]]></content:encoded>
			<wfw:commentRss>http://atd.agranite.com/emerald-coast/internet/tweetube-helps-your-videos-go-viral/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is CloudFront: a cloud content distribution network</title>
		<link>http://atd.agranite.com/emerald-coast/internet/what-is-cloudfront-a-cloud-content-distribution-network/</link>
		<comments>http://atd.agranite.com/emerald-coast/internet/what-is-cloudfront-a-cloud-content-distribution-network/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 09:58:28 +0000</pubDate>
		<dc:creator>Grand Can</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Amazon releases CloudFront: a cloud content distribution network]]></category>

		<guid isPermaLink="false">http://atd.agranite.com/emerald-coast/?p=46</guid>
		<description><![CDATA[Amazon just made it’s CloudFront service public and in time-honored tradition RightScale offers full support for the new service in its dashboard. You can read Jeff Barr’s announcement and Werner’s blog post for the details. I must say that the folks at AWS have been very consistent in listening to users and reacting to it: [...]]]></description>
				<content:encoded><![CDATA[<p>Amazon just made it’s CloudFront service public and in time-honored tradition RightScale offers full support for the new service in its dashboard. You can read <a href="http://aws.typepad.com/aws/2008/11/distribute-your-content-with-amazon-cloudfront.html"><span style="color: #134073;">Jeff Barr’s announcement</span></a> and <a href="http://www.allthingsdistributed.com/2008/11/amazon_cloudfront.html"><span style="color: #134073;">Werner’s blog post</span></a> for the details.<span id="more-46"></span><br />
 I must say that the folks at AWS have been very consistent in listening to users and reacting to it: many, many users of S3, the Simple Storage Service, have been serving up web assets directly from S3 as if it were a CDN. This works reasonably well in that S3 is very scalable and can sustain very high request rates. But it also has its limitations and lack of geographic replication is one of them in the context of CDN use. So offering a true solution to getting web content rapidly to browsers across the world is most welcome.<br />
<br />
CloudFront is a content distribution service that caches S3 content at 14 locations on three continents based on the access patterns to the individual S3 objects. As far as I can tell, it’s a service that is quite distinct from S3, except that it currently uses S3 as the origin server (i.e. the original objects to be cached must reside on S3). To use CloudFront you create what is called a distribution for an S3 bucket and it returns you a DNS name you then use to refer to the cached version of that bucket. For example, let me create a distribution for a test bucket I have laying around</p>
<p><img class="alignnone size-full wp-image-48" title="s3-bucket-test1" src="http://atd.agranite.com/emerald-coast/wp-content/uploads/2009/01/s3-bucket-test1.bmp" alt="s3-bucket-test1" /></p>
<p>And now let’s look at the result:</p>
<p><img class="alignnone size-full wp-image-49" title="s3-bucket-test-result" src="http://atd.agranite.com/emerald-coast/wp-content/uploads/2009/01/s3-bucket-test-result.bmp" alt="s3-bucket-test-result" /></p>
<p>As you can see, CloudFront returned the domain dc5eg4un365fp.cloudfront.net to access the bucket content. To make URLs a bit prettier to look at, I specified a CNAME of blog-demo.rightscale.com and I could now go into my DNS service and create that CNAME so I could refer to the cached content using this nicer domain name. The info also shows that CloudFront is in the process of setting up the distribution, which in this case took a couple of minutes at most. The RightScale dashboard provides access to all the CloudFront functions and shows the status of all your distributions. Plus you can give distributions nicknames and write down some notes to jog your memory later on.</p>
<p>As a user of CloudFront you don’t really have control over the caching, you just put links to CloudFront in your pages and it does the rest. When a browser tries to access an object it gets directed to the “best” location through the DNS lookup process. The CloudFront server it hits either returns the content from cache, or if it’s not there, it requests it from S3 and adds it to its cache. Eventually infrequently accessed content is evicted from the cache.</p>
<p>There are number of restrictions on CloudFront. First of all, as mentioned above, the origin server has to be S3. Second, all the objects must be publicly accessible from S3, which makes sense although in some scenarios it would be convenient if this were not required. Third, CloudFront only supports HTTP, not HTTPS, which is an issue for SSL sites because including non-SSL images brings up annoying browser warning pop-ups. Lastly, CloudFront doesn’t provide the type of detailed usage reports that other CDNs offer.</p>
<p>Something that is confusing at first is the pricing. The key to understanding the pricing is to think of CloudFront as a service that is completely separate from S3. Imagine it were running on your own servers that you placed in 14 datacenters around the world and you were computing what it’d cost you. When a CloudFront server first gets a request for an object it has to retrieve it from S3, which incurs the normal S3 per-request and bandwidth charges. And then there are the per-request and bandwidth charges for the CloudFront server itself every time it serves an object up to a browser. I’ll leave the details to the Amazon docs, but if you keep in mind that they’re separate services it’ll make sense.</p>
<p>I can’t comment much on the performance of CloudFront as I’m lacking the infrastructure (and time) to test the service. Early reports indicate that download times with CloudFront are lower than directly from S3 and show less jitter. I’m sure there will be a hot debate about whether Amazon has enough sites around the world and whether the routing from users to CloudFront is as good as it needs to be.</p>
<p>All summed-up, this is a service a lot of S3 users have been asking for and Amazon now delivers. It’s also a service that is difficult for cloud users to implement on their own: we really need an organization like Amazon to solve the upteen logistical nightmares it takes to deploy infrastructure around the world. Of course every time Amazon brings out a new cool service there are always more features we’d love to have and I’m sure many of them will be forthcoming. In the meantime, I’m off figuring out where we’ll use CloudFront ourselves…</p>
]]></content:encoded>
			<wfw:commentRss>http://atd.agranite.com/emerald-coast/internet/what-is-cloudfront-a-cloud-content-distribution-network/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
