Welcome to Eric Cheng's online journal! You are not logged in. [ Log in ]
«  :: index ::  »

Why I am switching to Lightroom from Aperture 2

:: Saturday, October 31st, 2009 @ 3:56:37 am

:: Tags: , ,

Lightroom vs Aperture: I’ve been using Apple’s Aperture for over three years and use it to manage nearly 180,000 images. Today, I am switching to Lightroom.

I really like Aperture’s interface. When I first started using Aperture, it took me a few weeks of dedicated use to learn all of the keyboard shortcuts and tricks to speed up workflow. It wasn’t until I became familiar with the many nuances of the program that I found Aperture to be both flexible and powerful. With a fast enough machine, Aperture is actually quite usable. I like that there is no constraint to workflow. I like that at any time, I can tab the Adjustment pane or HUD and tweak an image to my heart’s content, or that I can always bring up the Keyword HUD and add a keyword. I really like the virtual image organization, which is so flexible that I never use the file system anymore to organize images for submissions, trip reports, or other projects.

However, during my many hours of time sitting in front of Aperture, I ran into so many problems — consistently — that I felt like I had to be very careful with they way I used the program.

Before I get into details, here are some quick pros and cons of Aperture, from my point of view:


  • Not constrained to file system folder organization
  • User constrained to specific workflow
  • Built around virtual albums and smart albums
  • Clean interface


  • Ridiculously slow update cycle
  • Long wait for new camera support
  • Small bugs left unfixed for years
  • Adjustments not improved in dot version upgrades
  • Previews unusable in practice (must be disabled for reasonable performance)
  • No XMP sidecar support (adjustments and keywords trapped in Aperture forever)
  • SQL Lite database is terribly slow and can take Aperture down
  • Frequent database corruption

Users of Aperture who only have 10-20,000 images will probably never run into the same problems I’m dealing with. I am managing terabytes of data — nearly 200,000 images. This means that I that every once in awhile, I have to shuffle images around while upgrading and improving storage subsystems. In theory, Aperture should have no problem with this. Apple made a big deal about how the program was designed for photographers in the field who come back with projects that are then exported from a mobile computer and re-imported into a master database. I found that this export/import process worked MOST of the time, but occasionally resulted in library corruption. I never figured out when a project might export and re-import successfully, so I always kept backups of everything before doing any importing of projects.

Case Study: Sea Shepherd

Adam Lau and I were photographers for Sea Shepherd’s Operation Musashi, an anti-whaling campaign in Antarctica (immortalized by both Whale Wars and South Park). We were out in Australia and Antarctica for more than 3 months and captured tens of thousands of images, which we painstakingly organized down to a collection of 4,000 images tagged by person, vessel, location, weather, action and more. Aperture turned out to be a fantastic program to use for this, and we really enjoyed its flexibility in image organization. However, we had to deliver the images to Sea Shepherd, which is where the pain started.

We flew up to HQ in Friday Harbor and discovered that Sea Shepherd were, themselves, starting to use Aperture for their image library. Armed with a souped-up Mac Pro, they had simply dragged all of their images into an Aperture Library. It makes sense as a first step, but it turns out that if you try to do this with tens of thousands of images, your library will probably never work. When we arrived, the machine was still trying to build previews. During preview creation, Aperture is too slow to use for anything. Also, a copy of each image had been copied into the library, which was now hundreds of gigabytes in size. They didn’t have enough space to store copies of images both inside of an Aperture library AND outside, in the normal file system.

I rebuilt their library and added images by reference, with previews off. It still took hours to build thumbnails, but after thumbnail creation was done, the new library was actually quite usable.

It was then our task to import our Operation Musashi images into their library, and we did what I always do when I return from an assignment. We clicked on our project in Aperture on my machine (which was meticulously organized), exported it, imported it into their library (on their machine), copied all of the files over, and re-connected them using Manage Referenced Files. After the import, we noticed that a good number of the images were missing thumbnails even after thumbnail creation was finished. The only way to get a thumbnail for these images was to do some sort of Adjustment operation (i.e. adjust the contrast, and it would build a thumbnail). Furthermore, there were images that were not only without a thumbnail, but were also pointing to the wrong place! These were also for some reason square (1:1 aspect ratio). Since Aperture thought these “images” were 0 x 0 pixels in dimension and 0 KB in size, it refused to re-connect them to the correct files — ever. The re-connect button in Manage Referenced Files simply remained disabled even when we were pointing to the original file.

