<?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>mFabrik - mobile sites, apps, HTML5 and CMS software development &#187; php</title>
	<atom:link href="http://blog.mfabrik.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.mfabrik.com</link>
	<description>Freedom delivered.</description>
	<lastBuildDate>Wed, 03 Aug 2011 09:47:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Reducing MySQL memory usage on Ubuntu / Debian Linux</title>
		<link>http://blog.mfabrik.com/2011/03/31/reducing-mysql-memory-usage-on-ubuntu-debian-linux/</link>
		<comments>http://blog.mfabrik.com/2011/03/31/reducing-mysql-memory-usage-on-ubuntu-debian-linux/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 10:56:46 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[memory]]></category>
		<category><![CDATA[mtop]]></category>
		<category><![CDATA[ram]]></category>
		<category><![CDATA[res]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[virt]]></category>
		<category><![CDATA[virtual memory]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1149</guid>
		<description><![CDATA[If you are running your services on a low end virtual hosting every byte of memory you can save is important. The memory is often the limiting factor of how many applications you can run on VPS: CPUs are shared, memory not, on the same physical host. Low-end VPS come with 512 MB memory or [...]]]></description>
			<content:encoded><![CDATA[<p>If you are running your services on a low end virtual hosting every byte of memory you can save is important. The memory is often the limiting factor of how many applications you can run on VPS: CPUs are shared, memory not, on the same physical host.</p>
<ul>
<li>Low-end VPS come with 512 MB memory or less</li>
<li>Front front-end server Apache / Nginx / Varnish takes &gt; 100 MB +  min. 20 MB for each child process</li>
<li>Memecached takes its toll</li>
<li>MySQL takes 200 &#8211; 400 MB</li>
<li>Each Python / PHP process takes at least 15 MB and you need parallel processes for paraller HTTP requests (FCGI, pre-fork, others&#8230; )</li>
<li>Operating system processes need some memory (SSH, cron, sendmail)</li>
</ul>
<p>As you can see it gets very crowded in 512 MB.</p>
<p>It&#8217;s especially troublesome since the memory is allocated lazily and the memory usage builds up slowly. In some point caches are no longer caches, but swapped to a disk &#8211; virtual memory usage grows beyond available RAM. To keep the server response, everything time critical should fit to RAM once and if the processes themselves don&#8217;t know how to release memory in this situation you need to tune a memory cap for them.</p>
<h2>MySQL memory consumption</h2>
<p>MySQL can be a greedy bastard what comes to memory consumption. Here on this server MySQL seems to take 417M virtual memory which seems to be little excessive for just running two WordPress instances and one Django / Python application:</p>
<pre>1310 mysql     20   0  417M 21100  2776 S  0.0  1.2  0:00.00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/v</pre>
<p>After some tuning I was able to bring it down a bit</p>
<pre>3354 mysql     20   0  276m  19m 2848 S    0  1.2   3:41.19 mysqld</pre>
<p>A reduction of 130 MB, or 1/4 of the server total memory. Not bad.</p>
<p><a href="http://ubuntu-snippets.blogspot.com/2009/02/mtop-mysql-monitor.html">Use mtop to monitor running MySQL</a>, its querieries, etc. so you know what&#8217;s going on. As you can see this MySQL has very good cache rate meaning that basically it is keeping everything in memory. If the content of the sites is less than 10 MBytes total, 400 MB contains plenty of space to cache the content:</p>
<pre>load average: 0.05, 0.08, 0.16 mysqld 5.0.51a-3ubuntu5.8-log up 1 day(s), 19:47 hrs                                                             
2 threads: 1 running, 6 cached. Queries/slow: 187.1K/0 Cache Hit: 99.39%</pre>
<h2>What eats memory</h2>
<p>I am not an expert on MySQL, so I hope someone with more insight could post comments regarding how to tune MySQL for low memory situations and how it is expected to behave.</p>
<p>Some ideas I run through my head</p>
<ul>
<li>MySQL default cache settings are not too tight on Ubuntu/Debian, making it suitable for moderate loads, not low loads. If you don&#8217;t have much content, everything is just kept in memory (even if not needed)</li>
<li>MySQL uses round robin for connections and if there is 100 max connections it will allocate a thread stack for each connection (someone please confirm this &#8211; I found contracting infos).</li>
</ul>
<h2>Configuring MySQL</h2>
<p>Here are listed some methods how to reduce the memory usage. This is what I done on this little box</p>
<p>MySQL is mostly configured in <em>/etc/mysql/my.cnf</em> on Ubuntu / Debian.</p>
<ul>
<li>Let&#8217;s halve key_buffer from 16M to 8M. <a href="http://dev.mysql.com/doc/refman/5.0/en/myisam-key-cache.html">It is used by MyISAM table cache</a>.</li>
<li>Halve <a href="http://techgurulive.com/2010/10/20/query_cache_size-tuning-optimizing-my-cnf-file-for-mysql/">query_cache_size</a>. query_cache_size  = 8M. Also, decrease query_cache_limit to 512 K.</li>
<li><a href="http://www.mysqlperformanceblog.com/2006/05/17/mysql-server-memory-usage/">Each connection, even if idle, will have 256 KB buffer</a>. Decrease the number of max. connections. (XXX: not sure about this). Drop max connections from 100 -&gt; 30, as we do not have that many concurrent visitors on the site. Also, set less aggressive thread_stack size.</li>
</ul>
<p>The final adjustments</p>
<pre>key_buffer              = 8M
max_connections         = 30
query_cache_size        = 8M
query_cache_limit       = 512K
thread_stack            = 128K</pre>
<h2>More info</h2>
<ul>
<li><a href="http://www.zimbio.com/Linux/articles/692/Fine+Tuning+MYSQL+Reducing+Memory+Usage">Fine-tuning MySQL</a></li>
<li><a href="http://www.electrictoolbox.com/mysql-table-storage-engine/">Showing what database engine MySQL tables are using</a></li>
<li><a href="http://www.mysqlperformanceblog.com/2006/05/17/mysql-server-memory-usage/">MySQL server memory usage</a></li>
<li><a href="http://www.lowendbox.com/blog/reducing-mysql-memory-usage-for-low-end-boxes/">Reducing MySQL memory usage for low end boxes</a></li>
</ul>
<p>Send in more tips please! Is 32-bit better than 64-bit for low end VPS, how much this affects MySQL?
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/03/31/reducing-mysql-memory-usage-on-ubuntu-debian-linux/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Copy/move phpBB3 forum from a server to another computer (Ubuntu/Linux)</title>
		<link>http://blog.mfabrik.com/2011/03/30/copymove-phpbb3-forum-from-a-server-to-another-computer-ubuntulinux/</link>
		<comments>http://blog.mfabrik.com/2011/03/30/copymove-phpbb3-forum-from-a-server-to-another-computer-ubuntulinux/#comments</comments>
		<pubDate>Wed, 30 Mar 2011 13:40:11 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apache2ctl]]></category>
		<category><![CDATA[copy]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[hosts]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[move]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[mysqldump]]></category>
		<category><![CDATA[phpbb]]></category>
		<category><![CDATA[phpbb3]]></category>
		<category><![CDATA[server]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1179</guid>
		<description><![CDATA[Here are short instructions what you need to do in order to move / copy phpBB3 forum. Prerequisites What you need in order to benefit from these instructions Basic UNIX command-line knowledge SSH access to the server MySQL access to the database LAMP stack ready on the new server These instructions have been tested on [...]]]></description>
			<content:encoded><![CDATA[<p>Here are short instructions what you need to do in order to move / copy phpBB3 forum.</p>
<h2>Prerequisites</h2>
<p>What you need in order to benefit from these instructions</p>
<ul>
<li>Basic UNIX command-line knowledge</li>
<li>SSH access to the server</li>
<li>MySQL access to the database</li>
<li>LAMP stack ready on the new server</li>
</ul>
<p>These instructions have been tested on Ubuntu/Debian/Linux but they should work in other environments too.</p>
<h2>Write down database access information</h2>
<p>Get password from config.php file on the old server:</p>
<pre>cd /var/www/phpBB3
cat config.php</pre>
<p>Write down database name, username and password.</p>
<h2>Copy files</h2>
<p>Use rsync to remotely copy forum files to a new computer. On new computer, in /var/www folder</p>
<pre>rsync -av --compress-level=9 user@oldserver.com:/var/www/phpBB3 .</pre>
<h2>Dump and copy database</h2>
<p>Execute the following command on the new server. It takes SSH connection to the old server and dumps phpBB3 database to the new server over the SSH connection.</p>
<pre>ssh user@oldserver.com -C -o CompressionLevel=9 mysqldump -u databaseuser --password=databasepassword --skip-lock-tables --add-drop-table databasename &gt; phpbb3.sql</pre>
<h2>Create a new database</h2>
<p>Use the old access information from config.php to create a database with identical access information on the new server. You need a MySQL root access to create new databases.</p>
<pre>mysql -uroot -p</pre>
<p>Create database and grant access to phpBB3 user for it.</p>
<pre>mysql&gt; create database databasename;</pre>
<pre>mysql&gt; GRANT ALL ON databasename.* TO 'databaseuser'@'localhost' identified by 'databasepassword';</pre>
<p>Load the database on the new server from the dump file:</p>
<pre>mysql&gt; connect databasename;</pre>
<pre>mysql&gt; source phpbb3.sql</pre>
<h2>Configure Apache virtualhost for the new server</h2>
<p>The last step is to set-up Apache virtual host on the new server, so you can access the phpBB3 using a domain name. Note that this doesn&#8217;t need to be a real domain name, but you can spoof the domain name using /etc/hosts file on your local workstation.</p>
<p>Add file <em>/etc/apache2/sites-enabled/phpbb3.conf</em> (or pick a filename based on forum name if you host multiple forums)</p>
<pre>&lt;VirtualHost *&gt;
 ServerName yourdomainname.com

 DocumentRoot /var/www/phpBB3
 &lt;Directory /&gt;
   Options FollowSymLinks
   AllowOverride None
 &lt;/Directory&gt;

&lt;/VirtualHost&gt;</pre>
<p>Note that &lt;virtualhost *&gt; may change depending on how Apache has been set up to listen IP addresses and ports. Also if you are using a shared hosting package or VPS you might need to use the server control panel (cPanel) to do this step.</p>
<p>Then check if your new config file is ok and restart Apache:</p>
<pre>apache2ctl configtest
apache2ctl graceful</pre>
<h2>Hosts spoofing trick</h2>
<p>If you are not having a DNS server of your own which you can use for the copy you can always use <a href="http://webandmobile.mfabrik.com/docs/web-and-mobile/user-manual/installation#modifying-your-local-hosts-file">/etc/hosts file trick </a>to spoof domain names. This way you can make Apache to serve the forum from the server even if the forum is not connected to any real domain name yet.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/03/30/copymove-phpbb3-forum-from-a-server-to-another-computer-ubuntulinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enable PHP log output (error_log) on XAMPP on OSX</title>
		<link>http://blog.mfabrik.com/2011/03/16/enable-php-log-output-error_log-on-xampp-on-osx/</link>
		<comments>http://blog.mfabrik.com/2011/03/16/enable-php-log-output-error_log-on-xampp-on-osx/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 21:29:18 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[error_log]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[php.ini]]></category>
		<category><![CDATA[tail]]></category>
		<category><![CDATA[xampp]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1124</guid>
		<description><![CDATA[If you are using XAMPP to develop PHP software (WordPress, Joomla!) on OSX you might want to get some advanced logging output from your code. PHP provides nice error_log() function, but it is silent by default. Here are short instructions how to enable it and follow the log. Use your favorite editor to edit php.ini [...]]]></description>
			<content:encoded><![CDATA[<p>If you are using <a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a> to develop PHP software (WordPress, Joomla!) on OSX you might want to get some advanced logging output from your code. PHP provides nice <a href="http://php.net/manual/en/function.error-log.php">error_log</a>() function, but it is silent by default. Here are short instructions how to enable it and follow the log.</p>
<p>Use your favorite editor to edit php.ini file in <em>/Applications/XAMPP/etc/php.ini</em> &#8211; sudo priviledges needed, <a href="http://www.peterborgapps.com/smultron/">Smultron</a> does it out of the box.</p>
<p>Change lines:</p>
<pre>log_errors = Off</pre>
<pre>;error_log = filename</pre>
<p>To:</p>
<pre>log_errors = on</pre>
<pre>error_log = /tmp/php.log</pre>
<p>Restart Apache using <em>XAMPP controller</em> in <em>Finder -&gt; Applications</em>.</p>
<p>Now use the following UNIX command to see continuous log flow in your terminal:</p>
<pre>tail -f /tmp/php.log
</pre>
<p>See also the earlier article about <a href="http://blog.mfabrik.com/2010/12/22/local-xampp-development-and-unix-file-permissions/">XAMPP and file permissions</a>.
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/03/16/enable-php-log-output-error_log-on-xampp-on-osx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ghetto logging for PHP</title>
		<link>http://blog.mfabrik.com/2011/03/03/ghetto-logging-for-php/</link>
		<comments>http://blog.mfabrik.com/2011/03/03/ghetto-logging-for-php/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 12:49:55 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[file_put_contents]]></category>
		<category><![CDATA[logging]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1051</guid>
		<description><![CDATA[In the case you need to quickly see if certain code path is executed on a production server for which config cannot be changed. file_put_contents("/tmp/log.txt", "this is a test entry\n"); The proper method would be Configure error log in php.ini Use error_log() &#8230;. or use logging facility of your PHP framework Get developers  Subscribe mFabrik [...]]]></description>
			<content:encoded><![CDATA[<p>In the case you need to quickly see if certain code path is executed on a production server for which config cannot be changed.</p>
<pre>file_put_contents("/tmp/log.txt", "this is a test entry\n");</pre>
<p>The proper method would be</p>
<ul>
<li>Configure error log in php.ini</li>
<li>Use error_log()</li>
<li>&#8230;. or use logging facility of your PHP framework</li>
</ul>
<p class="signature">
<a href="http://mfabrik.com/@@zoho-contact-form"><img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/mfabrik-24.png"></a> <a href="http://mfabrik.com/@@zoho-contact-form">Get developers</a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml"><img valign="middle" src="http://www.feedburner.com/fb/images/pub/feed-icon16x16.png" alt="" style="vertical-align:middle;border:0"/></a> <a href="http://feeds.feedburner.com/mFabrikWebAndMobileDevelopment" rel="alternate" type="application/rss+xml">Subscribe mFabrik blog in a reader</a> <a href="http://twitter.com/mfabrik"> <img valign="middle"  src="http://blog.mfabrik.com/wp-content/uploads/twitter-24.png"></a> <a href="http://twitter.com/moo9000">Follow me on Twitter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2011/03/03/ghetto-logging-for-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Now hiring (Developer, Helsinki)</title>
		<link>http://blog.mfabrik.com/2010/03/29/now-hiring-developer-helsinki/</link>
		<comments>http://blog.mfabrik.com/2010/03/29/now-hiring-developer-helsinki/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 09:14:31 +0000</pubDate>
		<dc:creator>veikko</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=438</guid>
		<description><![CDATA[We are looking for a new developer to join our production team in Helsinki, Finland. Check out the details at our web site: http://mfabrik.com/about-us/jobs/developer-helsinki]]></description>
			<content:encoded><![CDATA[<p>We are looking for a new developer to join our production team in Helsinki, Finland. Check out the details at our web site:</p>
<p><a href="http://mfabrik.com/about-us/jobs/developer-helsinki">http://mfabrik.com/about-us/jobs/developer-helsinki</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2010/03/29/now-hiring-developer-helsinki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse web developer plug-in memo</title>
		<link>http://blog.mfabrik.com/2007/11/27/eclipse-web-developer-plug-in-memo/</link>
		<comments>http://blog.mfabrik.com/2007/11/27/eclipse-web-developer-plug-in-memo/#comments</comments>
		<pubDate>Tue, 27 Nov 2007 11:46:19 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Plone (old)]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://blog.redinnovation.com/2007/11/27/eclipse-web-developer-plug-in-memo/</guid>
		<description><![CDATA[Currently I work in quite wide field of software development: Python (standalone, Plone, Zope, Django), PHP, Java, Symbian and embedded Linux. I am using Eclipse for development, since it&#8217;s pretty much the only consistent platform filling my needs. The nature of work also forces me to use different computers (Mac/Windows/Linux) with different clients. This drives [...]]]></description>
			<content:encoded><![CDATA[<p>Currently I work in quite wide field of software development: Python (standalone, Plone, Zope, Django), PHP, Java, Symbian and embedded Linux. I am using Eclipse for development, since it&#8217;s pretty much the only consistent platform filling my needs.  The nature of work also forces me to use different computers (Mac/Windows/Linux) with different clients. This drives me to reinstall Eclipse now and then.</p>
<p>Below are my personal notes what plug-ins are needed to get &#8220;perfect&#8221; Eclipse set-up. Basically they are just my own notes so that I don&#8217;t need to Google everything all over again every time I reinstall. I hope the readers can find new pearls here or suggest improvements.</p>
<h2 id="Eclipsesetup">Eclipse setup<a href="https://trac.yebotv.com/wiki/EclipseSetup#Eclipsesetup" title="Link to this section" class="anchor"> </a></h2>
<p>Eclipse has internal updater/web installer. All plug-ins are downloaded as ZIP files and extracted to Eclipse folder or installed through the internal updater. Paste Eclipse update site URLs to menu Help -&gt; Software updates -&gt; Find and Install, New Remote Location. You can use dummy text as the name of update site.</p>
<h3 id="EclipseWTPWebToolsPlatform">Eclipse WTP (Web Tools Platform)<a href="https://trac.yebotv.com/wiki/EclipseSetup#EclipseWTPWebToolsPlatform" title="Link to this section" class="anchor"> </a></h3>
<p>Eclipse Web Tools Platform bundles Eclipse, Java development tools, HTML editor, CSS editor and some other generic useful stuff.</p>
<ul>
<li>No separate Eclipse download needed. Download the bundle from <a href="http://download.eclipse.org/webtools/downloads/" class="ext-link"><span class="icon">http://download.eclipse.org/webtools/downloads/</span></a></li>
</ul>
<h3 id="Python">Python<a href="https://trac.yebotv.com/wiki/EclipseSetup#Python" title="Link to this section" class="anchor"> </a></h3>
<p>PyDev is a plug-in for Python and Jython development.</p>
<p>Site URL: <a href="http://pydev.sourceforge.net/" class="ext-link"><span class="icon">http://pydev.sourceforge.net</span></a></p>
<p>Eclipse update site URL: <a href="http://pydev.sourceforge.net/updates/" class="ext-link"><span class="icon">http://pydev.sourceforge.net/updates/</span></a></p>
<h3 id="PDT">PDT<a href="https://trac.yebotv.com/wiki/EclipseSetup#PDT" title="Link to this section" class="anchor"> </a></h3>
<p>PDT download provides Eclipse, HTML editor, PHP editor and CSS editor.</p>
<p>Site URL: <a href="http://www.eclipse.org/" class="ext-link"><span class="icon">http://www.eclipse.org</span></a></p>
<p>Eclipse update site URL: <a href="http://download.eclipse.org/tools/pdt/updates/" class="ext-link"><span class="icon">http://download.eclipse.org/tools/pdt/updates/</span></a></p>
<h3 id="Subclipse">Subclipse<a href="https://trac.yebotv.com/wiki/EclipseSetup#Subclipse" title="Link to this section" class="anchor"> </a></h3>
<p>Subclipse provides Subversion version control integration to Eclipse.</p>
<p>Eclipse update site URL: <a href="http://subclipse.tigris.org/update_1.2.x" class="ext-link"><span class="icon">http://subclipse.tigris.org/update_1.2.x</span></a></p>
<p>In the installer, uncheck the integration modules checkbox or the installer will complain about missing modules.</p>
<h3 id="JSEclipse">JSEclipse<a href="https://trac.yebotv.com/wiki/EclipseSetup#JSEclipse" title="Link to this section" class="anchor"> </a></h3>
<p>JSEclipse provides a better editor (over WTP) for Javascript files, with impressive outlining and autofill capabilities.</p>
<p>Download requires Adobe developer account or similar fill-in-the-fields crap.</p>
<p>Site URL: <a href="http://labs.adobe.com/technologies/jseclipse/" class="ext-link"><span class="icon">http://labs.adobe.com/technologies/jseclipse/</span></a></p>
<h3 id="SQLExplorer">ShellEd<a href="https://trac.yebotv.com/wiki/EclipseSetup#SQLExplorer" title="Link to this section" class="anchor"> </a></h3>
<h3 id="ShellEd"><a href="https://trac.yebotv.com/wiki/EclipseSetup#ShellEd" title="Link to this section" class="anchor"></a></h3>
<p>Syntax coloring for Unix shell scripts</p>
<p>Project site:<a href="http://sourceforge.net/projects/shelled/" class="ext-link"><span class="icon"> http://sourceforge.net/projects/shelled</span></a></p>
<h3 id="SQLExplorer">SQL Explorer<a href="https://trac.yebotv.com/wiki/EclipseSetup#SQLExplorer" title="Link to this section" class="anchor"> </a></h3>
<p>SQL editor with limited GUI capabilities. Based on Eclipse platform. Comes standalone and as Eclipse plug-in.</p>
<ul>
<li>Download ZIP from <a href="http://sourceforge.net/project/showfiles.php?group_id=132863" class="ext-link"><span class="icon">http://sourceforge.net/project/showfiles.php?group_id=132863</span></a></li>
</ul>
<p>needs MySQL JDBC driver</p>
<ul>
<li><a href="http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.0.8.tar.gz/from/pick#mirrors" class="ext-link"><span class="icon">http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.0.8.tar.gz/from/pick#mirrors</span></a></li>
</ul>
<p>Technorati tags: <a href="http://technorati.com/tag/Python" rel="tag">Python</a> <a href="http://technorati.com/tag/Plone" rel="tag">Plone</a> <a href="http://technorati.com/tag/Django" rel="tag">Django</a> <a href="http://technorati.com/tag/PHP" rel="tag">PHP</a> <a href="http://technorati.com/tag/Eclipse" rel="tag">Eclipse</a> <a href="http://technorati.com/tag/web+development" rel="tag">Web development</a> <a href="http://technorati.com/tag/subclipse" rel="tag">Subclipse</a> <a href="http://technorati.com/tag/javascript" rel="tag">Javascript</a> <a href="http://technorati.com/tag/sql" rel="tag">SQL</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2007/11/27/eclipse-web-developer-plug-in-memo/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

