HTTP/2 302
server: nginx
date: Sun, 03 Aug 2025 22:53:56 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20080516080104
location: https://web.archive.org/web/20080516080104/https://pragprog.com/users/display_profile/1182
server-timing: captures_list;dur=0.570521, exclusion.robots;dur=0.021271, exclusion.robots.policy;dur=0.009820, esindex;dur=0.012698, cdx.remote;dur=76.145669, LoadShardBlock;dur=284.497054, PetaboxLoader3.datanode;dur=69.555927, PetaboxLoader3.resolve;dur=155.789759
x-app-server: wwwb-app214
x-ts: 302
x-tr: 391
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app214; 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: Sun, 03 Aug 2025 22:53:56 GMT
content-type: text/html; charset=UTF-8
x-archive-orig-server: nginx/0.5.10
x-archive-orig-date: Fri, 16 May 2008 15:01:04 GMT
x-archive-orig-transfer-encoding: chunked
x-archive-orig-connection: close
x-archive-orig-set-cookie: _pragmatic_session_id=72c0aa742db7cd952398b519d37e1de5; domain=.pragprog.com; path=/
x-archive-orig-status: 200 OK
x-archive-orig-cache-control: no-cache
x-archive-orig-x_commoncrawl_parsesegmentid: 3612
x-archive-orig-x_commoncrawl_originalurl: https://pragprog.com/users/display_profile/1182
x-archive-orig-x_commoncrawl_urlfp: -7126134513383964170
x-archive-orig-x_commoncrawl_hostfp: -3083558223540139022
x-archive-orig-x_commoncrawl_signature:
x-archive-orig-x_commoncrawl_crawlno: 1
x-archive-orig-x_commoncrawl_fetchtimestamp: 1210950064133
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
x-archive-orig-content-encoding: gzip
memento-datetime: Fri, 16 May 2008 08:01:04 GMT
link:
; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate", ; rel="first memento"; datetime="Wed, 14 Nov 2007 04:49:05 GMT", ; rel="prev memento"; datetime="Wed, 14 Nov 2007 04:49:05 GMT", ; rel="memento"; datetime="Fri, 16 May 2008 08:01:04 GMT", ; rel="next memento"; datetime="Sun, 07 Sep 2008 09:57:04 GMT", ; rel="last memento"; datetime="Sat, 19 Nov 2016 15:50:02 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: 1214441996475_5-c/1214442298232_1.arc.gz
server-timing: captures_list;dur=0.488954, exclusion.robots;dur=0.019336, exclusion.robots.policy;dur=0.008961, esindex;dur=0.011969, cdx.remote;dur=117.765980, LoadShardBlock;dur=101.087522, PetaboxLoader3.datanode;dur=89.096349, PetaboxLoader3.resolve;dur=119.977197, load_resource;dur=118.827980
x-app-server: wwwb-app214
x-ts: 200
x-tr: 381
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
The Pragmatic Bookshelf | Caleb Tennis
Caleb Tennis
Caleb Tennis is a professionally trained electrical engineer with a strong background in both hardware and software. He has written for multiple publications including LinuxJournal and is the author of Rapid GUI Development with QtRuby and A Peak at Computer Electronics . Caleb works for a small research and development firm working on innovative controls for diesel engine technologies.