We could have fixed these corrupted images by re-importing each of them manually and then lifting and stamping adjustments and metadata from the corrupted images, but it would have been extremely tedious. Instead, we tried exporting and importing the project again. I’m not sure how many times it took to make it right, but it eventually worked, and every image was there in Sea Shepherd’s master library. But you can imagine the sort of things we did to try to make it work. During export and import, we were almost literally afraid to touch the computer. I am by nature a multitasker, and I had to walk away from the computer because I was afraid that if I did something in another program, Aperture would do something wrong. This is not a fun situation to be in, and I realized then that I had lost faith in Aperture.

Upgrading drives

I upgraded all of my drives a few months ago, and in the process of copying all of my files from the old drives to the new drives, I was forced to reconnect over 100,000 images in Aperture. The process took a long time because Aperture sometimes decides not to reconnect some files when you “Re-connect all”. But when you ask it to reconnect again, more of them are successfully reconnected. I have seen this behavior on many machines, so it’s not just isolated to mine. So while it doesn’t always reconnect, it does so enough of the time that it might take 10-15 “Re-connect all” attempts for all of the files to be reconnected.

Anyway, so most of the files reconnected successfully, but not all of them did. I was confused, and tracked them down in Aperture, but for some reason, Aperture’s “Re-connect” button was disabled when I pointed to the original file(s). They had all been corrupted in some way, and the only way to bring them back was to re-import them. This is not a problem if you are dealing with 10 files, but I was dealing with hundreds of images spread out over dozens of folders.

October 30, 2009

My “Travel” images on my main photo machine is split across dozens of folders in two top-level folders. One folder holds project folders that are archived offsite. The other holds project folders that are not yet archived offsite. All of my data is backed up every night (incrementally) to a second volume on the machine, but ONLY the images that are not archived offsite are backed up to a NAS box in my closet.

The reason my backup process is so complicated is that I’m working with a lot of data. It’s easy to copy 10GB on a whim, but copying a terabyte or three takes planning. My storage and backup scheme requires that I move a project from the “current” folder into the “archive” folder when it leaves the house and is safely archived in more than one physical location (2 or 3 copies at home, and 1 somewhere else).

Unfortunately, this means that I have to MOVE directories containing images that Aperture points to by reference. Because Aperture is running on a Mac using HFS+, it is supposed to be just fine with me moving images around. It USUALLY still points to an image after I move the file using the Finder. However, it isn’t always OK with it. Sometimes, the image simply goes offline. This is great because I can just re-connect it. But sometimes, it does Really Bad things. Usually, it does one of these Really Bad Things:

  1. The image thumbnail becomes square (1:1 aspect ratio). If this image is offline, it can never be re-connected because the Aperture thinks you’re giving it the wrong image file. You are screwed.
  2. The image thinks it’s another image. The thumbnail shows one image, but viewing the image full size shows the correct one. Solution? Go into the Aperture library package and delete the thumbnails out of the project.
  3. The image has a blank thumbnail, but still points to the correct image. Solution? Make an Adjustment, and then (optionally) undo it. Thumbnail rebuilds.
  4. The image has a blank square thumbnail, and now points to a seemingly random file inside of the Aperture library package. Yes, you read that right. When Aperture tries to re-build this thumbnail, it flashes “Updating Library: Building Thumbnails: 1 Remaining” very quickly in the Activity windows, over and over again. It does this when you move the mouse over the thumbnail, or if you are trying to export it. See below for an example. There is no solution for this. You are absolutely screwed.

the blank square thumbnail is unrecoverable

Doing a “Show in Finder” results in the following location, which is deep inside the Aperture library instead of in the folder where the RAW file lives:

Doing a “Manage Referenced Files” verifies that Aperture is very confused. The fact that it’s looking for a 0 x 0 pixel, 0KB file means that you can now NEVER reconnect it to the right file.

Here’s a video that shows the bizarre flashing “Building Thumbnails” activity:

Anyway, on October 30, I did a massive offsite backup and file re-organization. I moved tens of thousands of images from one folder to another. Essentially, I did this:

Original folder:

Genres -> Travel > Project Folder A

New folder:

Archived -> Travel > Project Folder A

I did this while Aperture was running. When I started browsing my library, I saw, in real time, that images were getting corrupted. Some thumbnails simply lost their aspect ratio, becoming square (distorted). Some thumbnails chose other images to represent (showing the wrong image), and some became the dreaded square blank thumbnail that points to some weird place inside the Aperture library. I saw this happen in real time, and I managed to capture some of it on video:

