{"id":22198,"date":"2014-07-16T08:32:49","date_gmt":"2014-07-16T06:32:49","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=22198"},"modified":"2014-07-16T08:32:49","modified_gmt":"2014-07-16T06:32:49","slug":"tools-of-the-trade","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/07\/16\/tools-of-the-trade\/","title":{"rendered":"Tools of the Trade"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/github.com\/cjbarber\/ToolsOfTheTrade\">Tools of the Trade<\/a> &#8211; a huge collection of tools (mostly software as a service) for all kinds of web work: development, troubleshooting, project management, testing, emails, etc.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Tools of the Trade &#8211; a huge collection of tools (mostly software as a service) for all kinds of web work: development, troubleshooting, project management, testing, emails, etc.<\/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_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},"_links_to":"","_links_to_target":""},"categories":[1,18,133,62,1334],"tags":[72,3178,1108,989,1330],"keyring_services":[],"class_list":["post-22198","post","type-post","status-publish","format-link","hentry","category-general","category-programming","category-sysadmin","category-technology","category-web-work","tag-email","tag-project-management","tag-testing","tag-troubleshooting","tag-web-development","post_format-post-format-link"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":21496,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/04\/10\/online-har-viewer\/","url_meta":{"origin":22198,"position":0},"title":"Online HAR viewer","author":"Leonid Mamchenkov","date":"April 10, 2014","format":false,"excerpt":"HTTP Archive Viewer - a handy tool for troubleshooting web pages. \u00a0Here is how to use it: Open Google Chrome browser (new tab). Press F12 to open Developer Tools. Switch to Network tab. Load any page in the tab. Right-click anywhere over network requests to get a menu. Select 'Save\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":39409,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/20\/htrace-sh-http-https-troubleshooting-and-profiling-tool\/","url_meta":{"origin":22198,"position":1},"title":"htrace.sh &#8211; HTTP\/HTTPS troubleshooting and profiling tool","author":"Leonid Mamchenkov","date":"March 20, 2019","format":false,"excerpt":"htrace.sh is a handy command-line tool for HTTP\/HTTPS troubleshooting and profiling. It also integrates with a number of other security tools, like nmap, SSL Labs, subfinder, etc.","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\/03\/htrace.sh_preview.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/htrace.sh_preview.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/htrace.sh_preview.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/03\/htrace.sh_preview.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":40505,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/03\/27\/logging-best-practices\/","url_meta":{"origin":22198,"position":2},"title":"Logging best practices","author":"Leonid Mamchenkov","date":"March 27, 2019","format":false,"excerpt":"https:\/\/www.slideshare.net\/geshan\/logging-best-practices Logging, I think, is one of the least debated subjects in the software development. Everyone does it at least to some degree. Everyone agrees that good logs are important. But beyond that, there's enough debate on what are the best practices, tools, and options. We need more of blog\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":26718,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/10\/10\/php-array_merge_recursive-vs-array_replace_recursive\/","url_meta":{"origin":22198,"position":3},"title":"PHP: array_merge_recursive() vs. array_replace_recursive()","author":"Leonid Mamchenkov","date":"October 10, 2016","format":false,"excerpt":"Here is a nice blog post describing the important differences between array_merge_recursive() and array_replace_recursive() functions in PHP. \u00a0These are often overlooked when testing new developments with simpler data structures. \u00a0Troubleshooting for it later is not too obvious.","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":28559,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/05\/08\/composer-plugin-qa-composer-plugin-for-php-quality-assurance-tools\/","url_meta":{"origin":22198,"position":4},"title":"composer-plugin-qa &#8211; Composer Plugin for PHP Quality Assurance Tools","author":"Leonid Mamchenkov","date":"May 8, 2018","format":false,"excerpt":"composer-plugin-qa is a Composer plugin which adds all the most popular PHP quality assurance tools as composer scripts, so that you don't have to install and set them up one by one.\u00a0 The list of tools includes the following: PHPUnit: Testing Framework PHPCOV: CLI frontend for the\u00a0PHP_CodeCoverage Paratest: Parallel testing\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\/2018\/05\/composer-plugin-qa-500x296.jpeg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":26370,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/24\/web-developer-tools-from-browserling\/","url_meta":{"origin":22198,"position":5},"title":"Web Developer Tools from Browserling","author":"Leonid Mamchenkov","date":"August 24, 2016","format":false,"excerpt":"Browserling - an awesome cross-browser testing service, has a collection of Web Developer Tools, which are as simple to use as possible. \u00a0There are now more than 80 (!!!) tools, according to this Peteris Krumins blog post, that provide immediate help with things like converting dates and times, formats like\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"browserling-effortless-cross-browser-testing","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/browserling-effortless-cross-browser-testing.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22198","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=22198"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/22198\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=22198"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=22198"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=22198"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=22198"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}