<?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>Konstruktors&#187; php</title>
	<atom:link href="http://konstruktors.com/blog/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://konstruktors.com</link>
	<description>Web Design, WordPress and Performance Services</description>
	<lastBuildDate>Thu, 09 Feb 2012 11:47:41 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19861</generator>
	<atom:link rel='hub' href='http://konstruktors.com/?pushpress=hub'/>
		<item>
		<title>Self-hosted HTML5 Notepad App With&#160;Synchronization</title>
		<link>http://konstruktors.com/blog/the-web/2991-hosted-html5-notepad-app-sync/</link>
		<comments>http://konstruktors.com/blog/the-web/2991-hosted-html5-notepad-app-sync/#comments</comments>
		<pubDate>Fri, 27 May 2011 09:41:03 +0000</pubDate>
		<dc:creator>Kaspars</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[localstorage]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://konstruktors.com/?p=2991</guid>
		<description><![CDATA[Ever since the days of Google Gears which enabled local storage and offline syncing for online applications such as Google Reader and Docs, I have always wished for a very simple and instantly accesible notepad application that I could host on my server and use also without an internet connection. A place where I could instantly write down [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since the days of Google Gears which enabled local storage and offline syncing for online applications such as Google Reader and Docs, I have always wished for <strong>a very simple and instantly accesible notepad application that I could host on my server and use also without an internet connection</strong>. A place where I could instantly write down an idea or paste a link or a quote from an article.</p>
<p>Google Docs and Evernote is great but they have way more features than I would normally use. WordPress is fine, but it takes several steps to get to the actual writing, and you must be connected to the internet to use it.</p>
<h3>The Solution</h3>
<p>Now that we have HTML5 with support for <code>localStorage</code> and offline apps in all of the modern browsers, it seems to be the perfect solution. All that is needed is a little PHP script that <strong>synchronizes</strong> the content of <code>localStorage</code> with the server. Here is how it looks:</p>
<p style="text-align: center;"><a href="http://konstruktors.com/wp-content/uploads/2011/05/hifive.png" rel="fancybox"><img class="aligncenter size-medium wp-image-2976" title="Self-hosted HTML5 Notepad (with Sync)" src="http://konstruktors.com/wp-content/uploads/2011/05/hifive-500x304.png" alt="" width="500" height="304" /></a></p>
<p>You have your files on the left and a very big plain text editor on the right.</p>
<h3>How Does it Work</h3>
<p>The app consists of the following:</p>
<ul>
<li>One HTML file with enabled offline access (cache manifest).</li>
<li>jQuery for all the Javascript and AJAX magic.</li>
<li>One PHP file with HTTP authentication for syncing with the server.</li>
</ul>
<p>The files are stored in browser&#8217;s <code>localStorage</code> as key/value pairs with a unique timestamp ID as key and JSON formated content as value. An index of all files and their version timestamps is kept and used for synchronization during which all the content of <code>localStorage</code> is sent to <code>sync.php</code> in a POST request. The server reads its own index file and determines which new or edited entries need to be stored and which returned to the browser. All entries are stored on the server as JSON strings in simple text files.</p>
<h3>Demo, Download and Installation</h3>
<p>Please visit the <a href="http://konstruktors.com/projects/html5-notepad/">project page of the HTML5 Notepad App</a>. There is also a sample Chrome app.</p>
<h4>Related posts</h4><ol>
<li><a href='http://konstruktors.com/blog/wordpress/2538-automatic-updates-for-plugins-and-themes-hosted-outside-wordpress-extend/' rel='bookmark' title='Automatic Updates for Plugins and Themes Hosted Outside WordPress&nbsp;Extend'>Automatic Updates for Plugins and Themes Hosted Outside WordPress&nbsp;Extend</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://konstruktors.com/blog/the-web/2991-hosted-html5-notepad-app-sync/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Simple PHP Utility to Migrate Emails Between Two IMAP/POP&#160;Accounts</title>
		<link>http://konstruktors.com/blog/the-web/2915-php-migrate-emails-imap-pop/</link>
		<comments>http://konstruktors.com/blog/the-web/2915-php-migrate-emails-imap-pop/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 18:53:46 +0000</pubDate>
		<dc:creator>Kaspars</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://konstruktors.com/?p=2915</guid>
		<description><![CDATA[I wrote this little (quick &#38; dirty) PHP command line utility to migrate around 10 email accounts from my IMAP server to Google Apps. Related posts How to Add Simple Google Site Search to Any&#160;Website OpenID Plugin and WordPress&#160;2.8 Self-hosted HTML5 Notepad App With&#160;Synchronization]]></description>
			<content:encoded><![CDATA[<p>I wrote this <a title="Migrate / transfer email from IMAP/POP to Google Apps" href="http://t.co/9qrMZZU">little (quick &amp; dirty) PHP command line utility</a> to migrate around 10 email accounts from my IMAP server to Google Apps.</p>
<h4>Related posts</h4><ol>
<li><a href='http://konstruktors.com/blog/web-design/2865-how-to-add-google-site-search/' rel='bookmark' title='How to Add Simple Google Site Search to Any&nbsp;Website'>How to Add Simple Google Site Search to Any&nbsp;Website</a></li>
<li><a href='http://konstruktors.com/blog/wordpress/1241-openid-plugin-and-wordpress-2-8/' rel='bookmark' title='OpenID Plugin and WordPress&nbsp;2.8'>OpenID Plugin and WordPress&nbsp;2.8</a></li>
<li><a href='http://konstruktors.com/blog/the-web/2991-hosted-html5-notepad-app-sync/' rel='bookmark' title='Self-hosted HTML5 Notepad App With&nbsp;Synchronization'>Self-hosted HTML5 Notepad App With&nbsp;Synchronization</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://konstruktors.com/blog/the-web/2915-php-migrate-emails-imap-pop/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enable WordPress Plugin, Theme Updates and Pretty Permalinks on&#160;Nginx</title>
		<link>http://konstruktors.com/blog/wordpress/2885-enable-plugin-theme-updates-and-pretty-permalinks-nginx/</link>
		<comments>http://konstruktors.com/blog/wordpress/2885-enable-plugin-theme-updates-and-pretty-permalinks-nginx/#comments</comments>
		<pubDate>Tue, 22 Feb 2011 18:47:42 +0000</pubDate>
		<dc:creator>Kaspars</dc:creator>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://konstruktors.com/?p=2885</guid>
		<description><![CDATA[WordPress doesn&#8217;t know that your Nginx web server is capable of doing URL rewrites without mod_rewrite and Apache, so we explain that by adding: add_filter('got_rewrite', 'nginx_has_rewrites'); function nginx_has_rewrites() { return true; } in your theme&#8217;s functions.php. It is very likely that along Nginx you are also running PHP-FPM for all your PHP needs, and for [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress doesn&#8217;t know that your Nginx web server is capable of doing URL rewrites without <code>mod_rewrite</code> and Apache, so we explain that by adding:</p>
<pre><code>add_filter('got_rewrite', 'nginx_has_rewrites');
function nginx_has_rewrites() {
	return true;
}</code></pre>
<p>in your theme&#8217;s <code>functions.php</code>.</p>
<p>It is very likely that along Nginx you are also running PHP-FPM for all your PHP needs, and for some reason WordPress thinks its PHP process can&#8217;t write to disk. We tell WordPress that it can:</p>
<pre><code>add_filter('filesystem_method', 'nginx_make_filesystem_direct');
function nginx_make_filesystem_direct() {
	return 'direct';
}</code></pre>
<h4>Related posts</h4><ol>
<li><a href='http://konstruktors.com/blog/wordpress/1660-enable-automatic-updates-for-plugins-hosted-by-developers/' rel='bookmark' title='Enable Automatic Updates for Plugins Hosted by&nbsp;Developers'>Enable Automatic Updates for Plugins Hosted by&nbsp;Developers</a></li>
<li><a href='http://konstruktors.com/blog/wordpress/2040-notes-on-the-2010-wordpress-theme/' rel='bookmark' title='Notes on the 2010 WordPress&nbsp;Theme'>Notes on the 2010 WordPress&nbsp;Theme</a></li>
<li><a href='http://konstruktors.com/blog/wordpress/69-got-permalinks-broken-after-the-latest-wordpress-update/' rel='bookmark' title='Got permalinks broken after the latest WordPress&nbsp;update'>Got permalinks broken after the latest WordPress&nbsp;update</a></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://konstruktors.com/blog/wordpress/2885-enable-plugin-theme-updates-and-pretty-permalinks-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse PHP Development Tools (PDT) Video&#160;Tutorials</title>
		<link>http://konstruktors.com/blog/web-design/193-eclipse-php-development-tools-pdt-video-tutorials/</link>
		<comments>http://konstruktors.com/blog/web-design/193-eclipse-php-development-tools-pdt-video-tutorials/#comments</comments>
		<pubDate>Thu, 03 Apr 2008 14:50:37 +0000</pubDate>
		<dc:creator>Kaspars</dc:creator>
				<category><![CDATA[Web Design]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://konstruktors.com/blog/?p=193</guid>
		<description><![CDATA[The authors of PHPDeveloperBlog.com (currently unavailable) have put up two introductory screencasts on how to get started with Eclipse PDT: Part 1 and Part 2. (via pup.lv)]]></description>
			<content:encoded><![CDATA[<p><a title="View the Eclipse PDT tutorials" href="http://youtube.com/watch?v=VRFZpk-YHl4"><img class="size-medium wp-image-194 alignright" title="PHP Tutorial Screenshot" src="http://konstruktors.com/wp-content/uploads/2008/04/php-tutorial-screenshot.png" alt="PHP Tutorial Screenshot" width="60" height="45" /></a> The authors of PHPDeveloperBlog.com (currently unavailable) have put up two introductory screencasts on how to get started with <strong><a title="Get your copy of the free Eclipse PDT" href="http://www.zend.com/en/community/pdt">Eclipse <abbr title="PHP Development Tools">PDT</abbr></a></strong>: <a title="View Part 1: PHP Tutorial: Using Eclipse+PDT as a PHP IDE" href="http://youtube.com/watch?v=VRFZpk-YHl4">Part 1</a> and <a title="View Part 2: PHP Tutorial: Using Eclipse+PDT as a PHP IDE" href="http://youtube.com/watch?v=x8WnciHjXco">Part 2</a>. (via <a title="Read the source, in latvian." href="http://www.pup.lv/2008/04/03/kapec-zala-gaisma-eclipsepdt/">pup.lv</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://konstruktors.com/blog/web-design/193-eclipse-php-development-tools-pdt-video-tutorials/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