This newly-corrupted Aperture library is my main travel library. It contains all of my keywording and organization for all of the trips I’ve been on, EVER, and all of the submissions I’ve made to various stock agents, magazines, books, etc. To have this library become corrupted would be disastrous.

I have two backups, but without moving my image files back to where the originally lived, I knew that simply restoring my Aperture libraries and re-launching Aperture would again result in massive database corruption. I have NO IDEA what Aperture is trying to do. Presumably, it notices that the file has been moved, tries to do something, and hits a critical bug that results in corruption.

I’ve had enough of walking on eggshells, which is how I feel every time I use Aperture on a big library. I’ve tired of waiting for Aperture to fix its bugs. I’m tired of Aperture not supporting my new cameras.

I’m switching to Lightroom as of today.

I know that there are rumors of a new “Aperture X” that might come out in a month, and I’m sure that the next version of Aperture will be ahead of Lightroom in terms of feature set (until Lightroom catches up with its steady incremental upgrading, as it aways does), but without preserving data integrity, an application is useless.

Lightroom supports the writing of metadata into XMP sidecar files, and will maintain this XMP file for every image if a catalog is set to do so. Because of this, I know that in Lightroom, it is not possible to lose an image’s adjustments and metadata as a result of a catastrophic database corruption.

It’s going to be truly painful to have to organize and keyword my images again. I was by no means anywhere close to being done keywording all of my images, but there is quite a bit of metadata locked away in the crappy SQL Lite database that Aperture uses. I know that I can Export Masters from Aperture with an IPTC4XMP sidecar file for non-adjustment metadata, but the very fact that my Aperture library has been corrupted prevents me from being sure any export will include all of my files.

So there you go — the reason I left the Aperture camp today.

I am disappointed, but it is an opportunity to start organizing from scratch. I think I’m going to have to hire some interns.

If you are depressed now after reading this, perhaps you should go browse my photos of swimming pigs! It cheered me up, but then I went to look at my pig album in Aperture and one of the thumbnails was missing.

