{
    "ready": true,
    "site": {
        "id": 0,
        "domain": "mirekdlugosz.com",
        "display_name": "Mirek Długosz personal website",
        "primary_country_code": "",
        "category_name": "Personal"
    },
    "metrics": {
        "global_rank": 10160,
        "country_rank": 5113,
        "category_rank": 45,
        "daily_pageviews_per_visitor": 3.98,
        "daily_time_on_site_seconds": 321,
        "bounce_rate": 31.1,
        "search_visits_percent": 41.11,
        "total_sites_linking_in": 3,
        "monthly_unique_visitors": 170,
        "recorded_at": "2026-04-11 18:56:01"
    },
    "audit": {
        "score": 91
    },
    "traffic_sources": {
        "direct_percent": 27.62,
        "search_percent": 36.42,
        "social_percent": 6.68,
        "referral_percent": 13.19,
        "email_percent": 7.23,
        "paid_percent": 8.86
    },
    "seo_profile": {
        "backlinks_total": 3,
        "referring_domains": 3,
        "dofollow_backlinks_percent": 66.67,
        "organic_keywords": 79,
        "indexed_pages": 17,
        "page_speed_score": 100,
        "mobile_friendliness_score": 88,
        "authority_score": 45,
        "spam_risk_score": 15
    },
    "crawl_report": {
        "robots_status": 404,
        "sitemap_status": 404,
        "sitemap_total_urls": 0,
        "crawl_blocked": false,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": "",
        "notes": [
            "robots.txt could not be confirmed.",
            "Sitemap could not be confirmed."
        ],
        "created_at": "2026-04-11 18:56:01"
    },
    "keywords": [
        {
            "keyword": "Mirek Długosz personal website",
            "position": 19,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        },
        {
            "keyword": "Mirek Długosz personal website personal",
            "position": 21,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        },
        {
            "keyword": "Mirek Długosz personal website reviews",
            "position": 23,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        },
        {
            "keyword": "mirek",
            "position": 25,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        },
        {
            "keyword": "ugosz",
            "position": 27,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        },
        {
            "keyword": "personal",
            "position": 29,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        },
        {
            "keyword": "website",
            "position": 31,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        },
        {
            "keyword": "mirekdlugosz",
            "position": 33,
            "search_engine": "Estimated",
            "checked_at": "2026-04-16 15:50:06",
            "is_estimated": true
        }
    ],
    "rating": {
        "overall": 64,
        "label": "Healthy",
        "breakdown": [
            {
                "label": "Technical foundation",
                "score": 11,
                "max": 18
            },
            {
                "label": "Authority & trust",
                "score": 14,
                "max": 30
            },
            {
                "label": "Reach & market presence",
                "score": 3,
                "max": 18
            },
            {
                "label": "Search visibility",
                "score": 3,
                "max": 12
            },
            {
                "label": "Engagement & retention",
                "score": 9,
                "max": 10
            },
            {
                "label": "Channels & diversification",
                "score": 4,
                "max": 6
            },
            {
                "label": "Registry stability",
                "score": 4,
                "max": 6
            },
            {
                "label": "Quality system",
                "score": 61,
                "max": 100
            },
            {
                "label": "Reputation system",
                "score": 45,
                "max": 100
            },
            {
                "label": "Safety system",
                "score": 100,
                "max": 100
            },
            {
                "label": "Evidence confidence",
                "score": 98,
                "max": 100
            },
            {
                "label": "External intelligence",
                "score": 50,
                "max": 100
            }
        ],
        "authority_score": 45,
        "quality_score": 61,
        "reputation_score": 45,
        "safety_score": 100,
        "confidence_score": 98,
        "fraud_score": 0,
        "authority_signals": {
            "backlinks": 3,
            "referring_domains": 3,
            "organic_keywords": 79,
            "indexed_pages": 17,
            "monthly_visitors": 170,
            "global_rank": 10160,
            "engagement_score": 81,
            "crawl_quality_score": 98,
            "brand_completeness_score": 75,
            "link_diversity_score": 94,
            "technical_reliability_score": 74,
            "whois_score": 61,
            "whois_age_years": 6.6,
            "whois_stability_score": 100,
            "spam_penalty": 0
        },
        "whois_signals": {
            "age_years": 6.6,
            "days_to_expiry": 148,
            "days_since_last_registry_update": 216,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 2,
            "status_count": 2
        }
    },
    "authority_score": 45,
    "trust_score": 80,
    "domain_tags": {
        "primary_tag": "T",
        "primary_tag_score": 84,
        "primary_candidate": "T",
        "primary_candidate_score": 84,
        "tag_codes": "T",
        "tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 84,
                "score": 84,
                "match_percent": 84,
                "threshold_band": "strong"
            }
        ],
        "tag_breakdown": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 84,
                "score": 84,
                "match_percent": 84,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "",
                "message": "The evidence does not currently look notably uncertain.",
                "priority": 18,
                "score": 18,
                "match_percent": 18,
                "threshold_band": "none"
            },
            {
                "code": "Infra",
                "label": "Risky infrastructure",
                "tone": "caution",
                "description": "The hosting / registrar / nameserver neighbourhood looks unusually risky.",
                "reason": "The infrastructure neighbourhood looks riskier than normal.",
                "message": "Infrastructure risk does not currently stand out.",
                "priority": 1,
                "score": 1,
                "match_percent": 1,
                "threshold_band": "none"
            },
            {
                "code": "C",
                "label": "Caution",
                "tone": "caution",
                "description": "Signals are mixed or weak, so this domain should be treated carefully.",
                "reason": "Review carefully: mixed trust signals.",
                "message": "The current crawl does not show a meaningful caution match.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            },
            {
                "code": "Crypto",
                "label": "Crypto drainer risk",
                "tone": "toxic",
                "description": "Wallet-connect or seed-phrase theft patterns were detected.",
                "reason": "Wallet-connect or seed-phrase theft patterns were detected.",
                "message": "No meaningful crypto-drainer signals were detected.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            }
        ],
        "nsfw_score": 0,
        "trust_score": 81,
        "manual": {
            "has_changes": false,
            "verified_status": "",
            "tag_codes": "",
            "rating_delta": 0,
            "authority_delta": 0,
            "trust_delta": 0,
            "note": "",
            "adjusted_by": 0,
            "adjusted_at": "",
            "lock_scores": false,
            "lock_flags": false
        },
        "summary": "Trusted (84% match) because low spam indicators plus strong trust, quality, registry, and stability signals were detected.",
        "external_intel": [],
        "external_decision": [],
        "signal_scores": [
            {
                "label": "Strongest tag heuristic",
                "value": "T · 84%",
                "tone": "good",
                "detail": "The highest raw tag match from the heuristic engine before visibility thresholds and manual overrides."
            },
            {
                "label": "Trust score",
                "value": "81/100",
                "tone": "good",
                "detail": "Confidence derived from authority, crawl quality, stability, and risk signals."
            },
            {
                "label": "Authority score",
                "value": "45/100",
                "tone": "caution",
                "detail": "A higher authority score usually means broader reputation and backlink confidence."
            },
            {
                "label": "Spam risk",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This blends spam indicators with false-positive protections for legitimate sites."
            },
            {
                "label": "Quality score",
                "value": "88/100",
                "tone": "good",
                "detail": "Based on crawl quality, content completeness, and technical evidence."
            },
            {
                "label": "Safety score",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher is safer. Direct fraud signals can heavily cap this even when SEO signals look strong."
            },
            {
                "label": "Fraud score",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This reflects phishing, drainer, fake-support, fake-shop, and malware signals."
            },
            {
                "label": "Infrastructure risk",
                "value": "1/100",
                "tone": "good",
                "detail": "Lower is better. This reflects the IP, registrar, and nameserver neighbourhood seen by the crawler."
            },
            {
                "label": "Evidence confidence",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher means the crawler had enough pages and registry evidence to make a stronger call."
            },
            {
                "label": "External evidence",
                "value": "Low",
                "tone": "unknown",
                "detail": "Quality of the structured search and review evidence cluster."
            },
            {
                "label": "External decision",
                "value": "Inconclusive",
                "tone": "unknown",
                "detail": "How third-party evidence compares with the current candidate tag."
            },
            {
                "label": "NSFW score",
                "value": "0/100",
                "tone": "good",
                "detail": "Context-aware adult-content detection with medical / educational false-positive reduction."
            },
            {
                "label": "Registry stability",
                "value": "100/100",
                "tone": "good",
                "detail": "Based on age, expiry runway, and the amount of ownership / registrar churn."
            }
        ],
        "signal_sections": [
            {
                "title": "Registry & ownership",
                "items": [
                    {
                        "label": "Domain age",
                        "value": "6.6 years",
                        "tone": "good",
                        "detail": "Older domains generally carry more historical trust than very new ones."
                    },
                    {
                        "label": "Stability score",
                        "value": "100/100",
                        "tone": "good",
                        "detail": "Penalised by registrar, ownership, and nameserver churn."
                    },
                    {
                        "label": "Days to expiry",
                        "value": "148",
                        "tone": "good",
                        "detail": "Very short renewal windows can be a weak trust signal."
                    },
                    {
                        "label": "Registrar / ownership changes",
                        "value": "0 / 0",
                        "tone": "good",
                        "detail": "Frequent ownership churn can weaken trust."
                    },
                    {
                        "label": "Nameserver changes",
                        "value": "0",
                        "tone": "good",
                        "detail": "Repeated infrastructure changes can indicate instability."
                    },
                    {
                        "label": "DNSSEC / privacy",
                        "value": "DNSSEC off · privacy off",
                        "tone": "caution",
                        "detail": "DNSSEC strengthens DNS trust; privacy is neutral on its own."
                    }
                ]
            },
            {
                "title": "Reputation & search evidence",
                "items": [
                    {
                        "label": "Backlinks",
                        "value": "3",
                        "tone": "unknown",
                        "detail": "Broader backlink evidence usually improves confidence."
                    },
                    {
                        "label": "Referring domains",
                        "value": "3",
                        "tone": "unknown",
                        "detail": "Unique linking domains are more useful than raw link volume."
                    },
                    {
                        "label": "Organic keywords",
                        "value": "79",
                        "tone": "caution",
                        "detail": "Search footprint helps distinguish real sites from thin shells."
                    },
                    {
                        "label": "Indexed pages",
                        "value": "17",
                        "tone": "caution",
                        "detail": "Larger index coverage usually means more evidence to classify from."
                    },
                    {
                        "label": "Brand strength",
                        "value": "75/100",
                        "tone": "good",
                        "detail": "Stronger brand signals reduce false positives for legitimate sites."
                    },
                    {
                        "label": "Risk label",
                        "value": "GOOD",
                        "tone": "unknown",
                        "detail": "This is the raw crawl / heuristic risk label feeding the tag model."
                    }
                ]
            },
            {
                "title": "Crawl, content & technicals",
                "items": [
                    {
                        "label": "HTTP status",
                        "value": "200",
                        "tone": "good",
                        "detail": "Healthy responses make classification more reliable."
                    },
                    {
                        "label": "HTTPS / speed",
                        "value": "HTTPS OK · 170 ms",
                        "tone": "good",
                        "detail": "Slow or broken technical signals weaken confidence."
                    },
                    {
                        "label": "Content words",
                        "value": "133",
                        "tone": "spam",
                        "detail": "Thin pages are harder to trust and easier to manipulate."
                    },
                    {
                        "label": "Schema / structure",
                        "value": "2 schema · meta · H1",
                        "tone": "good",
                        "detail": "Structured markup and basic on-page hygiene improve quality confidence."
                    },
                    {
                        "label": "Links on page",
                        "value": "11 internal · 4 external",
                        "tone": "good",
                        "detail": "Link patterns help detect thin directories and promo pages."
                    },
                    {
                        "label": "Page speed / mobile",
                        "value": "100/100 · 88/100",
                        "tone": "good",
                        "detail": "Better technical quality generally reduces low-effort site patterns."
                    },
                    {
                        "label": "Crawl access",
                        "value": "Open",
                        "tone": "good",
                        "detail": "The crawler reached the site without an anti-bot challenge."
                    }
                ]
            },
            {
                "title": "External evidence & explainability",
                "items": [
                    {
                        "label": "Decision state",
                        "value": "Inconclusive",
                        "tone": "unknown",
                        "detail": "Structured third-party evidence is still too thin, mixed, or unqualified to force a harder verdict."
                    },
                    {
                        "label": "Evidence quality",
                        "value": "Low",
                        "tone": "unknown",
                        "detail": "Blends source trust, domain matching, evidence diversity, and freshness."
                    },
                    {
                        "label": "Support vs contradiction",
                        "value": "0 / 0",
                        "tone": "unknown",
                        "detail": "Compares how much structured external evidence supports the candidate tag against evidence that contradicts it."
                    },
                    {
                        "label": "Qualified risk sources",
                        "value": "No",
                        "tone": "good",
                        "detail": "Risk tags only promote from external evidence when source diversity or source trust thresholds are met."
                    },
                    {
                        "label": "Uncertainty buffer",
                        "value": "Clear",
                        "tone": "good",
                        "detail": "Prevents thin or mixed external evidence from forcing a stronger tag than the evidence can justify."
                    }
                ]
            }
        ],
        "positives": [
            "Established domain age: 6.6 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Structured data / schema markup detected."
        ],
        "risks": []
    },
    "traffic_confidence": 64,
    "whois": {
        "current": {
            "id": 21088,
            "domain": "mirekdlugosz.com",
            "source_type": "rdap",
            "rdap_url": "https://rdap.verisign.com/com/v1/domain/MIREKDLUGOSZ.COM",
            "registrar_name": "OVH sas",
            "registrar_handle": "433",
            "registrant_name": "",
            "registrant_org": "",
            "registrant_country": "",
            "registrant_email": "",
            "abuse_email": "abuse@ovh.net",
            "created_date": "2019-09-11 22:58:13",
            "updated_date": "2025-09-12 07:49:17",
            "expires_date": "2026-09-11 22:58:13",
            "nameservers_json": "[\"dns1.mydevil.net\",\"dns2.mydevil.net\"]",
            "status_json": "[\"client delete prohibited\",\"client transfer prohibited\"]",
            "dnssec": "unsigned",
            "privacy_protected": 0,
            "content_hash": "0ad4ed69843477ebabb26f77cabad765ea8c346de2d707469227b5a29df0a4fd",
            "history_count": 1,
            "last_checked_at": "2026-04-11 18:55:58",
            "last_changed_at": "2026-03-18 19:23:45",
            "created_at": "2026-03-18 19:23:45",
            "updated_at": "2026-04-11 18:55:58"
        },
        "history": [
            {
                "id": 21451,
                "domain": "mirekdlugosz.com",
                "source_type": "rdap",
                "registrar_name": "OVH sas",
                "registrar_handle": "433",
                "registrant_name": "",
                "registrant_org": "",
                "registrant_country": "",
                "registrant_email": "",
                "abuse_email": "abuse@ovh.net",
                "created_date": "2019-09-11 22:58:13",
                "updated_date": "2025-09-12 07:49:17",
                "expires_date": "2026-09-11 22:58:13",
                "nameservers_json": "[\"dns1.mydevil.net\",\"dns2.mydevil.net\"]",
                "status_json": "[\"client delete prohibited\",\"client transfer prohibited\"]",
                "dnssec": "unsigned",
                "privacy_protected": 0,
                "content_hash": "0ad4ed69843477ebabb26f77cabad765ea8c346de2d707469227b5a29df0a4fd",
                "checked_at": "2026-03-18 19:23:45",
                "change_summary": "Initial WHOIS snapshot captured.",
                "created_at": "2026-03-18 19:23:45"
            }
        ],
        "signals": {
            "age_years": 6.6,
            "days_to_expiry": 148,
            "days_since_last_registry_update": 216,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": false,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 2,
            "status_count": 2
        }
    },
    "discovered_domain": {
        "id": 80991,
        "domain": "mirekdlugosz.com",
        "first_seen_at": "2026-03-15 20:24:53",
        "last_crawled_at": "2026-04-11 18:56:01",
        "last_title": "Mirek Długosz personal website",
        "last_http_status": 200,
        "discovered_from_domain": "personalsit.es",
        "depth": 0,
        "backlinks_count": 3,
        "rating_cache": 46,
        "spam_score": 28,
        "risk_label": "good",
        "category_name": "Personal",
        "primary_country_code": "",
        "internal_links_count": 11,
        "external_links_count": 4,
        "social_profiles_count": 1,
        "content_word_count": 133,
        "title_quality_score": 93,
        "has_meta_description": 1,
        "has_h1": 1,
        "language_code": "en",
        "response_time_ms": 170,
        "robots_status": 404,
        "sitemap_status": 404,
        "sitemap_total_urls": 0,
        "quality_score": 88,
        "site_name": "Mirek Długosz personal website",
        "canonical_domain": "",
        "favicon_present": 0,
        "schema_org_count": 2,
        "noindex_detected": 0,
        "feed_links_count": 2,
        "https_working": 1,
        "estimated_authority_score": 36,
        "trust_score": 89,
        "nsfw_score": 0,
        "overall_rank_estimate": 2940622,
        "primary_tag": "C",
        "tag_codes": "C,T,Uncertain",
        "manual_verified_status": "",
        "manual_tag_codes": "",
        "manual_rating_delta": 0,
        "manual_authority_delta": 0,
        "manual_trust_delta": 0,
        "manual_note": null,
        "manual_adjusted_by": null,
        "manual_adjusted_at": null,
        "manual_lock_scores": 0,
        "manual_lock_flags": 0,
        "crawl_blocked": 0,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": null,
        "safety_score": 100,
        "fraud_score": 0,
        "legitimacy_score": 69,
        "infrastructure_risk_score": 1,
        "score_confidence": 98,
        "tag_confidence": 66,
        "category_confidence": 20,
        "deep_crawl_pages": 48,
        "resolved_ip": "212.91.26.150",
        "category_candidates_json": "[{\"category\":\"Personal\",\"score\":28},{\"category\":\"Business\",\"score\":22},{\"category\":\"E-commerce\",\"score\":17},{\"category\":\"Technology\",\"score\":17}]",
        "page_signals_json": "[{\"path\":\"/blog/\",\"status\":200,\"title\":\"Mirek Długosz blog\",\"word_count\":677,\"summary_text\":\"Mirek Długosz blog Mirek Długosz blog Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 17 September 2025 Found on web:&nbsp;Commoncog 06 August 2025 Experience report: Implementing High Volume Automated Testing&nbsp;system 03 June 2025 Interesting bugs: Artifact building failure caused by GitHub API rate&nbsp;limits 22 May 2025 Understanding Python web&nbsp;deployment 05 May 2025 Where Rust fits for&nbsp;me 09 April 2025 pytest: running multiple tests with names that might contain&nbsp;spaces 26 March 2025 Interesting bugs: peculiar intermittent failure in testing&nbsp;pipeline 12 March 2025 Django: data modified in pre_save signal is not&nbsp;saved 02 March 2025 Customizing fonts’ look with OpenType&n\",\"classification_terms\":[\"blog\",\"about\",\"contact\",\"api\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/projects.html\",\"status\":200,\"title\":\"Projects - Mirek Długosz personal website\",\"word_count\":477,\"summary_text\":\"Projects - Mirek Długosz personal website Projects - Mirek Długosz personal website Mirek Długosz home writing projects about contact Projects Below is the list of projects that I have created. I&#8217;m passionate about open source and I try to license my work in a way that allows others to use, study and modify it. Most of my open source work happens on GitHub. Kustosz Github Kustosz is feed reader with the goal of helping you to focus on worthwhile content. I wrote separate announcement post that explores its unique features and my&nbsp;motivation. I created backend while a friend of mine created frontend. Later I revamped frontend, too. I also created website and documentation. Everything is plugged into CI pipeline, making new releases almost fully automatic. There&rsquo;s installer and container&nbsp;image. Kustosz is now th\",\"classification_terms\":[\"projects.html\",\"about\",\"contact\",\"help\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/about.html\",\"status\":200,\"title\":\"About - Mirek Długosz personal website\",\"word_count\":316,\"summary_text\":\"About - Mirek Długosz personal website About - Mirek Długosz personal website Mirek Długosz home writing projects about contact About I&#8217;m Mirek Długosz (pronunciation). I&#8217;m a software engineer and I specialize in&nbsp;testing. My work primarily revolves around automation, web (both frontend and backend) and data processing. My language of choice is Python, but I&#8217;m also comfortable in JavaScript, PHP, R and&nbsp;bash. I maintain my professional CV / resume on LinkedIn. While I am not looking for full time employment, I am available for commissioned&nbsp;work. I&#8217;ve been passionate about open source since I first heard about it, back in 2005. In the past, I have contributed translations and QA work for Debian, KDE and LibreOffice. These days I mostly contribute code. Most of my work happens on GitHub. I hav\",\"classification_terms\":[\"about.html\",\"about\",\"contact\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/contact.html\",\"status\":200,\"title\":\"Contact - Mirek Długosz personal website\",\"word_count\":143,\"summary_text\":\"Contact - Mirek Długosz personal website Contact - Mirek Długosz personal website Mirek Długosz home writing projects about contact Contact I&#8217;m always happy to talk about testing, open source, software engineering and related&nbsp;topics. If you want to discuss any of my work, I want to talk with you. If you want to discuss any of your work, I want to talk with you. If you are looking for software, book or career recommendation, I want to talk with you. If you have a software, book or blog recommendation, I want to hear&nbsp;it. I don&#8217;t expect anything in exchange, but I can&#8217;t promise more than little bit of my time and attention. I think world is a better place when it&#8217;s not only about&nbsp;money. You can reach me through channels listed below. I strongly prefer&nbsp;email. Email Mastodon LinkedIn &copy;\",\"classification_terms\":[\"contact.html\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog/2025/found-on-web-commoncog/\",\"status\":200,\"title\":\"Found on web: Commoncog - Mirek Długosz personal website\",\"word_count\":526,\"summary_text\":\"Found on web: Commoncog - Mirek Długosz personal website Found on web: Commoncog - Mirek Długosz personal website Mirek Długosz home writing projects about contact Found on web:&nbsp;Commoncog Publication date 17 September 2025 Read time 2 min Tags found on web / testing Commoncog by Cedric Chin is probably the most influential resource I&#8217;ve discovered on the Internet in the last couple of years. It&#8217;s deep. It&#8217;s grounded. It&#8217;s deliberate. It&#8217;s insightful. It&#8217;s judicious. It&#8217;s nuanced. It&#8217;s well written. It&#8217;s practical. If I were stranded on a desert island and could only receive updates from five websites, Commoncog would be one of them. It&#8217;s that&nbsp;good. Consider the series on putting mental models to practice. There&#8217;s a very compelling argument for limits of scientific knowle\",\"classification_terms\":[\"blog/2025/found-on-web-commoncog\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog/2025/experience-report-implementing-high-volume-automated-testing-system/\",\"status\":200,\"title\":\"Experience report: Implementing High Volume Automated Testing system - Mirek Długosz personal website\",\"word_count\":3808,\"summary_text\":\"Experience report: Implementing High Volume Automated Testing system - Mirek Długosz personal website Experience report: Implementing High Volume Automated Testing system - Mirek Długosz personal website Mirek Długosz home writing projects about contact Experience report: Implementing High Volume Automated Testing&nbsp;system Publication date 06 August 2025 Read time 17 min Tags case library / Python / testing I first heard about High Volume Automated Testing in 2017, and I&#8217;ve wanted to try it ever since. The opportunity came in 2022, when I was working on revamping a UI testing framework for software called Quipucords. This article focuses on the decision points I encountered, the alternatives I considered, and the choices I made. At the end, I share the lessons I learned from this&nbsp;experience. Keep in mind that this is not intended to apply to all possible High Volume Automated\",\"classification_terms\":[\"blog/2025/experience-report-implementing-high-volume-automated-testing-system\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog/2025/interesting-bugs-artifact-building-failure-caused-by-github-api-rate-limits/\",\"status\":200,\"title\":\"Interesting bugs: Artifact building failure caused by GitHub API rate limits - Mirek Długosz personal website\",\"word_count\":1420,\"summary_text\":\"Interesting bugs: Artifact building failure caused by GitHub API rate limits - Mirek Długosz personal website Interesting bugs: Artifact building failure caused by GitHub API rate limits - Mirek Długosz personal website Mirek Długosz home writing projects about contact Interesting bugs: Artifact building failure caused by GitHub API rate&nbsp;limits Publication date 03 June 2025 Read time 6 min Tags case library / Linux / testing This is a story of a memorable bug I encountered at work. As with every story of that kind, there are a few ways to look at it: it might save you some time if you encounter a similar issue; it surfaces the hidden work - work that is not visible when you only look at the output and artifacts; it demonstrates the benefits of broad knowledge. I&#8217;m sharing it as a contribution to testing case library. I was introducing a Jenkins pipeline to run for every pull request sub\",\"classification_terms\":[\"blog/2025/interesting-bugs-artifact-building-failure-caused-by-github-api-rate-limits\",\"about\",\"contact\",\"api\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog/2025/understanding-python-web-deployment/\",\"status\":200,\"title\":\"Understanding Python web deployment - Mirek Długosz personal website\",\"word_count\":2301,\"summary_text\":\"Understanding Python web deployment - Mirek Długosz personal website Understanding Python web deployment - Mirek Długosz personal website Mirek Długosz home writing projects about contact Understanding Python web&nbsp;deployment Publication date 22 May 2025 Read time 10 min Tags Linux / Python Trying to deploy server-side Python web application may be overwhelming. Many tutorials will gladly tell you how to run it inside gunicorn, and how to put nginx in front of it, but they usually skim over details on why all this is needed. Why do you need both nginx and gunicorn? Why gunicorn and not Waitress or daphne? What is WhiteNoise and do you still need nginx if you have it? What even is WSGI? In this article I will share my mental model of distinct pieces and how they fit together. If I badly missed a mark somewhere, please reach out and tell me how wrong I am.\",\"classification_terms\":[\"blog/2025/understanding-python-web-deployment\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog/2025/where-rust-fits-for-me/\",\"status\":200,\"title\":\"Where Rust fits for me - Mirek Długosz personal website\",\"word_count\":734,\"summary_text\":\"Where Rust fits for me - Mirek Długosz personal website Where Rust fits for me - Mirek Długosz personal website Mirek Długosz home writing projects about contact Where Rust fits for&nbsp;me Publication date 05 May 2025 Read time 3 min Tags projects / Rust I started eyeing Rust around mid-2023. My first program taught me it&#8217;s not a language you can just learn on the job - you have to spend some time on fundamentals or you are going to have a really bad time. I did my part in early 2024 - I have read The Rust Book, went through Rust By Practice and rustlings. Then I was looking for reasons to keep learning Rust, aside from the fun of it, potential job security and getting to understand programming at the deeper&nbsp;level. Current Rust toolchain creates statically-linked binaries that can be run without any special runtime. That binary file\",\"classification_terms\":[\"blog/2025/where-rust-fits-for-me\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/site-policy.html\",\"status\":200,\"title\":\"Site policy - Mirek Długosz personal website\",\"word_count\":176,\"summary_text\":\"Site policy - Mirek Długosz personal website Site policy - Mirek Długosz personal website Mirek Długosz home writing projects about contact Site&nbsp;policy Cookies and tracking&nbsp;mechanisms Comments on blog are provided by Disqus. Disqus does use cookie-like technology to store some data on your device and might identify you across multiple websites. It is subject to Disqus&#8217; Privacy Policy. Content&nbsp;license All content authored by me on this site is subject to Creative Commons Attribution-NonCommercial 4.0 International license (full text). It basically means that you can reproduce my work and build upon it, but you must give credit to me as original author. Creative Commons prepared useful guideline on giving credit. Comments Comments functionality is provided to allow for feedback and&nbsp;discussion. While I hate to\",\"classification_terms\":[\"site-policy.html\",\"about\",\"contact\",\"privacy\",\"blog\",\"store\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":1},{\"path\":\"/blog/tag/ast/index.html\",\"status\":200,\"title\":\"AST - Mirek Długosz personal website\",\"word_count\":183,\"summary_text\":\"AST - Mirek Długosz personal website AST - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 08 July 2024 AST Board of Directors elections are&nbsp;on! 20 June 2024 How can I possibly test &#8220;all the stuff&#8221; every&nbsp;iteration? 02 May 2024 Association for Software Testing Board of Directors report - April&nbsp;2024 16 April 2024 Why don’t we replace the testers with AI? 04 March 2024 What&#8217;s the best format for a test&nbsp;plan? 01 March 2024 Association for Software Testing Board of Directors report - February&nbsp;2024 01 February 2024 Association for Software Testing Board of Directors report - January&nbsp;2024 25 January 2024 When the build is green, the product is of s\",\"classification_terms\":[\"blog/tag/ast/index.html\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/case-library/index.html\",\"status\":200,\"title\":\"case library - Mirek Długosz personal website\",\"word_count\":75,\"summary_text\":\"case library - Mirek Długosz personal website case library - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 06 August 2025 Experience report: Implementing High Volume Automated Testing&nbsp;system 03 June 2025 Interesting bugs: Artifact building failure caused by GitHub API rate&nbsp;limits 26 March 2025 Interesting bugs: peculiar intermittent failure in testing&nbsp;pipeline &copy; Mirek Długosz &middot; CC by-nc 4.0 &middot; Generated by Pelican Site&nbsp;policy\",\"classification_terms\":[\"blog/tag/case-library/index.html\",\"about\",\"contact\",\"api\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/found-on-web/index.html\",\"status\":200,\"title\":\"found on web - Mirek Długosz personal website\",\"word_count\":108,\"summary_text\":\"found on web - Mirek Długosz personal website found on web - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 17 September 2025 Found on web:&nbsp;Commoncog 19 February 2019 My question on AB Testing&nbsp;podcast 18 January 2019 Found on web: Black Box&nbsp;Puzzles 14 August 2018 Found on web: AST&nbsp;blogroll 24 July 2018 Found on web: Mark&nbsp;Blyth 22 June 2018 Found on web: Premises of Rapid Software&nbsp;Testing 25 February 2018 Found on web: Radiologist are testers,&nbsp;too 06 February 2018 Everything you need to know about artificial&nbsp;intelligence &copy; Mirek Długosz &middot; CC by-nc 4.0 &middot; Generated by Pelican Site&nbsp;policy\",\"classification_terms\":[\"blog/tag/found-on-web/index.html\",\"about\",\"contact\",\"api\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/javascript/index.html\",\"status\":200,\"title\":\"JavaScript - Mirek Długosz personal website\",\"word_count\":72,\"summary_text\":\"JavaScript - Mirek Długosz personal website JavaScript - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 12 July 2018 createPokémon.team&nbsp;retrospective 01 July 2018 Why I love&nbsp;Pokémon 18 April 2017 Setting up Protractor on Debian GNU/Linux 11 November 2015 The map of bakeries that sell genuine St. Martin&nbsp;Croissants &copy; Mirek Długosz &middot; CC by-nc 4.0 &middot; Generated by Pelican Site&nbsp;policy\",\"classification_terms\":[\"blog/tag/javascript/index.html\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/linux/index.html\",\"status\":200,\"title\":\"Linux - Mirek Długosz personal website\",\"word_count\":166,\"summary_text\":\"Linux - Mirek Długosz personal website Linux - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 03 June 2025 Interesting bugs: Artifact building failure caused by GitHub API rate&nbsp;limits 22 May 2025 Understanding Python web&nbsp;deployment 09 April 2025 pytest: running multiple tests with names that might contain&nbsp;spaces 26 March 2025 Interesting bugs: peculiar intermittent failure in testing&nbsp;pipeline 02 March 2025 Customizing fonts’ look with OpenType&nbsp;features 12 November 2024 Understanding Linux virtualization&nbsp;stack 27 April 2024 Rust binaries&nbsp;stability 04 July 2023 Playing with&nbsp;Rust 05 January 2023 Asking for ssh key passphrase when signing git&nbsp;commit\",\"classification_terms\":[\"blog/tag/linux/index.html\",\"about\",\"contact\",\"api\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/personal/index.html\",\"status\":200,\"title\":\"personal - Mirek Długosz personal website\",\"word_count\":65,\"summary_text\":\"personal - Mirek Długosz personal website personal - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 04 November 2023 10 years in&nbsp;testing 29 October 2018 So IBM is acquiring Red&nbsp;Hat 12 July 2018 createPokémon.team&nbsp;retrospective 01 July 2018 Why I love&nbsp;Pokémon &copy; Mirek Długosz &middot; CC by-nc 4.0 &middot; Generated by Pelican Site&nbsp;policy\",\"classification_terms\":[\"blog/tag/personal/index.html\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/projects/index.html\",\"status\":200,\"title\":\"projects - Mirek Długosz personal website\",\"word_count\":94,\"summary_text\":\"projects - Mirek Długosz personal website projects - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 05 May 2025 Where Rust fits for&nbsp;me 02 March 2025 Customizing fonts’ look with OpenType&nbsp;features 15 May 2022 Announcing&nbsp;Kustosz 13 March 2021 Automatic offline Twitter card images (og:image) generator for static&nbsp;sites 12 July 2018 createPokémon.team&nbsp;retrospective 01 July 2018 Why I love&nbsp;Pokémon 11 November 2015 The map of bakeries that sell genuine St. Martin&nbsp;Croissants &copy; Mirek Długosz &middot; CC by-nc 4.0 &middot; Generated by Pelican Site&nbsp;policy\",\"classification_terms\":[\"blog/tag/projects/index.html\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/python/index.html\",\"status\":200,\"title\":\"Python - Mirek Długosz personal website\",\"word_count\":129,\"summary_text\":\"Python - Mirek Długosz personal website Python - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 06 August 2025 Experience report: Implementing High Volume Automated Testing&nbsp;system 22 May 2025 Understanding Python web&nbsp;deployment 26 March 2025 Interesting bugs: peculiar intermittent failure in testing&nbsp;pipeline 12 March 2025 Django: data modified in pre_save signal is not&nbsp;saved 03 January 2024 Playwright - accessing page object in event&nbsp;handler 15 May 2022 Announcing&nbsp;Kustosz 13 March 2021 Automatic offline Twitter card images (og:image) generator for static&nbsp;sites 21 February 2021 Further improving Pelican website development&nbsp;loop 09 February 2021 Improvi\",\"classification_terms\":[\"blog/tag/python/index.html\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/r/index.html\",\"status\":200,\"title\":\"R - Mirek Długosz personal website\",\"word_count\":88,\"summary_text\":\"R - Mirek Długosz personal website R - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 28 February 2016 How to use R to recognize if given string is a&nbsp;word 11 November 2015 The map of bakeries that sell genuine St. Martin&nbsp;Croissants 21 October 2015 Reading multiline structured file format in&nbsp;R 06 October 2015 When xml2 returns &#8220;No matches&#8221; for obviously correct XPath&nbsp;expression &copy; Mirek Długosz &middot; CC by-nc 4.0 &middot; Generated by Pelican Site&nbsp;policy\",\"classification_terms\":[\"blog/tag/r/index.html\",\"about\",\"contact\",\"returns\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/rust/index.html\",\"status\":200,\"title\":\"Rust - Mirek Długosz personal website\",\"word_count\":66,\"summary_text\":\"Rust - Mirek Długosz personal website Rust - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 05 May 2025 Where Rust fits for&nbsp;me 02 March 2025 Customizing fonts’ look with OpenType&nbsp;features 27 April 2024 Rust binaries&nbsp;stability 04 July 2023 Playing with&nbsp;Rust &copy; Mirek Długosz &middot; CC by-nc 4.0 &middot; Generated by Pelican Site&nbsp;policy\",\"classification_terms\":[\"blog/tag/rust/index.html\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/testing/index.html\",\"status\":200,\"title\":\"testing - Mirek Długosz personal website\",\"word_count\":354,\"summary_text\":\"testing - Mirek Długosz personal website testing - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 17 September 2025 Found on web:&nbsp;Commoncog 06 August 2025 Experience report: Implementing High Volume Automated Testing&nbsp;system 03 June 2025 Interesting bugs: Artifact building failure caused by GitHub API rate&nbsp;limits 09 April 2025 pytest: running multiple tests with names that might contain&nbsp;spaces 26 March 2025 Interesting bugs: peculiar intermittent failure in testing&nbsp;pipeline 11 February 2025 Testing a new feature - should you start with automation or by inspecting it&nbsp;yourself? 22 October 2024 &#8220;Software Testing Strategies&#8221; by Heusser and Larsen -&nbsp;r\",\"classification_terms\":[\"blog/tag/testing/index.html\",\"about\",\"contact\",\"api\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/tag/tutorial/index.html\",\"status\":200,\"title\":\"tutorial - Mirek Długosz personal website\",\"word_count\":193,\"summary_text\":\"tutorial - Mirek Długosz personal website tutorial - Mirek Długosz personal website Mirek Długosz home writing projects about contact Categories AST case library found on web JavaScript Linux personal projects Python R Rust testing tutorial 09 April 2025 pytest: running multiple tests with names that might contain&nbsp;spaces 12 March 2025 Django: data modified in pre_save signal is not&nbsp;saved 02 March 2025 Customizing fonts’ look with OpenType&nbsp;features 12 March 2024 Don&#8217;t blindly serve WebP&nbsp;format 03 January 2024 Playwright - accessing page object in event&nbsp;handler 20 September 2023 iOS: Opening Google Drive links directly in an&nbsp;app 05 January 2023 Asking for ssh key passphrase when signing git&nbsp;commit 09 February 2021 Improving Pelican website development&nbsp;loop 05 December 2019 Verify changes\",\"classification_terms\":[\"blog/tag/tutorial/index.html\",\"about\",\"contact\",\"blog\",\"links\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2025/pytest-running-multiple-tests-with-names-that-might-contain-spaces/\",\"status\":200,\"title\":\"pytest: running multiple tests with names that might contain spaces - Mirek Długosz personal website\",\"word_count\":423,\"summary_text\":\"pytest: running multiple tests with names that might contain spaces - Mirek Długosz personal website pytest: running multiple tests with names that might contain spaces - Mirek Długosz personal website Mirek Długosz home writing projects about contact pytest: running multiple tests with names that might contain&nbsp;spaces Publication date 09 April 2025 Read time 2 min Tags Linux / testing / tutorial You most certainly know that you can run a single test in entire suite by passing the full&nbsp;path: PRODUCT_ENV=&#39;stage&#39; pytest -v --critical tests/test_mod.py::test_func[x1] This gets old when you want to run around 3 or more tests. In that case, you might end up putting paths into a file and passing this file content as command arguments. You probably know that,&nbsp;too: PRODUCT_ENV=&#39;stage&#39; pytest -v --critical $(&lt; /tmp/ci-failures.txt) However, this will fail if your t\",\"classification_terms\":[\"blog/2025/pytest-running-multiple-tests-with-names-that-might-contain-spaces\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2025/interesting-bugs-peculiar-intermittent-failure-in-testing-pipeline/\",\"status\":200,\"title\":\"Interesting bugs: peculiar intermittent failure in testing pipeline - Mirek Długosz personal website\",\"word_count\":2197,\"summary_text\":\"Interesting bugs: peculiar intermittent failure in testing pipeline - Mirek Długosz personal website Interesting bugs: peculiar intermittent failure in testing pipeline - Mirek Długosz personal website Mirek Długosz home writing projects about contact Interesting bugs: peculiar intermittent failure in testing&nbsp;pipeline Publication date 26 March 2025 Read time 9 min Tags case library / Linux / Python / testing Over the years I have encountered my share of memorable problems. They were remarkably complex, hard to debug, completely obvious in retrospect, or plain funny. This is the story of one of&nbsp;them. At the beginning, there was a suite of automated tests that I was maintaining. One day one of them failed. Not a big deal, unfortunate reality is that some of them fail sometimes for various reasons. Usually they pass when run again and we can blame unreliable infrastructure, transie\",\"classification_terms\":[\"blog/2025/interesting-bugs-peculiar-intermittent-failure-in-testing-pipeline\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":24,\"depth\":2},{\"path\":\"/blog/2025/django-data-modified-in-pre-save-signal-is-not-saved/\",\"status\":200,\"title\":\"Django: data modified in pre_save signal is not saved - Mirek Długosz personal website\",\"word_count\":469,\"summary_text\":\"Django: data modified in pre_save signal is not saved - Mirek Długosz personal website Django: data modified in pre_save signal is not saved - Mirek Długosz personal website Mirek Długosz home writing projects about contact Django: data modified in pre_save signal is not&nbsp;saved Publication date 12 March 2025 Read time 2 min Tags Python / tutorial When I was working on my first Django project, I encountered a problem where modifications done inside pre_save signal were not stored in the database. Back then it took me a couple of hours to figure out what is wrong and how to fix it. I&#8217;m sharing what I&#8217;ve learned to save that time someone&nbsp;else. Imagine the application to track your gym workouts. At the core of application is exercise session, which knows how many repetitions you want to do and how many you have done so far. Once you do enough repetitions, se\",\"classification_terms\":[\"blog/2025/django-data-modified-in-pre-save-signal-is-not-saved\",\"about\",\"contact\",\"blog\",\"store\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2025/customizing-fonts-look-with-opentype-features/\",\"status\":200,\"title\":\"Customizing fonts’ look with OpenType features - Mirek Długosz personal website\",\"word_count\":1568,\"summary_text\":\"Customizing fonts’ look with OpenType features - Mirek Długosz personal website Customizing fonts’ look with OpenType features - Mirek Długosz personal website Mirek Długosz home writing projects about contact Customizing fonts’ look with OpenType&nbsp;features Publication date 02 March 2025 Read time 7 min Tags Linux / projects / Rust / tutorial Many programming fonts allow customization through OpenType features. For people who are picky about certain properties, like easily distinguishable l and I (lowercase L and uppercase i), a single toggle can make a difference between rejecting a font and starting to use it. Unfortunately, choosing the perfect font with the perfect setup is way harder than it should be. This post describes the tools that may help, including the one that I wrote&nbsp;recently. Whenever I stumble upon a new font, I want to&nbsp;know: how does th\",\"classification_terms\":[\"blog/2025/customizing-fonts-look-with-opentype-features\",\"about\",\"contact\",\"help\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2025/testing-a-new-feature-should-you-start-with-automation-or-by-inspecting-it-yourself/\",\"status\":200,\"title\":\"Testing a new feature - should you start with automation or by inspecting it yourself? - Mirek Długosz personal website\",\"word_count\":986,\"summary_text\":\"Testing a new feature - should you start with automation or by inspecting it yourself? - Mirek Długosz personal website Testing a new feature - should you start with automation or by inspecting it yourself? - Mirek Długosz personal website Mirek Długosz home writing projects about contact Testing a new feature - should you start with automation or by inspecting it&nbsp;yourself? Publication date 11 February 2025 Read time 4 min Tags testing A fellow engineer submitted a question to internal mailing list. The gist is: a new feature is supposed to be released in a few months and there is no automation coverage for it. What should a person with a Quality Software Engineer title do? Should they test the feature &#8220;manually&#8221; and contribute automation later, risking it happens after a release? Or should they start writing automation right away, potentially postponing finding and reporting important&nbsp\",\"classification_terms\":[\"blog/2025/testing-a-new-feature-should-you-start-with-automation-or-by-inspecting-it-yourself\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/understanding-linux-virtualization-stack/\",\"status\":200,\"title\":\"Understanding Linux virtualization stack - Mirek Długosz personal website\",\"word_count\":1569,\"summary_text\":\"Understanding Linux virtualization stack - Mirek Długosz personal website Understanding Linux virtualization stack - Mirek Długosz personal website Mirek Długosz home writing projects about contact Understanding Linux virtualization&nbsp;stack Publication date 12 November 2024 Read time 7 min Tags Linux I find Linux virtualization stack confusing. KVM? libvirt? QEMU? Xen? What does that even&nbsp;mean? This post is my attempt at making sense of that all. I don&#8217;t claim it to be correct, but that&#8217;s the way I understand it. If I badly missed a mark somewhere, please reach out and tell me how wrong I am. Virtualization&nbsp;primer Virtual machine is a box inside which programs think they are running on different hardware and operating system. That box is like a full computer, running inside a computer. Virtualization is process of creating these boxes. V\",\"classification_terms\":[\"blog/2024/understanding-linux-virtualization-stack\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/software-testing-strategies-by-heusser-and-larsen-review/\",\"status\":200,\"title\":\"“Software Testing Strategies” by Heusser and Larsen - review - Mirek Długosz personal website\",\"word_count\":1279,\"summary_text\":\"“Software Testing Strategies” by Heusser and Larsen - review - Mirek Długosz personal website “Software Testing Strategies” by Heusser and Larsen - review - Mirek Długosz personal website Mirek Długosz home writing projects about contact &#8220;Software Testing Strategies&#8221; by Heusser and Larsen -&nbsp;review Publication date 22 October 2024 Read time 6 min Tags testing This is the review of a book &#8220;Software Testing Strategies. A testing guide for the 2020s&#8221; by Matthew Heusser and Michael Larsen. The book was published in December 2023 by Packt. You can buy the ebook or printed copy directly from the publisher, at Amazon and perhaps a number of other&nbsp;places. I admit I was a bit on the fence since I first heard about the book. The title sounds very promising and I know authors were involved in AST and context-driven testing. But the price seems a bit high in th\",\"classification_terms\":[\"blog/2024/software-testing-strategies-by-heusser-and-larsen-review\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/ast-board-of-directors-elections-are-on/\",\"status\":200,\"title\":\"AST Board of Directors elections are on! - Mirek Długosz personal website\",\"word_count\":270,\"summary_text\":\"AST Board of Directors elections are on! - Mirek Długosz personal website AST Board of Directors elections are on! - Mirek Długosz personal website Mirek Długosz home writing projects about contact AST Board of Directors elections are&nbsp;on! Publication date 08 July 2024 Read time 1 min Tags AST The Association for Software Testing yearly election process has started. We are looking for three people to join the&nbsp;Board. Official announcement on AST site has all the details, including dates and formal requirements. If you aren&#8217;t sure if you would be a good fit, you have any questions about the Board, Association or the elections, or you are looking for someone from within the organization to support your nomination, I am more than happy to help - just reach out using the usual channels. And if you can&#8217;t run for election because you are not a memb\",\"classification_terms\":[\"blog/2024/ast-board-of-directors-elections-are-on\",\"about\",\"contact\",\"support\",\"help\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/how-can-i-possibly-test-all-the-stuff-every-iteration/\",\"status\":200,\"title\":\"How can I possibly test “all the stuff” every iteration? - Mirek Długosz personal website\",\"word_count\":1452,\"summary_text\":\"How can I possibly test “all the stuff” every iteration? - Mirek Długosz personal website How can I possibly test “all the stuff” every iteration? - Mirek Długosz personal website Mirek Długosz home writing projects about contact How can I possibly test &#8220;all the stuff&#8221; every&nbsp;iteration? Publication date 20 June 2024 Read time 6 min Tags AST / testing The Association for Software Testing is crowd-sourcing a book, Navigating the World as a Context-Driven Tester. The book is edited by Lee Hawkins, who posts questions on Mastodon, LinkedIn, BlueSky, Twitter, Slack, and the AST mailing list. You don&#8217;t have to be a member to give your answer to the most recent prompt, &#8220;How can I possibly test »all the stuff« every iteration?&#8221;. Mine is&nbsp;below. Depends on what you mean by &#8220;all the&nbsp;stuff&#8221;. You might mean the full regression testing\",\"classification_terms\":[\"blog/2024/how-can-i-possibly-test-all-the-stuff-every-iteration\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/ast-bod-report-april-2024/\",\"status\":200,\"title\":\"Association for Software Testing Board of Directors report - April 2024 - Mirek Długosz personal website\",\"word_count\":469,\"summary_text\":\"Association for Software Testing Board of Directors report - April 2024 - Mirek Długosz personal website Association for Software Testing Board of Directors report - April 2024 - Mirek Długosz personal website Mirek Długosz home writing projects about contact Association for Software Testing Board of Directors report - April&nbsp;2024 Publication date 02 May 2024 Read time 2 min Tags AST In my Association for Software Testing 2023 elections proceedings I advocated for transparency. In the spirit of practising what I preach, this blog post summarizes my work for AST in April&nbsp;2024. Found a way to send messages to BlueSky and Mastodon from&nbsp;Zapier. Met with Chris and Gwen to discuss remaining items from Phone.com migration (see January report). I hope to finally close that in&nbsp;May. Removed old, no longer used passwords from shared LastPass&nbsp;folders. Integration of Zapier with Bl\",\"classification_terms\":[\"blog/2024/ast-bod-report-april-2024\",\"about\",\"contact\",\"api\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/rust-binaries-stability/\",\"status\":200,\"title\":\"Rust binaries stability - Mirek Długosz personal website\",\"word_count\":1003,\"summary_text\":\"Rust binaries stability - Mirek Długosz personal website Rust binaries stability - Mirek Długosz personal website Mirek Długosz home writing projects about contact Rust binaries&nbsp;stability Publication date 27 April 2024 Read time 4 min Tags Linux / Rust Recently, I&#8217;ve been thinking about Rust stability. Most web search results are discussing stability of the language itself, especially in the context of taking old Rust code and compiling it with recent toolchain. This is obviously important, but not the kind of stability that I had in mind. What I wanted to know is: &#8220;can I take my old Rust executable and use it on recent&nbsp;Linux?&#8221; When I publish this post, Rust toolchain is at version 1.77.2. Rust itself was created in 2006, made publicly available in 2010 and saw first stable release (1.0) in 2015. Obviously I am not in\",\"classification_terms\":[\"blog/2024/rust-binaries-stability\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":10,\"depth\":2},{\"path\":\"/blog/2024/why-dont-we-replace-the-testers-with-ai-postscript/\",\"status\":200,\"title\":\"Why don’t we replace the testers with AI? Postscript - Mirek Długosz personal website\",\"word_count\":305,\"summary_text\":\"Why don’t we replace the testers with AI? Postscript - Mirek Długosz personal website Why don’t we replace the testers with AI? Postscript - Mirek Długosz personal website Mirek Długosz home writing projects about contact Why don’t we replace the testers with AI?&nbsp;Postscript Publication date 16 April 2024 Read time 1 min Tags testing When researching my previous article, I stumbled upon an essay by Dave Karpf titled &#8220;Two Failure Modes of Emerging Technologies&#8221;. The first failure mode is when the technology is actually successful, finds itself used outside of planned context and that causes a whole swath of unintended consequences. Second - technology fails to deliver what it promised, but still finds itself widely used and incorporated into critical systems. Everyone learns to works around problems, or worse - stops to see there are problems to begin&nbsp;wi\",\"classification_terms\":[\"blog/2024/why-dont-we-replace-the-testers-with-ai-postscript\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/why-dont-we-replace-the-testers-with-ai/\",\"status\":200,\"title\":\"Why don’t we replace the testers with AI? - Mirek Długosz personal website\",\"word_count\":1088,\"summary_text\":\"Why don’t we replace the testers with AI? - Mirek Długosz personal website Why don’t we replace the testers with AI? - Mirek Długosz personal website Mirek Długosz home writing projects about contact Why don’t we replace the testers with AI? Publication date 16 April 2024 Read time 5 min Tags AST / testing The Association for Software Testing is crowd-sourcing a book, Navigating the World as a Context-Driven Tester. The book is edited by Lee Hawkins, who posts questions on Mastodon, LinkedIn, BlueSky, Twitter, Slack, and the AST mailing list. You don&#8217;t have to be a member to give your answer to the most recent prompt, &#8220;Why don’t we replace the testers with AI?&#8221;. Mine is&nbsp;below. We can&#8217;t replace testers with AI because, as of April 2024, there&#8217;s no AI capable of doing all the things that testers are&nbsp;doing. Now, that&#8217;s t\",\"classification_terms\":[\"blog/2024/why-dont-we-replace-the-testers-with-ai\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/30-days-of-ai-in-testing-experience-report/\",\"status\":200,\"title\":\"30 Days of AI in Testing experience report - Mirek Długosz personal website\",\"word_count\":1423,\"summary_text\":\"30 Days of AI in Testing experience report - Mirek Długosz personal website 30 Days of AI in Testing experience report - Mirek Długosz personal website Mirek Długosz home writing projects about contact 30 Days of AI in Testing experience&nbsp;report Publication date 02 April 2024 Read time 6 min Tags testing In March, Ministry of Testing held 30 Days of AI in Testing challenge. I participated, and post my general impressions&nbsp;below. If you have never heard of &#8220;$x days of $something&#8221; challenges, the idea is simple - there is some kind of prompt posted every day, and your goal is to write a short piece in response. You publish the work on a blog, dedicated forum or on social media. Prompts might include a task to complete, and these tasks will vary from very simple to somewhat complex. Some days majority of your time will be spent on the task itself,\",\"classification_terms\":[\"blog/2024/30-days-of-ai-in-testing-experience-report\",\"about\",\"contact\",\"forum\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/dont-blindly-serve-webp-format/\",\"status\":200,\"title\":\"Don’t blindly serve WebP format - Mirek Długosz personal website\",\"word_count\":349,\"summary_text\":\"Don’t blindly serve WebP format - Mirek Długosz personal website Don’t blindly serve WebP format - Mirek Długosz personal website Mirek Długosz home writing projects about contact Don&#8217;t blindly serve WebP&nbsp;format Publication date 12 March 2024 Read time 1 min Tags testing / tutorial If you have done any webdev work in last few years, you must have heard about WebP. It&#8217;s an image format that promises up to 34% smaller file sizes without noticeable quality downgrade. It&#8217;s pretty much universally supported since late&nbsp;2020. With smaller file sizes and widespread support, you might think it&#8217;s a good idea to just serve all your images in WebP. Or, if you want to be extra backward-compatible - serve WebP to all browsers that claim to support it, and original image to remaining&nbsp;few. I also thought it&#8217;s a good idea, an\",\"classification_terms\":[\"blog/2024/dont-blindly-serve-webp-format\",\"about\",\"contact\",\"support\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/whats-the-best-format-for-a-test-plan/\",\"status\":200,\"title\":\"What’s the best format for a test plan? - Mirek Długosz personal website\",\"word_count\":1215,\"summary_text\":\"What’s the best format for a test plan? - Mirek Długosz personal website What’s the best format for a test plan? - Mirek Długosz personal website Mirek Długosz home writing projects about contact What&#8217;s the best format for a test&nbsp;plan? Publication date 04 March 2024 Read time 5 min Tags AST / testing The Association for Software Testing is crowd-sourcing a book, Navigating the World as a Context-Driven Tester. The book is edited by Lee Hawkins, who posts questions on Twitter, LinkedIn, Mastodon, Slack, and the AST mailing list. You don&#8217;t have to be a member to give your answer to the most recent prompt, &#8220;What&#8217;s the best format for a test plan?&#8221;. Mine is&nbsp;below. It should come as no surprise that there is no single &#8220;best&#8221;&nbsp;format. Each document that we create should be for someone and should respond to some\",\"classification_terms\":[\"blog/2024/whats-the-best-format-for-a-test-plan\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/ast-bod-report-february-2024/\",\"status\":200,\"title\":\"Association for Software Testing Board of Directors report - February 2024 - Mirek Długosz personal website\",\"word_count\":374,\"summary_text\":\"Association for Software Testing Board of Directors report - February 2024 - Mirek Długosz personal website Association for Software Testing Board of Directors report - February 2024 - Mirek Długosz personal website Mirek Długosz home writing projects about contact Association for Software Testing Board of Directors report - February&nbsp;2024 Publication date 01 March 2024 Read time 1 min Tags AST In my Association for Software Testing 2023 elections proceedings I advocated for transparency. In the spirit of practising what I preach, this blog post summarizes my work for AST in February&nbsp;2024. Fixed a problem where email sent to Group is not distributed to all members of that Group. Google support was not particularly helpful, although I must note that there was actual human involved, and she did try. A fix involved changing the way our Wordpress site is sending emails. Documented everythin\",\"classification_terms\":[\"blog/2024/ast-bod-report-february-2024\",\"about\",\"contact\",\"support\",\"help\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/ast-bod-report-january-2024/\",\"status\":200,\"title\":\"Association for Software Testing Board of Directors report - January 2024 - Mirek Długosz personal website\",\"word_count\":418,\"summary_text\":\"Association for Software Testing Board of Directors report - January 2024 - Mirek Długosz personal website Association for Software Testing Board of Directors report - January 2024 - Mirek Długosz personal website Mirek Długosz home writing projects about contact Association for Software Testing Board of Directors report - January&nbsp;2024 Publication date 01 February 2024 Read time 2 min Tags AST In my Association for Software Testing 2023 elections proceedings I advocated for transparency. In the spirit of practising what I preach, this blog post summarizes my work for AST in January&nbsp;2024. Implemented DNS changes required for VeryConnect (software running our members&nbsp;portal) Did about 75% of Phone.com migration. We want to stop using phone number from them and someone has to log in to all our accounts, check what phone number is set in profile and change it when necessary. While do\",\"classification_terms\":[\"blog/2024/ast-bod-report-january-2024\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/when-the-build-is-green-the-product-is-of-sufficient-quality-to-release/\",\"status\":200,\"title\":\"When the build is green, the product is of sufficient quality to release - Mirek Długosz personal website\",\"word_count\":1512,\"summary_text\":\"When the build is green, the product is of sufficient quality to release - Mirek Długosz personal website When the build is green, the product is of sufficient quality to release - Mirek Długosz personal website Mirek Długosz home writing projects about contact When the build is green, the product is of sufficient quality to&nbsp;release Publication date 25 January 2024 Read time 6 min Tags AST / testing The Association for Software Testing is crowd-sourcing a book, Navigating the World as a Context-Driven Tester. The book is edited by Lee Hawkins, who posts questions on Twitter, LinkedIn, Mastodon, Slack, and the AST mailing list. You don&#8217;t have to be a member to give your answer to the most recent prompt, &#8220;When the build is green, the product is of sufficient quality to release&#8221;. Mine is&nbsp;below. No, not really. At least not in any general sense. But you are free to choo\",\"classification_terms\":[\"blog/2024/when-the-build-is-green-the-product-is-of-sufficient-quality-to-release\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2024/playwright-accessing-page-object-in-event-handler/\",\"status\":200,\"title\":\"Playwright - accessing page object in event handler - Mirek Długosz personal website\",\"word_count\":1087,\"summary_text\":\"Playwright - accessing page object in event handler - Mirek Długosz personal website Playwright - accessing page object in event handler - Mirek Długosz personal website Mirek Długosz home writing projects about contact Playwright - accessing page object in event&nbsp;handler Publication date 03 January 2024 Read time 5 min Tags Python / testing / tutorial Playwright exposes a number of browser events and provides a mechanism to respond to them. Since many of these events signal errors and problems, most of the time you want to log them, halt program execution, or ignore and move on. Logging is also shown in Playwright documentation about network, which I will use as a base for examples in this&nbsp;article. Problem&nbsp;statement Documentation shows event handlers created with lambda expressions, but lambda poses significant problems once you leave the territory of toy&nb\",\"classification_terms\":[\"blog/2024/playwright-accessing-page-object-in-event-handler\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2023/ast-bod-report-november-2023/\",\"status\":200,\"title\":\"Association for Software Testing Board of Directors report - November 2023 - Mirek Długosz personal website\",\"word_count\":551,\"summary_text\":\"Association for Software Testing Board of Directors report - November 2023 - Mirek Długosz personal website Association for Software Testing Board of Directors report - November 2023 - Mirek Długosz personal website Mirek Długosz home writing projects about contact Association for Software Testing Board of Directors report - November&nbsp;2023 Publication date 01 December 2023 Read time 2 min Tags AST In my Association for Software Testing 2023 elections proceedings I advocated for transparency. In the spirit of practising what I preach, this blog post summarizes my work for AST in November&nbsp;2023. Offboarded some of previous Board of Directors members. Thank you for your service and I hope to see you&nbsp;around! Created runbook for Google organization changes needed when onboarding and offboarding Board of Directors members. This is internal only and I can&#8217;t link to&nbsp;this. Planned\",\"classification_terms\":[\"blog/2023/ast-bod-report-november-2023\",\"about\",\"contact\",\"blog\"],\"external_refs\":[],\"password_input_count\":0,\"email_input_count\":0,\"tel_input_count\":0,\"otp_term_count\":0,\"login_form_count\":0,\"checkout_form_count\":0,\"wallet_prompt_count\":0,\"offdomain_form_actions\":0,\"suspicious_script_refs_count\":0,\"external_script_hosts\":[],\"executable_download_count\":0,\"archive_download_count\":0,\"apk_download_count\":0,\"phone_number_count\":0,\"depth\":2},{\"path\":\"/blog/2023/are-observability-and-monitoring-part-of-testing/\",\"status\":200,\"title\":\"Are observability and monitoring part of testing? - Mirek Długosz personal website\",\"word_count\":890,\"summary_text\":\"Are observability and monitoring part of testing? - Mirek Długosz personal website Are observability and monitoring part of testing? - Mirek Długosz personal website Mirek Długosz home writing projects about contact Are observability and monitoring part of&nbsp;testing? Publication date 26 November 2023 Read time 4 min Tags AST / testing The Association for Software Testing is crowd-sourcing a book, Navigating the World as a Context-Driven Tester. The book is edited by Lee Hawkins, who posts questions on Twitter, LinkedIn, Mastodon, Slack, and the AST mailing list. You don&#8217;t have to be a member to give your answer to the most recent prompt, &#8220;Are observability and monitoring part of testing?&#8221;. Mine is&nbsp;below. Most commonly these terms are used in context of operations, and activities related to them are responsibility of operators (system administrat\",\"classification_terms\":[\"blog/2023/are-observability-and-monitoring-part-of-testing\",\"about\",\"contact\",\"terms\",\"blog\"],\"external_refs\":[],\"pa",
        "score_reasons_json": "[\"Category confidence was reduced, so the classifier fell back to the broader parent category.\",\"Category evidence stayed thin, so the output was softened to a broader classification.\",\"Trusted status now requires clean crawl access and stronger confidence, so this result was downgraded to caution.\"]",
        "route_domain": "mirekdlugosz.com",
        "display_domain": "mirekdlugosz.com"
    },
    "explainability": {
        "summary": "mirekdlugosz.com currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "98/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "caution",
                "detail": "64/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "weighted_contributions": [
            {
                "label": "Quality system",
                "points": "+20.7",
                "tone": "caution",
                "detail": "Technical quality, crawl depth, page structure, and implementation hygiene. Current subsystem score: 61/100."
            },
            {
                "label": "Reputation system",
                "points": "+15.3",
                "tone": "caution",
                "detail": "Authority, search visibility, reach, engagement, and registry stability. Current subsystem score: 45/100."
            },
            {
                "label": "Safety system",
                "points": "+32.0",
                "tone": "good",
                "detail": "Fraud, spam, and trust signals from infrastructure, crawl, and registry evidence. Current subsystem score: 100/100."
            },
            {
                "label": "Risk clamp",
                "points": "-4.0",
                "tone": "risk",
                "detail": "Safety thresholds capped the final score until the risk profile improves."
            }
        ],
        "evidence_cards": [
            {
                "label": "Authority and trust",
                "value": "45/100 · trust 80/100",
                "tone": "caution",
                "detail": "170 monthly visitors, 79 organic keywords, brand completeness 75/100, engagement 81/100."
            },
            {
                "label": "Backlink and search evidence",
                "value": "3 referring domains",
                "tone": "good",
                "detail": "3 backlinks across 3 referring domains. Diversity 94/100; spam penalty 0."
            },
            {
                "label": "Registry and domain stability",
                "value": "6.6 years old",
                "tone": "good",
                "detail": "Stability 100/100 · age 6.6 years · registrar OVH sas · expires in 148 days."
            },
            {
                "label": "Safety and fraud posture",
                "value": "Safety 100/100 · fraud 0/100",
                "tone": "good",
                "detail": "Primary tag T · safety 100/100 · fraud 0/100."
            }
        ],
        "positives": [
            "Established domain age: 6.6 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Structured data / schema markup detected.",
            "Registry history looks stable, which supports legitimacy and trust.",
            "The domain has been registered for years, which usually improves trust confidence."
        ],
        "risks": [],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-04-11 18:56:01",
                "tone": "caution",
                "detail": "Crawl and page content sample. Age: 4d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-04-11 18:55:58",
                "tone": "caution",
                "detail": "Registry profile and stability signals. Age: 4d ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-16 15:50:06",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-16 15:50:06",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "section_notes": {
            "audience": "Audience geography is estimated from category, country, traffic mix, and brand signals until first-party audience data is collected.",
            "keywords": "Top keywords are estimated from crawl language, brand, category, and visibility signals until tracked keyword snapshots are stored.",
            "history": "Rank history is estimated from the current profile because no stored history exists for this domain yet."
        },
        "base_weighted_score": 68,
        "fraud_clamp_penalty": 4,
        "final_score": 64
    },
    "insight_snapshot": {
        "version": 1,
        "generated_at": "2026-04-16T15:50:06+00:00",
        "domain": "mirekdlugosz.com",
        "display_name": "Mirek Długosz personal website",
        "is_tracked": false,
        "is_estimated": true,
        "overall_score": 64,
        "authority_score": 45,
        "trust_score": 80,
        "safety_score": 100,
        "fraud_score": 0,
        "confidence_score": 98,
        "traffic_confidence": 64,
        "last_crawled_at": "2026-04-11 18:56:01",
        "crawl_blocked": false,
        "summary": "mirekdlugosz.com currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is strong enough for a relatively stable read. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "High confidence",
                "tone": "good",
                "detail": "98/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "caution",
                "detail": "64/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "top_positive_signals": [
            "Established domain age: 6.6 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Structured data / schema markup detected.",
            "Registry history looks stable, which supports legitimacy and trust."
        ],
        "top_risk_signals": [],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-04-11 18:56:01",
                "tone": "caution",
                "detail": "Crawl and page content sample. Age: 4d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-04-11 18:55:58",
                "tone": "caution",
                "detail": "Registry profile and stability signals. Age: 4d ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-16 15:50:06",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-16 15:50:06",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "top_tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good"
            }
        ]
    },
    "is_tracked": false,
    "is_estimated": true,
    "live_state": {
        "status": "processing",
        "status_label": "Cache build running",
        "message": "The refreshed page cache is still being built for this domain.",
        "updated_at": "2026-04-17T10:42:42+00:00"
    },
    "refresh_state": {
        "canRequest": false,
        "queued": true,
        "processing": true,
        "stageKey": "cache-queued",
        "stageLabel": "Cache build running",
        "cooldownUntil": null,
        "message": "The refreshed page cache is still being built for this domain.",
        "action": "/domain/mirekdlugosz.com/refresh",
        "isGuestCooldown": false,
        "cooldownSeconds": 0
    },
    "urlscan_report": {
        "domain": "mirekdlugosz.com",
        "status": "complete",
        "submitted_at": "2026-03-20T10:06:26+00:00",
        "last_checked_at": "2026-03-20T10:08:05+00:00",
        "last_error": "",
        "submitted_url": "https://mirekdlugosz.com/",
        "summary": "urlscan.io report is ready.",
        "uuid": "019d0ab5-e52b-701a-8c66-50d8e289a943",
        "result_url": "https://urlscan.io/result/019d0ab5-e52b-701a-8c66-50d8e289a943/",
        "api_result_url": "https://urlscan.io/api/v1/result/019d0ab5-e52b-701a-8c66-50d8e289a943/",
        "visibility": "public",
        "raw_submit_response": {
            "message": "Submission successful",
            "uuid": "019d0ab5-e52b-701a-8c66-50d8e289a943",
            "result": "https://urlscan.io/result/019d0ab5-e52b-701a-8c66-50d8e289a943/",
            "api": "https://urlscan.io/api/v1/result/019d0ab5-e52b-701a-8c66-50d8e289a943/",
            "visibility": "public",
            "options": [],
            "url": "https://mirekdlugosz.com/",
            "country": "pl"
        },
        "report": {
            "data": {
                "requests": [
                    {
                        "request": {
                            "requestId": "69151407B981A1DAA379D5D6B281BB10",
                            "loaderId": "69151407B981A1DAA379D5D6B281BB10",
                            "documentURL": "https://mirekdlugosz.com/",
                            "request": {
                                "url": "https://mirekdlugosz.com/",
                                "method": "GET",
                                "headers": {
                                    "Upgrade-Insecure-Requests": "1",
                                    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36"
                                },
                                "mixedContentType": "none",
                                "initialPriority": "VeryHigh",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "isSameSite": true
                            },
                            "timestamp": 41133359.329279,
                            "wallTime": 1774001186.645316,
                            "initiator": {
                                "type": "other"
                            },
                            "redirectHasExtraInfo": false,
                            "type": "Document",
                            "frameId": "D363DA971C336E580BC122C50E801A80",
                            "hasUserGesture": false,
                            "primaryRequest": true
                        },
                        "response": {
                            "encodedDataLength": 3242,
                            "dataLength": 9361,
                            "requestId": "69151407B981A1DAA379D5D6B281BB10",
                            "type": "Document",
                            "response": {
                                "url": "https://mirekdlugosz.com/",
                                "status": 200,
                                "statusText": "",
                                "headers": {
                                    "content-encoding": "gzip",
                                    "content-type": "text/html; charset=utf-8",
                                    "date": "Fri, 20 Mar 2026 10:06:26 GMT",
                                    "etag": "W/\"68cae212-2491\"",
                                    "last-modified": "Wed, 17 Sep 2025 16:30:10 GMT",
                                    "server": "nginx"
                                },
                                "mimeType": "text/html",
                                "charset": "utf-8",
                                "remoteIPAddress": "212.91.26.150",
                                "remotePort": 443,
                                "encodedDataLength": 3242,
                                "timing": {
                                    "requestTime": 41133359.329808,
                                    "proxyStart": -1,
                                    "proxyEnd": -1,
                                    "dnsStart": 0,
                                    "dnsEnd": 43.636,
                                    "connectStart": 43.737,
                                    "connectEnd": 131.24,
                                    "sslStart": 70.552,
                                    "sslEnd": 131.231,
                                    "workerStart": -1,
                                    "workerReady": -1,
                                    "workerFetchStart": -1,
                                    "workerRespondWithSettled": -1,
                                    "sendStart": 131.46,
                                    "sendEnd": 131.677,
                                    "pushStart": 0,
                                    "pushEnd": 0,
                                    "receiveHeadersStart": 201.115,
                                    "receiveHeadersEnd": 201.298
                                },
                                "responseTime": 1774001186846.98,
                                "protocol": "h2",
                                "alternateProtocolUsage": "unspecifiedReason",
                                "securityState": "secure",
                                "securityDetails": {
                                    "protocol": "TLS 1.3",
                                    "keyExchange": "",
                                    "keyExchangeGroup": "X25519",
                                    "cipher": "AES_256_GCM",
                                    "certificateId": 0,
                                    "subjectName": "mirekdlugosz.com",
                                    "sanList": [
                                        "mirekdlugosz.com",
                                        "www.mirekdlugosz.com"
                                    ],
                                    "issuer": "R13",
                                    "validFrom": 1770498110,
                                    "validTo": 1778274109,
                                    "signedCertificateTimestampList": [
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "DigiCert 'Sphinx2026h1'",
                                            "logId": "499C9B69DE1D7CECFC36DECD8764A6B85BAF0A878019D15552FBE9EB29DDF8C3",
                                            "timestamp": 1770501620582,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30450220644F8A4DC5814F8FB468865AADE14495F997E7FF6B5448AA4A3A4D4A9C6C1D4F022100AA7F4463FD2A03E28EDBB8DF91ADA87AB11E29CF0046897C68A7C2B027DE893C"
                                        },
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "Google 'Xenon2026h1' log",
                                            "logId": "969764BF555897ADF743876837084277E9F03AD5F6A4F3366E46A43F0FCAA9C6",
                                            "timestamp": 1770501620645,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30440220655C3C219ED14D2D5200E612BFE1B47C9298308560E145152EE5BCC42CEE93E002203882A01D7F02AF3122EE02AB99387C65273398FBFE51CDA3A947FE98C9F37A44"
                                        }
                                    ],
                                    "certificateTransparencyCompliance": "compliant",
                                    "serverSignatureAlgorithm": 2052,
                                    "encryptedClientHello": false
                                }
                            },
                            "hasExtraInfo": true,
                            "hash": "e22ac9a85a9c2792e0aef612d742e6bb63c6db19b6138ce44d11aa100c33d8bd",
                            "size": 9340,
                            "asn": {
                                "ip": "212.91.26.150",
                                "asn": "57367",
                                "country": "PL",
                                "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                                "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                                "route": "212.91.26.0/23"
                            },
                            "geoip": {
                                "country": "PL",
                                "region": "14",
                                "timezone": "Europe/Warsaw",
                                "city": "Warsaw",
                                "ll": [
                                    52.2299,
                                    21.0093
                                ],
                                "country_name": "Poland",
                                "metro": 0
                            },
                            "rdns": {
                                "ip": "212.91.26.150",
                                "ptr": "web1.mydevil.net"
                            }
                        }
                    },
                    {
                        "request": {
                            "requestId": "355852.2",
                            "loaderId": "69151407B981A1DAA379D5D6B281BB10",
                            "documentURL": "https://mirekdlugosz.com/",
                            "request": {
                                "url": "https://mirekdlugosz.com/theme/css/style.min.css",
                                "method": "GET",
                                "headers": {
                                    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
                                    "Referer": "https://mirekdlugosz.com/"
                                },
                                "mixedContentType": "none",
                                "initialPriority": "VeryHigh",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "isSameSite": true
                            },
                            "timestamp": 41133359.537692,
                            "wallTime": 1774001186.853773,
                            "initiator": {
                                "type": "parser",
                                "url": "https://mirekdlugosz.com/",
                                "lineNumber": 6,
                                "columnNumber": 103
                            },
                            "redirectHasExtraInfo": false,
                            "type": "Stylesheet",
                            "frameId": "D363DA971C336E580BC122C50E801A80",
                            "hasUserGesture": false,
                            "renderBlockingBehavior": "Blocking"
                        },
                        "response": {
                            "encodedDataLength": 3954,
                            "dataLength": 14905,
                            "requestId": "355852.2",
                            "type": "Stylesheet",
                            "response": {
                                "url": "https://mirekdlugosz.com/theme/css/style.min.css",
                                "status": 200,
                                "statusText": "",
                                "headers": {
                                    "cache-control": "max-age=1209600",
                                    "content-encoding": "gzip",
                                    "etag": "W/\"68938200-3a39\"",
                                    "expires": "Fri, 03 Apr 2026 09:50:49 GMT",
                                    "date": "Fri, 20 Mar 2026 10:06:26 GMT",
                                    "content-type": "text/css",
                                    "last-modified": "Wed, 06 Aug 2025 16:25:36 GMT",
                                    "server": "nginx"
                                },
                                "mimeType": "text/css",
                                "charset": "",
                                "remoteIPAddress": "212.91.26.150",
                                "remotePort": 443,
                                "encodedDataLength": 3954,
                                "timing": {
                                    "requestTime": 41133359.538127,
                                    "proxyStart": -1,
                                    "proxyEnd": -1,
                                    "dnsStart": -1,
                                    "dnsEnd": -1,
                                    "connectStart": -1,
                                    "connectEnd": -1,
                                    "sslStart": -1,
                                    "sslEnd": -1,
                                    "workerStart": -1,
                                    "workerReady": -1,
                                    "workerFetchStart": -1,
                                    "workerRespondWithSettled": -1,
                                    "sendStart": 0.42,
                                    "sendEnd": 0.591,
                                    "pushStart": 0,
                                    "pushEnd": 0,
                                    "receiveHeadersStart": 45.015,
                                    "receiveHeadersEnd": 46.605
                                },
                                "responseTime": 1774001186899.183,
                                "protocol": "h2",
                                "alternateProtocolUsage": "unspecifiedReason",
                                "securityState": "secure",
                                "securityDetails": {
                                    "protocol": "TLS 1.3",
                                    "keyExchange": "",
                                    "keyExchangeGroup": "X25519",
                                    "cipher": "AES_256_GCM",
                                    "certificateId": 0,
                                    "subjectName": "mirekdlugosz.com",
                                    "sanList": [
                                        "mirekdlugosz.com",
                                        "www.mirekdlugosz.com"
                                    ],
                                    "issuer": "R13",
                                    "validFrom": 1770498110,
                                    "validTo": 1778274109,
                                    "signedCertificateTimestampList": [
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "DigiCert 'Sphinx2026h1'",
                                            "logId": "499C9B69DE1D7CECFC36DECD8764A6B85BAF0A878019D15552FBE9EB29DDF8C3",
                                            "timestamp": 1770501620582,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30450220644F8A4DC5814F8FB468865AADE14495F997E7FF6B5448AA4A3A4D4A9C6C1D4F022100AA7F4463FD2A03E28EDBB8DF91ADA87AB11E29CF0046897C68A7C2B027DE893C"
                                        },
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "Google 'Xenon2026h1' log",
                                            "logId": "969764BF555897ADF743876837084277E9F03AD5F6A4F3366E46A43F0FCAA9C6",
                                            "timestamp": 1770501620645,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30440220655C3C219ED14D2D5200E612BFE1B47C9298308560E145152EE5BCC42CEE93E002203882A01D7F02AF3122EE02AB99387C65273398FBFE51CDA3A947FE98C9F37A44"
                                        }
                                    ],
                                    "certificateTransparencyCompliance": "compliant",
                                    "serverSignatureAlgorithm": 2052,
                                    "encryptedClientHello": false
                                }
                            },
                            "hasExtraInfo": true,
                            "hash": "66675f800e3d1f74b7e67c93cb97b7129add80869040c165e615ee759fdfdb37",
                            "size": 14903,
                            "asn": {
                                "ip": "212.91.26.150",
                                "asn": "57367",
                                "country": "PL",
                                "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                                "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                                "route": "212.91.26.0/23"
                            },
                            "geoip": {
                                "country": "PL",
                                "region": "14",
                                "timezone": "Europe/Warsaw",
                                "city": "Warsaw",
                                "ll": [
                                    52.2299,
                                    21.0093
                                ],
                                "country_name": "Poland",
                                "metro": 0
                            },
                            "rdns": {
                                "ip": "212.91.26.150",
                                "ptr": "web1.mydevil.net"
                            }
                        },
                        "initiatorInfo": {
                            "url": "https://mirekdlugosz.com/",
                            "host": "mirekdlugosz.com",
                            "type": "parser"
                        }
                    },
                    {
                        "request": {
                            "requestId": "355852.3",
                            "loaderId": "69151407B981A1DAA379D5D6B281BB10",
                            "documentURL": "https://mirekdlugosz.com/",
                            "request": {
                                "url": "https://mirekdlugosz.com/theme/fonts/merriweather-v21-latin_latin-ext-regular.woff2",
                                "method": "GET",
                                "headers": {
                                    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
                                    "Origin": "https://mirekdlugosz.com",
                                    "Referer": "https://mirekdlugosz.com/"
                                },
                                "mixedContentType": "none",
                                "initialPriority": "High",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "isLinkPreload": true,
                                "isSameSite": true
                            },
                            "timestamp": 41133359.537908,
                            "wallTime": 1774001186.853946,
                            "initiator": {
                                "type": "parser",
                                "url": "https://mirekdlugosz.com/",
                                "lineNumber": 7,
                                "columnNumber": 159
                            },
                            "redirectHasExtraInfo": false,
                            "type": "Font",
                            "frameId": "D363DA971C336E580BC122C50E801A80",
                            "hasUserGesture": false,
                            "renderBlockingBehavior": "NonBlocking"
                        },
                        "response": {
                            "encodedDataLength": 28938,
                            "dataLength": 28724,
                            "requestId": "355852.3",
                            "type": "Font",
                            "response": {
                                "url": "https://mirekdlugosz.com/theme/fonts/merriweather-v21-latin_latin-ext-regular.woff2",
                                "status": 200,
                                "statusText": "",
                                "headers": {
                                    "cache-control": "max-age=2419200",
                                    "etag": "\"5d7bfcbd-7034\"",
                                    "expires": "Fri, 17 Apr 2026 09:50:49 GMT",
                                    "accept-ranges": "bytes",
                                    "content-length": "28724",
                                    "date": "Fri, 20 Mar 2026 10:06:26 GMT",
                                    "content-type": "font/woff2",
                                    "last-modified": "Fri, 13 Sep 2019 20:31:57 GMT",
                                    "server": "nginx"
                                },
                                "mimeType": "font/woff2",
                                "charset": "",
                                "remoteIPAddress": "212.91.26.150",
                                "remotePort": 443,
                                "encodedDataLength": 178,
                                "timing": {
                                    "requestTime": 41133359.538291,
                                    "proxyStart": -1,
                                    "proxyEnd": -1,
                                    "dnsStart": -1,
                                    "dnsEnd": -1,
                                    "connectStart": -1,
                                    "connectEnd": -1,
                                    "sslStart": -1,
                                    "sslEnd": -1,
                                    "workerStart": -1,
                                    "workerReady": -1,
                                    "workerFetchStart": -1,
                                    "workerRespondWithSettled": -1,
                                    "sendStart": 0.307,
                                    "sendEnd": 0.427,
                                    "pushStart": 0,
                                    "pushEnd": 0,
                                    "receiveHeadersStart": 44.884,
                                    "receiveHeadersEnd": 45.905
                                },
                                "responseTime": 1774001186899.208,
                                "protocol": "h2",
                                "alternateProtocolUsage": "unspecifiedReason",
                                "securityState": "secure",
                                "securityDetails": {
                                    "protocol": "TLS 1.3",
                                    "keyExchange": "",
                                    "keyExchangeGroup": "X25519",
                                    "cipher": "AES_256_GCM",
                                    "certificateId": 0,
                                    "subjectName": "mirekdlugosz.com",
                                    "sanList": [
                                        "mirekdlugosz.com",
                                        "www.mirekdlugosz.com"
                                    ],
                                    "issuer": "R13",
                                    "validFrom": 1770498110,
                                    "validTo": 1778274109,
                                    "signedCertificateTimestampList": [
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "DigiCert 'Sphinx2026h1'",
                                            "logId": "499C9B69DE1D7CECFC36DECD8764A6B85BAF0A878019D15552FBE9EB29DDF8C3",
                                            "timestamp": 1770501620582,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30450220644F8A4DC5814F8FB468865AADE14495F997E7FF6B5448AA4A3A4D4A9C6C1D4F022100AA7F4463FD2A03E28EDBB8DF91ADA87AB11E29CF0046897C68A7C2B027DE893C"
                                        },
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "Google 'Xenon2026h1' log",
                                            "logId": "969764BF555897ADF743876837084277E9F03AD5F6A4F3366E46A43F0FCAA9C6",
                                            "timestamp": 1770501620645,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30440220655C3C219ED14D2D5200E612BFE1B47C9298308560E145152EE5BCC42CEE93E002203882A01D7F02AF3122EE02AB99387C65273398FBFE51CDA3A947FE98C9F37A44"
                                        }
                                    ],
                                    "certificateTransparencyCompliance": "compliant",
                                    "serverSignatureAlgorithm": 2052,
                                    "encryptedClientHello": false
                                }
                            },
                            "hasExtraInfo": true,
                            "hash": "85f00e651dd3ddca26ff9977471b9e016128d4138f98db5f120ba0e2e7b28dbd",
                            "size": 38300,
                            "asn": {
                                "ip": "212.91.26.150",
                                "asn": "57367",
                                "country": "PL",
                                "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                                "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                                "route": "212.91.26.0/23"
                            },
                            "geoip": {
                                "country": "PL",
                                "region": "14",
                                "timezone": "Europe/Warsaw",
                                "city": "Warsaw",
                                "ll": [
                                    52.2299,
                                    21.0093
                                ],
                                "country_name": "Poland",
                                "metro": 0
                            },
                            "rdns": {
                                "ip": "212.91.26.150",
                                "ptr": "web1.mydevil.net"
                            }
                        },
                        "initiatorInfo": {
                            "url": "https://mirekdlugosz.com/",
                            "host": "mirekdlugosz.com",
                            "type": "parser"
                        }
                    },
                    {
                        "request": {
                            "requestId": "355852.4",
                            "loaderId": "69151407B981A1DAA379D5D6B281BB10",
                            "documentURL": "https://mirekdlugosz.com/",
                            "request": {
                                "url": "https://mirekdlugosz.com/theme/img/main-photo.jpg",
                                "method": "GET",
                                "headers": {
                                    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
                                    "Referer": "https://mirekdlugosz.com/"
                                },
                                "mixedContentType": "none",
                                "initialPriority": "Medium",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "isSameSite": true
                            },
                            "timestamp": 41133359.537972,
                            "wallTime": 1774001186.854013,
                            "initiator": {
                                "type": "parser",
                                "url": "https://mirekdlugosz.com/",
                                "lineNumber": 38,
                                "columnNumber": 62
                            },
                            "redirectHasExtraInfo": false,
                            "type": "Image",
                            "frameId": "D363DA971C336E580BC122C50E801A80",
                            "hasUserGesture": false
                        },
                        "response": {
                            "encodedDataLength": 29085,
                            "dataLength": 28860,
                            "requestId": "355852.4",
                            "type": "Image",
                            "response": {
                                "url": "https://mirekdlugosz.com/theme/img/main-photo.jpg",
                                "status": 200,
                                "statusText": "",
                                "headers": {
                                    "cache-control": "max-age=1209600",
                                    "etag": "\"6280dcc5-70bc\"",
                                    "expires": "Fri, 03 Apr 2026 09:50:49 GMT",
                                    "accept-ranges": "bytes",
                                    "content-length": "28860",
                                    "date": "Fri, 20 Mar 2026 10:06:26 GMT",
                                    "content-type": "image/webp",
                                    "last-modified": "Sun, 15 May 2022 10:58:13 GMT",
                                    "server": "nginx",
                                    "vary": "Accept"
                                },
                                "mimeType": "image/webp",
                                "charset": "",
                                "remoteIPAddress": "212.91.26.150",
                                "remotePort": 443,
                                "encodedDataLength": 189,
                                "timing": {
                                    "requestTime": 41133359.538394,
                                    "proxyStart": -1,
                                    "proxyEnd": -1,
                                    "dnsStart": -1,
                                    "dnsEnd": -1,
                                    "connectStart": -1,
                                    "connectEnd": -1,
                                    "sslStart": -1,
                                    "sslEnd": -1,
                                    "workerStart": -1,
                                    "workerReady": -1,
                                    "workerFetchStart": -1,
                                    "workerRespondWithSettled": -1,
                                    "sendStart": 0.231,
                                    "sendEnd": 0.325,
                                    "pushStart": 0,
                                    "pushEnd": 0,
                                    "receiveHeadersStart": 44.793,
                                    "receiveHeadersEnd": 46.123
                                },
                                "responseTime": 1774001186899.22,
                                "protocol": "h2",
                                "alternateProtocolUsage": "unspecifiedReason",
                                "securityState": "secure",
                                "securityDetails": {
                                    "protocol": "TLS 1.3",
                                    "keyExchange": "",
                                    "keyExchangeGroup": "X25519",
                                    "cipher": "AES_256_GCM",
                                    "certificateId": 0,
                                    "subjectName": "mirekdlugosz.com",
                                    "sanList": [
                                        "mirekdlugosz.com",
                                        "www.mirekdlugosz.com"
                                    ],
                                    "issuer": "R13",
                                    "validFrom": 1770498110,
                                    "validTo": 1778274109,
                                    "signedCertificateTimestampList": [
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "DigiCert 'Sphinx2026h1'",
                                            "logId": "499C9B69DE1D7CECFC36DECD8764A6B85BAF0A878019D15552FBE9EB29DDF8C3",
                                            "timestamp": 1770501620582,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30450220644F8A4DC5814F8FB468865AADE14495F997E7FF6B5448AA4A3A4D4A9C6C1D4F022100AA7F4463FD2A03E28EDBB8DF91ADA87AB11E29CF0046897C68A7C2B027DE893C"
                                        },
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "Google 'Xenon2026h1' log",
                                            "logId": "969764BF555897ADF743876837084277E9F03AD5F6A4F3366E46A43F0FCAA9C6",
                                            "timestamp": 1770501620645,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30440220655C3C219ED14D2D5200E612BFE1B47C9298308560E145152EE5BCC42CEE93E002203882A01D7F02AF3122EE02AB99387C65273398FBFE51CDA3A947FE98C9F37A44"
                                        }
                                    ],
                                    "certificateTransparencyCompliance": "compliant",
                                    "serverSignatureAlgorithm": 2052,
                                    "encryptedClientHello": false
                                }
                            },
                            "hasExtraInfo": true,
                            "hash": "c76285dd0ce9ef3534e0341f368fc35b090b72a1d25aa30ab51738da67d37ecf",
                            "size": 38480,
                            "asn": {
                                "ip": "212.91.26.150",
                                "asn": "57367",
                                "country": "PL",
                                "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                                "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                                "route": "212.91.26.0/23"
                            },
                            "geoip": {
                                "country": "PL",
                                "region": "14",
                                "timezone": "Europe/Warsaw",
                                "city": "Warsaw",
                                "ll": [
                                    52.2299,
                                    21.0093
                                ],
                                "country_name": "Poland",
                                "metro": 0
                            },
                            "rdns": {
                                "ip": "212.91.26.150",
                                "ptr": "web1.mydevil.net"
                            }
                        },
                        "initiatorInfo": {
                            "url": "https://mirekdlugosz.com/",
                            "host": "mirekdlugosz.com",
                            "type": "parser"
                        }
                    },
                    {
                        "request": {
                            "requestId": "355852.16",
                            "loaderId": "69151407B981A1DAA379D5D6B281BB10",
                            "documentURL": "https://mirekdlugosz.com/",
                            "request": {
                                "url": "https://mirekdlugosz.com/theme/img/header-bg.svg",
                                "method": "GET",
                                "headers": {
                                    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
                                    "Referer": "https://mirekdlugosz.com/theme/css/style.min.css"
                                },
                                "mixedContentType": "none",
                                "initialPriority": "Low",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "isSameSite": true
                            },
                            "timestamp": 41133359.638184,
                            "wallTime": 1774001186.95423,
                            "initiator": {
                                "type": "parser",
                                "url": "https://mirekdlugosz.com/theme/css/style.min.css"
                            },
                            "redirectHasExtraInfo": false,
                            "type": "Image",
                            "frameId": "D363DA971C336E580BC122C50E801A80",
                            "hasUserGesture": false
                        },
                        "response": {
                            "encodedDataLength": 36879,
                            "dataLength": 214635,
                            "requestId": "355852.16",
                            "type": "Image",
                            "response": {
                                "url": "https://mirekdlugosz.com/theme/img/header-bg.svg",
                                "status": 200,
                                "statusText": "",
                                "headers": {
                                    "cache-control": "max-age=2419200",
                                    "content-encoding": "gzip",
                                    "etag": "W/\"603247d5-3466b\"",
                                    "expires": "Fri, 17 Apr 2026 09:50:49 GMT",
                                    "date": "Fri, 20 Mar 2026 10:06:26 GMT",
                                    "content-type": "image/svg+xml",
                                    "last-modified": "Sun, 21 Feb 2021 11:45:25 GMT",
                                    "server": "nginx"
                                },
                                "mimeType": "image/svg+xml",
                                "charset": "",
                                "remoteIPAddress": "212.91.26.150",
                                "remotePort": 443,
                                "encodedDataLength": 16384,
                                "timing": {
                                    "requestTime": 41133359.638497,
                                    "proxyStart": -1,
                                    "proxyEnd": -1,
                                    "dnsStart": -1,
                                    "dnsEnd": -1,
                                    "connectStart": -1,
                                    "connectEnd": -1,
                                    "sslStart": -1,
                                    "sslEnd": -1,
                                    "workerStart": -1,
                                    "workerReady": -1,
                                    "workerFetchStart": -1,
                                    "workerRespondWithSettled": -1,
                                    "sendStart": 0.309,
                                    "sendEnd": 0.412,
                                    "pushStart": 0,
                                    "pushEnd": 0,
                                    "receiveHeadersStart": 35.557,
                                    "receiveHeadersEnd": 35.734
                                },
                                "responseTime": 1774001186990.107,
                                "protocol": "h2",
                                "alternateProtocolUsage": "unspecifiedReason",
                                "securityState": "secure",
                                "securityDetails": {
                                    "protocol": "TLS 1.3",
                                    "keyExchange": "",
                                    "keyExchangeGroup": "X25519",
                                    "cipher": "AES_256_GCM",
                                    "certificateId": 0,
                                    "subjectName": "mirekdlugosz.com",
                                    "sanList": [
                                        "mirekdlugosz.com",
                                        "www.mirekdlugosz.com"
                                    ],
                                    "issuer": "R13",
                                    "validFrom": 1770498110,
                                    "validTo": 1778274109,
                                    "signedCertificateTimestampList": [
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "DigiCert 'Sphinx2026h1'",
                                            "logId": "499C9B69DE1D7CECFC36DECD8764A6B85BAF0A878019D15552FBE9EB29DDF8C3",
                                            "timestamp": 1770501620582,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30450220644F8A4DC5814F8FB468865AADE14495F997E7FF6B5448AA4A3A4D4A9C6C1D4F022100AA7F4463FD2A03E28EDBB8DF91ADA87AB11E29CF0046897C68A7C2B027DE893C"
                                        },
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "Google 'Xenon2026h1' log",
                                            "logId": "969764BF555897ADF743876837084277E9F03AD5F6A4F3366E46A43F0FCAA9C6",
                                            "timestamp": 1770501620645,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30440220655C3C219ED14D2D5200E612BFE1B47C9298308560E145152EE5BCC42CEE93E002203882A01D7F02AF3122EE02AB99387C65273398FBFE51CDA3A947FE98C9F37A44"
                                        }
                                    ],
                                    "certificateTransparencyCompliance": "compliant",
                                    "serverSignatureAlgorithm": 2052,
                                    "encryptedClientHello": false
                                }
                            },
                            "hasExtraInfo": true,
                            "hash": "0862f62ad0a0a9db811d8589f69d20652e00bc650e1c464a3d39d9b460c54499",
                            "size": 286180,
                            "asn": {
                                "ip": "212.91.26.150",
                                "asn": "57367",
                                "country": "PL",
                                "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                                "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                                "route": "212.91.26.0/23"
                            },
                            "geoip": {
                                "country": "PL",
                                "region": "14",
                                "timezone": "Europe/Warsaw",
                                "city": "Warsaw",
                                "ll": [
                                    52.2299,
                                    21.0093
                                ],
                                "country_name": "Poland",
                                "metro": 0
                            },
                            "rdns": {
                                "ip": "212.91.26.150",
                                "ptr": "web1.mydevil.net"
                            }
                        },
                        "initiatorInfo": {
                            "url": "https://mirekdlugosz.com/theme/css/style.min.css",
                            "host": "mirekdlugosz.com",
                            "type": "parser"
                        }
                    },
                    {
                        "request": {
                            "requestId": "355852.17",
                            "loaderId": "69151407B981A1DAA379D5D6B281BB10",
                            "documentURL": "https://mirekdlugosz.com/",
                            "request": {
                                "url": "https://mirekdlugosz.com/favicon.ico",
                                "method": "GET",
                                "headers": {
                                    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36",
                                    "Referer": "https://mirekdlugosz.com/"
                                },
                                "mixedContentType": "none",
                                "initialPriority": "High",
                                "referrerPolicy": "strict-origin-when-cross-origin",
                                "isSameSite": true
                            },
                            "timestamp": 41133359.990399,
                            "wallTime": 1774001187.306444,
                            "initiator": {
                                "type": "other"
                            },
                            "redirectHasExtraInfo": false,
                            "type": "Other",
                            "frameId": "D363DA971C336E580BC122C50E801A80",
                            "hasUserGesture": false
                        },
                        "response": {
                            "encodedDataLength": 18599,
                            "dataLength": 18488,
                            "requestId": "355852.17",
                            "type": "Other",
                            "response": {
                                "url": "https://mirekdlugosz.com/favicon.ico",
                                "status": 404,
                                "statusText": "",
                                "headers": {
                                    "content-length": "18488",
                                    "date": "Fri, 20 Mar 2026 10:06:27 GMT",
                                    "etag": "\"68a8f855-4838\"",
                                    "content-type": "text/html",
                                    "server": "nginx"
                                },
                                "mimeType": "text/html",
                                "charset": "",
                                "remoteIPAddress": "212.91.26.150",
                                "remotePort": 443,
                                "encodedDataLength": 16384,
                                "timing": {
                                    "requestTime": 41133359.990757,
                                    "proxyStart": -1,
                                    "proxyEnd": -1,
                                    "dnsStart": -1,
                                    "dnsEnd": -1,
                                    "connectStart": -1,
                                    "connectEnd": -1,
                                    "sslStart": -1,
                                    "sslEnd": -1,
                                    "workerStart": -1,
                                    "workerReady": -1,
                                    "workerFetchStart": -1,
                                    "workerRespondWithSettled": -1,
                                    "sendStart": 0.23,
                                    "sendEnd": 0.353,
                                    "pushStart": 0,
                                    "pushEnd": 0,
                                    "receiveHeadersStart": 43.268,
                                    "receiveHeadersEnd": 44.864
                                },
                                "responseTime": 1774001187350.086,
                                "protocol": "h2",
                                "alternateProtocolUsage": "unspecifiedReason",
                                "securityState": "secure",
                                "securityDetails": {
                                    "protocol": "TLS 1.3",
                                    "keyExchange": "",
                                    "keyExchangeGroup": "X25519",
                                    "cipher": "AES_256_GCM",
                                    "certificateId": 0,
                                    "subjectName": "mirekdlugosz.com",
                                    "sanList": [
                                        "mirekdlugosz.com",
                                        "www.mirekdlugosz.com"
                                    ],
                                    "issuer": "R13",
                                    "validFrom": 1770498110,
                                    "validTo": 1778274109,
                                    "signedCertificateTimestampList": [
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "DigiCert 'Sphinx2026h1'",
                                            "logId": "499C9B69DE1D7CECFC36DECD8764A6B85BAF0A878019D15552FBE9EB29DDF8C3",
                                            "timestamp": 1770501620582,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30450220644F8A4DC5814F8FB468865AADE14495F997E7FF6B5448AA4A3A4D4A9C6C1D4F022100AA7F4463FD2A03E28EDBB8DF91ADA87AB11E29CF0046897C68A7C2B027DE893C"
                                        },
                                        {
                                            "status": "Verified",
                                            "origin": "Embedded in certificate",
                                            "logDescription": "Google 'Xenon2026h1' log",
                                            "logId": "969764BF555897ADF743876837084277E9F03AD5F6A4F3366E46A43F0FCAA9C6",
                                            "timestamp": 1770501620645,
                                            "hashAlgorithm": "SHA-256",
                                            "signatureAlgorithm": "ECDSA",
                                            "signatureData": "30440220655C3C219ED14D2D5200E612BFE1B47C9298308560E145152EE5BCC42CEE93E002203882A01D7F02AF3122EE02AB99387C65273398FBFE51CDA3A947FE98C9F37A44"
                                        }
                                    ],
                                    "certificateTransparencyCompliance": "compliant",
                                    "serverSignatureAlgorithm": 2052,
                                    "encryptedClientHello": false
                                }
                            },
                            "hasExtraInfo": true,
                            "hash": "19d823649b4ff8860ea2804c3ac5b09558f1905f41089a13e15935991bb49e9e",
                            "size": 18467,
                            "asn": {
                                "ip": "212.91.26.150",
                                "asn": "57367",
                                "country": "PL",
                                "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                                "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                                "route": "212.91.26.0/23"
                            },
                            "geoip": {
                                "country": "PL",
                                "region": "14",
                                "timezone": "Europe/Warsaw",
                                "city": "Warsaw",
                                "ll": [
                                    52.2299,
                                    21.0093
                                ],
                                "country_name": "Poland",
                                "metro": 0
                            },
                            "rdns": {
                                "ip": "212.91.26.150",
                                "ptr": "web1.mydevil.net"
                            }
                        }
                    }
                ],
                "cookies": [],
                "console": [
                    {
                        "message": {
                            "source": "network",
                            "level": "error",
                            "text": "Failed to load resource: the server responded with a status of 404 ()",
                            "timestamp": 1774001187367.705,
                            "url": "https://mirekdlugosz.com/favicon.ico"
                        }
                    }
                ],
                "links": [
                    {
                        "href": "https://fosstodon.org/@mirekdlugosz",
                        "text": "Mastodon",
                        "frameId": "D363DA971C336E580BC122C50E801A80"
                    },
                    {
                        "href": "https://www.linkedin.com/in/mirekdlugosz/en",
                        "text": "LinkedIn",
                        "frameId": "D363DA971C336E580BC122C50E801A80"
                    },
                    {
                        "href": "https://creativecommons.org/licenses/by-nc/4.0/",
                        "text": "CC by-nc 4.0",
                        "frameId": "D363DA971C336E580BC122C50E801A80"
                    },
                    {
                        "href": "https://getpelican.com/",
                        "text": "Pelican",
                        "frameId": "D363DA971C336E580BC122C50E801A80"
                    }
                ],
                "timing": {
                    "beginNavigation": "2026-03-20T10:06:26.642Z",
                    "frameStartedLoading": "2026-03-20T10:06:26.645Z",
                    "frameNavigated": "2026-03-20T10:06:26.852Z",
                    "domContentEventFired": "2026-03-20T10:06:26.957Z",
                    "frameStoppedLoading": "2026-03-20T10:06:27.284Z"
                },
                "globals": [],
                "storages": []
            },
            "lists": {
                "ips": [
                    "212.91.26.150"
                ],
                "countries": [
                    "PL"
                ],
                "asns": [
                    "57367"
                ],
                "domains": [
                    "mirekdlugosz.com"
                ],
                "servers": [
                    "nginx"
                ],
                "urls": [
                    "https://mirekdlugosz.com/",
                    "https://mirekdlugosz.com/theme/css/style.min.css",
                    "https://mirekdlugosz.com/theme/fonts/merriweather-v21-latin_latin-ext-regular.woff2",
                    "https://mirekdlugosz.com/theme/img/main-photo.jpg",
                    "https://mirekdlugosz.com/theme/img/header-bg.svg",
                    "https://mirekdlugosz.com/favicon.ico"
                ],
                "linkDomains": [
                    "fosstodon.org",
                    "www.linkedin.com",
                    "creativecommons.org",
                    "getpelican.com"
                ],
                "certificates": [
                    {
                        "subjectName": "mirekdlugosz.com",
                        "issuer": "R13",
                        "validFrom": 1770498110,
                        "validTo": 1778274109
                    }
                ],
                "hashes": [
                    "e22ac9a85a9c2792e0aef612d742e6bb63c6db19b6138ce44d11aa100c33d8bd",
                    "66675f800e3d1f74b7e67c93cb97b7129add80869040c165e615ee759fdfdb37",
                    "85f00e651dd3ddca26ff9977471b9e016128d4138f98db5f120ba0e2e7b28dbd",
                    "c76285dd0ce9ef3534e0341f368fc35b090b72a1d25aa30ab51738da67d37ecf",
                    "0862f62ad0a0a9db811d8589f69d20652e00bc650e1c464a3d39d9b460c54499",
                    "19d823649b4ff8860ea2804c3ac5b09558f1905f41089a13e15935991bb49e9e"
                ]
            },
            "meta": {
                "processors": {
                    "umbrella": {
                        "data": []
                    },
                    "geoip": {
                        "data": [
                            {
                                "ip": "212.91.26.150",
                                "geoip": {
                                    "country": "PL",
                                    "region": "14",
                                    "timezone": "Europe/Warsaw",
                                    "city": "Warsaw",
                                    "ll": [
                                        52.2299,
                                        21.0093
                                    ],
                                    "country_name": "Poland",
                                    "metro": 0
                                }
                            }
                        ]
                    },
                    "asn": {
                        "data": [
                            {
                                "ip": "212.91.26.150",
                                "asn": "57367",
                                "country": "PL",
                                "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                                "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                                "route": "212.91.26.0/23"
                            }
                        ]
                    },
                    "rdns": {
                        "data": [
                            {
                                "ip": "212.91.26.150",
                                "ptr": "web1.mydevil.net"
                            }
                        ]
                    },
                    "wappa": {
                        "data": [
                            {
                                "confidence": [
                                    {
                                        "confidence": 100,
                                        "pattern": "(?:powered|built|generated)\\s(?:by|with).*?<a\\s+href(?:\\s)?=(?:\\s)?\"[^\"]*(?:getpelican\\.com|pelican-bootstrap3|pelican-pure|notmyidea\\.org)[^\"]*\".*?>"
                                    }
                                ],
                                "confidenceTotal": 100,
                                "app": "Pelican",
                                "icon": "pelican.svg",
                                "website": "https://getpelican.com",
                                "categories": [
                                    {
                                        "groups": [
                                            9
                                        ],
                                        "name": "Static site generator",
                                        "priority": 1
                                    }
                                ]
                            }
                        ]
                    }
                }
            },
            "page": {
                "asn": "AS57367",
                "asnname": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                "city": "Warsaw",
                "country": "PL",
                "domain": "mirekdlugosz.com",
                "ip": "212.91.26.150",
                "ptr": "web1.mydevil.net",
                "server": "nginx",
                "url": "https://mirekdlugosz.com/",
                "apexDomainAgeDays": 2381,
                "language": "en",
                "mimeType": "text/html",
                "title": "Mirek Długosz personal website",
                "tlsValidDays": 89,
                "tlsAgeDays": 40,
                "domainAgeDays": 2381,
                "tlsValidFrom": "2026-02-07T21:01:50.000Z",
                "apexDomain": "mirekdlugosz.com",
                "tlsIssuer": "R13",
                "status": "200"
            },
            "scanner": {
                "country": "pl"
            },
            "stats": {
                "IPv6Percentage": 0,
                "adBlocked": 0,
                "domainStats": [
                    {
                        "count": 6,
                        "ips": [
                            "212.91.26.150"
                        ],
                        "domain": "mirekdlugosz.com",
                        "size": 314973,
                        "encodedSize": 120697,
                        "countries": [
                            "PL"
                        ],
                        "index": 0,
                        "initiators": [
                            "mirekdlugosz.com"
                        ],
                        "redirects": 0
                    }
                ],
                "ipStats": [
                    {
                        "requests": 6,
                        "domains": [
                            "mirekdlugosz.com"
                        ],
                        "ip": "212.91.26.150",
                        "asn": {
                            "ip": "212.91.26.150",
                            "asn": "57367",
                            "country": "PL",
                            "description": "ECO-ATMAN-PL Atman Sp. z o.o., PL",
                            "name": "ECO-ATMAN-PL Atman Sp. z o.o.",
                            "route": "212.91.26.0/23"
                        },
                        "dns": [],
                        "geoip": {
                            "country": "PL",
                            "region": "14",
                            "timezone": "Europe/Warsaw",
                            "city": "Warsaw",
                            "ll": [
                                52.2299,
                                21.0093
                            ],
                            "country_name": "Poland",
                            "metro": 0
                        },
                        "size": 314973,
                        "encodedSize": 120697,
                        "countries": [
                            "PL"
                        ],
                        "index": 0,
                        "ipv6": false,
                        "redirects": 0,
                        "count": null,
                        "rdns": {
                            "ip": "212.91.26.150",
                            "ptr": "web1.mydevil.net"
                        }
                    }
                ],
                "malicious": 0,
                "protocolStats": [
                    {
                        "count": 6,
                        "size": 314973,
                        "encodedSize": 120697,
                        "ips": [
                            "212.91.26.150"
                        ],
                        "countries": [
                            "PL"
                        ],
                        "securityState": [],
                        "protocol": "h2"
                    }
                ],
                "regDomainStats": [
                    {
                        "count": 6,
                        "ips": [
                            "212.91.26.150"
                        ],
                        "regDomain": "mirekdlugosz.com",
                        "size": 314973,
                        "encodedSize": 120697,
                        "countries": [],
                        "index": 0,
                        "subDomains": [
                            {
                                "domain": "",
                                "country": "PL"
                            }
                        ],
                        "redirects": 0
                    }
                ],
                "resourceStats": [
                    {
                        "count": 2,
                        "size": 243495,
                        "encodedSize": 65964,
                        "latency": 0,
                        "countries": [
                            "PL"
                        ],
                        "ips": [
                            "212.91.26.150"
                        ],
                        "type": "Image",
                        "compression": "3.7",
                        "percentage": 33
                    },
                    {
                        "count": 1,
                        "size": 18488,
                        "encodedSize": 18599,
                        "latency": 0,
                        "countries": [
                            "PL"
                        ],
                        "ips": [
                            "212.91.26.150"
                        ],
                        "type": "Other",
                        "compression": "1.0",
                        "percentage": 16
                    },
                    {
                        "count": 1,
                        "size": 28724,
                        "encodedSize": 28938,
                        "latency": 0,
                        "countries": [
                            "PL"
                        ],
                        "ips": [
                            "212.91.26.150"
                        ],
                        "type": "Font",
                        "compression": "1.0",
                        "percentage": 16
                    },
                    {
                        "count": 1,
                        "size": 14905,
                        "encodedSize": 3954,
                        "latency": 0,
                        "countries": [
                            "PL"
                        ],
                        "ips": [
                            "212.91.26.150"
                        ],
                        "type": "Stylesheet",
                        "compression": "3.8",
                        "percentage": 16
                    },
                    {
                        "count": 1,
                        "size": 9361,
                        "encodedSize": 3242,
                        "latency": 0,
                        "countries": [
                            "PL"
                        ],
                        "ips": [
                            "212.91.26.150"
                        ],
                        "type": "Document",
                        "compression": "2.9",
                        "percentage": 16
                    }
                ],
                "securePercentage": 100,
                "secureRequests": 6,
                "serverStats": [
                    {
                        "count": 6,
                        "size": 314973,
                        "encodedSize": 120697,
                        "ips": [
                            "212.91.26.150"
                        ],
                        "countries": [
                            "PL"
                        ],
                        "server": "nginx"
                    }
                ],
                "tlsStats": [
                    {
                        "count": 6,
                        "size": 314973,
                        "encodedSize": 120697,
                        "ips": [
                            "212.91.26.150"
                        ],
                        "countries": [
                            "PL"
                        ],
                        "protocols": {
                            "TLS 1.3 /  / AES_256_GCM": 6
                        },
                        "securityState": "secure"
                    }
                ],
                "totalLinks": 4,
                "uniqCountries": 1
            },
            "submitter": {
                "country": "GB"
            },
            "task": {
                "method": "api",
                "source": "fb1d0777",
                "tags": [
                    "website-rank",
                    "mirekdlugosz.com"
                ],
                "time": "2026-03-20T10:06:36.539Z",
                "url": "https://mirekdlugosz.com/",
                "uuid": "019d0ab5-e52b-701a-8c66-50d8e289a943",
                "visibility": "public",
                "reportURL": "https://urlscan.io/result/019d0ab5-e52b-701a-8c66-50d8e289a943/",
                "screenshotURL": "https://urlscan.io/screenshots/019d0ab5-e52b-701a-8c66-50d8e289a943.png",
                "domURL": "https://urlscan.io/dom/019d0ab5-e52b-701a-8c66-50d8e289a943/",
                "domain": "mirekdlugosz.com",
                "apexDomain": "mirekdlugosz.com"
            },
            "verdicts": {
                "overall": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "tags": [],
                    "malicious": false,
                    "hasVerdicts": true
                },
                "urlscan": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "tags": [],
                    "malicious": false,
                    "hasVerdicts": false
                },
                "engines": {
                    "score": 27,
                    "malicious": true,
                    "categories": [],
                    "enginesTotal": 0,
                    "maliciousTotal": 0,
                    "benignTotal": 0,
                    "maliciousVerdicts": [],
                    "benignVerdicts": [],
                    "hasVerdicts": true,
                    "tags": [
                        "urlscan-ml",
                        "urlscan-ml-60c5e22"
                    ]
                },
                "community": {
                    "score": 0,
                    "categories": [],
                    "brands": [],
                    "votesTotal": 0,
                    "votesMalicious": 0,
                    "votesBenign": 0,
                    "malicious": false,
                    "hasVerdicts": false
                }
            }
        },
        "report_summary": {
            "page_url": "https://mirekdlugosz.com/",
            "page_domain": "mirekdlugosz.com",
            "ip": "212.91.26.150",
            "country": "PL",
            "server": "nginx",
            "asn": "AS57367",
            "status_code": 200,
            "screenshot_url": "https://urlscan.io/screenshots/019d0ab5-e52b-701a-8c66-50d8e289a943.png",
            "report_url": "https://urlscan.io/result/019d0ab5-e52b-701a-8c66-50d8e289a943/",
            "requests": 0,
            "unique_countries": 1,
            "domains": 0,
            "malicious": false,
            "classification": "",
            "verdict_text": "No clear malicious classification",
            "brands": [],
            "labels": [],
            "lists": {
                "ips": [
                    "212.91.26.150"
                ],
                "countries": [
                    "PL"
                ],
                "asns": [
                    "57367"
                ],
                "domains": [
                    "mirekdlugosz.com"
                ],
                "servers": [
                    "nginx"
                ],
                "urls": [
                    "https://mirekdlugosz.com/",
                    "https://mirekdlugosz.com/theme/css/style.min.css",
                    "https://mirekdlugosz.com/theme/fonts/merriweather-v21-latin_latin-ext-regular.woff2",
                    "https://mirekdlugosz.com/theme/img/main-photo.jpg",
                    "https://mirekdlugosz.com/theme/img/header-bg.svg",
                    "https://mirekdlugosz.com/favicon.ico"
                ],
                "linkDomains": [
                    "fosstodon.org",
                    "www.linkedin.com",
                    "creativecommons.org",
                    "getpelican.com"
                ],
                "certificates": [
                    {
                        "subjectName": "mirekdlugosz.com",
                        "issuer": "R13",
                        "validFrom": 1770498110,
                        "validTo": 1778274109
                    }
                ],
                "hashes": [
                    "e22ac9a85a9c2792e0aef612d742e6bb63c6db19b6138ce44d11aa100c33d8bd",
                    "66675f800e3d1f74b7e67c93cb97b7129add80869040c165e615ee759fdfdb37",
                    "85f00e651dd3ddca26ff9977471b9e016128d4138f98db5f120ba0e2e7b28dbd",
                    "c76285dd0ce9ef3534e0341f368fc35b090b72a1d25aa30ab51738da67d37ecf",
                    "0862f62ad0a0a9db811d8589f69d20652e00bc650e1c464a3d39d9b460c54499",
                    "19d823649b4ff8860ea2804c3ac5b09558f1905f41089a13e15935991bb49e9e"
                ]
            }
        },
        "completed_at": "2026-03-20T10:08:05+00:00",
        "is_fresh": false,
        "can_retry": true,
        "poll_after_seconds": 20
    }
}