<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2607991120374111004</id><updated>2012-01-16T16:36:03.794-08:00</updated><category term='android google account hacked reserved from ip range'/><category term='plugin'/><category term='baby age'/><category term='generic'/><category term='jpeg'/><category term='php'/><category term='counter'/><category term='convert'/><category term='webshots'/><category term='free'/><category term='firefox 3 linux ubuntu edgy feisty dapper backport'/><category term='flexible'/><category term='jpg'/><category term='macos filevault encfs encryption macports loginhook security'/><category term='wbz'/><category term='baby counter'/><category term='widget'/><category term='wordpress'/><title type='text'>Techie blurbs</title><subtitle type='html'>... or pouring my less wild ideas into bits</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://techieblurbs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://techieblurbs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ibi &amp;amp; Agoston</name><uri>http://www.blogger.com/profile/03883601969547816705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_xHYCQs_BXXQ/S3qcnO6Gb1I/AAAAAAAAAec/-Rc9yLo5RyM/S220/14266_1273653888841_1454734774_761264_2527676_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2607991120374111004.post-7169594604983668883</id><published>2011-08-26T04:14:00.000-07:00</published><updated>2011-08-26T04:14:05.972-07:00</updated><title type='text'>Mass download flickr albums</title><content type='html'>Is quite simple using the flickr API:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;import java.io.IOException;&lt;br /&gt;&lt;br /&gt;import javax.xml.parsers.ParserConfigurationException;&lt;br /&gt;&lt;br /&gt;import com.aetrion.flickr.Flickr;&lt;br /&gt;import com.aetrion.flickr.REST;&lt;br /&gt;import com.aetrion.flickr.photos.Photo;&lt;br /&gt;import com.aetrion.flickr.photos.PhotoList;&lt;br /&gt;import com.aetrion.flickr.photosets.PhotosetsInterface;&lt;br /&gt;&lt;br /&gt;public class Backup {&lt;br /&gt;    private Flickr flickr = null;&lt;br /&gt;&lt;br /&gt;    public Backup() throws IOException, ParserConfigurationException {&lt;br /&gt;        this.flickr = new Flickr("Put flickr api key here", "Put flickr api secret here", new REST());&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public void doBackup(String photoSetId) throws Exception {&lt;br /&gt;        PhotosetsInterface pi = flickr.getPhotosetsInterface();&lt;br /&gt;        PhotoList pl = pi.getPhotos(photoSetId, 0, 0);&lt;br /&gt;        for (Object po: pl) {&lt;br /&gt;            Photo p = (Photo)po;&lt;br /&gt;            System.out.println(p.getOriginalUrl());&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static void main(String[] args) throws Exception {&lt;br /&gt;        Backup bf = new Backup();&lt;br /&gt;        bf.doBackup(args[0]);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The above code will print the URLs of the original images in the album whose identifier you have to pass as command-line argument. And you'll need the flickrapi library for this. And you have to request a flickr API key+secret to have access to flickr's API (google on how to do this).&lt;br /&gt;&lt;br /&gt;If you made this into a nice software, share it as a comment!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2607991120374111004-7169594604983668883?l=techieblurbs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techieblurbs.blogspot.com/feeds/7169594604983668883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2607991120374111004&amp;postID=7169594604983668883' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/7169594604983668883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/7169594604983668883'/><link rel='alternate' type='text/html' href='http://techieblurbs.blogspot.com/2011/08/mass-download-flickr-albums.html' title='Mass download flickr albums'/><author><name>Ibi &amp;amp; Agoston</name><uri>http://www.blogger.com/profile/03883601969547816705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_xHYCQs_BXXQ/S3qcnO6Gb1I/AAAAAAAAAec/-Rc9yLo5RyM/S220/14266_1273653888841_1454734774_761264_2527676_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2607991120374111004.post-3071522344906684675</id><published>2011-01-27T06:00:00.000-08:00</published><updated>2011-01-27T06:00:11.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android google account hacked reserved from ip range'/><title type='text'>The dark side of Android</title><content type='html'>I have had my gmail account since 2006 (about-ish). Back in the days when it was in invite-only beta-phase. Used it ever since.&lt;br /&gt;&lt;br /&gt;For christmas 2010, I've got a nice shiny Android phone (htc desire). 3 days later, as I check my email via the web GUI, the 'last accessed from' text that most don't even notice ever had a dark red background, with 'WARNING' word. Clicking on it, this is what I could see:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_xHYCQs_BXXQ/TUF4KqMDvJI/AAAAAAAAAoA/yrqBDYFyaHM/s1600/Screen%2Bshot%2B2011-01-16%2Bat%2B7.58.51%2BPM.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="269" width="320" src="http://1.bp.blogspot.com/_xHYCQs_BXXQ/TUF4KqMDvJI/AAAAAAAAAoA/yrqBDYFyaHM/s320/Screen%2Bshot%2B2011-01-16%2Bat%2B7.58.51%2BPM.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Coincidence? Could be, but too little chance to practically consider. More likely that some shady app from the market (yes, I've only installed from the market, and never ever gave my password to anybody).&lt;br /&gt;&lt;br /&gt;What is even more surprising is the IP! 255/8 is reserved unallocated, so I wonder how google could be so stupid to even accept routing advertisments for any prefix below 255/8!&lt;br /&gt;&lt;br /&gt;I'm almost certain this has something to do with registering my android phone with Google, using my good old reliable google account. I'm also considering that google uses 255/8 internally (maybe only for registering android phones?), and they screwed something up with the access alerts. I don't know and I can't know as google doesn't support non-premium users.&lt;br /&gt;&lt;br /&gt;So here it goes. I can't draw any conclusions, neither can anyone else, but maybe it will help someone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2607991120374111004-3071522344906684675?l=techieblurbs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techieblurbs.blogspot.com/feeds/3071522344906684675/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2607991120374111004&amp;postID=3071522344906684675' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/3071522344906684675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/3071522344906684675'/><link rel='alternate' type='text/html' href='http://techieblurbs.blogspot.com/2011/01/dark-side-of-android.html' title='The dark side of Android'/><author><name>Ibi &amp;amp; Agoston</name><uri>http://www.blogger.com/profile/03883601969547816705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_xHYCQs_BXXQ/S3qcnO6Gb1I/AAAAAAAAAec/-Rc9yLo5RyM/S220/14266_1273653888841_1454734774_761264_2527676_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xHYCQs_BXXQ/TUF4KqMDvJI/AAAAAAAAAoA/yrqBDYFyaHM/s72-c/Screen%2Bshot%2B2011-01-16%2Bat%2B7.58.51%2BPM.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2607991120374111004.post-2633380119476967046</id><published>2010-06-20T06:24:00.000-07:00</published><updated>2010-06-23T08:40:41.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='counter'/><category scheme='http://www.blogger.com/atom/ns#' term='generic'/><category scheme='http://www.blogger.com/atom/ns#' term='baby age'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='flexible'/><category scheme='http://www.blogger.com/atom/ns#' term='widget'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='baby counter'/><title type='text'>Wordpress widget: Count all</title><content type='html'>&lt;span style="font-size: 130%; font-weight: bold;"&gt;About&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;I've been playing around with wordpress 3 to replace blogger.com, which was getting worse and worse over the years. Wordpress turned out to be quite nice, I was positively surprised to see what a great thing it has evolved to.&lt;br /&gt;&lt;br /&gt;It has extensive widget support as well. But when I was looking for a baby age counter, I found 2, neither one of which worked. I think it was caused by their age; I've found a reference to wordpress 2.3, and the code was also looking quite horribly written. I'm not a php developer myself, but having extensive experience with other platforms, I can cope with it, and just by looking at it I could tell it was Bad Code (tm).&lt;br /&gt;&lt;br /&gt;So I decided to write one. PHP didn't seem too hard. I've started off by googling for "wordpress widget tutorial", and found &lt;a href="http://jessealtman.com/2009/06/08/tutorial-wordpress-28-widget-api/"&gt;this great tutorial by Jesse Altman&lt;/a&gt;. It was basically a skeleton HelloWorld widget, well-written, well-explained. Without much further ado (except the PHP reference doc), I was able to create a baby counter widget.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's a single .php file; just drop it into the wp-content/plugins directory of your wordpress (or use the admin interface to install it directly).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Use&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After activating, you can use the "Count all" widget under the 'Appearance' menu.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_xHYCQs_BXXQ/TB4Wapo3ibI/AAAAAAAAAi0/xuXh6mbKgIg/s1600/Screen+shot+2010-06-20+at+3.12.54+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_xHYCQs_BXXQ/TB4Wapo3ibI/AAAAAAAAAi0/xuXh6mbKgIg/s320/Screen+shot+2010-06-20+at+3.12.54+PM.png" /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/_xHYCQs_BXXQ/TB4WjqOTwhI/AAAAAAAAAi8/ErcTvYU2hLM/s1600/widget.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_xHYCQs_BXXQ/TB4WjqOTwhI/AAAAAAAAAi8/ErcTvYU2hLM/s320/widget.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The values are self-explaining, but for reference:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Title&lt;/b&gt; is the widget's title. It can contain HTML; its value is simply embedded into the resulting HTML page.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Content&lt;/b&gt; is the widget content field. It uses the &lt;a href="http://www.php.net/manual/en/dateinterval.format.php"&gt;DateInterval::format&lt;/a&gt; function to format the field contents. You can use any field specifiers from that function. Its contents are also embedded into the resulting HTML page, so over the %-tags, you are free to use any HTML you want.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Date&lt;/b&gt; specifies the date we should count distance from. Since this plugin simply takes the difference between 'now' and the specified date, it can be used for counting down (for dates in the future), or counting up (for dates in the past). It's all up to you.&lt;/li&gt;&lt;/ul&gt;That's it. You can have multiple instances of this widget, of course.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Requirements&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This plugin needs Wordpress 2.8+ (tested to work on 2.8.4 and 3.0), and PHP 5.3 (for the DateInterval class).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: 130%; font-weight: bold;"&gt;Download&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://wordpress.org/extend/plugins/count-all"&gt;Here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2607991120374111004-2633380119476967046?l=techieblurbs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techieblurbs.blogspot.com/feeds/2633380119476967046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2607991120374111004&amp;postID=2633380119476967046' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/2633380119476967046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/2633380119476967046'/><link rel='alternate' type='text/html' href='http://techieblurbs.blogspot.com/2010/06/wordpress-widget-count-all.html' title='Wordpress widget: Count all'/><author><name>Ibi &amp;amp; Agoston</name><uri>http://www.blogger.com/profile/03883601969547816705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_xHYCQs_BXXQ/S3qcnO6Gb1I/AAAAAAAAAec/-Rc9yLo5RyM/S220/14266_1273653888841_1454734774_761264_2527676_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xHYCQs_BXXQ/TB4Wapo3ibI/AAAAAAAAAi0/xuXh6mbKgIg/s72-c/Screen+shot+2010-06-20+at+3.12.54+PM.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2607991120374111004.post-8573287228529257795</id><published>2010-02-16T14:00:00.000-08:00</published><updated>2010-05-09T02:31:05.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='macos filevault encfs encryption macports loginhook security'/><title type='text'>How to replace FileVault with EncFS</title><content type='html'>&lt;B&gt;UPDATE:&lt;/B&gt; I've been upgraded to Snow Leopard (10.6), and a lot of issues outlined below are solved. Recovering disk space takes a couple of seconds only, IO speed increased considerably, and backup also seems to take a lot less time. I would recommend you &lt;b&gt;NOT&lt;/b&gt; to follow the guide below for Snow Leopard and up if these were the only items bugging you.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Background&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;MacOSX comes with a built-in encrypted filesystem: FileVault. Its purpose is to protect private data stored on your computer. It does its job quite nicely, but far from perfect. Me, coming from the linux world, was quite put off by its limitations, so I started looking for an alternative that would make me happy.&lt;br /&gt;&lt;br /&gt;FileVault is an encrypted filesystem. This means that is doesn't encrypt files, it encrypts partitions.  How it works is when you hit the button 'Turn on FileVault' in the security preferences, it creates a dynamically growing file in your home that contains the encrypted contents of your original home.  When you log in, this is mounted, using your login password. The whole operation is seamless.  In the background, it is relying on the diskimages framework.  If interested, check &lt;code&gt;man hdiutil&lt;/code&gt; for details and more options.&lt;br /&gt;&lt;br /&gt;In earlier releases of FileVault, the whole encrypted home was a single huge file on the filesystem. Whenever growth was necessary, it increased the encrypted file size. However, this caused problems for Time Machine, Apple's built-in backup tool. Since the file is encrypted, it was not possible to make incremental backups, so Apple decided to implement a feature called 'sparsebundle', that splits this huge file in 8MB chunks, so that Time Machine can make incremental backups of the encrypted home.&lt;br /&gt;&lt;br /&gt;You can see how problems stack up. It's not only FileVault, but how it works with other applications, most importantly Time Machine.&lt;br /&gt;&lt;br /&gt;This HOWTO was written on a Mac OS X 10.5. Other versions may or may not work - you'll have to figure it out yourself. The idea and the commands are the exact same once you get encfs installed properly.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;FileVault: pros and cons&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;- Long waiting times at logout&lt;br /&gt;- No shrinking while logged in&lt;br /&gt;- Doesn't work well with Time Vault&lt;br /&gt;- Proprietary&lt;br /&gt;&lt;br /&gt;+ Well worked out and tested&lt;br /&gt;+ Encrypts you entire home for better privacy&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Why&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Get your space back&lt;br /&gt;&lt;br /&gt;For example, if you have a 300GB disk, and you copy 50GB into your home temporarily, MacOS will expand the sparsebundle to accommodate the extra 50GBs.  However, after you've removed it, it will not shrink it, and it will be recovered only after you log out.  Until then, 50GBs will be gone from your 300GB disk, and only be available in your encrypted home dir.&lt;br /&gt;&lt;br /&gt;EncFS is a file-based encryption, and it relies on the existing file system for storage, so this issue simply does not exist; the encrypted and decrypted directory share the same partition, and thus, disk space.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Get rid of the long waiting times at logout&lt;br /&gt;&lt;br /&gt;FileVault is very slow. In the before example, it takes FileVault about 20-30 minutes to recover the disk space it has allocated to the encrypted filesystem earlier.  This of course is done when you are logging out, waiting for the laptop to reboot, shut down, etc..., so basically, from your own time.&lt;br /&gt;&lt;br /&gt;EncFS stores its encrypted files in the same partition, and thus, it has no such problems whatsoever.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Back your data up while logged in&lt;br /&gt;&lt;br /&gt;With FileVault, there are no backups made while you're logged in. This is again caused by the bad design of filesystem-in-a-filesystem. Data is backed up when you logout - but then it takes quite a while.&lt;br /&gt;&lt;br /&gt;Take for example the case when you copy 100GB in your homedir, and then erase 50GB.  On logout, FileVault will take 20-30 minutes to recover disk space, and then Time Machine will take another 20-30 minutes to back the extra data up.&lt;br /&gt;&lt;br /&gt;Using EncFS, backups are done on-the-fly, while you are logged in. This means you can stay logged in as long as you like, there is no need to log out just to make a backup of your homedir, like you had to do with FileVault.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; Be flexible&lt;br /&gt;&lt;br /&gt;EncFS is fully open source. You know what's going on in the background. You can fine-tune the encryption to your needs.  You can even have more than just your home encrypted.  You can use different encryptions on different parts of your system (a 128bit for your pictures and a 256 bit for your emails, for example).  You don't have to encrypt your home, only the parts that you need. It's all up to you.&lt;br /&gt;&lt;br /&gt;You can also have better interoperability with other tools. Since it is fully file-based, you have the ability to process the encrypted directory to your liking, in your own way.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Why not&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;FileVault is a lot more tested than EncFS. There are known problems with EncFS, as it only support basic POSIX operations (no locking, extended attributes, etc...).  This works well for simple file storage or multiplatform applications, like MacPorts, Firefox, Thunderbird, etc..., but encrypting your whole homedir is known not to work. As a consequence, you are losing some privacy, leaving parts of your home unencrypted. If you are sensitive about this, or you are unsure whether you won't leave important data uncrypted, don't go ahead.&lt;br /&gt;&lt;br /&gt;Because EncFS encrypts on file level, the number and size of files will be exposed in the encrypted dir. This is not a big deal, just go check out the contents of the encrypted directory for yourself. You'll probably keep wondering what the heck is in there, even though you know what you are storing there.&lt;br /&gt;&lt;br /&gt;You also need to spend some time to evaluate what and how you want to protect. Setting up EncFS will take some time, it's not just clicking a button and going for lunch while it finishes.&lt;br /&gt;&lt;br /&gt;If you are not a geek, don't do this - it's not meant for you. I would say the baseline is setting up and using macports - if you can do that, this will not be a problem, either.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;How - the easy way&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can use macfusion to set up encfs via GUI. I won't go into details, as I observe this method to be inferior to command line.&lt;br /&gt;&lt;br /&gt;It is a good tool for non-geeks to encrypt their data, though, if you don't mind some click-click now and then.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;How - the geek way&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once you have macports installed, set up encfs:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ sudo port install encfs&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The next step is to organize your mounts. How I did it was I've created /e and /e.crypt and chown'd it for my user:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ sudo mkdir /e /e.crypt&lt;br /&gt;$ sudo chown llama /e /e.crypt&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Of course, you can create multiple directories for multiple users if needed.&lt;br /&gt;&lt;br /&gt;The next step is to set up the encrypted directory. This can be done by:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ encfs /e.crypt /e&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;On the first run, encfs will guide you through the setup options. If unsure, just pick the default options (by simply hitting enter) for every question, they are well defined.&lt;br /&gt;&lt;br /&gt;Now you have your encrypted directory in /e.crypt and your decrypted directory in /e. The next step is to decide what you want to encrypt. It's fully up to you. I went with the configuration directory of ssh, Thunderbird and Firefox.&lt;br /&gt;&lt;br /&gt;Don't forget that encfs doesn't support fancy filesystem operations, so don't just throw your whole homedir in there - it won't work.&lt;br /&gt;&lt;br /&gt;The next step is to copy your stuff there and create a softlink on the original location:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ mv .ssh /e&lt;br /&gt;$ ln -s /e/.ssh&lt;br /&gt;$ mv Library/Thunderbird /e&lt;br /&gt;$ ln -s /e/Thunderbird Library/&lt;br /&gt;$ ...&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So, now you have the final setup. The next step is to make mounting/unmounting automatic on logon/logoff.  For this, we are going to use the so-called login hook.  This is a special Apple feature; in short, it lets you define an executable that is executed after login, but before changing UID to the user - so, practically at the point when all login-related tasks have been done by root, and we are about to change UID to the user. We will use this to mount our encrypted directory.&lt;br /&gt;&lt;br /&gt;Now, we want an automatic mount of the encrypted volume on login. This is handy if you have Firefox and Thunderbird started up on login.&lt;br /&gt;&lt;br /&gt;How I've solved this was putting the password in the user's keyring. That's a safe storage for passwords. So open the Keychain Access application (easiest is from the little lock in the menubar), pick the Login keychain, category Passwords, and add a new key in there. Set the keychain item name and account name to 'EncFS', and the password to the password that you given to encfs during the first-time initialization.&lt;br /&gt;&lt;br /&gt;Now let's create the script that is to be executed as login hook. Create file &lt;code&gt;/usr/local/sbin/loginhook&lt;/code&gt;, and copy the following into it:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;# $1 = logged in username&lt;br /&gt;# try to mount /e using encfs entry in keychain&lt;br /&gt;su - $1 -c "security find-generic-password -ga EncFS" 2&gt;&amp;1 &gt;/dev/null | cut -d'"' -f2 | sudo -u $1 /opt/local/bin/encfs -S /e.crypt /e&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;What it does is grabs the password you've added to the login keychain using the command-line tool 'security', and pipes it into encfs executable, using the '-S' flag to tell it to fetch the password from standard input.&lt;br /&gt;&lt;br /&gt;Next we create the logout hook. It is the exact same as loginhook, but executed at logout. So create the file &lt;code&gt;/usr/local/sbin/logouthook&lt;/code&gt;, and copy this into it:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;# $1 = logged out username&lt;br /&gt;# try to unmount /e&lt;br /&gt;umount /e&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Yes, it simply unmounts the encrypted directory on logout.&lt;br /&gt;&lt;br /&gt;Don't forget to set the executable bit on these scripts:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo chmod +x /usr/local/sbin/log*hook&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now, instruct the login window application where the login and logout hooks are:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo defaults write com.apple.loginwindow LoginHook /usr/local/sbin/loginhook&lt;br /&gt;sudo defaults write com.apple.loginwindow LogoutHook /usr/local/sbin/logouthook&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;That's it, you're done.&lt;br /&gt;&lt;br /&gt;If you would need to use encfs for more than one users, it is a pretty straightforward change to the above - remember, the first argument of the login and logout hooks is the username. Also, remember to store the 'EncFS' key in the login keychain, because that is specific to each user, so each of them can have different password.&lt;br /&gt;&lt;br /&gt;There are a lot more things that you can do with this, just use your imagination. For me, this does the job, and is perfectly extensible would the need for anything else arise.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The biggest mistake Apple did with FileVault is storing the encrypted home directory on a virtual file system.  All of FileVault's drawbacks originate from this. The implementation is brilliant, free of bugs, fast and well thought over. But why they decided to have all the trouble with a filesystem in a filesystem remains a mystery.&lt;br /&gt;&lt;br /&gt;For me, until Apple manages to come up an encryption that is not based on a broken idea, EncFS really gets the job done. Leave a comment if this short howto helped you too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2607991120374111004-8573287228529257795?l=techieblurbs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techieblurbs.blogspot.com/feeds/8573287228529257795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2607991120374111004&amp;postID=8573287228529257795' title='36 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/8573287228529257795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/8573287228529257795'/><link rel='alternate' type='text/html' href='http://techieblurbs.blogspot.com/2010/02/howto-replace-filevault-with-encfs.html' title='How to replace FileVault with EncFS'/><author><name>Ibi &amp;amp; Agoston</name><uri>http://www.blogger.com/profile/03883601969547816705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_xHYCQs_BXXQ/S3qcnO6Gb1I/AAAAAAAAAec/-Rc9yLo5RyM/S220/14266_1273653888841_1454734774_761264_2527676_n.jpg'/></author><thr:total>36</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2607991120374111004.post-5032638098611886585</id><published>2009-02-17T05:42:00.000-08:00</published><updated>2010-02-12T06:45:59.365-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jpg'/><category scheme='http://www.blogger.com/atom/ns#' term='free'/><category scheme='http://www.blogger.com/atom/ns#' term='wbz'/><category scheme='http://www.blogger.com/atom/ns#' term='webshots'/><category scheme='http://www.blogger.com/atom/ns#' term='jpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='convert'/><title type='text'>How to convert WBZ files to JPG (free!)</title><content type='html'>Webshots has beautiful pics, but their format is a horrid one, titled 'WBZ'. The interesting part is that it actually contains an encrypted JPEG file inside, along with some extra info.&lt;br /&gt;&lt;br /&gt;To extract the JPEG file from the WBZ, you can use the following python script. It takes multiple arguments and saves the JPEG files according to their webshots name. Good news is, it doesn't even require any extra package - python core does it.&lt;br /&gt;&lt;br /&gt;It is not my code - it was part of a GUI software. I merely ripped the GUI and other useless parts of that code. I don't remember what it was - sorry.&lt;br /&gt;&lt;br /&gt;Anyway, here it is. Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;A HREF="http://pastebin.com/f77e4e93c"&gt;http://pastebin.com/f77e4e93c&lt;/A&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2607991120374111004-5032638098611886585?l=techieblurbs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techieblurbs.blogspot.com/feeds/5032638098611886585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2607991120374111004&amp;postID=5032638098611886585' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/5032638098611886585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/5032638098611886585'/><link rel='alternate' type='text/html' href='http://techieblurbs.blogspot.com/2009/02/how-to-convert-wbz-files-to-jpeg.html' title='How to convert WBZ files to JPG (free!)'/><author><name>Ibi &amp;amp; Agoston</name><uri>http://www.blogger.com/profile/03883601969547816705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_xHYCQs_BXXQ/S3qcnO6Gb1I/AAAAAAAAAec/-Rc9yLo5RyM/S220/14266_1273653888841_1454734774_761264_2527676_n.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2607991120374111004.post-169954081000642939</id><published>2008-09-02T02:17:00.000-07:00</published><updated>2010-02-12T06:48:16.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox 3 linux ubuntu edgy feisty dapper backport'/><title type='text'>How to run firefox3 on ubuntu edgy, feisty or dapper</title><content type='html'>OK, I've tried hard to find a way to run firefox3 on these ancient systems. Trying to search the net didn't help much, sadly.&lt;br /&gt;&lt;br /&gt;This walkthrough will probably work on all old(er) linuxes, where you don't/can't upgrade just to get firefox3. The main issue is firefox3's dependency on a newer version of gtk, so we will compile one for ourselves and then set LD_LIBRARY_PATH to use our compiled libraries.&lt;br /&gt;&lt;br /&gt;So, here it goes:&lt;br /&gt;&lt;br /&gt;1. Download firefox3 from &lt;a href="http://getfirefox.com"&gt;getfirefox.com&lt;/a&gt;.&lt;br /&gt;2. Download source of atk at &lt;a href="http://packages.ubuntu.com/source/hardy/atk1.0"&gt;ubuntu.com&lt;/a&gt;.&lt;br /&gt;3. Download source of cairo AND pixman at &lt;A href="http://cairographics.org/releases/"&gt;cairo's website&lt;/a&gt;.&lt;br /&gt;4. Download source of gtk+, glib and pango at &lt;A href="http://www.gtk.org/download-linux.html"&gt;GTK's website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Save all sources in your home dir.&lt;br /&gt;Now, on to compiling (you can use any other path as destination, I'll use ~/firefox):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mkdir -p ~/firefox/src&lt;br /&gt;export LD_LIBRARY_PATH=~/firefox/lib&lt;br /&gt;export LDFLAGS=-L${HOME}/firefox/lib&lt;br /&gt;export CPPFLAGS=-I${HOME}/firefox/include&lt;br /&gt;export PKG_CONFIG_PATH=${HOME}/firefox/lib/pkgconfig/&lt;br /&gt;export CFLAGS=-I${HOME}/firefox/include&lt;br /&gt;cd ~/firefox&lt;br /&gt;tar xvjf ~/firefox-3.0.1.tar.bz2 (or whatever version you've downloaded) (this will also create ~/firefox/firefox)&lt;br /&gt;cd ~/firefox/src&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Untar all source tarballs you've downloaded above - they will all create their own directories. &lt;br /&gt;Now you've got atk, cairo, glib, gtk+, pango, pixman in ~/firefox/src.&lt;br /&gt;&lt;br /&gt;Compile them each by executing:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cd (package dir)&lt;br /&gt;./configure --prefix=$HOME/firefox&lt;br /&gt;make&lt;br /&gt;make install&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The order of package compilation matters, the right order is: glib, pixman, cairo, pango, atk, gtk+.&lt;br /&gt;&lt;br /&gt;If you're done, you can execute firefox like this:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;LD_LIBRARY_PATH=~/firefox/lib ~/firefox/firefox/firefox&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Of course you can organise the directories better if you wish - but for a quick, working firefox3 in your homedir the above is just fine.&lt;br /&gt;&lt;br /&gt;Have fun!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2607991120374111004-169954081000642939?l=techieblurbs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://techieblurbs.blogspot.com/feeds/169954081000642939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2607991120374111004&amp;postID=169954081000642939' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/169954081000642939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2607991120374111004/posts/default/169954081000642939'/><link rel='alternate' type='text/html' href='http://techieblurbs.blogspot.com/2008/09/how-to-run-firefox3-on-ubuntu-edgy.html' title='How to run firefox3 on ubuntu edgy, feisty or dapper'/><author><name>Ibi &amp;amp; Agoston</name><uri>http://www.blogger.com/profile/03883601969547816705</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://3.bp.blogspot.com/_xHYCQs_BXXQ/S3qcnO6Gb1I/AAAAAAAAAec/-Rc9yLo5RyM/S220/14266_1273653888841_1454734774_761264_2527676_n.jpg'/></author><thr:total>1</thr:total></entry></feed>
