{"id":18476,"date":"2013-07-08T09:27:34","date_gmt":"2013-07-08T07:27:34","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=18476"},"modified":"2013-07-08T09:27:34","modified_gmt":"2013-07-08T07:27:34","slug":"dynamic-website-compressor","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2013\/07\/08\/dynamic-website-compressor\/","title":{"rendered":"Dynamic Website Compressor"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"http:\/\/codecanyon.net\/item\/dynamic-website-compressor\/2838376\">Dynamic Website Compressor<\/a><\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/07\/Dynamic-Website-Compressor.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"18477\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2013\/07\/08\/dynamic-website-compressor\/dynamic-website-compressor-2\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/07\/Dynamic-Website-Compressor.jpg?fit=590%2C300&amp;ssl=1\" data-orig-size=\"590,300\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}\" data-image-title=\"Dynamic Website Compressor\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/07\/Dynamic-Website-Compressor.jpg?fit=590%2C300&amp;ssl=1\" class=\"aligncenter size-medium wp-image-18477\" alt=\"Dynamic Website Compressor\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/07\/Dynamic-Website-Compressor-500x254.jpg?resize=500%2C254&#038;ssl=1\" width=\"500\" height=\"254\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/07\/Dynamic-Website-Compressor.jpg?resize=500%2C254&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/07\/Dynamic-Website-Compressor.jpg?resize=510%2C259&amp;ssl=1 510w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2013\/07\/Dynamic-Website-Compressor.jpg?w=590&amp;ssl=1 590w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>I haven&#8217;t tested it enough myself yet, but it looks very much like <a href=\"https:\/\/developers.google.com\/speed\/pagespeed\/mod\">Google&#8217;s mod_pagespeed<\/a>. \u00a0The difference mostly being with Google approaching the problem via the Apache module, which should be faster, but less portable; and Dynamic WebSite Composer doing all its magic in your regular PHP. \u00a0The only way I can think for this to work is via output buffering, so if you are using that in your application, test thoroughly.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Dynamic Website Compressor &nbsp; I haven&#8217;t tested it enough myself yet, but it looks very much like Google&#8217;s mod_pagespeed. \u00a0The difference mostly being with Google approaching the problem via the Apache module, which should be faster, but less portable; and Dynamic WebSite Composer doing all its magic in your regular PHP. \u00a0The only way I &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2013\/07\/08\/dynamic-website-compressor\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Dynamic Website Compressor<\/span><\/a><\/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,62,1334,60],"tags":[246,1057,38],"keyring_services":[],"class_list":["post-18476","post","type-post","status-publish","format-link","hentry","category-general","category-technology","category-web-work","category-wordpress","tag-optimization","tag-performance","tag-php","post_format-post-format-link"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":28654,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/07\/01\/laravolt-avatar-plug-n-play-php-library-for-quick-dynamic-avatars\/","url_meta":{"origin":18476,"position":0},"title":"laravolt\/avatar &#8211; plug-n-play PHP library for quick dynamic avatars","author":"Leonid Mamchenkov","date":"July 1, 2018","format":false,"excerpt":"laravolt\/avatar is a PHP library that helps to avoid those old and boring anonymous face pictures for users who haven't uploaded or configured their avatar in your application.\u00a0 With library you can use any string - name, email, initials, or anything else you fancy - to generate a dynamic avatar\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\/07\/avatar-500x215.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27157,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/20\/feature-flags-in-php\/","url_meta":{"origin":18476,"position":1},"title":"Feature Flags in PHP","author":"Leonid Mamchenkov","date":"December 20, 2016","format":false,"excerpt":"Today edition of the \"Four short links\" from the O'Reilly Radar, brings a quick overview of the different feature flag implementations. \u00a0It touches on the following: Command-line flags, with the link to gflags. A\/B flags Dynamic flags, which are more difficult More complex systems. I've dealt with feature flags before,\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":29035,"url":"https:\/\/mamchenkov.net\/wordpress\/2018\/11\/27\/avoid-complex-arrays-in-php\/","url_meta":{"origin":18476,"position":2},"title":"Avoid complex arrays in PHP","author":"Leonid Mamchenkov","date":"November 27, 2018","format":false,"excerpt":"Now that PHP 7+ sorted out a whole bunch of problems with type-hinting of parameters, return values, variables and properties, we turn our attention to somewhat deeper issues. Array is a native citizen in PHP.\u00a0 Arrays are very convenient and are widely used.\u00a0 However, if you stop and think about\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":28276,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/12\/11\/php-fpm-tuning-using-pm-static-for-max-performance\/","url_meta":{"origin":18476,"position":3},"title":"PHP-FPM tuning: Using \u2018pm static\u2019 for Max Performance","author":"Leonid Mamchenkov","date":"December 11, 2017","format":false,"excerpt":"\"PHP-FPM tuning: Using \u2018pm static\u2019 for Max Performance\" looks at different process management settings in PHP-FPM: static, dynamic, and ondemand, and the way they affect performance.\u00a0 The default - ondemand - might work well for you if you have a large server with plenty of resources and not so many\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":9849,"url":"https:\/\/mamchenkov.net\/wordpress\/2006\/01\/20\/darth-vader-treatment\/","url_meta":{"origin":18476,"position":4},"title":"Darth Vader treatment","author":"Leonid Mamchenkov","date":"January 20, 2006","format":false,"excerpt":"Maxim hasn't got any better today, so we took him to Dr.Simos' office. Better safe, than sorry they say. Dr.Simos said that it was a good idea to bring Maxim in for a check. We caught the early development stage of some form of bronchitis. Sounds scary, I know. But\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":28005,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/09\/13\/php-limit-on-maximum-form-fields\/","url_meta":{"origin":18476,"position":5},"title":"PHP limit on maximum form fields","author":"Leonid Mamchenkov","date":"September 13, 2017","format":false,"excerpt":"We had an interesting issue to debug at work today.\u00a0 One of the screens in our application features a form with a whole lot of checkboxes.\u00a0 It's in the access control module, where the administrator of the system can manage user permissions for each module of the system.\u00a0 Here's the\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\/2017\/09\/checkboxes-500x282.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\/18476","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=18476"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/18476\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=18476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=18476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=18476"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=18476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}