{"title":"Blacklight Inspection","page_title":"Philosophical Hacker","uri_ins":"http://www.philosophicalhacker.com/","uri_dest":"https://www.philosophicalhacker.com/","uri_redirects":["http://www.philosophicalhacker.com/"],"secure_connection":{},"host":"www.philosophicalhacker.com","config":{"emulateDevice":{"name":"iPhone 13 Pro","userAgent":"Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.4 Mobile/15E148 Safari/604.1","viewport":{"width":390,"height":844,"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=8d0c2230-ca3c-4c86-9d71-71d90c4b4611"],"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":"4.4.302+"}},"script":{"host":"f55531b6c604","version":{"npm":"3.11.0","commit":"dev"},"node_version":"v24.20.0"},"start_time":"2026-09-14T00:38:22.339Z","end_time":"2026-09-14T00:38:37.727Z","browsing_history":["https://www.philosophicalhacker.com/","https://www.philosophicalhacker.com/page/4/","https://www.philosophicalhacker.com/post/reading-sqlite-schema-tables-the-hard-way/"],"hosts":{"requests":{"first_party":["www.philosophicalhacker.com"],"third_party":["cdn.jsdelivr.net","cdn.heapanalytics.com","cdn.oribi.io","heapanalytics.com"]}},"reports":{"behaviour_event_listeners":{"MOUSE":{"https://cdn.heapanalytics.com/js/heap-2872977926.js":["click","dblclick","scroll","mousedown","mouseup","mousemove"]},"TOUCH":{"https://cdn.heapanalytics.com/js/heap-2872977926.js":["touchcancel","touchend","touchmove","touchstart"]},"KEYBOARD":{"https://cdn.heapanalytics.com/js/heap-2872977926.js":["keyup","keypress","keydown"]}},"canvas_fingerprinters":{"data_url":{},"fingerprinters":[],"styles":{},"texts":{}},"canvas_font_fingerprinters":{"canvas_font":{},"text_measure":{}},"cookies":[{"name":"_hp2_id.2872977926","value":"%7B%22userId%22%3A%221343576541705514%22%2C%22pageviewId%22%3A%225697356617356933%22%2C%22sessionId%22%3A%22167928450785383%22%2C%22identity%22%3Anull%2C%22trackerVersion%22%3A%224.0%22%7D","domain":"philosophicalhacker.com","path":"/","expires":"2027-10-13T10:38:34.000Z","size":206,"httpOnly":false,"secure":true,"session":false,"sameSite":"None","priority":"Medium","sameParty":false,"sourceScheme":"Secure","sourcePort":443,"type":"js","third_party":false},{"name":"_hp2_ses_props.2872977926","value":"%7B%22ts%22%3A1789346314335%2C%22d%22%3A%22www.philosophicalhacker.com%22%2C%22h%22%3A%22%2Fpost%2Freading-sqlite-schema-tables-the-hard-way%2F%22%7D","domain":"philosophicalhacker.com","path":"/","expires":"2026-09-14T01:08:34.000Z","size":174,"httpOnly":false,"secure":true,"session":false,"sameSite":"None","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":{},"filter":"||heapanalytics.com^$third-party","listName":"easyprivacy.txt","query":{"a":2872977926,"b":"web","d":"www.philosophicalhacker.com","h":"/post/reading-sqlite-schema-tables-the-hard-way/","ld":"cdn.heapanalytics.com","lv":"4.23.12","s":167928450785383,"sch":844,"scw":390,"st":1789346314361,"t":"Reading Sqlite Schema Tables the Hard Way – Philosophical Hacker","ts":1789346314335,"tv":4,"u":1343576541705514,"v":5697356617356933,"z":0}},"stack":[{"fileName":"https://www.philosophicalhacker.com/post/reading-sqlite-schema-tables-the-hard-way/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://heapanalytics.com/h?a=2872977926&u=1343576541705514&v=5697356617356933&s=167928450785383&b=web&tv=4.0&z=0&h=%2Fpost%2Freading-sqlite-schema-tables-the-hard-way%2F&d=www.philosophicalhacker.com&t=Reading%20Sqlite%20Schema%20Tables%20the%20Hard%20Way%C2%A0%E2%80%93%C2%A0Philosophical%20Hacker&ts=1789346314335&sch=844&scw=390&st=1789346314361&lv=4.23.12&ld=cdn.heapanalytics.com"},{"data":{"body":{},"filter":"||oribi.io^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.philosophicalhacker.com/post/reading-sqlite-schema-tables-the-hard-way/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.oribi.io/Xy0yMDEzNTMyMTI3/oribi.js"},{"data":{"body":{},"filter":"||heapanalytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.philosophicalhacker.com/post/reading-sqlite-schema-tables-the-hard-way/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.heapanalytics.com/js/heap-2872977926.js"},{"data":{"body":{},"filter":"||heapanalytics.com^$third-party","listName":"easyprivacy.txt","query":{"a":2872977926,"b":"web","d":"www.philosophicalhacker.com","h":"/page/4/","ld":"cdn.heapanalytics.com","lv":"4.23.12","s":7937760605066971,"sch":844,"scw":390,"st":1789346310706,"t":"Philosophical Hacker","ts":1789346310684,"tv":4,"u":5722722499652361,"v":7633323508004643,"z":0}},"stack":[{"fileName":"https://www.philosophicalhacker.com/page/4/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://heapanalytics.com/h?a=2872977926&u=5722722499652361&v=7633323508004643&s=7937760605066971&b=web&tv=4.0&z=0&h=%2Fpage%2F4%2F&d=www.philosophicalhacker.com&t=Philosophical%20Hacker&ts=1789346310684&sch=844&scw=390&st=1789346310706&lv=4.23.12&ld=cdn.heapanalytics.com"},{"data":{"body":{},"filter":"||oribi.io^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.philosophicalhacker.com/page/4/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.oribi.io/Xy0yMDEzNTMyMTI3/oribi.js"},{"data":{"body":{},"filter":"||heapanalytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.philosophicalhacker.com/page/4/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.heapanalytics.com/js/heap-2872977926.js"},{"data":{"body":{},"filter":"||heapanalytics.com^$third-party","listName":"easyprivacy.txt","query":{"a":2872977926,"b":"web","d":"www.philosophicalhacker.com","h":"/","ld":"cdn.heapanalytics.com","lv":"4.23.12","s":7193962369025565,"sch":844,"scw":390,"st":1789346307904,"t":"Philosophical Hacker","ts":1789346307862,"tv":4,"u":6942706580640258,"v":681114791674246,"z":0}},"stack":[{"fileName":"https://www.philosophicalhacker.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://heapanalytics.com/h?a=2872977926&u=6942706580640258&v=681114791674246&s=7193962369025565&b=web&tv=4.0&z=0&h=%2F&d=www.philosophicalhacker.com&t=Philosophical%20Hacker&ts=1789346307862&sch=844&scw=390&st=1789346307904&lv=4.23.12&ld=cdn.heapanalytics.com"},{"data":{"body":{},"filter":"||oribi.io^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.philosophicalhacker.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.oribi.io/Xy0yMDEzNTMyMTI3/oribi.js"},{"data":{"body":{},"filter":"||heapanalytics.com^$third-party","listName":"easyprivacy.txt","query":{}},"stack":[{"fileName":"https://www.philosophicalhacker.com/","source":"ThirdPartyTracker RequestHandler"}],"type":"TrackingRequest","url":"https://cdn.heapanalytics.com/js/heap-2872977926.js"}]}}