 
    
<?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>Web Tools Archives - Complete, Concrete, Concise</title>
	<atom:link href="https://complete-concrete-concise.com/category/web-tools/feed/" rel="self" type="application/rss+xml" />
	<link>https://complete-concrete-concise.com/category/web-tools/</link>
	<description>Practical Information Without The Bloat</description>
	<lastBuildDate>Wed, 26 Oct 2016 18:11:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>5 Minute Vim Tutorial</title>
		<link>https://complete-concrete-concise.com/blog/5-minute-vim-tutorial/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Wed, 26 Oct 2016 18:11:54 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Vim]]></category>
		<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[Writing]]></category>
		<category><![CDATA[editor]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[understanding]]></category>
		<category><![CDATA[vim]]></category>
		<guid isPermaLink="false">http://www.complete-concrete-concise.com/?p=3186</guid>

					<description><![CDATA[<p>This tutorial won't turn you into a Vim wizard, but at least you will be able to open, navigate, edit, and save files using Vim.</p>
<p>The post <a href="https://complete-concrete-concise.com/blog/5-minute-vim-tutorial/">5 Minute Vim Tutorial</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="preamble">
Vim works differently from other editors you are used to, but it only takes about 5 minutes to learn the basics you need to edit with Vim. You won’t be a Vim wizard, but you will be able to:</p>
<ul>
<li>Open a file</li>
<li>Move around in a file</li>
<li>Edit text in a file</li>
<li>Save a File</li>
</ul>
<p>The slightly longer <a href="#Extended">Extended 5 Minute Tutorial</a> you will show you how to <strong>search</strong> in a file, get <strong>help</strong>, and <strong>access</strong> Vim’s own built-in tutorial.
</div>
<h2 id="contents">Contents</h2>
<ol type="1">
<li><a href="#Vim-in-5">Vim in 5 Minutes (or less)</a></li>
<li><a href="#Extended">The Extended 5+ Minute Tutorial</a>
<ol type="1">
<li><a href="#Normal">Normal Mode</a></li>
<li><a href="#Opening">Opening a File</a></li>
<li><a href="#Saving">Saving a File</a></li>
<li><a href="#Exiting">Exiting Vim</a></li>
<li><a href="#Navigating">Navigating a File</a></li>
<li><a href="#Inserting">Inserting and Deleting Text</a></li>
<li><a href="#Searching">Searching</a></li>
<li><a href="#Help">Getting Help</a></li>
</ol>
</li>
<li><a href="#Final">Final Words</a></li>
</ol>
<h2 id="Vim-in-5">Vim in 5 Minutes (or less)</h2>
<ul>
<li>Vim operates in <span class="mark">Modes</span>. Vim always starts in <span class="mark">Normal Mode</span>.</li>
<li><span class="mark">Normal Mode</span> is your base mode and you should always return to it.</li>
<li>All command / control keys are <strong>case sensitive</strong>.</li>
<li>If you are not in <span class="mark">Normal Mode</span>, you (usually) get back to <span class="mark">Normal Mode</span> by pressing the <span class="kbd">Escape</span> key twice.</li>
<li>If you see <span class="mark">recording</span> in the lower left corner of the screen, press the <span class="kbd">q</span> key to return to <span class="mark">Normal Mode</span>.</li>
<li>If you’ve messed stuff up, return to <span class="mark">Normal Mode</span> and type <span class="kbd">:q!</span> followed by the <span class="kbd">Enter</span> key to exit Vim <strong>without</strong> saving the file.</li>
<li>In <span class="mark">Normal Mode</span> you can navigate the file using the <span class="kbd">h</span>, <span class="kbd">j</span>, <span class="kbd">k</span>, <span class="kbd">l</span> keys (left, down, up, right). You might also be able to use the arrow keys on the keyboard<a id="fnref1" class="footnote-ref" href="#fn1"><sup>1</sup></a>.</li>
<li>When you have navigated to where you want to edit the file (inserting or deleting text), press the <span class="kbd">i</span> key to enter <span class="mark">Insert Mode</span>.</li>
<li>In <span class="mark">Insert Mode</span> you can <strong>only</strong> enter or delete text from the current cursor position &#8211; you <strong>cannot</strong> navigate. To navigate, press the <span class="kbd">Escape</span> key to return to <span class="mark">Normal Mode</span>.</li>
<li>To save (write) the file, return to <span class="mark">Normal Mode</span> and type <span class="kbd">:w</span> followed by the <span class="kbd">Enter</span> key.</li>
<li>To exit (quit) Vim, return to <span class="mark">Normal Mode</span> and type <span class="kbd">:q</span> followed by the <span class="kbd">Enter</span> key.</li>
</ul>
<h2 id="Extended">The Extended 5 Minute Tutorial</h2>
<p>This adds <span class="mark">searching</span> and <span class="mark">help</span> to the 5 Minute Tutorial, but, otherwise, keeps the information to the bare minimum so you can quickly be functional in Vim instead of frustrated.<br />
All command / control keys are <strong>case sensitive</strong>: <span class="kbd">h</span> is not the same as <span class="kbd">H</span>!</p>
<h3 id="Normal">Normal Mode</h3>
<p><span class="mark">Normal Mode</span> is the default mode and it should be the mode you always go back to.<br />
Most times, you press the <span class="kbd">Escape</span> key once or twice<a id="fnref2" class="footnote-ref" href="#fn2"><sup>2</sup></a> to return to <span class="mark">Normal Mode</span>.<br />
If you see <span class="mark">recording</span> in the lower left corner of the screen, press the lowercase <span class="kbd">q</span> key to return to <span class="mark">Normal Mode</span>.</p>
<h3 id="Opening">Opening a File</h3>
<p>The simplest way to open a file is to type <span class="kbd">vim</span> at the command line followed by the name of the file:</p>
<div id="cb1" class="sourceCode">
<pre class="sourceCode bash"><code><a id="cb1-1" class="sourceLine" data-line-number="1"></a><span class="ex">user@COMPUTER</span>:~$ vim file.txt</code></pre>
</div>
<p>If it is a <strong>new</strong> file you should see something like this:</p>
<pre class="vim"><code>
~
~
~
~
~
"file.txt" [New File]                       0,0-1          All</code></pre>
<p>If it is an <strong>existing</strong> file, you should see something like <span class="note" data-note="The actual contents will depend on the file you opened.">this</span>:</p>
<pre class="vim"><code>&lt;!doctype html&gt;
&lt;html lang="en"&gt;
  &lt;head&gt;
    &lt;meta charset="utf-8"&gt;
    &lt;title&gt;Basic HTML5 Template&lt;/title&gt;
    &lt;link rel="stylesheet" href="style.css"&gt;
  &lt;/head&gt;
  &lt;body&gt;
    &lt;!-- page content goes here --&gt;
    &lt;p&gt;This is some dummy content that is not lorem ipsum.&lt;/p&gt;
  &lt;/body&gt;
&lt;/html&gt;
~
~
~
"basic.html" 12L, 290C                      1,1           All</code></pre>
<p>The status line<a id="fnref3" class="footnote-ref" href="#fn3"><sup>3</sup></a> (at the bottom of the screen) displays the following information:</p>
<ul>
<li>file name</li>
<li>total number of lines in the file</li>
<li>total number of characters in the file</li>
<li>current line the cursor is on</li>
<li>current column the cursor is in</li>
<li>percentage showing the position in the file (if <span class="mark">All</span> : the entire file is visible, <span class="mark">Bot</span> : at the bottom (end) of the file, <span class="mark">Top</span> : at the top of the file)</li>
</ul>
<p>In <span class="mark">Normal Mode</span> load a file by typing <span class="kbd">:edit</span> followed by the filename and then pressing the <span class="kbd">Enter</span> key.:</p>
<pre class="vim"><code>:edit basic.html</code></pre>
<p>This discards the current file (if any) and loads the specified file.<br />
If the file to be discarded has been modified, but not saved, you will see the following warning in the status line:</p>
<pre class="vim"><code>E37: No write since last change (add ! to override)</code></pre>
<p>If you don’t care about saving the file, simply append <span class="kbd">!</span> to the <span class="kbd">:edit</span> command:</p>
<pre class="vim"><code>:edit! basic.html</code></pre>
<p>The <span class="kbd">!</span> tells Vim to “just do it!” and ignore any warnings.</p>
<h3 id="Saving">Saving a File</h3>
<p>You need to be in <span class="mark">Normal Mode</span> to save a file.<br />
Save a file by typing <span class="kbd">:w</span> followed by the <span class="kbd">Enter</span> key.<br />
If you want to save the file with a different name, type <span class="kbd">:w</span> followed by the new file name and then press the <span class="kbd">Enter</span> key:</p>
<pre class="vim"><code>:w new-filename.txt</code></pre>
<h3 id="Exiting">Exiting Vim</h3>
<p>You need to be in <span class="mark">Normal Mode</span> to exit Vim.<br />
Type <span class="kbd">:q</span> followed by the <span class="kbd">Enter</span> key to exit Vim.<br />
If Vim warns you that the file has been modified, you can choose to <a href="#Saving">save it</a> or you can force Vim to exit without saving the file by typing <span class="kbd">:q!</span> followed by the <span class="kbd">Enter</span> key. The <span class="kbd">!</span> tells Vim to “just do it” and exit without saving the file.</p>
<h3 id="navigating-a-file-navigating">Navigating a File {Navigating}</h3>
<p>You need to be in <span class="mark">Normal Mode</span> to navigate a file.<br />
The letters <span class="kbd">h</span>, <span class="kbd">j</span>, <span class="kbd">k</span>, <span class="kbd">l</span> navigate the cursor through the file. (You may also be able to use the arrow keys present on most keyboards.)<br />
They act like arrow keys and are conceptually laid out like this:</p>
<table style="font-size: 2em; text-align: centered; font-family: inconsolata,monospace; border-collapse: collapse;">
<tbody>
<tr>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">h<br />
←</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">j<br />
↓</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">k<br />
↑</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">l<br />
→</td>
</tr>
</tbody>
</table>
<p>When you navigate left (<span class="kbd">h</span>) to the beginning of a line, the cursor will stop. It will <strong>not</strong> wrap around and up to the previous line.<br />
When you navigate right (<span class="kbd">l</span>) to the end of a line, the cursor will stop. It will <strong>not</strong> wrap around and down to the next line.<br />
If you type a <strong>positive</strong> integer (which will not be displayed), followed by one of the navigation keys, the cursor will move that many characters / lines.<br />
For example, in <span class="mark">Normal Mode</span>, if you type <span class="kbd">10j</span>, the cursor will move down 10 lines.</p>
<h3 id="Inserting">Inserting and Deleting Text</h3>
<p>In <span class="mark">Insert Mode</span> the only thing you can do is insert or delete text. (You <strong>may</strong> be able to use the arrow keys on your keyboard to navigate the text while in this mode, but there is no guarantee, navigating is supposed to be done in <span class="mark">Normal Mode</span>)<br />
Enter <span class="mark">Insert Mode</span> by pressing the <span class="kbd">i</span>, <span class="kbd">a</span>, <span class="kbd">I</span>, or <span class="kbd">A</span> key.</p>
<ul>
<li><span class="kbd">i</span> insert / delete before the cursor (what you would intuitively expect when entering or deleting text).</li>
<li><span class="kbd">a</span> append / delete after the current cursor position.</li>
<li><span class="kbd">I</span> insert / delete at the beginning of the line.</li>
<li><span class="kbd">A</span> append / delete at the end of the line.</li>
</ul>
<p>You will (probably) be using <span class="kbd">i</span> most frequently.<br />
When you enter <span class="mark">Insert Mode</span> you will see <span class="mark">– INSERT –</span> displayed in the lower left corner:</p>
<pre class="vim"><code>The navigation keys are h, j, k, l.
h moves the̲ cursor one character left
l moves the cursor one character right
j moves the cursor one line down
k moves the cursor one line up
~
~
~
~
-- INSERT --                       3,11      All</code></pre>
<p>Press the <span class="kbd">Escape</span> key to return to <span class="mark">Normal Mode</span>.</p>
<h3 id="Searching">Searching</h3>
<p>You must be in <span class="mark">Normal Mode</span> to search.<br />
In a large file, it is useful to locate items of interest by searching for them.<br />
To search, type <span class="kbd">/</span> followed by the text you want to find, followed by the <span class="kbd">Enter</span> key.<br />
Vim treats the search string as a regular expression &#8211; which means some characters have a special meaning. If you need to search for the following characters, you will need to type them as follows:</p>
<table style="border-collapse: collapse;">
<tbody>
<tr style="font-weight: bold;">
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Name</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Character</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Need to Type</td>
</tr>
<tr>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Period</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">.</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">.</td>
</tr>
<tr>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Asterisk</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">*</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">\*</td>
</tr>
<tr>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Backslash</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">&lt;/td&gt;</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">\</td>
</tr>
<tr>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Dollar Sign</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">$</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">$</td>
</tr>
<tr>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black;">Forward Slash</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">/</td>
<td style="padding: 0.2em 1em 0 1em; border: 1px solid black; text-align: center;">/</td>
</tr>
</tbody>
</table>
<p>Searches are case sensitive.<br />
You can navigate between search results by pressing <span class="kbd">n</span> (next) or <span class="kbd">N</span> (previous).</p>
<h3 id="Help">Getting Help</h3>
<p>You need to be in <span class="mark">Normal Mode</span> to use help.<br />
To get help on something in Vim, simply type <span class="kbd">:help</span> followed by the thing you want help on.<br />
For example, to get help on the navigation key <span class="kbd">h</span>, type <span class="kbd">:help h</span> followed by the <span class="kbd">Enter</span> key.<br />
You should see something similar to the following:</p>
<pre class="vim"><code>h         or          *h*
&lt;Left&gt;    or          *&lt;Left&gt;*
CTRL-H    or          *CTRL-H* *&lt;BS&gt;*
&lt;BS&gt;      [count] characters to the left.  |exclusive| motion.
          Note: If you prefer &lt;BS&gt; to delete a character, use
          the mapping:
             :map CTRL-V&lt;BS&gt;    X
          (to enter "CTRL-V&lt;BS&gt;" type the CTRL-V key, followed
          by the &lt;BS&gt; key)
          See |:fixdel| if the &lt;BS&gt; key does not do what you
          want.
m̲o̲t̲i̲o̲n̲.̲t̲x̲t̲ ̲[̲H̲e̲l̲p̲]̲[̲R̲O̲]̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲1̲7̲2̲,̲1̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲1̲2̲%̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
Vim will split the display into two panes. In the upper pane
you will see the help text. In the lower pane you will see your
current editing buffer.
Now you know that Vim supports multiple editing buffers - but
that is not the point of this tutorial.
~
~
~
~
a-file.txt                     4,5              All
</code></pre>
<p>The help can be pretty dense and not user friendly, but it <em>may</em> be helpful.<br />
To close the help window, type <span class="kbd">:q</span> followed by the <span class="kbd">Enter</span> key.<br />
If you type <span class="kbd">:help</span>, it will bring up the general help file. You can navigate through it for topics of interest.<br />
You might also try <span class="kbd">:help tutor</span> for instructions on accessing the Vim tutor which is included with every Vim installation.</p>
<h3 id="Final">Final Words</h3>
<p>Vim may not be the easiest or most intuitive editor you will come across. However, it (or its ancestor Vi) is quite ubiquitous and this tutorial gives you the basics you need so you are minimally functional with it.<br />
The basics are simple:</p>
<ol type="1">
<li>Vim operates in <span class="mark">Modes</span>.</li>
<li>All command / control keys are <strong>case sensitive</strong> : <span class="kbd">k</span> is not the same as <span class="kbd">K</span>.</li>
<li>The base mode is <span class="mark">Normal Mode</span>. You (usually) get back to it by pressing the <span class="kbd">Escape</span> key once or twice.</li>
<li>Navigating a file is done in <span class="mark">Normal Mode</span> using the <span class="kbd">h</span>, <span class="kbd">j</span>, <span class="kbd">k</span>, <span class="kbd">l</span> keys.</li>
<li>When the cursor is where you want to insert or delete text, you press the <span class="kbd">i</span> key to enter <span class="mark">Insert Mode</span>.</li>
<li>Search in <span class="mark">Normal Mode</span> by typing <span class="kbd">/</span> followed by the string you want to find and then the <span class="kbd">Enter</span> key. Navigate the search results using the <span class="kbd">n</span> and <span class="kbd">N</span> keys.</li>
<li>Save a file by typing <span class="kbd">:w</span> in <span class="mark">Normal Mode</span>.</li>
<li>Exit Vim by typing <span class="kbd">:q</span> in <span class="mark">Normal Mode</span>.</li>
<li>In <span class="mark">Normal Mode</span> you can get help by typing <span class="kbd">:help</span></li>
</ol>
<section class="footnotes">
<hr />
<ol>
<li id="fn1">Vi (the precursor to Vim) was developed in 1976. Arrow keys were not commonly found on keyboards, so <span class="kbd">h</span>, <span class="kbd">j</span>, <span class="kbd">k</span>, <span class="kbd">l</span> were used.<a class="footnote-back" href="#fnref1">↩</a></li>
<li id="fn2">Some modes require one key press, others require two. If you press it too many times, the computer will just beep at you. Vim newbies often repeatedly press the <span class="kbd">Escape</span> key in the hopes of returning to <span class="mark">Normal Mode</span><a class="footnote-back" href="#fnref2">↩</a></li>
<li id="fn3">This is true for the default Status Line. It is always possible that someone has modified the Status Line to display different information, or in a different arrangement.<a class="footnote-back" href="#fnref3">↩</a></li>
</ol>
</section>
<p>The post <a href="https://complete-concrete-concise.com/blog/5-minute-vim-tutorial/">5 Minute Vim Tutorial</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Prevent People from Displaying Your Content on Their Web Pages Inside of a Frame</title>
		<link>https://complete-concrete-concise.com/web-tools/how-to-prevent-people-from-displaying-your-content-on-their-web-pages-inside-of-a-frame/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Fri, 06 Dec 2013 22:01:58 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[clickjacking]]></category>
		<category><![CDATA[frame]]></category>
		<category><![CDATA[framebusting]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[iframe]]></category>
		<category><![CDATA[linking]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[prevent]]></category>
		<category><![CDATA[theft]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=3055</guid>

					<description><![CDATA[<p>Tired of having your bandwidth and content siphoned off by other websites? </p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-prevent-people-from-displaying-your-content-on-their-web-pages-inside-of-a-frame/">How to Prevent People from Displaying Your Content on Their Web Pages Inside of a Frame</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This technique shows how to prevent a web site from displaying your content inside of a frame on their web page.</p>
<p>It looks something like this:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/12/in-frame-1-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/12/in-frame-1.png" alt="" border="0" class="centered"/></a></p>
<p>The section shaded in green is my content being displaying inside someone else&#8217;s web site. This is done by putting my content inside a <code>&lt;frame&gt;</code> or <code>&lt;iframe&gt;</code> tag.</p>
<div class="c2">
<p>If you are looking on how to deal with people who have copy and pasted your content on their web site, then see <a href="//complete-concrete-concise.com/blog/how-to-deal-with-content-theft">this article</a>.</p>
</div>
<p>This is easy to prevent, but it requires editing your <code>.htaccess</code> file.</p>
</div>
<h1>Why is this a problem?</h1>
<p>First, someone else is using your hard work this means a potential loss of traffic to your site.</p>
<div class="c1">
<p>I say &#8220;potential loss&#8221; of traffic because my experience is that these are usually very small and insignificant sites and they are not really taking away any traffic.</p>
</div>
<p>Second, someone can be benefitting from your work if they run ads on their site.</p>
<p>Third, it dilutes your content: you created it, you should keep control over it.</p>
<p>Finally, some sites doing this can be &#8220;clickjacking&#8221; using your site and content. Essentially, they use your content to drive traffic (or force downloads) by putting up invisible buttons. This type of behaviour can tarnish your web site&#8217;s reputation.</p>
<h1>Preventing Framing</h1>
<p><strong>1) Open</strong> your <code>.htaccess</code> file for editing.</p>
<div class="c1">
<p>Instructions for opening and editing <code>.htaccess</code> from <u>cPanel</u> can be found <a href="//complete-concrete-concise.com/web-tools/how-to-edit-htaccess-in-cpanel">here</a>.</p>
</div>
<p><strong>2) Add</strong> <u>one</u> of the following lines:</p>
<pre><code>Header append X-FRAME-OPTIONS "DENY"</code></pre>
<p>or</p>
<pre><code>Header append X-FRAME-OPTIONS "SAMEORIGIN"</code></pre>
<div class="c1">
<h3>How it Works</h3>
<p>Each line results in some additional information being sent with your web page. This information tells any compliant browser (and they should all be compliant now) how to deal with content inside a frame.</p>
<p><p>If it is &#8220;DENY&#8221;, then the browser will refuse to load the content into the frame.</p>
<p>If it is &#8220;SAMEORIGIN&#8221;, then the browser will only load content into the frame if the page with the frame and the page loaded into the frame are both on the same web site.</p>
<p>For complete details on this see <a href="http://tools.ietf.org/html/rfc7034">RFC 7034</a> (<strong>note:</strong> this is an external link). It also explains the option &#8220;ALLOW-FROM&#8221;.</p>
</div>
<div class="c3">
<p>Unless you use frames on your site, it is best to go with the first line.</p>
</div>
<p><strong>3) Save</strong> the <code>.htaccess</code> file.</p>
<h1>Other Options</h1>
<p>A commonly promoted option is something called a &#8220;Framebuster&#8221;. This is a piece of javascript code that tries to force your web page out of the frame. Unfortunately, it can be defeated if (1) the user has javascript turned off, or (2) the web site framing your content runs anti-framebuster code. You can read more <a href="http://en.wikipedia.org/wiki/Framekiller">here</a> (<strong>note:</strong> this is an external site).</p>
<p><p>The other common option is to add code to <code>.htaccess</code> to have the rewrite engine reload the page from the correct URL. I tried this technique first, but it didn&#8217;t work for me. The page I got this from is <a href="http://www.delphifaq.com/faq/web_publishing/f944.shtml">here</a> (<strong>note:</strong> this is an external site).</p>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-prevent-people-from-displaying-your-content-on-their-web-pages-inside-of-a-frame/">How to Prevent People from Displaying Your Content on Their Web Pages Inside of a Frame</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress Generating Core Dumps</title>
		<link>https://complete-concrete-concise.com/web-tools/wordpress-generating-core-dumps/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Sun, 01 Sep 2013 19:52:59 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[account suspended]]></category>
		<category><![CDATA[core dump]]></category>
		<category><![CDATA[crashing]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[error_log]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=3004</guid>

					<description><![CDATA[<p>Surprisingly, the culprit is probably PHP.</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/wordpress-generating-core-dumps/">WordPress Generating Core Dumps</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>Between 30-August-2013 and 01-September-2013, Complete, Concrete, Concise had its web hosting suspended with a demand that the WordPress installation be deleted.</p>
<p>Not wanting to delete my installation and then reinstall (and hopefully restore all data correctly), I investigated.</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/09/core-dump-1-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/09/core-dump-1-thumb.png" alt="" border="0" class="centered"/></a></p>
<div class="c2">
<p><strong>Note:</strong> this problem and solution is likely the same for any PHP based application &#8211; like Joomla! or Drupal.</p>
</div>
</div>
<h1>Symptoms</h1>
<p>Most likely, your web hosting provider will inform you that your account has been <strong><u>suspended</u></strong> because your WordPress (or other PHP based application) is generating a lot of core dumps and playing havoc with their server. In my case, I was asked to delete my WordPress installation.</p>
<p>Alternately, you may notice there are a lot of <code>core.xxxx</code> (xxxx being a four digit number) files in your WordPress directory.</p>
<h1>The Cause</h1>
<div class="c1">
<p>There may be other causes for core dumps, but this is what was causing mine.</p>
</div>
<p>When your <code>error_log</code>  file gets to be 2,147,483,647 bytes long, PHP will start crashing and generating core dumps. This is because PHP cannot handle files larger than 2GB.</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/09/core-dump-2.png" alt="" border="0" class="centered"/></p>
<p><code>error_log</code> is where PHP stores messages about any errors it encounters.</p>
<p>The most common cause of errors is a corrupt MySQL database file.</p>
<div class="c1">
<p>I suspect this is a fairly common problem but I could only find it mentioned <a href="http://www.stevenwoodson.com/blog/archives/2011/02/16/apache-2gb-file-limit/">here</a>.</p>
<p>PHP&#8217;s failure in dealing with files larger than 2<sup>31</sup> &#8211; 1 bytes long is documented <a href="http://de2.php.net/manual/en/function.filesize.php">here</a> (although, the expression &#8220;<u>unexpected behaviour</u>&#8221; doesn&#8217;t really do it justice). To be fair, the PHP documentation claims this is only a problem on 32-bit systems &#8211; however, since I don&#8217;t know if my web host is running a 32 or 64 bit version of Linux, I can&#8217;t say anything other than &#8220;it is really stupid to not fail gracefully at a known hard limit&#8221;.</p>
</div>
<h1>The Fix</h1>
<div class="c1">
<p>When your account is suspended, you will probably only have <code>ftp</code> access.</p>
</div>
<ol>
<li>Delete the file <code>error_log</code>.</li>
<li>rename <code>index.php</code> to something else (<code>xxx_index.php</code> is good)</li>
<li>inform your hosting provider that:
<ol>
<li>you suspect the problem was PHP&#8217;s inability to handle and <code>error_log</code> larger than 2GB and you have deleted it</li>
<li>you have deactivated your WordPress account by renaming <code>index.php</code> </li>
<li>you would like access to your account restored so you can run MySQL applications to check and repair your database if necessary</li>
</ol>
</li>
<li>Fix the database (if it is corrupted). Instructions for checking and repairing a database can be found <a href="//complete-concrete-concise.com/web-tools/when-your-website-stops-working-properly-it-may-be-a-corrupt-database">here</a>.</li>
<li>restore the name of the file in step (2) back to <code>index.php</code></li>
<li>go to your website and browse a few pages.</li>
<li>verify that <code>core.xxxx</code> files are not being generated. If they are being generated, than you probably have some other problem.</li>
<li>verify that the file <code>error_log</code> is not being generated. If it is being generated, it is a good idea to look at it and see what errors are occurring. Depending on how quickly <code>error_log</code> is growing, it might be a good idea to suspend your site again by renaming <code>index.php</code></li>
</ol>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/wordpress-generating-core-dumps/">WordPress Generating Core Dumps</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>webpage is not found &#8211; ERR_FILE_NOT_FOUND while developing Chrome Extension</title>
		<link>https://complete-concrete-concise.com/web-tools/webpage-is-not-found-err_file_not_found-while-developing-chrome-extension/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Tue, 28 May 2013 15:55:52 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[ERR_FILE_NOT_FOUND]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[extensions]]></category>
		<category><![CDATA[getting started]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[kittens]]></category>
		<category><![CDATA[webpage is not found]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=2982</guid>

					<description><![CDATA[<p>This problem was observed on Windows 7 with SP1, in which Internet Explorer 10 and Google Chrome are both installed. </p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/webpage-is-not-found-err_file_not_found-while-developing-chrome-extension/">webpage is not found &#8211; ERR_FILE_NOT_FOUND while developing Chrome Extension</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This problem was observed on Windows 7 with SP1, in which Internet Explorer 10 and Google Chrome are both installed.</p>
<p>Even if this is not your setup, it is possible you have a similar problem, but no guarantee is made.</p>
</div>
<p>While trying out the Google Chrome Extension <a href="http://developer.chrome.com/extensions/getstarted.html">Getting Started tutorial</a>, I immediately ran into problems with the example app not working.</p>
<p>The error message displayed was the following:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/05/chrome-1.png" alt="" border="0" class="centered"/></p>
<p>After a bit of troubleshooting, I discovered the problem was that the file <code>popup.html</code> did not exist &#8211; which is exactly what the error message is complaining about.</p>
<p>I did have a <code>popup.htm</code> file, though &#8211; notice the missing <code>'l'</code> at the end.</p>
<p>After renaming the file, the problem went away and the sample extension worked. It also worked if I edited the manifest so the file name was <code>popup.htm</code></p>
<h3>Why did this happen?</h3>
<p>It turns out that I downloaded the sample files using Internet Explorer 10. For some reason, Internet Explorer 10 renamed the file <code>popup.html</code> to <code>popup.htm</code> which meant the file did not match the manifest, which meant the file in the manifest could not be found, hence the message.</p>
<h3>Dissecting the Error Message in More Detail</h3>
<p>It is not the friendliest error message, but it is correct &#8211; if you understand it.</p>
<div class="c1">
<pre><code>This webpage is not found</code></pre>
<p>Pretty standard, and somewhat misleading, message &#8211; I assumed it meant the &#8220;kittens&#8221; page was not found.</p>
</div>
<div class="c1">
<pre><code>No webpage was found for the web address: chrome-extension://pchknohkaionalnpgmgdniblddmobdok/popup.html</code></pre>
<p>This line had me stumped. Obviously this is not a valid URL, so it is not surprising the webpage was not found.</p>
<p>I assumed (incorrectly) that in the javascript code, the URL was somehow being badly mangled or incorrectly formed. This is not the case. The components or elements of a chrome extension are accessed as though they are a web resource, but, instead of beginning with <code>http://</code>, the begin with <code>chrome-extension://</code>, followed by the ID of the extension followed by the name of the resource (which, in this case, is the file <code>popup.html</code>).</p>
</div>
<div class="c1">
<pre><code>Error 6 (net::ERR_FILE_NOT_FOUND): The file or directory could not be found.</code></pre>
<p>Once you know what the previous line means, this one simply repeats it in different words.</p>
</div>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/webpage-is-not-found-err_file_not_found-while-developing-chrome-extension/">webpage is not found &#8211; ERR_FILE_NOT_FOUND while developing Chrome Extension</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Restore a Database Using phpMyAdmin</title>
		<link>https://complete-concrete-concise.com/web-tools/how-to-restore-a-database-using-phpmyadmin/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Thu, 28 Mar 2013 11:31:10 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[restore]]></category>
		<category><![CDATA[restore database]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=2738</guid>

					<description><![CDATA[<p>This tutorial is for phpMyAdmin version 3.5.5. It may be the same or similar for other versions, but no guarantee is made. Note: the preferred method to restore your database is to use the restore database service provided by your web host. If your web host does not provide such services, then you can use [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-restore-a-database-using-phpmyadmin/">How to Restore a Database Using phpMyAdmin</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This tutorial is for phpMyAdmin version 3.5.5.</p>
<p>It may be the same or similar for other versions, but no guarantee is made.</p>
</div>
<div class="c4">
<p><strong>Note:</strong> the preferred method to restore your database is to use the restore database service provided by your web host.</p>
<p>If your web host does not provide such services, then you can use this method for &#8220;small&#8221; databases.</p>
<p>The definition of &#8220;small&#8221; depends on your <code>php.ini</code> settings.</p>
<p>Because this method uses <code>php</code> to do the restoring there are two <code>php</code> limits you need to be aware of:</p>
<p>1) maximum file upload size: this is controlled by the entry <code>upload_max_filesize = <em>size in bytes</em></code> in <code>php.ini</code></p>
<p>2) maximum time a <code>php</code> script is allowed to run: this is controlled by the entry <code>max_execution_time = <em>number of seconds</em></code> in <code>php.ini</code></p>
<p>These settings are usually not accessible to you (especially if you have a shared hosting plan).</p>
<p>In general, these limits should not be an issue for the average personal or small business website.</p>
</div>
<div class="c2">
<p>Images may be clicked for full sized versions.</p>
</div>
<p><strong>1) Open</strong> your <u>phpMyAdmin</u> panel:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-1-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-1-thumb.png?w=586" alt="" border="0" class="centered" data-recalc-dims="1"/></a></p>
<p><strong>2) Click</strong> on the database you want to restore:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-2-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-2-thumb.png?w=586" alt="" border="0" class="centered" data-recalc-dims="1"/></a></p>
<p><strong>3) Click</strong> on the tab <u>Import</u>:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/restore-db-phpmyadmin-3-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/restore-db-phpmyadmin-3-thumb.png" alt="" border="0" class="centered"/></a></p>
<p><strong>4) Click</strong> on <u>Browse</u> and select the database to upload. <strong>Ensure</strong> the <u>Format</u> is <u>SQL</u> and <strong>click</strong> on <u>Go</u>:</p>
<div class="c1">
<p><strong>Note:</strong> your web host provider will have established maximum file sizes you can upload. If the file you select is greater than this size, you will not be able to upload and restore the database.</p>
<p>You can compress the file to reduce its size (if it is not already compressed), using any of the formats listed in the <u>Import</u> screen. Just ensure the file name is in the form specified.</p>
</p></div>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/restore-db-phpmyadmin-4-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/restore-db-phpmyadmin-4-thumb.png" alt="" border="0" class="centered"/></a></p>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-restore-a-database-using-phpmyadmin/">How to Restore a Database Using phpMyAdmin</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Edit .htaccess in cPanel</title>
		<link>https://complete-concrete-concise.com/web-tools/how-to-edit-htaccess-in-cpanel/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Tue, 26 Mar 2013 11:31:29 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[cpanel]]></category>
		<category><![CDATA[edit]]></category>
		<category><![CDATA[how to]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=2719</guid>

					<description><![CDATA[<p>This tutorial is for users whose web hosting administration front end is cPanel version 11.34.1 (build 12). It may be the same or similar for other versions of cPanel or other web hosting administration front ends, but no guarantee is made. Sometimes it is necessary to edit the .htaccess file. By default, cPanel hides this [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-edit-htaccess-in-cpanel/">How to Edit .htaccess in cPanel</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This tutorial is for users whose web hosting administration front end is cPanel version 11.34.1 (build 12).</p>
<p>It may be the same or similar for other versions of cPanel or other web hosting administration front ends, but no guarantee is made.</p>
</div>
<p>Sometimes it is necessary to edit the <code>.htaccess</code> file. By default, cPanel hides this file from the user.</p>
<p><strong>1) Find</strong> the section titled <u>Files</u> and <strong>click</strong> on <u>File Manager</u>:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/edit-htaccess-cpanel.png" alt="" border="0" class="centered"/></p>
<p><strong>2) Select</strong> your website from the dropdown box (only necessary if you have more than one site). <strong>Check</strong> the <u>Show Hidden Files (dotfiles).</u> checkbox. <strong>Press</strong> <u>Go</u>:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/edit-htaccess-cpanel-2.png" alt="" border="0" class="centered"/></p>
<p><strong>3) Select</strong> the <code>.htaccess</code> file by clicking on it (just a single click &#8211; double-clicking will attempt to download it), then <strong>click</strong> on <u>Edit</u> icon to edit the file:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/edit-htaccess-cpanel-3.png" alt="" border="0" class="centered"/></p>
<div class="c4">
<p><strong>Warning:</strong> incorrectly editing <code>.htaccess</code> can render your website unusable.</p>
<p><strong>Ensure</strong> you make a backup of it before proceeding.</p>
</div>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-edit-htaccess-in-cpanel/">How to Edit .htaccess in cPanel</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WordPress &#8211; Preliminary Impressions of Photon in JetPack</title>
		<link>https://complete-concrete-concise.com/blog/wordpress-preliminary-impressions-of-photon-in-jetpack/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Tue, 26 Mar 2013 09:32:09 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[impression]]></category>
		<category><![CDATA[jetpack]]></category>
		<category><![CDATA[photon]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=2714</guid>

					<description><![CDATA[<p>JetPack for WordPress now includes a feature called Photon: Photon works by using wordpress.com to cache and serve up images from your site. Since I am always looking for ways to reduce my bandwidth (and speed up performance), I enabled it. I have observed a reduction in the bandwidth: The 20th, 21st, and 22nd averaged [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/blog/wordpress-preliminary-impressions-of-photon-in-jetpack/">WordPress &#8211; Preliminary Impressions of Photon in JetPack</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>JetPack for WordPress now includes a feature called Photon:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/jetpack-and-photo-2.png" alt="" border="0" class="centered"/></p>
<p>Photon works by using <code>wordpress.com</code> to cache and serve up images from your site.</p>
<p>Since I am always looking for ways to reduce my bandwidth (and speed up performance), I enabled it.</p>
<p>I have observed a reduction in the bandwidth:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/jetpack-and-photon-1-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/jetpack-and-photon-1-thumb.png" alt="" border="0" class="centered"/></a></p>
<p>The 20<sup>th</sup>, 21<sup>st</sup>, and 22<sup>nd</sup> averaged about 3% fewer page hits than on the 25<sup>th</sup> &#8211; but it is obvious that (with Photon enabled) I used less bandwidth on the 25<sup>th</sup> .</p>
<p>The 23<sup>rd</sup> and 24<sup>th</sup> are the weekend, so there is always a drop in traffic. I suspect the spike seen on the 24<sup>th</sup> is related to enabling Photon.</p>
<p>Based on very limited data, Photon appears to be working well and is saving me some bandwidth. It does not require me to change anything about my site (always a serious bonus).</p>
<div class="c1">
<p>One thing I don&#8217;t understand is why there are suddenly more clicks on my images:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/jetpack-and-photon-3.png" alt="" border="0" class="centered"/></p>
<p>As the screen capture shows, in approximately two days, there have been 204 clicks on cached images (the cached images have the URLs <code>i0.wp.com</code>, <code>i1.wp.com</code>, <code>i2.wp.com</code>), whereas, the other 5 days there were only 13 clicks on images on my site.</p>
</p></div>
<div class="c2">
<p><strong>Updated 27-March-2013 @ 14:49</strong></p>
<p>One problem I have noticed while using Photon is that when I update an image on an article (i.e. replace it), the change is not reflected in the cached version.</p>
<p>I tried disabling Photon and then re-enabling it, but it didn&#8217;t pick up the changes.</p>
<p>I will have to see if the changes get picked up at a later time &#8211; at the time of this update, it has been about 3 hours.</p>
</div>

<p>The post <a href="https://complete-concrete-concise.com/blog/wordpress-preliminary-impressions-of-photon-in-jetpack/">WordPress &#8211; Preliminary Impressions of Photon in JetPack</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>How to Backup a Database Using phpMyAdmin</title>
		<link>https://complete-concrete-concise.com/web-tools/how-to-backup-a-database-using-phpmyadmin/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Tue, 26 Mar 2013 05:01:48 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[backup database]]></category>
		<category><![CDATA[export database]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[phpmyadmin]]></category>
		<category><![CDATA[save database]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=2728</guid>

					<description><![CDATA[<p>This tutorial is for phpMyAdmin version 3.5.5. It is probably the same for other versions, but no guarantee is made. Note: the preferred method to backup a database is to use the backup database service provided by your web host. If your web host does not provide such services, then you can use this method [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-backup-a-database-using-phpmyadmin/">How to Backup a Database Using phpMyAdmin</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This tutorial is for phpMyAdmin version 3.5.5.</p>
<p>It is probably the same for other versions, but no guarantee is made.</p>
</div>
<div class="c4">
<p><strong>Note:</strong> the preferred method to backup a database is to use the backup database service provided by your web host.</p>
<p>If your web host does not provide such services, then you can use this method for &#8220;small&#8221; databases.</p>
<p>The definition of &#8220;small&#8221; depends on your <code>php.ini</code> settings.</p>
<p>Because this method uses <code>php</code> to backup a database there are two <code>php</code> limits you need to be aware of:
</p>
<p>1) maximum file upload size: this is controlled by the entry <code>upload_max_filesize = <em>size in bytes</em></code> in <code>php.ini</code>. This is not an issue for backing up the database, but it can be an issue when you try to restore a database (presumably, you backup up a database in case you need to restore it in future).</p>
<p>2) maximum time a php script is allowed to run: this is controlled by the entry <code>max_execution_time = <em>number of seconds</em></code> in <code>php.ini</code>. The larger the database, the more time it takes to traverse it and create a backup.</p>
<p>These settings are usually not accessible to you (especially if you have a shared hosting plan).</p>
<p>In general, these limits should not be an issue for the average personal or small business website.</p>
</div>
<div class="c2">
<p>Images may be clicked for full-sized versions.</p>
</div>
<p><strong>1) Open</strong> your <u>phpMyAdmin</u> panel:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-1-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-1-thumb.png" alt="" border="0" class="centered"/></a></p>
<p><strong>2) Click</strong> on the database you want to backup:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-2-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-2-thumb.png" alt="" border="0" class="centered"/></a></p>
<p><strong>3) Click</strong> on the tab <u>Export</u>:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-3-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-3-thumb.png" alt="" border="0" class="centered"/></a></p>
<p><strong>4) Ensure </strong> that <u>Export Method</u> is <u>Quick</u> and <u>Format</u> is <u>SQL</u>, then <strong>click</strong> on <u>Go</u>:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-4-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/backup-db-phpmyadmin-4-thumb.png" alt="" border="0" class="centered"/></a></p>
<p><strong>5) Save</strong> the resulting file. Depending on which web browser you are using, you may be prompted in various ways to save the file. Save the file in a secure location if you should need to restore it in future.</p>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-backup-a-database-using-phpmyadmin/">How to Backup a Database Using phpMyAdmin</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>When Your Website Stops Working Properly, it may be a Corrupt Database</title>
		<link>https://complete-concrete-concise.com/web-tools/when-your-website-stops-working-properly-it-may-be-a-corrupt-database/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Thu, 14 Mar 2013 01:02:25 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[databse corrupt]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[site broken]]></category>
		<category><![CDATA[site not working]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=2695</guid>

					<description><![CDATA[<p>This tutorial is for people using a web host that uses the cPanel interface (version 11.34.1). Instructions may be the same for other versions or interfaces, but not guarantee is made. When we set up a website, we expect it to keep working. Maybe we have to apply periodic updates and patches, but, in general, [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/when-your-website-stops-working-properly-it-may-be-a-corrupt-database/">When Your Website Stops Working Properly, it may be a Corrupt Database</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This tutorial is for people using a web host that uses the <u>cPanel</u> interface (version 11.34.1).</p>
<p>Instructions may be the same for other versions or interfaces, but not guarantee is made.</p>
</div>
<p>When we set up a website, we expect it to keep working. Maybe we have to apply periodic updates and patches, but, in general, we expect it to keep working.</p>
<p>Unfortunately, after a while, you may find your website, powered by Joomla!, WordPress, Drupal or some other CMS, stops working correctly.</p>
<p>Common symptoms include:</p>
<div class="c1">
<p>I have experienced all these on Joomla! and WordPress powered sites I run.</p>
</div>
<ul>
<li>Some or all of the comments disappear</li>
<li>Some or all of the content disappears</li>
<li>You get database connection errors</li>
<li>Your layout / template starts looking a bit funny</li>
<li>Pages you know exist start generating <code>HTTP 404 Not Found</code> errors</li>
<li>URLs start looking funny</li>
</ul>
<p>A common cause of these problems is a corrupted MySQL database.</p>
<div class="c1">
<p>There may be other reasons for these (and other) problems, but a corrupt database is one of them.</p>
</div>
<h1>Checking if the Database is Corrupted</h1>
<p><strong>1) Log into</strong> your web hosting control panel. This is <u>not</u> your website&#8217;s admin panel. For this tutorial, I am assuming it is <u>cPanel</u>. It might look something like this (this is how mine looks):<br />
<a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-1-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-1-thumb.png" alt="" border="0" class="centered"/></a></p>
<p><strong>2) Click</strong> on <u>MySQL&reg; Databases</u>:<br />
<img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-2.png" alt="" border="0" class="centered"/></p>
<p><strong>3) Locate</strong> the section titled <u>Modify Databases</u>. On the line titled <u>Check DB:</u> <strong>select</strong> the database to check from the dropdown box. <strong>Click</strong> the button <u>Check DB</u> (located on the right side):</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-3-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-3-thumb.png" alt="" border="0" class="centered"/></a></p>
<div class="c1">
<p><strong>Note:</strong> if you only have one website hosted, then choosing the appropriate database is easy. If you have multiple sites, then you will have to figure out which database belongs to which site.</p>
<p>It does not hurt to check them all.</p>
</div>
<p><strong>4) Examine</strong> the report generated. There should be no errors. If there are errors, then your database is corrupted and needs to be repaired.</p>
<div class="c1">
<p><strong>Note:</strong> if your website is a busy website, you may get errors (usually something along the lines of <code>table not closed</code>) because the database is in the middle of being used. If you run the test again and the errors go away, then it probably is because the database was in use and not because the database is corrupted.</p>
</div>
<p>This is an example of a corrupted WordPress database:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-4-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-4-thumb.png" alt="" border="0" class="centered"/></a></p>
<p>This is an example of a corrupted Joomla! database:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-6-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-6-thumb.png" alt="" border="0" class="centered"/></a></p>
<h1>Repairing the Database</h1>
<div class="c4">
<p>This is <u>not</u> the recommended way, but it should work in most cases.</p>
<p>Most often, the problem is not with the actual database itself, but with the index files used to access the database.</p>
<p>You can read more about how it works <a href="http://dev.mysql.com/doc/refman/5.0/en/check-table.html">here</a> (warning, external site).</p>
<p>The preferred method is to restore the corrupted database with an up to date backup of your database. This supposes you have an up to date backup.</p>
</div>
<p><strong>1) Locate</strong> the section titled <u>Modify Databases</u>. On the line titled <u>Repair DB:</u> <strong>select</strong> the database to repair from the dropdown box. <strong>Click</strong> the button <u>Repair DB</u> (located on the right side):</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-5-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-5-thumb.png" alt="" border="0" class="centered"/></a></p>
<p>This will begin a repair operation on the database.</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-8.png" alt="" border="0" class="centered"/></p>
<p>After the operation has completed, check the database again. If there is still a problem, then run <u>Repair DB</u> again. I have, sometimes had to run it twice.</p>
<div class="c2">
<p>Afterwards, it does not hurt to check your site and content to ensure everything is ok. This is a lot of work if you have many articles to check.</p>
</div>
<h1>Restoring the Database from a Backup</h1>
<p><strong>1) Click</strong> on Backups (located on your cPanel home page):</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-9.png" alt="" border="0" class="centered"/></p>
<p><strong>2) Locate</strong> the section called <u>Restore a MySQL Database</u> and <strong>click</strong> on <u>Browse…</u> and select the backup database from your computer. <strong>Click</strong> on <u>Upload</u> to upload the database.</p>
<p>During this process, not much may seem to be happening.</p>
<p>The backup database has to be uploaded from your system to your service provider.</p>
<p>Once it is uploaded to the service provider, the existing database is rebuilt from the uploaded one.</p>
<p>The whole process looks something like this:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-11-big.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2013/03/site-not-working-11-thumb.png" alt="" border="0" class="centered"/></a></p>
<p>What you see happening is a whole bunch of MySQL transactions that delete the contents of the old database and replace it with the contents of the backup database.</p>
<p>If you are interested in database development, this is a good instructional example of some MySQL commands in action.</p>
<div class="c2">
<p>Restoring from backup, means you will lose any changes that occurred from the time of the backup until the time of the database corruption. Normally, this will be things like: comments, registrations, traffic information (if thissort of thing is stored in the database). While these things vary in importance, I believe the most important thing is the content.</p>
</div>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/when-your-website-stops-working-properly-it-may-be-a-corrupt-database/">When Your Website Stops Working Properly, it may be a Corrupt Database</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>XAMPP &#8211; Fixing &#039;Strict Standards&#039; Errors</title>
		<link>https://complete-concrete-concise.com/web-tools/xampp-fixing-strict-standards-errors/</link>
					<comments>https://complete-concrete-concise.com/web-tools/xampp-fixing-strict-standards-errors/#comments</comments>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Thu, 19 Jan 2012 12:27:42 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[1.7.4]]></category>
		<category><![CDATA[1.7.7]]></category>
		<category><![CDATA[errors]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[strict standards]]></category>
		<category><![CDATA[XAMPP]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=1367</guid>

					<description><![CDATA[<p>This tutorial is for XAMPP 1.7.4 and XAMPP 1.7.7. It addresses the problem of many errors being generated by popular PHP applications (notably Joomla!) that you would expect to work, but, instead, generate lots of errors. If you have installed XAMPP 1.7.4 or XAMPP 1.7.7, you may have noticed that some applications (notably Joomla 1.5.x, [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/xampp-fixing-strict-standards-errors/">XAMPP &#8211; Fixing &#039;Strict Standards&#039; Errors</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This tutorial is for XAMPP 1.7.4 and XAMPP 1.7.7.</p>
<p>It addresses the problem of many errors being generated by popular PHP applications (notably Joomla!) that you would expect to work, but, instead, generate lots of errors.</p>
</div>
<p>If you have installed XAMPP 1.7.4 or XAMPP 1.7.7, you may have noticed that some applications (notably Joomla 1.5.x, 1.6.x, and 1.7.x) generate lots of errors along the lines of:</p>
<p><code><strong>Strict Standards:</strong> Accessing static property JCache::$_handler as non static in <strong>C:\xampp\htdocs\joomla\libraries\joomla\cache\cache.php</strong> on line 420</code></p>
<p>This happens because these versions of XAMPP ship with default PHP settings that cause the PHP interpreter to choke on poor programming practices and deprecated (obsolete) language features. For developers, this is a good thing, but for the general user, it causes a lot of grief.</p>
<p><strong>(1) Go</strong> to the php directory under XAMPP. Normally, this would be <strong>C:\XAMPP\php</strong>, but you may have installed it to a different drive or directory (mine is installed in C:\xampp-1.7.4). <strong>Locate</strong> the file named<em><u> php.ini</u></em> . <strong>Open </strong>this file using a plain text editor &#8211; like notepad. Using a word processor (like Word) will very likely seriously corrupt the file. (I use an application called <a href="http://notepad-plus-plus.org/">Notepad++</a>). <strong>Note:</strong> The icon associated with <strong><em>php.ini</em> </strong>will depend on what application is associated with <strong><em>.ini</em></strong> files.</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/xampp-fixing-strict-standards-errors.png" alt="" border="0" class="centered" /></p>
<div class="c1">
<p>The file is 86KB in XAMPP 1.7.4 and 1.7.7.</p>
<p>There are two files called <u><em>php.ini-development</em></u> and <u><em>php.ini-production</em></u>, you might think you could just rename the php.ini file and use the production one, but it doesn&#8217;t work either.</p>
</div>
<p><strong>(2) Find</strong> the line <span class="i1">error_reporting = E_ALL | E_STRICT</span> . In the XAMPP 1.7.4 and 1.7.7, this is line 516:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/xampp-fixing-strict-standards-errors-2.png" alt="" border="0" class="centered" /></p>
<p><strong>(3) Change</strong> the <em>E_ALL | E_STRICT</em> to <strong>E_ALL &#038; ~E_NOTICE &#038; ~E_DEPRECATED</strong>.</p>
<p><strong>(4) Save</strong> the file.</p>
<p><strong>(5) Restart</strong> the Apache server. The easiest way is to open the XAMPP control panel and <strong>click </strong>on the <u>Stop</u> button. Then <strong>click </strong>on <u>Start</u> to restart it. (You could also reboot the computer, but that is not necessary.)</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/xampp-fixing-strict-standards-errors-3.png" alt="" border="0" class="centered" /><br />
</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/xampp-fixing-strict-standards-errors/">XAMPP &#8211; Fixing &#039;Strict Standards&#039; Errors</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://complete-concrete-concise.com/web-tools/xampp-fixing-strict-standards-errors/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>CloudFlare &#8211; A Review</title>
		<link>https://complete-concrete-concise.com/blog/cloudflare-a-review/</link>
					<comments>https://complete-concrete-concise.com/blog/cloudflare-a-review/#comments</comments>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Sun, 15 Jan 2012 12:45:07 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[distributed web hosting]]></category>
		<category><![CDATA[improve page load time]]></category>
		<category><![CDATA[improving performance]]></category>
		<category><![CDATA[reduce bandwidth]]></category>
		<category><![CDATA[review]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=1357</guid>

					<description><![CDATA[<p>This review reflects my experience with CloudFlare&#8216;s free services applied to this website which was powered by WordPress 3.2.1 running on a shared webhost. It looks at the performance for the month of December 2011. The Problem I was Looking to Fix As this site has grown in popularity, it uses more bandwidth. In October [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/blog/cloudflare-a-review/">CloudFlare &#8211; A Review</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>This review reflects my experience with <a href="http://www.cloudflare.com/">CloudFlare</a>&#8216;s free services applied to this website which was powered by WordPress 3.2.1 running on a shared webhost. It looks at the performance for the month of December 2011.</p>
</div>
<h1>The Problem I was Looking to Fix</h1>
<p>As this site has grown in popularity, it uses more bandwidth. In October 2011, this site served up 5.84GB of data. November 2011, I was heading towards 9GB of data served. Currently, this site is hosted on a shared hosting plan with &#8220;unlimited&#8221; bandwidth. Well, nothing is unlimited, and I was concerned that as I used up more bandwidth one of two things would happen: (1) performance would suffer &#8211; since this is running on a shared host, I have to share the server and bandwidth with all the other website running on this host and (2) the host might decide that I&#8217;m using too much bandwidth and would I like to consider upgrading to a (more expensive) plan that better meets my needs.</p>
<div class="c2">
<p>You can read <a href="//complete-concrete-concise.com/blog/estimating-your-web-hosts-limits">this article</a> on how to estimate your webhost&#8217;s &#8220;unlimited&#8221; limits. <strong>NOTE:</strong> In the time since I wrote that article, the bandwidth provided by my webhost has increased to about 200kB/s. The general moral is, if you wait longer enough, your performance is likely to go up.</p>
</div>
<h1>Possible Solutions</h1>
<h3>Move to a dedicated or virtual host</h3>
<p>Dedicated hosting means I would have the server all to myself and (in theory) a direct connection to the Internet.</p>
<p>Virtual hosting means I would still be sharing a server with other websites, but fewer than on a shared host (on a shared host, there can be hundreds or thousands of other websites).</p>
<p><strong></p>
<p>Pros</p>
<p></strong></p>
<p>(1) Better server performance.</p>
<p>(2) Faster connection to the Internet.</p>
<p><strong></p>
<p>Cons</p>
<p></strong></p>
<p>(1) Increased cost.</p>
<p>(2) Have to move the website.</p>
<p>(3) No &#8220;unlimited&#8221; bandwidth. Many plans start with 1-4GB of monthly data transfer and charge for extra usage. More additional costs.</p>
<h3>Move to some sort of cloud service</h3>
<p><strong></p>
<p>Pros</p>
<p></strong></p>
<p>(1) Possibly better server performance.</p>
<p>(2) Possibly faster connection to the Internet.</p>
<p>(3) Likely distributed servers, so if one goes down, your site still stays up. The problem with a single server is if the server goes down or the Internet connection goes down, your site is offline. Moving your site into a &#8220;cloud&#8221; or some other distributed service means you are likely to get better uptime.</p>
<p><strong></p>
<p>Cons</p>
<p></strong></p>
<p>(1) Increased cost.</p>
<p>(2) Have to move the website.</p>
<p>(3) No &#8220;unlimited&#8221; bandwidth. Many plans start with 1-4GB of monthly data transfer and charge for extra usage. More additional costs. While some startup cloud services offer unlimited, because they are new, how long will they be in business? My current host provider has been around for a number of years, so I am not too worried about it going out of business.</p>
<h3>Move images to an image server</h3>
<p>My articles tend to use a lot of images. I could cut down on bandwidth by moving them to an image host &#8211; like flickr, or imageshack, or picassa, or similar services. This means I would leverage their servers to serve up my images.</p>
<p><strong></p>
<p>Pros</p>
<p></strong></p>
<p>(1) Reduced bandwidth. I would be using their bandwidth, not mine, to serve images.</p>
<p>(2) Probably improved performance. Their servers are far more likely than mine to be geared to serving up bandwidth hungry images.</p>
<p><strong></p>
<p>Cons</p>
<p></strong></p>
<p>(1) Images are now hosted somewhere else. Need to get another account (don&#8217;t we already have enough of those?).</p>
<p>(2) If I move my images somewhere else, I have to update ALL my articles to use the new links. Ugh.</p>
<p>(3) Many only offer limited service for free accounts. For example, at this time (January 2012) <a href="http://www.flickr.com/help/limits/">Flickr</a> limits the amount of images you can upload to 300MB per month (ok, that&#8217;s quite generous, currently, I don&#8217;t approach that limit), thus requiring additional expense to upgrade to a better account.</p>
<p>(4) It doesn&#8217;t look very professional if you host to images located elsewhere.</p>
<p>(5) Blogging clients tend to assume you are hosting your images with your content, not somewhere else. This makes uploading and linking to images more of a hassle.</p>
<h1>What CloudFlare Claims</h1>
<p><a href="http://www.cloudflare.com/">http://www.cloudflare.com/</a></p>
<p>When I read what CloudFare offered, it was pretty much what I wanted (aside from sounding too good to be true).</p>
<p>(1) You get to keep your current webhost.</p>
<p>(2) It&#8217;s free (at least the basic service). Nothing better than being able to test drive something before deciding if it&#8217;s worth purchasing or upgrading to.</p>
<p>(3) Improved page load times.</p>
<p>(4) Reduced bandwidth.</p>
<p>(5) Improved website uptime.</p>
<p>(6) Improved security.</p>
<p>I was skeptical, but, (1) it was free and (2) all it required me to do was change my domain name server &#8211; if worse came to worse, I could always change it back and, at most, suffer 1 or 2 days down time with this experiment.</p>
<p><h1>How I Installed CloudFlare&#8217;s Service</h1>
<p>This site (at present) is running on WordPress. I installed the W3 Total Cache plugin and scrolled down to the section titled <u>Network Performance &#038; Security powered by CloudFlare</u> (about 2/3 down the page):</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-2.png" alt="" border="0" class="centered" /></p>
<p>This can be found on <u>General Settings</u> page of the <u>Performance</u> tab:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-1.png" alt="" border="0" class="centered" /></p>
<p>Click on the <u>Sign up now for free</u> link and create an account with CloudFlare. W3 Total Cache will have filled in some information for you. Once your account it set up, you give CloudFlare your website&#8217;s URL and it fills in some information for you.</p>
<p>The only thing I didn&#8217;t like about the CloudFlare setup was after the initial setup page, you get two pages about A records and CNAME records, which, for most users, is over their heads and should probably be hidden behind an <u>Advanced Settings</u> tab. I found no problem in accepting the default values.</p>
<p>CloudFlare will then give you new domain name servers that you will use to update the DNS information with your domain registrar.</p>
<p>Within 24-48 hours, your site will now be augmented with CloudFlare&#8217;s service (the actual time might be shorter, in my case, I noticed switch over after about 4 hours &#8211; the switch over time has nothing to do with CloudFlare and everything to do with how fast the DNS change you made propagates through the entire Internet).</p>
<h1>Results</h1>
<p>How does CloudFlare measure up on its promised results?</p>
<h3>Get to Keep My Current Webhost</h3>
<p>Yes. Trying out CloudFlare just means changing your domain&#8217;s DNS. Other than that, CloudFlare lets you keep your current host.</p>
<h3>Improved Page Load Time</h3>
<div class="c2">
<p>You can read about measuring your website performance <a href="//complete-concrete-concise.com/web-tools/how-to-measure-your-websites-performance">here</a>.</p>
</div>
<p>I didn&#8217;t notice any improvement. I installed W3 Total Cache a week before activating CloudFlare because I wanted to see how page load time differed between (1) out-of-the-box WordPress, (2) WordPress with W3 Total Cache and (3) WordPress with W3 Total Cache and CloudFlare.</p>
<p>W3 Total Cache did improve my page load times over the out-of-the-box WordPress experience. Adding CloudFlare to the mix didn&#8217;t change the performance. This shows that my webhost was already providing me with good bandwidth.</p>
<h3>Reduced Bandwidth</h3>
<p>This is what I was looking for and CloudFlare delivers.</p>
<p>In November 2011, my webhost served up 8.8GB of data for this site. In December 2011, my webhost served up 2.89GB of data for this site &#8211; despite serving 15% more pages in December than November. That works out to a 70% drop in bandwidth consumption on my server. Awesome!</p>
<h3>Improved Uptime</h3>
<p>Early in December, I had a <a href="//complete-concrete-concise.com/wordpress-2/wordpress-error-404-not-found-when-trying-to-login">problem with logging into my WordPress account</a> and during the course of troubleshooting, I took the site offline.</p>
<p>I was delighted to discover that even though I had taken my site offline, CloudFlare continued to serve up my webpages &#8211; or, at least, the webpages it had cached. This means that even if my server goes down for some reason, CloudFlare will continue to serve up, at least, the most popular pages from its cache. Pages which are not in its cache, will not be served up.</p>
<p>This is an excellent bonus I was not looking for.</p>
<p>Since this site is about content, having improved content availability is significant.</p>
<p>If your server goes down and the page is not in CloudFlare&#8217;s cache, the following message is displayed (click for larger image):</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-4-large.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-4-thumb.png" alt="" border="0" class="centered" /></a></p>
<h3>Improved Security</h3>
<p>This is hard to answer. I don&#8217;t think I was ever subject to attacks from malicious websites, so whether CloudFlare protects me from them is something I can&#8217;t say.</p>
<p>When you look at visitor stats from CloudFlare&#8217;s control panel, it shows the number of safe visitors and the number of threats blocked. Since I was not aware of these threats beforehand, I can&#8217;t comment on it.</p>
<p>If someone visits your site from a flagged IP, then CloudFlare will display them a challenge screen similar to this one (click for larger image):</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-3-large.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-3-thumb.png" alt="" border="0" class="centered" /></a></p>
<h1>Conclusion</h1>
<p>I am delighted with CloudFlare. It does exactly what I needed it to do (reduce bandwidth usage on my host). The installation is simple. I didn&#8217;t need to make any changes to my website or hosting (aside from changing my name server). And it gave me the added bonus of improving my site&#8217;s (perceived) uptime (at least for popular pages) by continuing to serve up my content.</p>
<p>It does not affect the information delivered by JetPack Site Stats or Google&#8217;s Analytics. I continue to get information on where visitors come from, what keywords were used, etc. I was concerned that I might find all my traffic was coming from CloudFlare, but this is not the case. CloudFlare is completely transparent.</p>
<p>CloudFlare also provides its own site stats. One nice thing about them is that I can see the previous days stats hour by hour &#8211; which gives finer resolution that Site Stats&#8217; or Analytics&#8217; daily resolution. It also shows you the number of visitors from sites perceived as threats (red line). The image below shows yesterdays visits, hour by hour (click for larger image):</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-5-large.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-5-thumb.png" alt="" border="0" class="centered" /></a></p>
<p>CloudFlare also tells you the last time search engines crawled your site (which means you don&#8217;t have to estimate it like <a href="//complete-concrete-concise.com/web-tools/determining-the-last-time-google-indexed-your-website">this</a>):</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/cloudflare-review-6.png" alt="" border="0" class="centered" /></p>
<p>The only criticism I have of it is that they can make the sign up process easier by hiding pages 2 and 3 of the sign up process behind an &#8220;Advanced Settings&#8221; link or tab because most average users (1) will not understand it and (2) will use the defaults anyway.</p>
<p>CloudFlare can be found <a href="http://www.cloudflare.com/">here</a>.</p>

<p>The post <a href="https://complete-concrete-concise.com/blog/cloudflare-a-review/">CloudFlare &#8211; A Review</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://complete-concrete-concise.com/blog/cloudflare-a-review/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>How to Measure Your Website&#039;s Performance</title>
		<link>https://complete-concrete-concise.com/web-tools/how-to-measure-your-websites-performance/</link>
		
		<dc:creator><![CDATA[richardsplanet]]></dc:creator>
		<pubDate>Thu, 05 Jan 2012 20:42:25 +0000</pubDate>
				<category><![CDATA[Web Tools]]></category>
		<category><![CDATA[all about site]]></category>
		<category><![CDATA[allaboutsite]]></category>
		<category><![CDATA[page load time]]></category>
		<category><![CDATA[pingdom]]></category>
		<category><![CDATA[site speed]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[web page test]]></category>
		<category><![CDATA[webpagetest]]></category>
		<category><![CDATA[website speed]]></category>
		<guid isPermaLink="false">http://complete-concrete-concise.com/?p=1343</guid>

					<description><![CDATA[<p>A fast loading website gives users of your site a better experience and leaves them with a better impression of your content than a site that is slow and sluggish to load. Nobody wants to wait 30 seconds for a page to load. The problem is how to measure it. Factors affecting page load time [&#8230;]</p>
<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-measure-your-websites-performance/">How to Measure Your Website&#039;s Performance</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="c1">
<p>A fast loading website gives users of your site a better experience and leaves them with a better impression of your content than a site that is slow and sluggish to load. Nobody wants to wait 30 seconds for a page to load.</p>
<p>The problem is how to measure it.</p>
</div>
<h1>Factors affecting page load time</h1>
<p>The following factors affect the performance of your site:</p>
<ol>
<li><strong>Server Performance:</strong> How quickly your web can server serve up your content. If you are on a dedicated server (most expensive), then you are the only one using the server&#8217;s resources. If you are on a virtual host (less expensive), then you share the server with a number of other websites. If you are on a shared host (this is  usually the lowest cost hosting package &#8211; most &#8220;unlimited&#8221; web hosting package fall into this category) then you share your server with hundreds or maybe thousands of other web sites.</li>
<li><strong>Server Bandwidth to the Internet:</strong> How fast your server&#8217;s connection is to the Internet. Faster connections, generally, cost more. If you have virtual or shared hosting, then that bandwidth is shared among all sites on that server.</li>
<li><strong>The Internet:</strong> Performance depends on how quickly the Internet can route the information to the visitor. How many hops does it take? What is the bandwidth of each of the connections? Is there a lot of traffic on the Internet at the moment? Have some parts of the Internet gone down and traffic is being rerouted through other channels?</li>
<li><strong>The User&#8217;s Bandwidth:</strong> How fast the user&#8217;s connection to the Internet is. Somebody on a 56k dial-up connection is going to experience slower performance than someone with a 10Mb/s adsl connection.</li>
<li><strong>The User&#8217;s Browser:</strong> Some browsers are faster than others. Performance factors in browsers includes: how quickly does it decode images, how quickly does it rescale images to fit in a page, how efficient is the javascript engine, how efficient is the DOM tree, etc.</li>
</ol>
<p>The last three items are pretty much out of control and affect all websites more or less equally.</p>
<h1>Tools for measuring your website&#8217;s speed</h1>
<div class="c1">
<p>There is a great deal of variability in measuring your website&#8217;s performance. Different tools will report different results. Performance will vary throughout the day. For example, if most traffic to your website comes from Canada, it is reasonable that during peak Internet hours, measured performance will be slower than if measured during off-peak hours (when most Canadians are sleeping &#8211; say midnight to 6AM). </p>
<p>These are not listed in any ranked manner.</p>
</div>
<h2>All About Site</h2>
<div class="c4">
<p>I no longer recommend this site because it has been broken for months and, lately, my anti-virus has been complaining about some of the ads on the site.</p>
<p>This is too bad because it was a nice all in one site.</p>
</div>
<p><del></p>
<p><a href="http://allaboutsite.com">http://allaboutsite.com</a></p>
<p><p>This site will retrieve a range of information about your site (page ranking, links, tweets, etc), as well as provide a site load time. I find <strong>All About Site</strong> reports the fastest performance number. You can run tests once every 24 hours. Below is a fragment of the information it provides:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-1.png" alt="" border="0" class="centered" /></p>
<p></del></p>
<h2>Pingdom</h2>
<p><a href="http://tools.pingdom.com/fpt/">http://tools.pingdom.com/fpt/</a></p>
<p>Pingdom is probably the best known tool for measuring web page load times. <strong>Clicking</strong> on <u>Settings</u> allows you to select which server you want to run your test from &#8211; this is useful because performance will vary depending on which server your choose:</p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-2.png" alt="" border="0" class="centered" /></p>
<p>They provide a neat little summary and below that a number of tabs that let you examine your website&#8217;s performance numbers in more detail. They also store the history of you performance tests, so you can see if changes you make are having an impact or not. <span class="i1"><strong>NOTE:</strong> the history information is not kept indefinitely. It seems that after a month or so they delete it.</span></p>
<p><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-3.png" alt="" border="0" class="centered" /></p>
<h2>WebPageTest</h2>
<p><a href="http://www.webpagetest.org/compare">http://www.webpagetest.org/compare</a></p>
<div class="c1">
<p>Images may be clicked for larger versions.</p>
</div>
<p>This is the newest tool and is provided by Google to promote their new (but still not widely available) CDN (Content Distributed Network) service. It measure the performance of your site versus your site being served up using their CDN. It is also the slowest, with the estimated time to completion being displayed at the bottom of the dialog.</p>
<p>It offers the widest testing options of any online speed test. You can choose from many different servers, or customize everything by selecting <strong><u>More Configurations</u></strong> from the drop down menu:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-4-large.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-4-thumb.png" alt="" border="0" class="centered" /></a></p>
<p>You can choose from a variety of locations to run the test.Some locations allow you to choose which browser you wish to test with (IE7, IE8, Chrome, Firefox). You can also configure the type of connection the user has:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-5-large.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-5-thumb.png" alt="" border="0" class="centered" /></a></p>
<p>Once done, it presents with some basic info on page load time, the time to repeat the page load, page load times with optimization and the speed up (in green) or slowdown (in red). You can also watch a side-by-side video of your original page loading and your page loading via Google CDN:</p>
<p><a href="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-6-large.png" target="_blank"><img decoding="async" src="//complete-concrete-concise.com/wp-content/uploads/2012/01/measure-website-performance-6-thumb.png" alt="" border="0" class="centered" /></a></p>
<div class="c2">
<p>Note: I already use CloudFlare to improve my site&#8217;s performance, so it is not surprising that Google&#8217;s CDN was not able to improve on it. However, testing with sites I do not use CloudFlare on, did show improvement.</p></div>
<h1>Final Words</h1>
<p>Page load speed varies widely depending on the tool being used &#8211; this site&#8217;s reported page load times varied from half a second to four seconds depending on which tool I used.</p>
<p>It is best to take these numbers with a large pinch of salt and use them to guide improvements to your site performance, instead of taking them as an absolute value.</p>

<p>The post <a href="https://complete-concrete-concise.com/web-tools/how-to-measure-your-websites-performance/">How to Measure Your Website&#039;s Performance</a> appeared first on <a href="https://complete-concrete-concise.com">Complete, Concrete, Concise</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