| San Francisco, CA | link | trackback | Oct 31, 2009 03:56:37
  • http://www.tabah.com/journal/ Alexis

    That’s courageous

  • tammy

    eric, that was so unbelievably, insanely detailed. obviously, you feel very strongly about this. i now understand why my “nikon school” classes spent so much time on workflow and sharing how they back everything up.

    i am now going to looks at photos of swimming pigs.

  • http://www.tonywublog.com Tony

    Whoa. Major bummer. Depressing, considering how much I have invested in Aperture

  • Mike V

    You will have to redo all of the keywording?!?!

    Fuck…. sorry to hear that one!

  • Michaela

    Thanks for taking the time to share this incredible/detailed overview!

  • http://www.newmediasoup.com Joel

    Sorry to hear about this. It makes me sick to my stomach thinking about losing data. (and I think of keywording and organization as data) I’m glad you have your RAW files though. Good luck with the transition to LR.

    If it’s any encouragement, we’ve been using Lightroom for a few years -merging two travel MBpros to a MACpro master Lightroom DB, and everything is still working great. The whole thing is searchable and travel catalogs import in and do really well. I hope things work well for you and your images.

  • Rogier

    And one day soon we will hear you bitching about Lightroom the same as in Aperture. Nothing is perfect….

  • http://steveweller.com Steve Weller

    Wow — you moved directories full of referenced files around while Aperture was running? Seriously? I’m not surprised you had problems.

    The biggest Aperture error that Apple made was to allow such operations in the first place. Referenced files are a huge compromise. It would have been infinitely better to make projects flexible as stand-alone chunks that could easily be moved in and out of libraries as needed, so maintaining some form of encapsulation. That and building in a sensible archiving system. Vaults are a poor back-up system and don’t work for archiving.

  • Amy

    I don’t understand half of the things you said, but I feel your pain. Happy Halloween !!! Boooo?

  • http://echeng.com echeng

    Steve – first of all, thank you for your website. I’ve learned so much from you over the years (mostly, from your old archived content that I used to find via search engines :).

    But yes, I moved directories when Aperture was running, which I shouldn’t have done. However, I do have a backup of my library that was NOT open when I moved the files. I just opened that backup library, and my library started to destroy itself right in front of me… so I’m not convinced that the problem stems from moving images around while Aperture is running, although maybe the images that are breaking now were moved in the past when Aperture was moving. I don’t know.

    I think the only way to recover my library is to really break the links in my referenced files (i.e open the library on a machine that doesn’t have a volume with the images on it). Make the images explicitly offline, and reconnect them all. If I could only FORCE a reconnection, even to an image Aperture thinks is a different size, I probably could recover from this.

    I can’t, however, explain project corruption during export and import. This was a constant problem between Adam and me while we were on the Sea Shepherd boat. He would do regular exports to me (I maintained the master library), but if he exported a project, I would frequently see missing thumbs / corruption upon import (no to mention the flattened keyword hierarchy, which was also a big problem).

    More things I won’t miss:

    1. not being able to drag images to albums from a folder view
    2. trying to search for keywords with > 10,000 keywords in keyword database (so slow it’s unusable)
    3. not being able to find keywords unless I know that the keyword STARTS wish
    4. not being able to expand found keywords to see their children

    Rogier — yes, nothing is perfect, but some apps don’t corrupt data as often.

  • Jeff Laity

    Wow, dangerous. I’m glad that I (and everyone else I know) made the switch already.

  • Chris Emura

    I empathize with you and even though I’m only in the 30,000 images camp and not a professional like you, data integrity is data integrity. Period. I can’t speak first hand for Lightroom and Adobe’s true track record in this space, but I’ve had more than my fair share of problems with Aperture corruption. And scalability too, but I’m more tolerant of that relative to data integrity.

    For the longest time, iPhoto was incredibly 2nd class. Across the board. Aperture started off pretty badly, but I had hoped things would improve quickly given how many professionals like yourself use it.

    I hope others at your level give Apple direct feedback on these sorts of problems.

  • http://www.sterlingzumbrunn.com Sterling Zumbrunn

    Hey Eric,

    Thanks for this post, and sorry to hear about your difficulties. I have tried to like Aperture for the better part of its life cycle, and have just never gotten it to work for me for serious production work. I do use it for portfolio management (already processed TIFF files), as I really like its hooks directly into the Mac OS, being able to browse albums directly from any open/save dialog, etc.

    About a year ago, I thought about giving it a serious run for its money, and import a good chunk of RAW files to see how it would do as my primary database. I imported some tens of thousands of images, made a vault as backup, and started to import even more images. At a certain point, something blew up and I ran into issues exactly as you are describing. Eventually, the entire database was corrupted. No problem I thought, I’ll just start over from my vault. It didn’t work – the restore failed every time. From that day on, I knew I couldn’t trust Aperture as a system to manage my images.

    I will say Lightroom is far from perfect. Once you get up into the tens of thousands of images, things really start to bog down, and for that reason I pretty much use a separate catalog file for each trip, and then pull the selects into one master library. Definitely sub-optimal, but performance-wise a much better option.

    The one area that I’ve found Lightroom particularly lacking is in rendering Canon RAW files. I just recently switched from Nikon, and Lightroom used to have a lot of problems with those files as well. But the Nikon profiles Adobe released with v2 are quite good; I haven’t seen the same accuracy for the Canon ones. For this reason, I’ve had to use Canon DPP to process any challenging files – in particular, anything with sunballs underwater, or major highlight transition in blue water. The difference in quality between DPP and Lightroom is dramatic.

    I’ll be interested to read future posts about your thoughts on Lightroom. I’ve been trying V3 Beta, but so far have not seen any major differences in rendering. Seems like a modest update. But as you mention, support for XMP is so critical. It definitely makes the images so much more portable. You can always fall back on PS/Bridge if things go crazy.

    Good luck with the transition. I know it’s a big project, and not at all easy.

    Best regards,


  • Mike Youngberg

    I, too, have had similar difficulties with Aperture. I had about 1.1TB; maybe 120k images, (on a Drobo 2). I, too, was careful not to do stuff with Aperture while it was processing anything. It would frequently max out memory usage on my 12GB Mac Pro on import. It would frequently corrupt previews, and would take anywhere from 2 minutes to 30 minutes to launch. I love the single database concept, but it doesn’t work well with a large database with Aperture.

    I split my Aperture library into several parts < 500GB each, and moved the libraries onto intermal drives (off the Drobo 2). Life is much, much, smoother. Corruption no more; Launches quickly.

    I changed my workflow library to have a working library (for work in progress), and various other libraries that will contain the relevant projects after the work is complete.

    But I’ve lost the ability to search the whole library at once, although maybe Spotlight can do it.

    Let’s hope Apple improves the stability and speed of Aperture, particularly with large databases; allows usage of full keyword paths; & maintenance of XMP sidecar files for all photo data (including adjustments).

    I’d prefer not to switch to LR; but if Aperture doesn’t improve significantly & more often, I’ll be forced to. -mike

  • John

    Have you thought about converting your files to DNG so info stays with the images?

  • http://www.epapyrus.de Jan Florian Maas

    Hi Eric,

    it seems to me that you may need some help in getting all of your metadata out of Aperture. We’ve worked on this with big Libraries, up to 1.2 mio images and spent a lot of work for getting Metadata, Keywords (hierarchically) and additional Metadata fields into FileMaker and back again into Aperture. If you need help, feel free to contact me.

    Most of all experienced problems with bigger Libraries came from “hick-ups” in the Keyword part of the database and from cumulating errors within the Library structure. Not all of them can be repaired by Aperture itself. With some help from AppleScript, some of these problems can be solved, when errors have occurred.

    From my point of view it’s a good idea to reduce the number of keywords by writing most of the needed information into IPTC fields or Other Metadata fields. This can be done by smart AppleScripts. Smart Albums are also working fine with searches in Metadata fields.

    We also wrote an Aperture Helper in Cocoa, to do batch import and batch export. Still now it’s more an ugly technology preview, but it works. It helps a lot, when working with Project Templates. But, of course, we are still awaiting Aperture 3…

    Cheers, Jan

  • http://localphotos.com Matt

    I had the same issue losing all my keywords when I moved to a new hard drive.(Ap 1.5) Since then I have stopped using aperture for keywords as it is not something I ever want to have to redo from scratch… I presently comparing lightroom as I need a faster application for travel with a laptop, also looking at photomechanic.

  • nai

    I’m bittersweetly relieved that I’m not the only one having this issue. Today Aperture “lost” a bunch of images again – saying they were referenced when I don’t use Referenced Images!!.

    And to top it off, the images actually do exist in the managed file (at least, most of them do). They are sitting where they are supposed to be, but Aperture can’t find them and I can’t even reimport them.

    Today was the last straw. I’m done with Aperture, as much as I like the interface it should be able to keep track of my files. Period.

    I don’t care what Aperture 3 is. Lightroom is my new photo home, since I don’t hear anyone complaining about file management and database corruption.

  • David


    I literally know NOTHING about Aperture (or Lightbox, for that matter), but stumbled on your page when someone mentioned the two to me today. I can feel your pain about re-cataloging your huge photo collection. I wonder whether you couldn’t pull your metadata out of the SQLite database directly and port it into a format that Lightbox could read? Just trying to help out…


  • Thomas

    Hello Eric,

    I have a problem too. But here the metadata in the library is overwritten by the metadata of the master and not the thumbnails. This happens when Aperture is rebuilding the thumbnails. I work with referenced masters, first on a NAS, now on my Macbook Pro. But only the IPTC metadata will be overwritten, not the keywords. If there will be no solution soon I have to switch too.

    Thomas from Germany

  • Kevin Binnie

    Eric, Now that you have been using Lightroom for a while, how do you find the performance? I always found it to be incredibly slow. I am using a PC-based laptop using Windows XP. Another issue I found is that when i tried to use an external monitor, all of my images dimmed to the point where some were unviewable (if that’s a word). It still does the same thing today. Fortunately, i only have 100 G or so of photos, but I am thinking of going the other way.


  • http://jonmillerscuba@gmail.com Jon in Boulder

    I just returned from 2.5 weeks in Africa to discover that Aperture somehow failed to connect with two projects (2 days of an 11 day wildlife viewing safari). I get “unsupported image” even though the metadata is there and the aperture library has not lost any gigs. Thats about 500 to 1000 images. Very painful. New work flow of saving RAW data first before import.

    Also Aperture 2 was also failing to import from 8 gig card consistently dropping images. This I usually caught and fixed.

    Very disappointing. For shame.


  • Pingback: Inside Lightroom » Blog Archive » ‘The Gloves are Off?’ redux

  • http://twitter.com/colinpurrington Colin Purrington

    Have been using Aperture for a long time but have all of the above problems, and more. Thanks for such a great post. I'm currently seeing whether importing a corrupted Aperture database into Lightroom can resurrect tens of thousands of lost photographs.

