{"title":"Blacklight Inspection","page_title":"Christopher Maier - Christopher Maier","uri_ins":"http://christophermaier.name/","uri_dest":"https://www.christophermaier.name/","uri_redirects":["http://christophermaier.name/","https://christophermaier.name/"],"secure_connection":{},"host":"christophermaier.name","config":{"emulateDevice":{"name":"Pixel 4a (5G)","userAgent":"Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4812.0 Mobile Safari/537.36","viewport":{"width":353,"height":745,"deviceScaleFactor":3,"isMobile":true,"hasTouch":true,"isLandscape":false}},"cleareCache":true,"captureHar":true,"captureLinks":false,"enableAdBlock":false,"saveBrowserProfile":false,"numPages":2,"defaultTimeout":35000,"defaultWaitUntil":"networkidle2","headless":true,"headers":{},"extraChromiumArgs":["--disable-features=TrackingProtection3pcd","--website-analysis-scan=f49878fc-daaf-488e-a9de-75bfd5704ea4"],"extraPuppeteerOptions":{}},"browser":{"name":"Chromium","version":"Chrome/127.0.6533.88","user_agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/127.0.0.0 Safari/537.36","platform":{"name":"Linux","version":"6.6.87.1-microsoft-standard-WSL2"}},"script":{"host":"27f34b741838","version":{"npm":"3.11.0","commit":"dev"},"node_version":"v24.20.0"},"start_time":"2026-09-08T15:25:30.347Z","end_time":"2026-09-08T15:25:42.620Z","browsing_history":["https://www.christophermaier.name/","https://christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","https://christophermaier.name/2011/04/30/not-so-private-clojure-functions/"],"hosts":{"requests":{"first_party":["christophermaier.name","www.christophermaier.name"],"third_party":["cdn.jsdelivr.net","use.fontawesome.com","maxcdn.bootstrapcdn.com","fonts.googleapis.com","cdnjs.cloudflare.com","www.googletagmanager.com","code.jquery.com","fonts.gstatic.com","region1.google-analytics.com","christophermaier.disqus.com","disqus.com","c.disquscdn.com","cdn.viglink.com","referrer.disqus.com","a.disquscdn.com","links.services.disqus.com","api.viglink.com"]}},"reports":{"behaviour_event_listeners":{"MOUSE":{"https://c.disquscdn.com/next/embed/alfie_v4.63f1ab6d6b9d5807dc0c94ef3fe0b851.js":["click","mousedown"],"https://www.googletagmanager.com/gtag/js?id=G-KT7L3902D2":["click"],"https://c.disquscdn.com/embedv2/latest/embedv2.js":["scroll"],"https://c.disquscdn.com/next/embed/common.bundle.712217b7f5a618b8bc684129c2acd47a.js":["click"],"https://c.disquscdn.com/next/embed/lounge.bundle.7f21ab1c601ae726335d27912834559e.js":["click","scroll","mousemove"],"https://c.disquscdn.com/next/recommendations/common.bundle.43d7b81d7be743ddbbff9eeae86f2a4b.js":["click"],"https://c.disquscdn.com/next/recommendations/recommendations.bundle.e10dd10b7f8cbf10e87b9f893f636092.js":["click","scroll","mousemove"],"https://christophermaier.disqus.com/recommendations.js":["click","scroll","mousemove"],"https://christophermaier.disqus.com/embed.js":["click","scroll","mousemove"],"https://code.jquery.com/jquery-3.5.1.slim.min.js":["scroll","click"]},"KEYBOARD":{"https://c.disquscdn.com/next/embed/common.bundle.712217b7f5a618b8bc684129c2acd47a.js":["keypress"],"https://c.disquscdn.com/next/recommendations/common.bundle.43d7b81d7be743ddbbff9eeae86f2a4b.js":["keypress"],"https://code.jquery.com/jquery-3.5.1.slim.min.js":["keydown"]}},"canvas_fingerprinters":{"data_url":{},"fingerprinters":[],"styles":{},"texts":{}},"canvas_font_fingerprinters":{"canvas_font":{},"text_measure":{}},"cookies":[{"name":"_ga_KT7L3902D2","value":"GS2.1.s1788881139$o1$g0$t1788881139$j60$l0$h0","domain":"christophermaier.name","path":"/","expires":"2027-10-13T15:25:39.640Z","size":59,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_ga","value":"GA1.1.421699079.1788881140","domain":"christophermaier.name","path":"/","expires":"2027-10-13T15:25:39.640Z","size":29,"httpOnly":false,"secure":false,"session":false,"priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false}],"fb_pixel_events":[],"tiktok_pixel_events":[],"twitter_pixel_events":[],"google_analytics_events":[],"key_logging":{},"session_recorders":{},"third_party_trackers":[{"data":{"body":"format=jsonp&jsonp=vglnk_17888811400487&key=cfdfcf52dffd0a702a61bad27507376d&subId=444277&loc=https%3A%2F%2Fwww.christophermaier.name%2F2011%2F04%2F30%2Fnot-so-private-clojure-functions%2F&v=2","filter":"||disqus.com/api/ping","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://links.services.disqus.com/api/ping"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"event":"failed_recommendations.server.undefined"}},"stack":[{"fileName":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/stat.gif?event=failed_recommendations.server.undefined"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"abe":0,"dnt":0,"embed_hidden":0,"event":"init_embed","experiment":"videofloorexp_hidden","forum":"christophermaier","forum_id":444277,"imp":"88a8msq3qnn1ki","load_time":175,"max_enabled":false,"promoted_enabled":false,"referrer":"https://www.christophermaier.name/","service":"dynamic","theme":"next","thread":291860113,"thread_slug":"not_so_private_clojure_functions","tracking_enabled":0,"user_type":"anon","variant":"fallthrough"}},"stack":[{"fileName":"https://disqus.com/embed/comments/?base=default&f=christophermaier&t_u=https%3A%2F%2Fwww.christophermaier.name%2F2011%2F04%2F30%2Fnot-so-private-clojure-functions%2F&t_d=Not-So-Private%20Clojure%20Functions&t_t=Not-So-Private%20Clojure%20Functions&s_o=default#version=2b53f7bc0e6db9df9d9b00a3aca1508b","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/event.gif?abe=0&embed_hidden=0&load_time=175&event=init_embed&thread=291860113&forum=christophermaier&forum_id=444277&imp=88a8msq3qnn1ki&thread_slug=not_so_private_clojure_functions&user_type=anon&theme=next&dnt=0&tracking_enabled=0&experiment=videofloorexp_hidden&variant=fallthrough&service=dynamic&promoted_enabled=false&max_enabled=false&referrer=https%3A%2F%2Fwww.christophermaier.name%2F"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_ee":1,"_fv":1,"_nsi":1,"_p":1788881139188,"_s":1,"_ss":1,"are":1,"cid":421699079.17888814,"dl":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","dma":1,"dma_cps":"a","dt":"Not-So-Private Clojure Functions - Christopher Maier","en":"page_view","ep.anonymize_ip":false,"frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6921v895267277za200zd895267277","ngs":1,"npa":1,"pscdl":"","rcb":10,"sct":1,"seg":0,"sid":1788881139,"sr":"353x745","tag_exp":"115616986~115938466~115938469~118012008~118897920~118897930~120213116~120385423~120469145~120469153~120914214","tfd":753,"tid":"G-KT7L3902D2","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-KT7L3902D2&gtm=45je6921v895267277za200zd895267277&_p=1788881139188&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=421699079.1788881140&frm=0&ngs=1&pscdl=&rcb=10&sr=353x745&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115616986~115938466~115938469~118012008~118897920~118897930~120213116~120385423~120469145~120469153~120914214&sid=1788881139&sct=1&seg=0&dl=https%3A%2F%2Fwww.christophermaier.name%2F2011%2F04%2F30%2Fnot-so-private-clojure-functions%2F&dt=Not-So-Private%20Clojure%20Functions%20-%20Christopher%20Maier&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&ep.anonymize_ip=false&tfd=753"},{"data":{"body":{},"filter":"/pixel.gif?","listName":"easyprivacy.txt","query":{"ch":2,"rn":5.200747206605714}},"stack":[{"fileName":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.viglink.com/images/pixel.gif?ch=2&rn=5.200747206605714"},{"data":{"body":{},"filter":"/pixel.gif?","listName":"easyprivacy.txt","query":{"ch":1,"rn":5.200747206605714}},"stack":[{"fileName":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.viglink.com/images/pixel.gif?ch=1&rn=5.200747206605714"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"event":"cmp.gpp.absent"}},"stack":[{"fileName":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/stat.gif?event=cmp.gpp.absent"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"G-KT7L3902D2"}},"stack":[{"fileName":"https://www.christophermaier.name/2011/04/30/not-so-private-clojure-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-KT7L3902D2"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_et":4043,"_p":1788881134604,"_s":2,"are":1,"cid":621226233.1788881,"dl":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","dma":1,"dma_cps":"a","dt":"Writing Elegant Clojure Code Using Higher-Order Functions - Christopher Maier","en":"user_engagement","ep.anonymize_ip":false,"frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6921v895267277za200zd895267277","ngs":1,"npa":1,"pscdl":"","rcb":7,"sct":1,"seg":0,"sid":1788881135,"sr":"353x745","tag_exp":"115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153~120914213","tfd":4905,"tid":"G-KT7L3902D2","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-KT7L3902D2&gtm=45je6921v895267277za200zd895267277&_p=1788881134604&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=621226233.1788881135&frm=0&ngs=1&pscdl=&rcb=7&sr=353x745&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=2&tag_exp=115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153~120914213&sid=1788881135&sct=1&seg=0&dl=https%3A%2F%2Fwww.christophermaier.name%2F2011%2F07%2F07%2Fwriting-elegant-clojure-code-using-higher-order-functions%2F&dt=Writing%20Elegant%20Clojure%20Code%20Using%20Higher-Order%20Functions%20-%20Christopher%20Maier&en=user_engagement&ep.anonymize_ip=false&_et=4043&tfd=4905"},{"data":{"body":"format=jsonp&jsonp=vglnk_17888811359837&key=cfdfcf52dffd0a702a61bad27507376d&subId=444277&loc=https%3A%2F%2Fwww.christophermaier.name%2F2011%2F07%2F07%2Fwriting-elegant-clojure-code-using-higher-order-functions%2F&v=2","filter":"||disqus.com/api/ping","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://links.services.disqus.com/api/ping"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"abe":0,"dnt":0,"embed_hidden":0,"event":"init_embed","experiment":"videofloorexp_hidden","forum":"christophermaier","forum_id":444277,"imp":"88a8nam1pqn33b","load_time":241,"max_enabled":false,"promoted_enabled":false,"referrer":"https://www.christophermaier.name/","service":"dynamic","theme":"next","thread":351715412,"thread_slug":"writing_elegant_clojure_code_using_higher_order_functions","tracking_enabled":0,"user_type":"anon","variant":"fallthrough"}},"stack":[{"fileName":"https://disqus.com/embed/comments/?base=default&f=christophermaier&t_u=https%3A%2F%2Fwww.christophermaier.name%2F2011%2F07%2F07%2Fwriting-elegant-clojure-code-using-higher-order-functions%2F&t_d=Writing%20Elegant%20Clojure%20Code%20Using%20Higher-Order%20Functions&t_t=Writing%20Elegant%20Clojure%20Code%20Using%20Higher-Order%20Functions&s_o=default#version=2b53f7bc0e6db9df9d9b00a3aca1508b","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/event.gif?abe=0&embed_hidden=0&load_time=241&event=init_embed&thread=351715412&forum=christophermaier&forum_id=444277&imp=88a8nam1pqn33b&thread_slug=writing_elegant_clojure_code_using_higher_order_functions&user_type=anon&theme=next&dnt=0&tracking_enabled=0&experiment=videofloorexp_hidden&variant=fallthrough&service=dynamic&promoted_enabled=false&max_enabled=false&referrer=https%3A%2F%2Fwww.christophermaier.name%2F"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"event":"failed_recommendations.server.undefined"}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/stat.gif?event=failed_recommendations.server.undefined"},{"data":{"body":{},"filter":"||referrer.disqus.com^","listName":"easyprivacy.txt","query":{"event":"cmp.gpp.absent"}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://referrer.disqus.com/juggler/stat.gif?event=cmp.gpp.absent"},{"data":{"body":{},"filter":"/pixel.gif?","listName":"easyprivacy.txt","query":{"ch":2,"rn":8.654132693737344}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.viglink.com/images/pixel.gif?ch=2&rn=8.654132693737344"},{"data":{"body":{},"filter":"/pixel.gif?","listName":"easyprivacy.txt","query":{"ch":1,"rn":8.654132693737344}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.viglink.com/images/pixel.gif?ch=1&rn=8.654132693737344"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_ee":1,"_fv":1,"_nsi":1,"_p":1788881134604,"_s":1,"_ss":1,"are":1,"cid":621226233.1788881,"dl":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","dma":1,"dma_cps":"a","dt":"Writing Elegant Clojure Code Using Higher-Order Functions - Christopher Maier","en":"page_view","ep.anonymize_ip":false,"frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6921v895267277za200zd895267277","ngs":1,"npa":1,"pscdl":"","rcb":7,"sct":1,"seg":0,"sid":1788881135,"sr":"353x745","tag_exp":"115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153~120914213","tfd":858,"tid":"G-KT7L3902D2","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-KT7L3902D2&gtm=45je6921v895267277za200zd895267277&_p=1788881134604&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=621226233.1788881135&frm=0&ngs=1&pscdl=&rcb=7&sr=353x745&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115938465~115938468~118897920~118897930~120213116~120385423~120469145~120469153~120914213&sid=1788881135&sct=1&seg=0&dl=https%3A%2F%2Fwww.christophermaier.name%2F2011%2F07%2F07%2Fwriting-elegant-clojure-code-using-higher-order-functions%2F&dt=Writing%20Elegant%20Clojure%20Code%20Using%20Higher-Order%20Functions%20-%20Christopher%20Maier&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&ep.anonymize_ip=false&tfd=858"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"G-KT7L3902D2"}},"stack":[{"fileName":"https://www.christophermaier.name/2011/07/07/writing-elegant-clojure-code-using-higher-order-functions/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-KT7L3902D2"},{"data":{"body":{},"filter":"||google-analytics.com^$third-party","listName":"easyprivacy.txt","query":{"_ee":1,"_fv":1,"_nsi":1,"_p":1788881131296,"_s":1,"_ss":1,"are":1,"cid":85703755.17888811,"dl":"https://www.christophermaier.name/","dma":1,"dma_cps":"a","dt":"Christopher Maier - Christopher Maier","en":"page_view","ep.anonymize_ip":false,"frm":0,"gcd":"13l3l3l2l1l1","gtm":"45je6921v895267277za200zd895267277","ngs":1,"npa":1,"pscdl":"","rcb":6,"sct":1,"seg":0,"sid":1788881132,"sr":"353x745","tag_exp":"115938466~115938468~118897920~118897930~120213116~120385422~120420415~120469145~120469153~120914213","tfd":2387,"tid":"G-KT7L3902D2","uaa":"","uab":"","uafvl":"","uam":"","uamb":0,"uap":"","uapv":"","uaw":0,"ul":"en-us","v":2}},"stack":[{"fileName":"https://www.christophermaier.name/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://region1.google-analytics.com/g/collect?v=2&tid=G-KT7L3902D2&gtm=45je6921v895267277za200zd895267277&_p=1788881131296&gcd=13l3l3l2l1l1&npa=1&dma_cps=a&dma=1&are=1&cid=85703755.1788881133&frm=0&ngs=1&pscdl=&rcb=6&sr=353x745&uaa=&uab=&uafvl=&uam=&uamb=0&uap=&uapv=&uaw=0&ul=en-us&_s=1&tag_exp=115938466~115938468~118897920~118897930~120213116~120385422~120420415~120469145~120469153~120914213&sid=1788881132&sct=1&seg=0&dl=https%3A%2F%2Fwww.christophermaier.name%2F&dt=Christopher%20Maier%20-%20Christopher%20Maier&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&ep.anonymize_ip=false&tfd=2387"},{"data":{"body":{},"filter":"||googletagmanager.com^","listName":"easyprivacy.txt","query":{"id":"G-KT7L3902D2"}},"stack":[{"fileName":"https://www.christophermaier.name/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://www.googletagmanager.com/gtag/js?id=G-KT7L3902D2"}]}}