<?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; Uncategorized</title>
	<atom:link href="http://blog.mfabrik.com/category/uncategorized/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>Sauna Sprint daily digest #2: Tuesday</title>
		<link>http://blog.mfabrik.com/2011/07/27/sauna-sprint-daily-digest-2-tuesday/</link>
		<comments>http://blog.mfabrik.com/2011/07/27/sauna-sprint-daily-digest-2-tuesday/#comments</comments>
		<pubDate>Wed, 27 Jul 2011 10:34:53 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[plone]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[sauna sprint]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[zope]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=1348</guid>
		<description><![CDATA[These are notes from the Sauna Sprint daily debriefing #2. It was intention we’d done this already yesterday, but unfortunately we had problems with boat and swamp. The current head count is around 27 living souls, plus or minus few depending on how you define living. We split to different teams, each working on its [...]]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1350" class="wp-caption aligncenter" style="width: 810px"><a href="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0111.jpg"><img class="size-full wp-image-1350" title="DSC_0111" src="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0111.jpg" alt="" width="800" height="532" /></a><p class="wp-caption-text">Plone is a byproduct of community members&#39; co-operation</p></div></p>
<p>These are notes from the Sauna Sprint daily debriefing #2. It was intention we’d done this already yesterday, but unfortunately we had problems with boat and swamp.</p>
<p>The current head count is around 27 living souls, plus or minus few depending on how you define living.  We split to different teams, each working on its own topic.</p>
<p><strong>Team tutorial video</strong></p>
<p>This team works to create new Plone video installation and usage tutorials. It will be in the form of screencast with voice over narration.</p>
<p>The team has created the first voice over, screencast and now editing it together.</p>
<p><strong>Team add-ons fail</strong></p>
<p>Plone add-ons come with various quality of instructions. This team is working to make Plone add-on experience more user-friendly: installing, uninstalling, plone.org add-on area, individual add-on instructions.</p>
<p>Around 200 lines of issues collected.</p>
<p><strong>Team blogging</strong></p>
<p>This team collects and publishes a blog posts, participant information, etc. motivational information about the sprint and the sprinters.</p>
<p>Both EESTECers and Plonistans are being covered.</p>
<p>Currently the team has collected the bio of everyone and prepares to put the information out to a wiki page.</p>
<p><strong>Team auto restart</strong></p>
<p>This team is working to make Plone auto-restart perform correctly and timely manner. You just edit .py file and hit the browser refresh button and the changed code is loaded correctly. The team is utilizing the fork trick introduced in this blog post. The resulting work goes under a project name sauna.relaod.</p>
<p>Currently the team has managed to make the file-system monitor using Python WatchDog backend. Already 13 seconds have been shoveled off from Zope restart time of 30 seconds.</p>
<p><strong>Team Logistics</strong></p>
<p>This team feeds the coders with firewood, food and beer.</p>
<p>Yesterday the team prepared went to a shop, prepared a lunch and brought a guitar (for live music).</p>
<p>The day plan for Wednesday is to collect blueberries for pies and mushrooms and later cook them in the big oven of the cabin.</p>
<p>The new beer is on its way, though has temporary taken some steps backwards.</p>
<p><strong>Team Greek</strong></p>
<p>This ad-hoc team prepared the dinner.</p>
<p>It takes four Greeks to create one omelette.</p>
<p><strong>Team collective.table</strong></p>
<p>This is Google Summer of Code team is working on new collective.table add-on for Plone. Yesterday was API talk, but the progress was slow due to lack of caffeine.</p>
<p><strong>Team TinyMCE </strong></p>
<p>This is a Google Summer of Code team and is working on making Plone’s TinyMCE experience better.</p>
<p>Yesterday was spent testing on a JS/CSS compressor to make TinyMCE load faster.</p>
<p>Uncompressed: 19 request / 900 kb. Compressed 50% less requests, 700 kb.</p>
<p><strong>Team hardcore</strong></p>
<p>This team of EESTEC member was formed to introduce hardcode Plone development for newbies.</p>
<p>The team members actually wanted it themselves. They will regret this decision later.</p>
<p><div id="attachment_1352" class="wp-caption aligncenter" style="width: 810px"><a href="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0120.jpg"><img class="size-full wp-image-1352" title="DSC_0120" src="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0120.jpg" alt="" width="800" height="532" /></a><p class="wp-caption-text">Sometimes you need solo heroes</p></div></p>
<p style="text-align: center;">&nbsp;</p>
<p><div id="attachment_1353" class="wp-caption aligncenter" style="width: 810px"><a href="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0125.jpg"><img class="size-full wp-image-1353" title="DSC_0125" src="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0125.jpg" alt="" width="800" height="532" /></a><p class="wp-caption-text">Plone butterfly preparing to hatch </p></div></p>
<p><div id="attachment_1354" class="wp-caption aligncenter" style="width: 810px"><a href="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0184.jpg"><img class="size-full wp-image-1354" title="DSC_0184" src="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0184.jpg" alt="" width="800" height="532" /></a><p class="wp-caption-text">A lonely coder in the forest</p></div></p>
<p><div id="attachment_1356" class="wp-caption aligncenter" style="width: 544px"><a href="http://blog.mfabrik.com/wp-content/uploads/2011/07/IMG_1630.jpg"><img class="size-full wp-image-1356" title="IMG_1630" src="http://blog.mfabrik.com/wp-content/uploads/2011/07/IMG_1630.jpg" alt="" width="534" height="800" /></a><p class="wp-caption-text">Fueling the hungty developers with potatoes</p></div></p>
<p><div id="attachment_1357" class="wp-caption aligncenter" style="width: 542px"><a href="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0023.jpg"><img class="size-full wp-image-1357" title="DSC_0023" src="http://blog.mfabrik.com/wp-content/uploads/2011/07/DSC_0023.jpg" alt="" width="532" height="800" /></a><p class="wp-caption-text">A statue honoring Plone developers</p></div>
<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/07/27/sauna-sprint-daily-digest-2-tuesday/feed/</wfw:commentRss>
		<slash:comments>0</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>Apple push notifications (APN) with Python</title>
		<link>http://blog.mfabrik.com/2011/01/29/apple-push-notifications-apn-with-python/</link>
		<comments>http://blog.mfabrik.com/2011/01/29/apple-push-notifications-apn-with-python/#comments</comments>
		<pubDate>Sat, 29 Jan 2011 14:14:39 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[ios]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[plone]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Android Cloud to Device Messaging (C2DM)]]></category>
		<category><![CDATA[apn]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[apple push notification]]></category>
		<category><![CDATA[atom]]></category>
		<category><![CDATA[bitbucket]]></category>
		<category><![CDATA[bitreader]]></category>
		<category><![CDATA[cms]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[froyo]]></category>
		<category><![CDATA[google cloud push]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=942</guid>
		<description><![CDATA[We have created a middleware service which inputs RSS feeds and outputs Apple Push Notification. This allows integrate push notification support for your existing content management system easily. This blog post should give you some ideas if you are planning to create similar services. To have the über-experience of customer engagement with mobile push notifications [...]]]></description>
			<content:encoded><![CDATA[<p>We have created a middleware service which inputs RSS feeds and outputs Apple Push Notification. This allows integrate push notification support for your existing content management system easily. This blog post should give you some ideas if you are planning to create similar services.</p>
<p>To have the über-experience of <em>customer engagement</em> with mobile push notifications you need</p>
<ul>
<li>A mobile application (iOS, Android 2.2)</li>
<li>RSS feed to notifications middleware server (our solution)</li>
<li>RSS feeds themselves</li>
<li>Windows/UNIX server running the middleware</li>
</ul>
<h2>How it is put together</h2>
<p><a href="http://www.tornadoweb.org/">Tornado</a> web server is used to handle incoming HTTP requests in scalable manner.</p>
<p><a href="http://code.google.com/p/feedparser/">feedparser</a> library fetches RSS feeds and processes them to client notifications.</p>
<p>BitReader (<a href="http://blog.mfabrik.com/2010/09/08/bitreader-python-module-for-reading-bits-from-bytes/">post</a>, <a href="https://bitbucket.org/jtoivola/bitreader/wiki/Home">source</a>) library is used to create messages to interact with <a href="http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html">Apple push notification service</a> (APNs). The protocol is bit based protocol running directly over TCP/IP. Apple service has been designed to handle high volumes of traffic &#8211; it does not use anything like stateless HTTP to waste bandwidth.</p>
<p>Django models are used to store the state of each individual subscriber. Django&#8217;s ORM abstraction allows us to use the same middleware for small distributions (&lt; 1000 clients, SQLite database) or big ones (millions of clients, MySQL database). The stored state information includes the subscriber id and the current badge number &#8211; the red circle on the app icon showing the count unread posts. When the application is launched, it can decrease its badge number by doing a HTTP call to the server.</p>
<p>Django settings are used to put together required certificates and whether the application is run in sandbox mode.</p>
<h2>Walkthrough</h2>
<p>There is a core IO loop, running in a separate process, called <em>stream observer</em>. This loops updates fetches RSS feeds&#8217; status and passes updates to Tornado server over HTTP.  With this arrangement, any HTTP capable client can send push notifications.</p>
<p>Tornado handles incoming updates, updates the related subscribe status &#8211; how many unread notifications, etc. through exposed Django views. The notification is formatted according to the variables available on the subscriber mobile platform. In Apple&#8217;s case, the notification message gets title, badge, sound and a launch image. Payload is checked against hard 256 byte limit.</p>
<p>Then the payload is pushed to <a href="http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html">Apple servers</a> over TCP/IP protocol. SSL certificaties needed.</p>
<p>A subscriber is registered  when the mobile application is launched. The application asks a subscriber id from Apple servers. Then, this subscriber id is delivered to our middleware over normal HTTP call.</p>
<p>The middleware also handles feedback service which gives you list of devices which have unsubscribed from your service. This way you can cut off notifications from unsubscribed clients. This is also done using BitReader and TCP/IP.</p>
<h2>Future</h2>
<p>The architecture is built so that different push backends can be included in the service. Android support is on the roadmap and we probably will have Blackberry and Meego support (when/if Nokia announces such a service).</p>
<p>We have currently tested this solution with RSS streams from WordPress and Plone.</p>
<p>We may release source code when it&#8217;s ready.</p>
<h2>More info</h2>
<ul>
<li><a href="http://blog.boxedice.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial/">http://blog.boxedice.com/2009/07/10/how-to-build-an-apple-push-notification-provider-server-tutorial/</a></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/01/29/apple-push-notifications-apn-with-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to fix OSX: Cannot login: FileVault is corrupted</title>
		<link>http://blog.mfabrik.com/2010/12/15/how-to-fix-osx-cannot-login-filevault-is-corrupted/</link>
		<comments>http://blog.mfabrik.com/2010/12/15/how-to-fix-osx-cannot-login-filevault-is-corrupted/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 19:57:39 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[osx]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[corruption]]></category>
		<category><![CDATA[damage]]></category>
		<category><![CDATA[directory utility]]></category>
		<category><![CDATA[disk utility]]></category>
		<category><![CDATA[fail]]></category>
		<category><![CDATA[filevault]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[login]]></category>
		<category><![CDATA[repair]]></category>
		<category><![CDATA[root]]></category>
		<category><![CDATA[snow leopard]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=873</guid>
		<description><![CDATA[OSX provides home folder encryption system called FileVault. FileVault is effectively a sparsebundle file in your home folder, storing all your data, and is mounted as a loopback volume during the login. If your Mac loses power on a wrong moment FileVault might become corrupted. This will lead to a situation that you cannot login [...]]]></description>
			<content:encoded><![CDATA[<p>OSX provides home folder encryption system called FileVault. FileVault is effectively a <em>sparsebundle</em> file in your home folder, storing all your data, and is mounted as a loopback volume during the login.</p>
<p>If your Mac loses power on a wrong moment FileVault might become corrupted. This will lead to a situation that you cannot login to the system anymore. The login dialog will just tell &#8220;Volume is corrupted. Would you like to repair?&#8221; And then it says something along lines &#8220;login failed&#8221;.</p>
<p>Don&#8217;t lose your hope here. You can usually still fix the corrupted FileVault sparsebundle file as root user.</p>
<h2>To create a root user</h2>
<ul>
<li>Use OSX installation DVD to add new admin user to the system with non-protected folder</li>
<li>&#8230;or in the case you have non-admin user accounts on the system already, use them to login, navigate to System preferences -&gt; Accounts and create a new admin account.  Note that you can use your credentials from the corrupted user to make admin level system changes even if the logged in user is not admin &#8211; just click the lock icon in the System preferences.</li>
<li>An admin user can enable root user. To enable root user, you need to navigate to<em> /Macintosh HD/System/Library/CoreServices open Directory Utility</em> and choose Enable root user from the menu (Snow Leopard)</li>
<li>Logout. Then login dialog should have new option &#8220;Other&#8221; where it allows you to type in username and password. Now login as <em>root</em> with the password you set for it earlier.</li>
</ul>
<h2>To fix the damaged sparsebundle file</h2>
<ul>
<li>Login as root</li>
<li>Open <em>Application -&gt; Utilities -&gt; Disk utility</em></li>
<li>From menu choose Open</li>
<li>Choose <em>/Macintosh HD/Users/corruptedusername/corruptedusername.sparsebundle</em> file</li>
<li>Disk Utility will complain about something it cannot mount volume, but the volume still will appear in the right hand disk list</li>
<li>In the disk list choose the corrupted volume</li>
<li>Hit repair</li>
<li>The repair process will take minutes, but completes succesfully</li>
</ul>
<p>After the repair process is complete, logout as the root user and login as the user who had damaged FileVault. This time the login success.</p>
<h2>More info</h2>
<ul>
<li> <a href="http://www.thexlab.com/faqs/fixfilevault.html">Repairing a FileVault protected Home folder</a></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/2010/12/15/how-to-fix-osx-cannot-login-filevault-is-corrupted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Synchonizing calendar and contacts from Nokia N900 to Samsung i9000 Galaxy S Android</title>
		<link>http://blog.mfabrik.com/2010/09/04/synchonizing-calendar-and-contacts-from-nokia-n900-to-samsung-i9000-galaxy-s-android/</link>
		<comments>http://blog.mfabrik.com/2010/09/04/synchonizing-calendar-and-contacts-from-nokia-n900-to-samsung-i9000-galaxy-s-android/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 11:32:08 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[maemo]]></category>
		<category><![CDATA[n900]]></category>
		<category><![CDATA[syncevolution]]></category>

		<guid isPermaLink="false">http://blog.mfabrik.com/?p=723</guid>
		<description><![CDATA[Here are instructions for advanced users how to migrate their life to N900 for new Android mobile phones. Copy contacts Register at ScheduleWorld (7 days free trial) Install Dropbear SSH on N900 (makes typing less painful) Install syncevolution (tested with command line version) on N900 Create syncevolution templates using syncevolution -c scheduleworld (work over SSH [...]]]></description>
			<content:encoded><![CDATA[<p>Here are instructions for advanced users how to migrate their life to N900 for new Android mobile phones.</p>
<h2>Copy contacts</h2>
<ul>
<li>Register at ScheduleWorld (7 days free trial)</li>
<li>Install Dropbear SSH on N900 (makes typing less painful)</li>
<li>Install syncevolution (tested with command line version) on N900</li>
<li>Create syncevolution templates using syncevolution -c scheduleworld (work over SSH from desktop computer using)</li>
<li>Change username and password in ~/.config/syncevolution/scheduleworld/config.php (use nano shell based text editor)</li>
<li>Change sync to cliet to server one way in ~/.config/syncevolution/scheduleworld/addressbook/config.php and ~/.config/syncevolution/scheduleworld/calendar/config.php</li>
<li>Run syncevolution: syncevolution scheduleworld</li>
<li>Check that scheduleworld.com received your data using web browser</li>
<li>Install Funambol app on Android device from Android Market</li>
<li>Run it. Use credentials: user = numeric scheduleworld.com username, password = given in scheduleworld.com registration email, server url = http://sync.scheduleworld.com/funambol/ds</li>
<li>Alternative 2: export contacs in scheduleworld.com and import .vcf to fresh gmail account</li>
<li>Alternative 3: there exist apps to read .vcf files from SD card &#8211; Scheduleworld can export these files.</li>
</ul>
<ul></ul>
<h2>Copy calendar</h2>
<p>Note: <a href="http://www.google.com/support/forum/p/Google%20Mobile/thread?tid=3c0c89f73ca20404&amp;hl=en">Android 2.1 owners might need to reset their device to factory settings as 2.1 supports synchronizing calendar only from the Google account used to active the device</a>. You need to be able to import calendar entries to Google/Gmail account you initially used to active the device / Android market. Android 2.1 devices do not support syncing calendar from multiple accounts (even if they are Google&#8217;s)</p>
<ul>
<li>(Register a dummy gmail.com account)</li>
<li> Go to scheduleworld.com. From Tools menu choose Export -&gt; Events and Task</li>
<li>Download iCal (.ics) file locally</li>
<li>Go to gmail.com account</li>
<li>Open calendar</li>
<li>Go to Settings -&gt; Calendars -&gt; Import Calendar</li>
<li>Upload .ics file</li>
<li>Now when device syncs with Google Calendar it will receive the calendar entries</li>
</ul>
<p>I succesfully 600 phone numbers and 60 calendar entries.</p>
<h2>Back up SMS</h2>
<p>If you want to back up SMS messages from the device just copy SQLite database over SCP. You can later convert SQLite entries to any format using sqlite command line tool.</p>
<pre>scp user@192.168.1.146:/home/user/.rtcom-eventlogger/el.db .</pre>
<p>That&#8217;s all folks!
<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/2010/09/04/synchonizing-calendar-and-contacts-from-nokia-n900-to-samsung-i9000-galaxy-s-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python-like urlparser module for Javascript</title>
		<link>http://blog.mfabrik.com/2008/11/29/python-like-urlparser-module-for-javascript/</link>
		<comments>http://blog.mfabrik.com/2008/11/29/python-like-urlparser-module-for-javascript/#comments</comments>
		<pubDate>Sat, 29 Nov 2008 01:56:42 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[fragment]]></category>
		<category><![CDATA[hostname]]></category>
		<category><![CDATA[href]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[parse]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[urlparse]]></category>
		<category><![CDATA[urlparser]]></category>

		<guid isPermaLink="false">http://blog.redinnovation.com/?p=152</guid>
		<description><![CDATA[I had to deconstruct and reconstruct URLs from pieces when doing advanced Javascripting for Plone. I found this nice library from Denis Laprise. However, it had a bug with fragment extractor and lacked reconstruction possibilies. So I decided to make a new version. Download urlparse.js version 0.2. thank you Couple of examples: var p = [...]]]></description>
			<content:encoded><![CDATA[<p>I had to deconstruct and reconstruct URLs from pieces when doing advanced Javascripting for Plone.</p>
<p>I found this <a href="https://code.poly9.com/trac/browser/urlparser/urlparser.js">nice library</a> from <span class="c">Denis Laprise. However, it had a bug with fragment extractor and lacked reconstruction possibilies. So I decided to make a new version.</span></p>
<p><a href="http://snipplr.com/view/10139/urlparse--pythonlike-url-parser-and-manipulator/">Download urlparse.js version 0.2</a>. thank you <img src='http://blog.mfabrik.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Couple of examples:</p>
<pre>var p = new Poly9.URLParser('http://user:password@poly9.com/pathname?arguments=1#fragment');
p.getHost() == 'poly9.com';
p.getProtocol() == 'http';
p.getPathname() == '/pathname';
p.getQuerystring() == 'arguments=1';
p.getFragment() == 'fragment';
p.getUsername() == 'user';
p.getPassword() == 'password';

var p = new Poly9.URLParser("http://localhost:8080/path);

p.setQuerystring("foo=bar");
p.setFragment("anchor");
p.setPort(7070);

var url = p.getURL() // http://localhost:7070/path?foo=bar#anchor</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2008/11/29/python-like-urlparser-module-for-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tourist is mobile</title>
		<link>http://blog.mfabrik.com/2008/11/19/tourist-is-mobile/</link>
		<comments>http://blog.mfabrik.com/2008/11/19/tourist-is-mobile/#comments</comments>
		<pubDate>Wed, 19 Nov 2008 11:56:34 +0000</pubDate>
		<dc:creator>kipi</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.twinapex.fi/?p=169</guid>
		<description><![CDATA[Tourists and travelers do carry nowadays mobile phones all the time with them, but are not using them only for calls and sending text messages. More and more, because of faster mobile phone networks, they are using mobile phones for chatting, checking emails and using other network based services, like searching for information. And use [...]]]></description>
			<content:encoded><![CDATA[<p>Tourists and travelers do carry nowadays mobile phones all the time with them, but are not using them only for calls and sending text messages. More and more, because of faster mobile phone networks, they are using mobile phones for chatting, checking emails and using other network based services, like searching for information. And use most likely will increase, especially here in Europe as European Union bureaucrats has taken lately active role for making <a href="http://en.wikipedia.org/wiki/Regulation_on_roaming_charges_within_the_European_Union#Regulation_on_voice_roaming_charges">use of mobile phones more cheaper</a> while traveling in Europe.</p>
<p>Country and city tourist offices, as well as other organizations publishing information for tourists and travelers, traditionally have lots of information available on the internet. Background information, history, practical information like about transportation, sights, restaurants, bars and nightlife, not forgetting maps and other content types like videos and audios. Unfortunately this information is not easily usable, if at all, by mobile phones and mobile phone browsers thus making it practically unusable for tourist after s/he has left home and started her/his travel.</p>
<p>Its actually surprise how little there&#8217;s usable tourism and travel information which can be used with mobile phones. Here in Finland Helsinki has its <a href="http://www.helsinki.mobi/">own mobi</a> site but, well, not so attractive service and could have more content. Especially if compared for the mobile service provided by eg. <a href="http://www.sas.mobi/">SAS</a>, even their focus is a bit different.</p>
<p>What&#8217;s the problem? Most likely that those tourism offices and boards are just so traditional, slowly moving elephants. This have seen already when internet, as term and a &#8220;channel&#8221;, was new and how slowly tourism and travel communications moved into the net. Now the good sides, more cost effective and up to date communication, has been seen but hopefully value of mobile phones and services for them wont take so much time as it did with web services. Because the tourists and travelers are here, now, and willing to use information if that&#8217;s just available.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2008/11/19/tourist-is-mobile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speeding up Plone loading with PTS_LANGUAGES</title>
		<link>http://blog.mfabrik.com/2008/08/19/speeding-up-plone-loading-with-pts_languages/</link>
		<comments>http://blog.mfabrik.com/2008/08/19/speeding-up-plone-loading-with-pts_languages/#comments</comments>
		<pubDate>Mon, 18 Aug 2008 21:04:25 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[load]]></category>
		<category><![CDATA[placelesstranslationservice]]></category>
		<category><![CDATA[Plone (old)]]></category>
		<category><![CDATA[PTS_LANGUAGES]]></category>
		<category><![CDATA[speed up]]></category>
		<category><![CDATA[zodb]]></category>

		<guid isPermaLink="false">http://blog.redinnovation.com/?p=60</guid>
		<description><![CDATA[If you are not a Finnish speaker (like 99,9% of you) you might not want to (re)load Finnish and other unwanted language catalogs during the Plone start up. This is possible for Plone 3.1, as Reinout van Rees explains (found out afterwards). For your Plone launcher, set environment variables (space separated list) PTS_LANGUAGES=en mylanguagecodehere If [...]]]></description>
			<content:encoded><![CDATA[<p>If you are not a Finnish speaker (like 99,9% of you) you might not want to (re)load Finnish and other unwanted language catalogs during the Plone start up. <a href="http://vanrees.org/weblog/load-only-the-languages-you-need-with-pts">This is possible for Plone 3.1, as Reinout van Rees explains (found out afterwards)</a>.</p>
<p>For your Plone launcher, set environment variables (space separated list)</p>
<p>PTS_LANGUAGES=en mylanguagecodehere</p>
<p>If your Data.fs is not fresh (i.e. you have an existing Plone instance) there is still one task to do. Go to Placess Translation Service in Zope. Delete all translation catalogs. If there exists a translation catalog entry in ZODB a reload event seem to be triggered even though PTS_LANGUAGES settings is effective. Restart Zope. Maybe this is a bug? Do this on a development box only &#8211; this code seems to be quite new.<br />
The magic code is in PlacelessTranslationService/load.py.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2008/08/19/speeding-up-plone-loading-with-pts_languages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Facebook requests&#8230;</title>
		<link>http://blog.mfabrik.com/2008/08/14/facebook-requests/</link>
		<comments>http://blog.mfabrik.com/2008/08/14/facebook-requests/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 00:03:38 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[capture]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[grab]]></category>
		<category><![CDATA[integer]]></category>
		<category><![CDATA[overflow]]></category>
		<category><![CDATA[requests]]></category>
		<category><![CDATA[screen]]></category>
		<category><![CDATA[screengrab]]></category>
		<category><![CDATA[screenshot]]></category>
		<category><![CDATA[short]]></category>
		<category><![CDATA[ int]]></category>

		<guid isPermaLink="false">http://blog.redinnovation.com/?p=59</guid>
		<description><![CDATA[I love you all guys. I just learnt that Firefox web page screen capture tools (any of them) can&#8217;t take web page screenshots higher than short 16-bit interger (32768) pixels. Crash crash crash. But I hope I am alone with my problem. So, thanks for being so supportive&#8230; and it&#8217;s not fully rendered (over 250 [...]]]></description>
			<content:encoded><![CDATA[<p>I love you all guys.</p>
<p>I just learnt that Firefox web page screen capture tools (any of them) can&#8217;t take web page screenshots higher than short 16-bit interger (32768) pixels. Crash crash crash. But I hope I am alone with my problem.</p>
<p>So, thanks for being so supportive&#8230; and it&#8217;s not fully rendered (over 250 of them), since after 3200 the image was cut. Excuse me if I am not willing to support your cause.</p>
<p><a href="http://blog.redinnovation.com/wp-content/uploads/2008/08/requests.png"><img class="alignnone size-medium wp-image-58" title="requests" src="http://blog.redinnovation.com/wp-content/uploads/2008/08/requests-16x300.png" alt="Facebook requetss" width="16" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2008/08/14/facebook-requests/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated: Eclipse web developer plug-in memo</title>
		<link>http://blog.mfabrik.com/2008/07/14/updated-eclipse-web-developer-plug-in-memo/</link>
		<comments>http://blog.mfabrik.com/2008/07/14/updated-eclipse-web-developer-plug-in-memo/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 23:13:04 +0000</pubDate>
		<dc:creator>Mikko Ohtamaa</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Plone (old)]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[aptana]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[pydev]]></category>
		<category><![CDATA[sql]]></category>
		<category><![CDATA[sql explorer]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.redinnovation.com/?p=54</guid>
		<description><![CDATA[Below are my personal notes what plug-ins are needed to get &#8220;perfect&#8221; Eclipse web development 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. This post is update to [...]]]></description>
			<content:encoded><![CDATA[<p>Below are my personal notes what plug-ins are needed to get &#8220;perfect&#8221; Eclipse web development 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>
<p>This post is update to previous <a href="http://blog.redinnovation.com/2007/11/27/eclipse-web-developer-plug-in-memo/">Eclipse web developer plug-in</a> memo post. New versions are available and some plug-ins have become deprecated. This blog post reflects those changes.</p>
<p>These instructions are good for:</p>
<ul>
<li>Python developer</li>
<li>PHP developer</li>
<li>Java developer</li>
</ul>
<h2>Choosing Eclipse distribution</h2>
<ul>
<li>On Window, use <a href="http://www.easyeclipse.org/site/home/">EasyEclipse</a></li>
<li>On Linux, use Eclipse provided by the distribution &#8211; Eclipse links against the embedded Mozilla browser and this is distribution specific &#8211; EasyEclipse has some issues here. For Ubuntu users:</li>
</ul>
<pre style="padding-left: 60px;">sudo apt-get install sun-java6 eclipse</pre>
<ul>
<li>On OSX, use <a href="http://www.easyeclipse.org/site/home/">EasyEclipse</a></li>
</ul>
<p>EasyEclipse bundles some of the stuff listed here with it &#8211; when using EasyEclipse you don&#8217;t need to have separate PyDev and Subclipse downloads.</p>
<p>Eclipse for 64-bit Linux has various problems. <a href="http://www.64bitjungle.com/tech/eclipse-32-bit-pdt-install-on-64-bit-ubuntu/">You might want to run 32-bit Eclipse</a> (<a href="http://rachaelandtom.info/node/1485">another relevant blog post)</a>. When you use Linux distribution specific Eclipse install, all your personal Eclipse files go to .eclipse folder under your home folder.</p>
<h2 id="Eclipsesetup">Installing plug-ins<a class="anchor" title="Link to this section" href="https://trac.yebotv.com/wiki/EclipseSetup#Eclipsesetup"> </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 <em>Help</em> -&gt; <em>Software updates</em> -&gt;<em> Find and Install</em>,<em> New Remote Location</em>.</p>
<h3 id="Python">Python<a class="anchor" title="Link to this section" href="https://trac.yebotv.com/wiki/EclipseSetup#Python"> </a></h3>
<p>PyDev is a plug-in for Python and Jython development. It has enhanced commercial extensions for professional developers with more intelligent autocomplete and debugger.</p>
<p>Site URL: <a class="ext-link" href="http://pydev.sourceforge.net/"><span class="icon">http://pydev.sourceforge.net</span></a></p>
<p>PyDev Eclipse update URL: <a class="ext-link" href="http://pydev.sourceforge.net/updates/"><span class="icon">http://pydev.sourceforge.net/updates/</span></a></p>
<p>PyDev extensions Eclipse update URL (<a href="http://www.fabioz.com/pydev/buy.html">this commercial, but worth of every penny</a>): <a href="http://www.fabioz.com/pydev/updates">http://www.fabioz.com/pydev/updates<br />
</a></p>
<h3 id="PDT">PDT<a class="anchor" title="Link to this section" href="https://trac.yebotv.com/wiki/EclipseSetup#PDT"> </a></h3>
<p>PDT download provides Eclipse, HTML editor, PHP editor and CSS editor.</p>
<p>Site URL: <a class="ext-link" href="http://www.eclipse.org/"><span class="icon">http://www.eclipse.org</span></a></p>
<p>Eclipse update site URL: <a class="ext-link" href="http://download.eclipse.org/tools/pdt/updates/"><span class="icon">http://download.eclipse.org/tools/pdt/updates/</span></a></p>
<h3>Java</h3>
<p>If you need to do J2EE development use IBM&#8217;s <a href="http://www.eclipse.org/webtools/">Web Tools Platform</a>. If you don&#8217;t need Java capabilities don&#8217;t install these, since they just bloat Eclipse and make the start up time worse.</p>
<h3 id="Subclipse">Subclipse<a class="anchor" title="Link to this section" href="https://trac.yebotv.com/wiki/EclipseSetup#Subclipse"> </a></h3>
<p><a href="http://subclipse.tigris.org/">Subclipse</a> provides Subversion version control integration to Eclipse.</p>
<p>Eclipse update site URL: <a href="http://subclipse.tigris.org/update_1.4.x/">http://subclipse.tigris.org/update_1.4.x/</a><a class="ext-link" href="http://subclipse.tigris.org/update_1.2.x"></a></p>
<p>In the installer, uncheck the integration modules checkbox or the installer will complain about missing modules.</p>
<h3>Aptana Studio<a href="http://aptana.com/studio/"><br />
</a></h3>
<p><a href="http://aptana.com/studio/">Aptana Studio</a> is state-of-the-art Web 2.0 development suite for Eclipse. It has Javascript, CSS and HTML editors. It supports various Javascript libraries out of the box and has support <a href="http://aptana.com/docs/index.php/Installing_the_JavaScript_debugger">for Firefox and IE in-browser Javascript debugging</a>.</p>
<p>Eclipse update site URL: <a href="http://update.aptana.com/update/studio/3.2/site.xml">http://update.aptana.com/update/studio/3.2/site.xml</a></p>
<h3 id="SQLExplorer">ShellEd<a class="anchor" title="Link to this section" href="https://trac.yebotv.com/wiki/EclipseSetup#SQLExplorer"> </a></h3>
<p>Syntax coloring for Unix shell scripts</p>
<p>Project site:<a class="ext-link" href="http://sourceforge.net/projects/shelled/"><span class="icon"> http://sourceforge.net/projects/shelled</span></a></p>
<h3 id="SQLExplorer">SQL Explorer<a class="anchor" title="Link to this section" href="https://trac.yebotv.com/wiki/EclipseSetup#SQLExplorer"> </a></h3>
<p>SQL terminal and SQL editor with some GUI capabilities.</p>
<p>Eclipse update site URL <a href="http://eclipsesql.sourceforge.net/">http://eclipsesql.sourceforge.net/</a></p>
<p>SQL Explorer needs MySQL JDBC driver. Download from <a href="http://dev.mysql.com/downloads/connector/j/5.1.html">here</a>. Install MySQL connector by extracting the file and adding it from SQL Explorer preferences.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.mfabrik.com/2008/07/14/updated-eclipse-web-developer-plug-in-memo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

