HTTP/2 302
server: nginx
date: Tue, 15 Jul 2025 06:36:17 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20080708172556
location: https://web.archive.org/web/20080708172556/https://www.oreillynet.com/mac/blog/2008/03/
server-timing: captures_list;dur=11.069901, exclusion.robots;dur=0.030175, exclusion.robots.policy;dur=0.012463, esindex;dur=0.010229, cdx.remote;dur=26.625763, LoadShardBlock;dur=984.395472, PetaboxLoader3.resolve;dur=742.997584, PetaboxLoader3.datanode;dur=149.260911
x-app-server: wwwb-app239
x-ts: 302
x-tr: 1051
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=1
set-cookie: SERVER=wwwb-app239; path=/
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Tue, 15 Jul 2025 06:36:18 GMT
content-type: text/html
x-archive-orig-date: Tue, 08 Jul 2008 17:25:32 GMT
x-archive-orig-server: Apache
x-archive-orig-p3p: policyref="https://www.oreillynet.com/w3c/p3p.xml",CP="CAO DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONo OUR DELa PUBi OTRa IND PHY ONL UNI PUR COM NAV INT DEM CNT STA PRE"
x-archive-orig-x-powered-by: PHP/4.4.3
x-archive-orig-status: 200
x-archive-orig-x-cache: MISS from olive.bp
x-archive-orig-x-cache-lookup: MISS from olive.bp:3128
x-archive-orig-via: 1.0 olive.bp:3128 (squid/2.6.STABLE13)
x-archive-orig-connection: close
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Tue, 08 Jul 2008 17:25:56 GMT
link:
; rel="original",
; rel="timemap"; type="application/link-format",
; rel="timegate",
; rel="first memento"; datetime="Tue, 11 Mar 2008 23:27:49 GMT",
; rel="prev memento"; datetime="Wed, 02 Jul 2008 18:48:11 GMT",
; rel="memento"; datetime="Tue, 08 Jul 2008 17:25:56 GMT",
; rel="next memento"; datetime="Thu, 16 Oct 2008 02:29:13 GMT",
; rel="last memento"; datetime="Fri, 02 May 2014 09:51:41 GMT"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: 52_4_20080708141908_crawl109-c/52_4_20080708172405_crawl103.arc.gz
server-timing: captures_list;dur=0.556416, exclusion.robots;dur=0.018353, exclusion.robots.policy;dur=0.007229, esindex;dur=0.009216, cdx.remote;dur=136.610963, LoadShardBlock;dur=343.455565, PetaboxLoader3.datanode;dur=301.835054, PetaboxLoader3.resolve;dur=441.585063, load_resource;dur=423.549481
x-app-server: wwwb-app239
x-ts: 200
x-tr: 998
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
O'Reilly Mac DevCenter Blog
March 2008 Archives
“Last weekend, I decided to expand Coverflow to work with my entire photo album,” said Erica Sadun in her recent post, Accessing all your onboard photos from your iPhone database . “This involved exploring the MusicLibrary and PhotoLibrary frameworks to find out how I could extract a complete set of albums and their pictures. The PLPhotoLibrary class proved to hold the key. With it, I could request an album list, and then build up a dictionary of photos that linked back from the image identifier to the album it came from.”
She then goes on to post the code on how to accomplish this. Quite nice.