Journal Home
Where is Eric? (password)
Stuff for Sale
February 2014 (2)
December 2013 (1)
October 2013 (1)
June 2013 (3)
May 2013 (2)
April 2013 (3)
March 2013 (1)
February 2013 (2)
January 2013 (3)
November 2012 (2)
October 2012 (3)
September 2012 (8)
August 2012 (8)
July 2012 (8)
June 2012 (8)
May 2012 (5)
April 2012 (8)
March 2012 (15)
February 2012 (7)
January 2012 (6)
December 2011 (8)
November 2011 (10)
October 2011 (12)
September 2011 (8)
August 2011 (14)
July 2011 (9)
June 2011 (9)
May 2011 (11)
April 2011 (11)
March 2011 (12)
February 2011 (23)
January 2011 (22)
December 2010 (16)
November 2010 (17)
October 2010 (26)
September 2010 (24)
August 2010 (24)
July 2010 (30)
June 2010 (26)
May 2010 (21)
April 2010 (26)
March 2010 (19)
February 2010 (17)
January 2010 (29)
December 2009 (21)
November 2009 (23)
October 2009 (32)
September 2009 (19)
August 2009 (34)
July 2009 (21)
June 2009 (30)
May 2009 (23)
April 2009 (18)
March 2009 (6)
February 2009 (25)
January 2009 (5)
December 2008 (6)
November 2008 (22)
October 2008 (27)
September 2008 (25)
August 2008 (34)
July 2008 (34)
June 2008 (32)
May 2008 (26)
April 2008 (15)
March 2008 (19)
February 2008 (31)
January 2008 (43)
December 2007 (33)
November 2007 (29)
October 2007 (29)
September 2007 (9)
August 2007 (19)
July 2007 (10)
June 2007 (17)
May 2007 (26)
April 2007 (38)
March 2007 (39)
February 2007 (13)
January 2007 (35)
December 2006 (35)
November 2006 (14)
October 2006 (6)
September 2006 (20)
August 2006 (24)
July 2006 (32)
June 2006 (17)
May 2006 (22)
April 2006 (16)
March 2006 (16)
February 2006 (26)
January 2006 (33)
December 2005 (17)
November 2005 (21)
October 2005 (17)
September 2005 (17)
August 2005 (5)
July 2005 (15)
June 2005 (20)
May 2005 (25)
April 2005 (7)
March 2005 (22)
February 2005 (20)
January 2005 (38)
December 2004 (6)
November 2004 (24)
October 2004 (16)
September 2004 (22)
August 2004 (12)
July 2004 (17)
June 2004 (15)
May 2004 (11)
April 2004 (35)
March 2004 (40)
February 2004 (29)
January 2004 (36)
December 2003 (20)
November 2003 (18)
October 2003 (10)
September 2003 (18)
August 2003 (10)
July 2003 (34)
June 2003 (12)
May 2003 (49)
April 2003 (42)
March 2003 (42)
February 2003 (15)
January 2003 (7)
December 2002 (17)
November 2002 (19)
October 2002 (24)
September 2002 (22)
August 2002 (20)
July 2002 (21)
June 2002 (14)
May 2002 (15)
April 2002 (11)
March 2002 (13)
February 2002 (20)
January 2002 (17)
December 2001 (16)
Even Older Journal
Travel Journals

