{"id":20895,"date":"2014-02-23T13:48:13","date_gmt":"2014-02-23T11:48:13","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=20895"},"modified":"2014-02-23T13:48:13","modified_gmt":"2014-02-23T11:48:13","slug":"gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/","title":{"rendered":"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/jodoglevy\/gargl\">gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language<\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"link","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false,"_links_to":"","_links_to_target":""},"categories":[1,62,1334],"tags":[2404,1330],"keyring_services":[],"class_list":["post-20895","post","type-post","status-publish","format-link","hentry","category-general","category-technology","category-web-work","tag-api","tag-web-development","post_format-post-format-link"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"gargle - record web requests as they happen and turn them into reusable code in any programming language\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Leonid Mamchenkov\"\/>\n\t<meta name=\"google-site-verification\" content=\"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Leonid Mamchenkov - Life, universe, and everything else\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"gargle \u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"gargle - record web requests as they happen and turn them into reusable code in any programming language\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2014-02-23T11:48:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2014-02-23T11:48:13+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MamchenkovBlog\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:title\" content=\"gargle \u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"gargle - record web requests as they happen and turn them into reusable code in any programming language\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@mamchenkov\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#blogposting\",\"name\":\"gargle \\u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov\",\"headline\":\"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"},\"datePublished\":\"2014-02-23T13:48:13+02:00\",\"dateModified\":\"2014-02-23T13:48:13+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":3,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#webpage\"},\"articleSection\":\"All, Technology, Web work, API, web development, Link\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/web-work\\\/#listItem\",\"name\":\"Web work\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/web-work\\\/#listItem\",\"position\":3,\"name\":\"Web work\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/web-work\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#listItem\",\"name\":\"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#listItem\",\"position\":4,\"name\":\"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/web-work\\\/#listItem\",\"name\":\"Web work\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"Leonid Mamchenkov\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/\",\"name\":\"gargle \\u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov\",\"description\":\"gargle - record web requests as they happen and turn them into reusable code in any programming language\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/02\\\/23\\\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2014-02-23T13:48:13+02:00\",\"dateModified\":\"2014-02-23T13:48:13+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/\",\"name\":\"Blog of Leonid Mamchenkov\",\"description\":\"Life, universe, and everything else\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"gargle \u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov","description":"gargle - record web requests as they happen and turn them into reusable code in any programming language","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"VHvdD0_usx1_4DzKy_QCVcICVgX2EgA2ybELT-wl7kQ","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#blogposting","name":"gargle \u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov","headline":"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"},"datePublished":"2014-02-23T13:48:13+02:00","dateModified":"2014-02-23T13:48:13+02:00","inLanguage":"en-US","commentCount":3,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#webpage"},"articleSection":"All, Technology, Web work, API, web development, Link"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","position":1,"name":"Home","item":"https:\/\/mamchenkov.net\/wordpress","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/web-work\/#listItem","name":"Web work"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/web-work\/#listItem","position":3,"name":"Web work","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/web-work\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#listItem","name":"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#listItem","position":4,"name":"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/web-work\/#listItem","name":"Web work"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author","url":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/3cf6df002a284d78fb6e9d8222ca4d102e0832035ed6bc8447008bd234e131a4?s=96&d=identicon&r=g","width":96,"height":96,"caption":"Leonid Mamchenkov"}},{"@type":"WebPage","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/","name":"gargle \u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov","description":"gargle - record web requests as they happen and turn them into reusable code in any programming language","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2014-02-23T13:48:13+02:00","dateModified":"2014-02-23T13:48:13+02:00"},{"@type":"WebSite","@id":"https:\/\/mamchenkov.net\/wordpress\/#website","url":"https:\/\/mamchenkov.net\/wordpress\/","name":"Blog of Leonid Mamchenkov","description":"Life, universe, and everything else","inLanguage":"en-US","publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"}}]},"og:locale":"en_US","og:site_name":"Leonid Mamchenkov - Life, universe, and everything else","og:type":"article","og:title":"gargle \u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov","og:description":"gargle - record web requests as they happen and turn them into reusable code in any programming language","og:url":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/","og:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:secure_url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg","og:image:width":1024,"og:image:height":1024,"article:published_time":"2014-02-23T11:48:13+00:00","article:modified_time":"2014-02-23T11:48:13+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"gargle \u2013 record web requests as they happen and turn them into reusable code in any programming language - Leonid Mamchenkov","twitter:description":"gargle - record web requests as they happen and turn them into reusable code in any programming language","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"20895","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2023-07-19 12:39:33","updated":"2026-01-15 10:08:06","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/web-work\/\" title=\"Web work\">Web work<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tgargle \u2013 record web requests as they happen and turn them into reusable code in any programming language\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/mamchenkov.net\/wordpress"},{"label":"Technology","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/"},{"label":"Web work","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/web-work\/"},{"label":"gargle &#8211; record web requests as they happen and turn them into reusable code in any programming language","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/02\/23\/gargle-record-web-requests-as-they-happen-and-turn-them-into-reusable-code-in-any-programming-language\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":22439,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/08\/28\/c3-js-d3-based-reusable-chart-library\/","url_meta":{"origin":20895,"position":0},"title":"c3.js &#8211; d3-based reusable chart library","author":"Leonid Mamchenkov","date":"August 28, 2014","format":"link","excerpt":"c3.js - d3-based reusable chart library. C3 makes it easy to generate D3-based charts by wrapping the code required to construct the entire chart. We don't need to write D3 code any more.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":23960,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/04\/23\/stack-reusable-middleware-with-php\/","url_meta":{"origin":20895,"position":1},"title":"Stack &#8211; reusable middleware with PHP","author":"Leonid Mamchenkov","date":"April 23, 2015","format":"link","excerpt":"Stack - reusable middleware with PHP","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27879,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/28\/clean-code-solid-principles-applied-to-php\/","url_meta":{"origin":20895,"position":2},"title":"Clean Code SOLID principles applied to PHP","author":"Leonid Mamchenkov","date":"August 28, 2017","format":false,"excerpt":"clean-code-php is an excellent set of examples for the SOLID principles as applied to PHP programming: Software engineering principles, from Robert C. Martin's book\u00a0Clean Code, adapted for PHP. This is not a style guide. It's a guide to producing readable, reusable, and refactorable software in PHP. Not every principle herein\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":10322,"url":"https:\/\/mamchenkov.net\/wordpress\/2006\/08\/14\/can-your-programming-language-do-this\/","url_meta":{"origin":20895,"position":3},"title":"Can your programming language do this?","author":"Leonid Mamchenkov","date":"August 14, 2006","format":false,"excerpt":"Can Your Programming Language Do This? post by Joel Spolsky can give you some insight on why people use different programming languages, as well as provide you with some doubts on wheathere are you using the proper tool. ...programming languages with first-class functions let you find more opportunities for abstraction,\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":34993,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/18\/how-to-speed-up-the-code-review\/","url_meta":{"origin":20895,"position":4},"title":"How To Speed Up The Code Review","author":"Leonid Mamchenkov","date":"February 18, 2019","format":false,"excerpt":"\"How To Speed Up The Code Review\" is a collection of excellent tips and strategies on how to make your Pull Requests easier to review. These work equally well for Open Source projects and for proprietary repositories. The gist of this article is: don't make large pull requests, and don't\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/review-mem.jpeg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/review-mem.jpeg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/review-mem.jpeg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/review-mem.jpeg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/review-mem.jpeg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":24279,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/06\/02\/google-releases-polymer-1-0-production-ready\/","url_meta":{"origin":20895,"position":5},"title":"Google releases Polymer 1.0, production ready","author":"Leonid Mamchenkov","date":"June 2, 2015","format":false,"excerpt":"At a recent Google I\/O 2015 conference, a production ready version 1.0 of Polymer library was announced. \u00a0If you are not familiar with this tool, and a brief description like: The Polymer library is designed to make it easier and faster for developers to create great, reusable components for the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/20895","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=20895"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/20895\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=20895"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=20895"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=20895"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=20895"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}