(25) (2) (1) (3) (1) (1) (1) (6) (2) (3) (11) (8) (3) (1) (1) (4) (2) (4) (2) (1) (6) (1) (1) (1) (6) (2) (1) (1) (1) (3) (1) (5) (1) (1) (23) (1) (1) (1) (1) (1) (14) (1) (10) (1) (1) (2) (1) (1) (1) (27) (6) (3) (2) (4) (4) (1) (1) (41) (11) (12) (4) (38) (1) (3) (2) (4) (1) (1) (1) (1) (2) (1) (1) (1) (1) (1) (10) (25) (8) (3) (2) (3) (2) (1) (5) (1) (1) (2) (1) (1) (14) (1) (5) (1) (1) (5) (43) (1) (1) (1) (3) (24) (1) (1) (1) (1) (5) (1) (4) (1) (1) (10) (1) (3) (1) (1) (1) (1) (6) (5) (1) (1) (1) (3) (1) (3) (1) (1) (1) (69) (4) (3) (7) (3) (1) (16) (6) (1) (29) (1) (7) (1) (4) (4) (4) (1) (1) (1) (1) (1) (1) (1) (10) (4) (4) (2) (1) (89) (14) (1) (2) (79) (2) (2) (1) (1) (1) (1) (1) (1) (3) (2) (3) (1) (1) (24) (3) (5) (4) (1) (2) (1)
Most Popular Posts of All Time

Eric Cheng's RSS Journal Journal RSS
Eric Cheng's RSS Journal Comments RSS

proudly powered by wordpress
script exec time: 0.61s
i hate computers.