1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2<html xmlns="http://www.w3.org/1999/xhtml"> 3 4<head profile="http://gmpg.org/xfn/11"> 5 6<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 7 8<title>About « Artem Russakovskii's programming and technology blog</title> 9 10<style type="text/css" media="screen"> 11 @import url( https://beerpla.net/wp-content/themes/emire/style.css?cachebust=3 ); 12</style> 13
14<script src='/js/prettydigg/diggbutton.js' type="473e178a9b6bec6447cc218e-text/javascript"></script>
14 15<link rel="pingback" href="https://beerpla.net/xmlrpc.php" /> 16 17<meta name='robots' content='max-image-preview:large' /> 18<link rel="alternate" type="application/rss+xml" title="Artem Russakovskii's programming and technology blog » Feed" href="https://beerpla.net/feed/" /> 19<link rel="alternate" type="application/rss+xml" title="Artem Russakovskii's programming and technology blog » Comments Feed" href="https://beerpla.net/comments/feed/" /> 20<link rel="alternate" type="application/rss+xml" title="Artem Russakovskii's programming and technology blog » About Comments Feed" href="https://beerpla.net/about/feed/" /> 21<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://beerpla.net/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fbeerpla.net%2Fabout%2F" /> 22<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://beerpla.net/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fbeerpla.net%2Fabout%2F&format=xml" /> 23<style id="wp-img-auto-sizes-contain-inline-css"> 24img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 25/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 26</style> 27<style id="wp-emoji-styles-inline-css"> 28 29 img.wp-smiley, img.emoji { 30 display: inline !important; 31 border: none !important; 32 box-shadow: none !important; 33 height: 1em !important; 34 width: 1em !important; 35 margin: 0 0.07em !important; 36 vertical-align: -0.1em !important; 37 background: none !important; 38 padding: 0 !important; 39 } 40/*# sourceURL=wp-emoji-styles-inline-css */ 41</style> 42<style id="wp-block-library-inline-css"> 43:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
43--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 44 45/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 46</style> 47<style id="classic-theme-styles-inline-css"> 48/*! This file is auto-generated */ 49.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 50/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 51</style> 52 53<style id="global-styles-inline-css"> 54:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
540) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
54.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} 55/*# sourceURL=global-styles-inline-css */ 56</style> 57 58<link rel='stylesheet' id='contact-form-7-css' href='https://beerpla.net/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.7' media='all' /> 59<link rel='stylesheet' id='fancybox-for-wp-css' href='https://beerpla.net/wp-content/plugins/fancybox-for-wordpress/assets/css/fancybox.min.css?ver=3.4.2' media='all' /> 60<link rel='stylesheet' id='wp-pagenavi-css' href='https://beerpla.net/wp-content/plugins/wp-pagenavi/css/wp-pagenavi.css?ver=3.0.1' media='all' /> 61<link rel='stylesheet' id='wp-syntax-css-css' href='https://beerpla.net/wp-content/plugins/wp-syntax/css/wp-syntax.css?ver=1.1' media='all' />
62<script id="jquery-core-js" src="https://beerpla.net/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 62
62
63<script id="jquery-migrate-js" src="https://beerpla.net/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 63
63
64<script id="fbfw-purify-js" src="https://beerpla.net/wp-content/plugins/fancybox-for-wordpress/assets/js/purify.min.js?ver=3.4.2" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 64
64
65<script id="fancybox-for-wp-js" src="https://beerpla.net/wp-content/plugins/fancybox-for-wordpress/assets/js/jquery.fancybox.min.js?ver=3.4.2" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 65
65
66<script id="save_pre_from_js-js" src="https://beerpla.net/wp-content/plugins/save-my-pre/save-pre.js?ver=7.1.2" type="473e178a9b6bec6447cc218e-text/javascript"></script>
66 67<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://beerpla.net/xmlrpc.php?rsd" /> 68<meta name="generator" content="WordPress 7.1.2" /> 69<link rel="canonical" href="https://beerpla.net/about/" /> 70<link rel='shortlink' href='https://beerpla.net/?p=926' /> 71<!-- Fancybox for WordPress v3.4.2 --> 72<style type="text/css"> 73 .fancybox-slide--image .fancybox-content{background-color:#FFFFFF} 74 div.fancybox-caption{display:none !important;} 75 img.fancybox-image{border-width:10px;border-color:#FFFFFF;border-style:solid;} 76 div.fancybox-bg{background-color:rgba(102,102,102,0.3);opacity:1 !important;} 77 div.fancybox-content{border-color:#FFFFFF} 78 div#fancybox-title{background-color:#FFFFFF} 79 div#fancybox-title-inside{color:#333333} 80 div.fancybox-content{background-color:#FFFFFF} 81 div.fancybox-caption p.caption-title{display:inline-block} 82 div.fancybox-caption p.caption-title,div.fancybox-content p.caption-title{font-size:14px} 83 div.fancybox-caption p.caption-title{color:#333333} 84 div.fancybox-caption{color:#333333} 85 div.fancybox-caption p.caption-title{background:#fff;width:auto;padding:10px 30px;}div.fancybox-content p.caption-title{color:#333333;margin:0;padding:5px 0;} 86 body.fancybox-active .fancybox-container .fancybox-stage .fancybox-content .fancybox-close-small{display:block;} 87</style>
88<script type="473e178a9b6bec6447cc218e-text/javascript"> 89 (function () { 90 if (typeof window.jQuery === 'undefined') { return; } 91 jQuery(function () { 92 var fbfwIsSingular = true; 93 94 // Copy the title of every IMG tag onto its parent A so FancyBox can show it. 95 jQuery.fn.getTitle = function () { 96 jQuery("a[data-fancybox]").each(function () { 97 var $link = jQuery(this); 98 if ($link.attr("data-fbfw-title") !== undefined) { return; } 99 var title = $link.children("img").attr("title") || ''; 100 var figCaptionHtml = $link.next("figcaption").html() || ''; 101 var processedCaption = figCaptionHtml; 102 if (figCaptionHtml.length && typeof DOMPurify === 'function') { 103 processedCaption = DOMPurify.sanitize(figCaptionHtml, {USE_PROFILES: {html: true}}); 104 } else if (figCaptionHtml.length) { 105 processedCaption = jQuery("<div>").text(figCaptionHtml).html(); 106 } 107 var newTitle = title; 108 if (processedCaption.length) { 109 newTitle = title.length ? title + " " + processedCaption : processedCaption; 110 } 111 if (newTitle.length) { $link.attr("data-fbfw-title", newTitle); } 112}); 113 return this; 114 }; 115 116 var fbfwOptions = {"loop":false,"smallBtn":true,"zoomOpacity":"auto","animationEffect":"fade","animationDuration":500,"transitionEffect":"fade","transitionDuration":300,"overlayShow":true,"overlayOpacity":0.3,"titleShow":true,"titlePosition":"inside","keyboard":true,"showCloseButton":true,"arrows":true,"clickContent":false,"clickSlide":"close","wheel":false,"toolbar":true,"preventCaptionOverlap":true}; 117 fbfwOptions.mobile = { clickContent: function (current) { return current.type === "image" ? "toggleControls" : false; }, clickSlide: function (current) { return current.type === "image" ? "close" : "close"; } }; 118 fbfwOptions.onInit = function () {}; 119 fbfwOptions.onDeactivate = function () {}; 120 fbfwOptions.beforeClose = function () {}; 121 fbfwOptions.afterShow = function () {}; 122 fbfwOptions.afterClose = function () {}; 123 fbfwOptions.caption = function (instance, item) { 124 var $link = jQuery(this); 125 // data-fbfw-title is what getTitle() collects; a hand-written title attribute 126 // still works as a fallback for anyone relying on the old behaviour. 127 var title = $link.attr("data-fbfw-title"); 128 if (title === undefined) { title = $link.attr("title"); } 129 if (title === undefined && $link.context) { title = $link.context.title; } 130 title = title || ''; 131 var caption = $link.data('caption') || ''; 132 if (item.type === 'image' && title.length) { 133 caption = (caption.length ? caption + '<br />' : '') + '<p class="caption-title">' + jQuery("<div>").text(title).html() + '</p>'; 134 } 135 if (typeof DOMPurify === "function" && caption.length) { 136 return DOMPurify.sanitize(caption, {USE_PROFILES: {html: true}}); 137 } 138 return jQuery("<div>").text(caption).html(); 139}; 140 fbfwOptions.afterLoad = function (instance, current) { 141 var captionContent = current.opts.caption || ''; 142 var sanitized = ''; 143 if (typeof DOMPurify === 'function' && captionContent.length) { 144 sanitized = DOMPurify.sanitize(captionContent, {USE_PROFILES: {html: true}}); 145 } else if (captionContent.length) { 146 sanitized = jQuery("<div>").text(captionContent).html(); 147 } 148 if (sanitized.length) { 149 current.$content.append(jQuery('<div class="fancybox-custom-caption inside-caption" style="position:absolute;left:0;right:0;color:#000;margin:0 auto;bottom:0;text-align:center;background-color:#FFFFFF;"></div>').html(sanitized)); 150 } 151}; 152 // A dialog needs an accessible name; FancyBox 3 ships role="dialog" with 153 // none, which fails WCAG 4.1.2 for screen reader users. See issue #104. 154 jQuery(document).on('onInit.fb', function (e, instance) { 155 if (instance && instance.$refs && instance.$refs.container) { 156 instance.$refs.container.attr({
157 'aria-modal': 'true', 158 'aria-label': "Image lightbox" }); 159 } 160 }); 161 162 function fbfwBind() { 163 var thumbnails = jQuery("a:has(img)").not(".nolightbox").not(".envira-gallery-link").not(".ngg-simplelightbox").filter(function () { return /\.(jpe?g|png|gif|mp4|webp|bmp|pdf)(\?[^/]*)*$/i.test(jQuery(this).attr("href")); }); 164 165 // Anything that is not an image, video or PDF opens in an iframe. 166 var iframeLinks = jQuery('.fancyboxforwp').filter(function () { 167 return !/\.(jpe?g|png|gif|mp4|webp|bmp|pdf)(\?[^/]*)*$/i.test(jQuery(this).attr('href')); 168 }).filter(function () { 169 return !/vimeo|youtube/i.test(jQuery(this).attr('href')); 170 }); 171 iframeLinks.attr({"data-type": "iframe"}).getTitle(); 172 173 if (fbfwIsSingular) { 174 thumbnails.addClass("fancyboxforwp").attr("data-fancybox", "gallery").getTitle(); 175 iframeLinks.attr({"data-fancybox": "gallery"}).getTitle(); 176 } else { 177 var posts = jQuery(".post"); 178 posts.each(function () { 179 var idx = posts.index(this); 180 jQuery(this).find(thumbnails).addClass("fancyboxforwp").attr("data-fancybox", "gallery" + idx).attr("rel", "fancybox" + idx).getTitle(); 181 jQuery(this).find(iframeLinks).attr({"data-fancybox": "gallery" + idx}).attr("rel", "fancybox" + idx).getTitle(); 182 }); 183 } 184 // Re-applied rather than delegated: FancyBox's global [data-fancybox] 185 // handler would open new links with default options, ignoring every 186 // setting on this page. 187 jQuery("a.fancyboxforwp").fancyboxforwp(fbfwOptions); 188 } 189 190 fbfwBind(); 191 192 /* 193 * Infinite scroll, lazy loading and AJAX filters insert thumbnails after 194 * this script has run, and those links were never bound. Re-scan when the 195 * document gains nodes, skipping FancyBox's own DOM so opening the lightbox 196 * cannot retrigger us. See issues #25 and #69. 197 */ 198 if (window.MutationObserver && document.body) { 199 var fbfwPending = null; 200 new MutationObserver(function (mutations) { 201 for (var i = 0; i < mutations.length; i++) { 202 var added = mutations[i].addedNodes; 203 for (var j = 0; j < added.length; j++) { 204 var n = added[j]; 205 if (n.nodeType !== 1) { continue; } 206 if (n.closest && n.closest('.fancybox-container')) { continue; } 207 var isLink = n.tagName === 'A' && n.querySelector && n.querySelector('img'); 208 var hasLink = n.querySelector && n.querySelector('a img'); 209 if (isLink || hasLink) { 210 clearTimeout(fbfwPending); 211 fbfwPending = setTimeout(fbfwBind, 200); 212 return; 213 } 214 } 215 } 216 }).observe(document.body, {childList: true, subtree: true}); 217 } 218 }); 219 })(); 220</script>
220 221<!-- END Fancybox for WordPress --> 222 <link rel="stylesheet" href="https://beerpla.net/wp-content/plugins/wp-note/style.css" type="text/css" media="screen" /> 223<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 223-224
223 224<script async src="https://www.googletagmanager.com/gtag/js?id=
224G-ZP14G1QEQ7
vendor: 61 bytes, line 224
224" type="473e178a9b6bec6447cc218e-text/javascript"></script>
225<script type="473e178a9b6bec6447cc218e-text/javascript"> 226
vendor: 138 bytes, lines 226-230
226window.dataLayer = window.dataLayer || []; 227 function gtag(){dataLayer.push(arguments);} 228 gtag('js', new Date()); 229 230 gtag('config', '
230G-ZP14G1QEQ7
vendor: 5 bytes, line 230
230');
231</script>
231 232 233<div id="fb-root"></div>
234<script type="473e178a9b6bec6447cc218e-text/javascript">(function(d, s, id) { 235 var js, fjs = d.getElementsByTagName(s)[0]; 236 if (d.getElementById(id)) return; 237 js = d.createElement(s); js.id = id; 238 js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=181899531241&version=v2.0"; 239 fjs.parentNode.insertBefore(js, fjs); 240}(document, 'script', 'facebook-jssdk'));</script>
240 241 242</head> 243<body > 244<div id="header"> 245 <div id="header_inner"> 246 <h1><a href="https://beerpla.net/">Artem Russakovskii's programming and technology blog</a></h1> 247 <div class="description">where things have nothing to do with beer – tutorials, tips, how-tos, thoughts, hacks, and other techy nonsense</div> 248 <div id="search"> 249 <form id="searchform" method="get" action="https://beerpla.net"> 250 <input id="s" type="text" name="s" value="" /> 251 <input id="searchsubmit" class="button_press" type="button" value="Search" /> 252 </form> 253 </div><!-- end #search --> 254 </div> 255</div> 256<div id="nav"> 257 <div id="navwrap"> 258 <ul> 259 <li><a href="https://beerpla.net/">Home</a></li> 260 <li class="cat-item cat-item-819"><a href="https://beerpla.net/category/tips/">Tips</a> 261</li> 262 <li class="cat-item cat-item-676"><a href="https://beerpla.net/category/tutorials/">Tutorials</a> 263</li> 264 <li class="cat-item cat-item-297"><a href="https://beerpla.net/category/android/">Android</a> 265</li> 266 <li class="cat-item cat-item-344"><a href="https://beerpla.net/category/wordpress/">Wordpress</a> 267</li> 268 <li class="cat-item cat-item-18"><a href="https://beerpla.net/category/programming/">Programming</a> 269</li> 270 <li class="cat-item cat-item-145"><a href="https://beerpla.net/category/databases/">Databases</a> 271</li> 272 <li class="cat-item cat-item-13"><a href="https://beerpla.net/category/technology/">Technology</a> 273</li> 274 <li class="cat-item cat-item-25"><a href="https://beerpla.net/category/wtf/">WTF?</a> 275</li> 276 <li class="page_item page-item-926 current_page_item"><a href="https://beerpla.net/about/" aria-current="page">About</a></li> 277 </ul> 278 </div> 279</div> 280 281<div id="wrap"> 282<div id="content"> 283 <div class="entry entry-1" id="post-926"> 284 <div class="entrytitle"> 285 <div class='entrytitle-right'> 286 <div class='commentbox'> 287 <a href="https://beerpla.net/about/#comments" class="commentslink" ><span class="dsq-postid" data-dsqidentifier="926 http://beerpla.net/?page_id=926">4</span></a> </div> 288 <div class="commentbox-tail"></div> 289 </div> 290 <div class='entrytitle-left'> 291 <h2><a href="https://beerpla.net/about/" rel="bookmark" title="Permanent Link to About">About</a></h2><br> 292 </div> 293 <div class="clear"></div> 294 </div> 295 <div class="clear"></div> 296 297 <div class="entrybody"> 298 <p> 299 </p> 300 <div id="toc-926-1-box" class="toc toc-right" style="max-width:200px"><a class="toc-header" href="javascript:;" title="Table Of Contents (click to expand/collapse)" onclick="if (!window.__cfRLUnblockHandlers) return false; tocToggle('#toc-926-1', '#toc-926-1-box')" data-cf-modified-473e178a9b6bec6447cc218e-="">Table Of Contents</a><ul id="toc-926-1"><li class="toc-level-2 active"><a rel="bookmark nofollow" href="#welcome" title="Welcome">Welcome</a></li><li class="toc-level-2 active"><a rel="bookmark nofollow" href="#bio" title="Bio">Bio</a></li><li class="toc-level-2 active"><a rel="bookmark nofollow" href="#contact" title="Contact">Contact</a></li><li class="toc-level-2"><a rel="bookmark nofollow" href="#comments" title="Comments">Comments (4)</a></li></ul></div><a class="toc-anchor" name="welcome"></a><h2>Welcome</h2> 301<p>beer planet is Artem Russakovskii's personal homepage and an outlet for his useful and not so useful ramblings about life, programming, databases, humor, and other nonsense.</p> 302<p>Beer? Planet? Awesome idea, isn't it? Now that we're clear about how awesome it is, feel free to look around the site.</p> 303<p>Oh, and in case you were wondering, you won't find anything related to beer or astronomy here. I just thought <em>beer planet </em>was a cool name. Don't you?</p> 304<a class="toc-anchor" name="bio"></a><h2>Bio</h2> 305<p><em>Last updated: 2011.</em></p> 306<p>Artem grew up in Ukraine and moved to the US in April 1999. He settled in San Francisco and in 2001 started attending University of California Davis with a declared Computer Science major. In 2006, Artem received his Computer Science BS degree along with the BA in Russian.</p> 307<p>Currently, Artem lives in San Francisco with his beautiful wife Milla and works at a social network and online address book company <a href="http://www.plaxo.com">Plaxo</a>. His current passion is <a href="http://www.androidpolice.com">AndroidPolice.com</a> which he founded in March of 2010. Previously, Artem spent 3 years at a video search engine company called <a href="http://www.blinkx.com">Blinkx</a>.</p> 308<p>Most of the time you will find Artem tinkering with one of his 10 PCs, writing new blog posts, programming, reading <a href="http://reddit.com/user/archon810">reddit</a>, <a href="https://www.twitter.com/ArtemR">tweeting</a>, or preparing for world domination.</p> 309<p>
309Artem values organization, thinking ahead, careful research, low bureaucracy, and good communication.</p> 310<a class="toc-anchor" name="contact"></a><h2>Contact</h2> 311<p>Feel free to contact Artem with any comments or suggestions by filling out the form below or emailing admin [at] beerpla [dot] net.</p> 312 313<div class="wpcf7 no-js" id="wpcf7-f1623-p926-o1" lang="" dir="ltr" data-wpcf7-id="1623"> 314<div class="screen-reader-response"><p role="status" aria-live="polite" aria-atomic="true"></p> <ul></ul></div> 315<form action="/about/#wpcf7-f1623-p926-o1" method="post" class="wpcf7-form init" aria-label="Contact form" novalidate="novalidate" data-status="init"> 316<fieldset class="hidden-fields-container"><input type="hidden" name="_wpcf7" value="1623" /><input type="hidden" name="_wpcf7_version" value="6.1.7" /><input type="hidden" name="_wpcf7_locale" value="" /><input type="hidden" name="_wpcf7_unit_tag" value="wpcf7-f1623-p926-o1" /><input type="hidden" name="_wpcf7_container_post" value="926" /><input type="hidden" name="_wpcf7_posted_data_hash" value="" /> 317</fieldset> 318<p>Your Name (required) 319</p> 320<p><span class="wpcf7-form-control-wrap" data-name="your-name"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text wpcf7-validates-as-required" aria-required="true" aria-invalid="false" value="" type="text" name="your-name" /></span> 321</p> 322<p>Your Email (required) 323</p> 324<p><span class="wpcf7-form-control-wrap" data-name="your-email"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email" aria-required="true" aria-invalid="false" value="" type="email" name="your-email" /></span> 325</p> 326<p>Subject 327</p> 328<p><span class="wpcf7-form-control-wrap" data-name="your-subject"><input size="40" maxlength="400" class="wpcf7-form-control wpcf7-text" aria-invalid="false" value="" type="text" name="your-subject" /></span> 329</p> 330<p>Your Message 331</p> 332<p><span class="wpcf7-form-control-wrap" data-name="your-message"><textarea cols="40" rows="10" maxlength="2000" class="wpcf7-form-control wpcf7-textarea" aria-invalid="false" name="your-message"></textarea></span> 333</p> 334<p><span class="wpcf7-form-control-wrap" data-name="quiz-51"><label><span class="wpcf7-quiz-label">Are you a human? Fill in the blank: ____pla.net</span> <input size="40" class="wpcf7-form-control wpcf7-quiz" autocomplete="off" aria-required="true" aria-invalid="false" type="text" name="quiz-51" /></label><input type="hidden" name="_wpcf7_quiz_answer_quiz-51" value="3097e1a815736b3a59edb8670e7e840c" /></span> 335</p> 336<p><input class="wpcf7-form-control wpcf7-submit has-spinner" type="submit" value="Send" /> 337</p><p style="display: none !important;" class="akismet-fields-container" data-prefix="_wpcf7_ak_"><label>Δ<textarea name="_wpcf7_ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="_wpcf7_ak_js" value="47"/>
337<script type="473e178a9b6bec6447cc218e-text/javascript"> 338document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() ); 339</script>
339 340</p><div class="wpcf7-response-output" aria-hidden="true"></div> 341</form> 342</div> 343 344 </div> 345 346 347 <div class="entrymeta"> 348 <div class="postinfo"> 349 <div class="clear"></div> 350 </div> 351 </div> 352 353 </div> 354 <div class="commentsblock"> 355 356<div id="disqus_thread"></div> 357 </div> 358 <div class="navigation"> 359 </div> 360 361 </div> 362 363 <div id="sidebar"> 364 <ul> 365<li id="custom_html-2" class="widget_text widget widget_custom_html"><h2 class="widgettitle">About Me</h2> 366<div class="textwidget custom-html-widget"><b>Update:</b> As you can see, this site is no longer being updated as of 2012. 367<hr> 368<img style="float: left; margin-right: 15px; margin-bottom:5px; border: none; display:inline;" src="http://www.gravatar.com/avatar/c37b8da72a7863e599c8ed11fbb3983a?rating=X&default=http://beerpla.net/no_avatar.gif" width="50" height="50"/> beer planet is a blog about technology, programming, computers, and geek life. It is run by Artem Russakovskii - a local San Francisco geek who is currently pursuing his own projects and regularly enjoys hacking Android, PHP, CSS, Javascript, AJAX, Perl, and regular expressions, working on Wordpress plugins and tools, tweaking MySQL queries and server settings, administering Linux machines, blogging, learning new things, and other geeky stuff. 369<p>Artem loves commenting on other people's blogs and reading comments on his own, so go ahead and leave one. 370</p> 371 372<div style="text-align: center;"> 373 374<a href="http://feeds.feedburner.com/BeerPlanet" style=" background:none;"><img src="http://feeds.feedburner.com/~fc/BeerPlanet?bg=006600&fg=FFFFFF&anim=1" height="26" width="88" style="border:0;" alt="" /></a> 375 376<p><a href="https://twitter.com/ArtemR" style="text-decoration:none;background:none" rel="nofollow"><img src="https://beerpla.net/images/favicon_twitter.png" alt="View Artem Russakovskii's Twitter profile" style="vertical-align: middle;border:0px" border="0" height="16" width="16"></a> 377<a href="http://www.linkedin.com/in/artemrussakovskii" style="text-decoration:none;background:none" rel="nofollow"><img src="https://beerpla.net/images/favicon_linkedin.png" alt="View Artem Russakovskii's LinkedIn profile" style="vertical-align: middle;border:0px" border="0" height="16" width="16"></a> 378 <a href="https://www.facebook.com/artem.russakovskii" style="text-decoration:none;background:none" rel="nofollow"><img src="https://beerpla.net/images/favicon_facebook.gif" alt="View Artem Russakovskii's Facebook profile" style="vertical-align: middle;border:0px" border="0"></a> 379 <a href="http://stackoverflow.com/users/47680/artem-russakovskii" style="text-decoration:none;background:none" rel="nofollow"><img src="https://beerpla.net/images/favicon_stackoverflow.ico" alt="View Artem Russakovskii's Stack Overflow profile" style="vertical-align: middle;border:0px" border="0" height="16" width="16"></a> 380<a href="http://serverfault.com/users/2491/artem-russakovskii" style="text-decoration:none;background:none" rel="nofollow"><img src="https://beerpla.net/images/favicon_serverfault.ico" alt="View Artem Russakovskii's Server Fault profile" style="vertical-align: middle;border:0px" border="0" height="16" width="16"></a> 381 </p> 382</div> 383<div style="margin: 10px auto; width:208px"><a href="http://stackexchange.com/users/20106/artem-russakovskii"><img src="http://stackexchange.com/users/flair/20106.png?theme=dark" /></a></div></div></li> 384<li id="pages-2" class="widget widget_pages"><h2 class="widgettitle">Pages</h2> 385 386 <ul> 387 <li class="page_item page-item-926 current_page_item"><a href="https://beerpla.net/about/" aria-current="page">About</a></li> 388<li class="page_item page-item-920 page_item_has_children"><a href="https://beerpla.net/projects/">Projects</a> 389<ul class='children'> 390 <li class="page_item page-item-1480"><a href="https://beerpla.net/projects/smartdomdocument-a-smarter-php-domdocument-class/">SmartDOMDocument – A Smarter PHP DOMDocument Class</a></li> 391</ul> 392</li> 393 </ul> 394 395 </li> 396<li id="categories-1" class="widget widget_categories"><h2 class="widgettitle">Categories</h2> 397 398 <ul> 399 <li class="cat-item cat-item-297"><a href="https://beerpla.net/category/android/">Android</a> (8) 400</li> 401 <li class="cat-item cat-item-15"><a href="https://beerpla.net/category/awesomeness/">Awesomeness</a> (59) 402</li> 403 <li class="cat-item cat-item-1"><a href="https://beerpla.net/category/beerplanet/">Beer Planet</a> (12) 404</li> 405 <li class="cat-item cat-item-494"><a href="https://beerpla.net/category/c/">C</a> (1) 406</li> 407 <li class="cat-item cat-item-683"><a href="https://beerpla.net/category/csharp/">C Sharp</a> (1) 408</li> 409 <li class="cat-item cat-item-682"><a href="https://beerpla.net/category/cpp/">C++</a> (1) 410</li> 411 <li class="cat-item cat-item-655"><a href="https://beerpla.net/category/css/">CSS</a> (4) 412</li> 413 <li class="cat-item cat-item-145"><a href="https://beerpla.net/category/databases/">Databases</a> (35) 414</li> 415 <li class="cat-item cat-item-694"><a href="https://beerpla.net/category/eclipse/">Eclipse</a> (2) 416</li> 417 <li class="cat-item cat-item-23"><a href="https://beerpla.net/category/entertainment/">Entertainment</a> (12) 418</li> 419 <li class="cat-item cat-item-421"><a href="https://beerpla.net/category/firefox/">Firefox</a> (4) 420</li> 421 <li class="cat-item cat-item-589"><a href="https://beerpla.net/category/gaming-stuff/">Gaming</a> (1) 422</li> 423 <li class="cat-item cat-item-259"><a href="https://beerpla.net/category/google/">Google</a> (3) 424</li> 425 <li class="cat-item cat-item-22"><a href="https://beerpla.net/category/humor/">Humor</a> (38) 426</li> 427 <li class="cat-item cat-item-961"><a href="https://beerpla.net/category/inspiration/">Inspiration</a> (1) 428</li> 429 <li class="cat-item cat-item-651"><a href="https://beerpla.net/category/java/">Java</a> (4) 430</li> 431 <li class="cat-item cat-item-654"><a href="https://beerpla.net/category/javascript/">JavaScript</a> (5) 432</li> 433 <li class="cat-item cat-item-17"><a href="https://beerpla.net/category/linux/">Linux</a> (38) 434</li> 435 <li class="cat-item cat-item-11"><a href="https://beerpla.net/category/my_favorites/">My Favorites</a> (27) 436</li> 437 <li class="cat-item cat-item-29"><a href="https://beerpla.net/category/mysql/">MySQL</a> (5) 438</li> 439 <li class="cat-item cat-item-205"><a href="https://beerpla.net/category/performance/">Performance</a> (2) 440</li> 441 <li class="cat-item cat-item-35"><a href="https://beerpla.net/category/perl/">Perl</a> (4) 442</li> 443 <li class="cat-item cat-item-20"><a href="https://beerpla.net/category/personal/">Personal</a> (18) 444</li> 445 <li class="cat-item cat-item-681"><a href="https://beerpla.net/category/php/">PHP</a> (6) 446</li> 447 <li class="cat-item cat-item-429"><a href="https://beerpla.net/category/politics/">Politics</a> (1) 448</li> 449 <li class="cat-item cat-item-18"><a href="https://beerpla.net/category/programming/">Programming</a> (65) 450</li> 451 <li class="cat-item cat-item-437"><a href="https://beerpla.net/category/python/">Python</a> (2) 452</li> 453 <li class="cat-item cat-item-1042"><a href="https://beerpla.net/category/reviews/">Reviews</a> (1) 454</li> 455 <li class="cat-item cat-item-684"><a href="https://beerpla.net/category/ruby/">Ruby</a> (1) 456</li> 457 <li class="cat-item cat-item-21"><a href="https://beerpla.net/category/security/">Security</a> (6) 458</li> 459 <li class="cat-item cat-item-747"><a href="https://beerpla.net/category/solr/">Solr</a> (2) 460</li> 461 <li class="cat-item cat-item-19"><a href="https://beerpla.net/category/sports/">Sports</a> (4) 462</li> 463 <li class="cat-item cat-item-16"><a href="https://beerpla.net/category/stuff/">Stuff</a> (24) 464</li> 465 <li class="cat-item cat-item-345"><a href="https://beerpla.net/category/svn/">SVN</a> (2) 466</li> 467 <li class="cat-item cat-item-13"><a href="https://beerpla.net/category/technology/">Technology</a> (42) 468</li> 469 <li class="cat-item cat-item-819"><a href="https://beerpla.net/category/tips/">Tips</a> (24) 470</li> 471 <li class="cat-item cat-item-676"><a href="https://beerpla.net/category/tutorials/">Tutorials</a> (13) 472</li> 473 <li class="cat-item cat-item-602"><a href="https://beerpla.net/category/twitter-stuff/">Twitter</a> (8) 474</li> 475 <li class="cat-item cat-item-960"><a href="https://beerpla.net/category/web-design/">Web Design</a> (1) 476</li> 477 <li class="cat-item cat-item-344"><a href="https://beerpla.net/category/wordpress/">Wordpress</a> (15) 478</li> 479 <li class="cat-item cat-item-25"><a href="https://beerpla.net/category/wtf/">WTF?</a> (9) 480</li> 481 </ul> 482 483 </li> 484<li id="tag_cloud-2" class="widget widget_tag_cloud"><h2 class="widgettitle">Tag Cloud</h2> 485<div class="tagcloud"><a href="https://beerpla.net/tag/android/" class="tag-cloud-link tag-link-1142 tag-link-position-1" style="font-size: 13.6pt;" aria-label="Android (11 items)">Android</a> 486<a href="https://beerpla.net/tag/application/" class="tag-cloud-link tag-link-255 tag-link-position-2" style="font-size: 8pt;" aria-label="application (4 items)">application</a> 487<a href="https://beerpla.net/tag/chrome/" class="tag-cloud-link tag-link-418 tag-link-position-3" style="font-size: 8pt;" aria-label="chrome (4 items)">chrome</a> 488<a href="https://beerpla.net/tag/conference/" class="tag-cloud-link tag-link-160 tag-link-position-4" style="font-size: 16.252631578947pt;" aria-label="conference (17 items)">conference</a> 489<a href="https://beerpla.net/tag/email/" class="tag-cloud-link tag-link-340 tag-link-position-5" style="font-size: 8pt;" aria-label="email (4 items)">email</a> 490<a href="https://beerpla.net/tag/error/" class="tag-cloud-link tag-link-387 tag-link-position-6" style="font-size: 9.1789473684211pt;" aria-label="error (5 items)">error</a> 491<a href="https://beerpla.net/tag/extension/" class="tag-cloud-link tag-link-151 tag-link-position-7" style="font-size: 8pt;" aria-label="extension (4 items)">extension</a> 492<a href="https://beerpla.net/tag/fast/" class="tag-cloud-link tag-link-352 tag-link-position-8" style="font-size: 8pt;" aria-label="fast (4 items)">fast</a> 493<a href="https://beerpla.net/tag/featured/" class="tag-cloud-link tag-link-514 tag-link-position-9" style="font-size: 10.210526315789pt;" aria-label="featured (6 items)">featured</a> 494<a href="https://beerpla.net/tag/file/" class="tag-cloud-link tag-link-153 tag-link-position-10" style="font-size: 8pt;" aria-label="file (4 items)">file</a> 495<a href="https://beerpla.net/tag/firefox/" class="tag-cloud-link tag-link-1145 tag-link-position-11" style="font-size: 14.631578947368pt;" aria-label="Firefox (13 items)">Firefox</a> 496<a href="https://beerpla.net/tag/google/" class="tag-cloud-link tag-link-1141 tag-link-position-12" style="font-size: 14.631578947368pt;" aria-label="Google (13 items)">Google</a> 497<a href="https://beerpla.net/tag/greasemonkey/" class="tag-cloud-link tag-link-552 tag-link-position-13" style="font-size: 9.1789473684211pt;" aria-label="greasemonkey (5 items)">greasemonkey</a> 498<a href="https://beerpla.net/tag/guide/" class="tag-cloud-link tag-link-77 tag-link-position-14" style="font-size: 8pt;" aria-label="guide (4 items)">guide</a> 499<a href="https://beerpla.net/tag/install/" class="tag-cloud-link tag-link-289 tag-link-position-15" style="font-size: 8pt;" aria-label="install (4 items)">install</a> 500<a href="https://beerpla.net/tag/installation/" class="tag-cloud-link tag-link-67 tag-link-position-16" style="font-size: 8pt;" aria-label="installation (4 items)">installation</a> 501<a href="https://beerpla.net/tag/internet-explorer/" class="tag-cloud-link tag-link-540 tag-link-position-17" style="font-size: 9.1789473684211pt;" aria-label="internet explorer (5 items)">internet explorer</a> 502<a href="https://beerpla.net/tag/iphone/" class="tag-cloud-link tag-link-38 tag-link-position-18" style="font-size: 9.1789473684211pt;" aria-label="iphone (5 items)">iphone</a> 503<a href="https://beerpla.net/tag/java/" class="tag-cloud-link tag-link-1148 tag-link-position-19" style="font-size: 9.1789473684211pt;" aria-label="Java (5 items)">Java</a> 504<a href="https://beerpla.net/tag/javascript/" class="tag-cloud-link tag-link-1149 tag-link-position-20" style="font-size: 10.210526315789pt;" aria-label="JavaScript (6 items)">JavaScript</a> 505<a href="https://beerpla.net/tag/linux/" class="tag-cloud-link tag-link-1133 tag-link-position-21" style="font-size: 14.042105263158pt;" aria-label="Linux (12 items)">Linux</a> 506<a href="https://beerpla.net/tag/mobile/" class="tag-cloud-link tag-link-258 tag-link-position-22" style="font-size: 8pt;" aria-label="mobile (4 items)">mobile</a> 507<a href="https://beerpla.net/tag/mysql/" class="tag-cloud-link tag-link-1138 tag-link-position-23" style="font-size: 22pt;" aria-label="MySQL (44 items)">MySQL</a> 508<a href="https://beerpla.net/tag/new/" class="tag-cloud-link tag-link-331 tag-link-position-24" style="font-size: 8pt;" aria-label="new (4 items)">new</a> 509<a href="https://beerpla.net/tag/performance/" class="tag-cloud-link tag-link-1140 tag-link-position-25" style="font-size: 10.210526315789pt;" aria-label="Performance (6 items)">Performance</a> 510<a href="https://beerpla.net/tag/perl/" class="tag-cloud-link tag-link-1139 tag-link-position-26" style="font-size: 14.042105263158pt;" aria-label="Perl (12 items)">Perl</a> 511<a href="https://beerpla.net/tag/phone/" class="tag-cloud-link tag-link-257 tag-link-position-27" style="font-size: 8pt;" aria-label="phone (4 items)">phone</a> 512<a href="https://beerpla.net/tag/plugin/" class="tag-cloud-link tag-link-346 tag-link-position-28" style="font-size: 10.947368421053pt;" aria-label="plugin (7 items)">plugin</a> 513<a href="https://beerpla.net/tag/problem/" class="tag-cloud-link tag-link-278 tag-link-position-29" style="font-size: 13.010526315789pt;
513" aria-label="problem (10 items)">problem</a> 514<a href="https://beerpla.net/tag/screen/" class="tag-cloud-link tag-link-54 tag-link-position-30" style="font-size: 9.1789473684211pt;" aria-label="screen (5 items)">screen</a> 515<a href="https://beerpla.net/tag/script/" class="tag-cloud-link tag-link-46 tag-link-position-31" style="font-size: 10.210526315789pt;" aria-label="script (6 items)">script</a> 516<a href="https://beerpla.net/tag/search/" class="tag-cloud-link tag-link-606 tag-link-position-32" style="font-size: 9.1789473684211pt;" aria-label="search (5 items)">search</a> 517<a href="https://beerpla.net/tag/server/" class="tag-cloud-link tag-link-140 tag-link-position-33" style="font-size: 8pt;" aria-label="server (4 items)">server</a> 518<a href="https://beerpla.net/tag/solution/" class="tag-cloud-link tag-link-427 tag-link-position-34" style="font-size: 9.1789473684211pt;" aria-label="solution (5 items)">solution</a> 519<a href="https://beerpla.net/tag/sun/" class="tag-cloud-link tag-link-108 tag-link-position-35" style="font-size: 8pt;" aria-label="sun (4 items)">sun</a> 520<a href="https://beerpla.net/tag/suse/" class="tag-cloud-link tag-link-50 tag-link-position-36" style="font-size: 9.1789473684211pt;" aria-label="suse (5 items)">suse</a> 521<a href="https://beerpla.net/tag/svn/" class="tag-cloud-link tag-link-1144 tag-link-position-37" style="font-size: 9.1789473684211pt;" aria-label="SVN (5 items)">SVN</a> 522<a href="https://beerpla.net/tag/tip/" class="tag-cloud-link tag-link-172 tag-link-position-38" style="font-size: 10.210526315789pt;" aria-label="tip (6 items)">tip</a> 523<a href="https://beerpla.net/tag/twitter/" class="tag-cloud-link tag-link-336 tag-link-position-39" style="font-size: 12.421052631579pt;" aria-label="twitter (9 items)">twitter</a> 524<a href="https://beerpla.net/tag/update/" class="tag-cloud-link tag-link-347 tag-link-position-40" style="font-size: 11.684210526316pt;" aria-label="update (8 items)">update</a> 525<a href="https://beerpla.net/tag/video/" class="tag-cloud-link tag-link-363 tag-link-position-41" style="font-size: 9.1789473684211pt;" aria-label="video (5 items)">video</a> 526<a href="https://beerpla.net/tag/windows/" class="tag-cloud-link tag-link-785 tag-link-position-42" style="font-size: 10.210526315789pt;" aria-label="windows (6 items)">windows</a> 527<a href="https://beerpla.net/tag/wordpress/" class="tag-cloud-link tag-link-1143 tag-link-position-43" style="font-size: 15.073684210526pt;" aria-label="Wordpress (14 items)">Wordpress</a> 528<a href="https://beerpla.net/tag/xml/" class="tag-cloud-link tag-link-185 tag-link-position-44" style="font-size: 8pt;" aria-label="xml (4 items)">xml</a> 529<a href="https://beerpla.net/tag/youtube/" class="tag-cloud-link tag-link-230 tag-link-position-45" style="font-size: 9.1789473684211pt;" aria-label="youtube (5 items)">youtube</a></div> 530</li> 531<li id="linkcat-1080" class="widget widget_links"><h2 class="widgettitle">My Sites</h2> 532 533 <ul class='xoxo blogroll'> 534<li><a href="http://www.androidpolice.com" rel="me" target="_blank">AndroidPolice.com</a></li> 535<li><a href="https://www.apkmirror.com" rel="me" title="#apkplz" target="_blank">APKMirror.com</a></li> 536 537 </ul> 538</li> 539 540<li id="recent-comments-2" class="widget widget_recent_comments"><h2 class="widgettitle">Recent Comments</h2> 541<ul id="recentcomments"><li class="recentcomments"><span class="comment-author-link">Sadiq Hassan</span> on <a href="https://beerpla.net/2006/06/06/amazing-flash-animator-vs-animation/#comment-78015">Amazing Flash: Animator vs Animation</a></li><li class="recentcomments"><span class="comment-author-link">Roobear</span> on <a href="https://beerpla.net/2008/12/16/the-ultimate-programming-language-lolcode/#comment-78014">The Ultimate Programming Language – LOLCODE</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://devdiscus.com/wordpress/65566/wordpress-qa-may-23-2021-458-pm-186/" class="url" rel="ugc external nofollow">WordPress Q&A - May 23, 2021, 4:58 pm - 186 - Dev Discus</a></span> on <a href="https://beerpla.net/2010/01/13/wordpress-plugin-development-how-to-include-css-and-javascript-conditionally-and-only-when-needed-by-the-posts/#comment-77930">[WordPress Plugin Development] How To Include CSS and JavaScript Conditionally And Only When Needed By The Posts</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://devdiscus.com/wordpress/64557/wordpress-qa-may-15-2021-813-pm-507/" class="url" rel="ugc external nofollow">WordPress Q&A - May 15, 2021, 8:13 pm - 507 - Dev Discus</a></span> on <a href="https://beerpla.net/2010/01/13/wordpress-plugin-development-how-to-include-css-and-javascript-conditionally-and-only-when-needed-by-the-posts/#comment-77928">[WordPress Plugin Development] How To Include CSS and JavaScript Conditionally And Only When Needed By The Posts</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://devdiscus.com/wordpress/81/what-is-the-preferred-way-to-add-custom-javascript-files-to-the-site/" class="url" rel="ugc external nofollow">What is the preferred way to add custom javascript files to the site? - Dev Discus</a></span> on <a href="https://beerpla.net/2010/01/13/wordpress-plugin-development-how-to-include-css-and-javascript-conditionally-and-only-when-needed-by-the-posts/#comment-77927">[WordPress Plugin Development] How To Include CSS and JavaScript Conditionally And Only When Needed By The Posts</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://devdiscus.com/wordpress/178/conditionally-loading-javascript-css-for-shortcodes/" class="url" rel="ugc external nofollow">Conditionally Loading JavaScript/CSS for Shortcodes - Dev Discus</a></span> on <a href="https://beerpla.net/2010/01/13/wordpress-plugin-development-how-to-include-css-and-javascript-conditionally-and-only-when-needed-by-the-posts/#comment-77926">[WordPress Plugin Development] How To Include CSS and JavaScript Conditionally And Only When Needed By The Posts</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://sarversystems.com/android-news-page-5078-of-5078-android-police/" class="url" rel="ugc external nofollow">Android News - Page 5078 of 5078 - Android Police - SarverSystems</a></span> on <a href="https://beerpla.net/2009/11/21/meet-firefox-for-mobile-video-feature-highlights-more-info/#comment-77924">Meet Firefox For Mobile [Video + Feature Highlights + More Info]</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://informata.info/programare/este-posibil-sa-legati-fisierele-din-depozitele-svn-astfel-o/" class="url" rel="ugc external nofollow">Este posibil sÄ legaÈi fiÈierele din depozitele SVN astfel încât un fiÈier sÄ fie de fapt o referinÈÄ la un alt fiÈier din alt depozit?</a></span> on <a href="https://beerpla.net/2009/06/20/how-to-properly-set-svn-svnexternals-property-in-svn-command-line/#comment-77923">How To Properly Set SVN svn:externals Property In SVN Command Line</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://all-android.com/android-news-page-5059-of-5059-android-police" class="url" rel="ugc external nofollow">Android News - Page 5059 of 5059 - Android Police - All-Android</a></span> on <a href="https://beerpla.net/2009/11/21/meet-firefox-for-mobile-video-feature-highlights-more-info/#comment-77922">Meet Firefox For Mobile [Video + Feature Highlights + More Info]</a></li><li class="recentcomments"><span class="comment-author-link"><a href="https://sarversystems.com/android-news-page-5058-of-5058-android-police/" class="url" rel="ugc external nofollow">Android News - Page 5058 of 5058 - Android Police - SarverSystems</a></span> on <a href="https://beerpla.net/2009/11/21/meet-firefox-for-mobile-video-feature-highlights-more-info/#comment-77921">Meet Firefox For Mobile [Video + Feature Highlights + More Info]</a></li></ul></li> 542 </ul> 543 </div> 544 545</div> 546<div id="footer"> 547 548<br>.: 84 queries :.: 0.137s :.: nexus2 :. 549
550<script type="speculationrules"> 551{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/emire/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 552</script>
vendor: 1 bytes, line 552
552
553<script type="473e178a9b6bec6447cc218e-text/javascript"> 554function tocToggle(toc, box) { 555 var q = jQuery(toc); 556 if (!q) return; 557 q.slideToggle('fast', function() { 558 jQuery(box).toggleClass('toc-collapsed', q.css('display') == 'none'); 559 }); 560} 561</script>
vendor: 2 bytes, line 561
561
562<script id="wp-hooks-js" src="https://beerpla.net/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 562
562
563<script id="wp-i18n-js" src="https://beerpla.net/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 563
563
564<script id="wp-i18n-js-after" type="473e178a9b6bec6447cc218e-text/javascript"> 565wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 566//# sourceURL=wp-i18n-js-after 567</script>
vendor: 1 bytes, line 567
567
568<script id="swv-js" src="https://beerpla.net/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.7" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 568
568
569<script id="contact-form-7-js-before" type="473e178a9b6bec6447cc218e-text/javascript"> 570var wpcf7 = { 571 "api": { 572 "root": "https:\/\/beerpla.net\/wp-json\/", 573 "namespace": "contact-form-7\/v1" 574 } 575}; 576//# sourceURL=contact-form-7-js-before 577</script>
vendor: 1 bytes, line 577
577
578<script id="contact-form-7-js" src="https://beerpla.net/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.7" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 578
578
579<script id="disqus_count-js-extra" type="473e178a9b6bec6447cc218e-text/javascript"> 580var countVars = {"disqusShortname":"beerplanet"}; 581//# sourceURL=disqus_count-js-extra 582</script>
vendor: 1 bytes, line 582
582
583<script id="disqus_count-js" src="https://beerpla.net/wp-content/plugins/disqus-comment-system/public/js/comment_count.js?ver=3.1.4" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 583
583
584<script id="disqus_embed-js-extra" type="473e178a9b6bec6447cc218e-text/javascript"> 585var embedVars = {"disqusConfig":{"integration":"wordpress 3.1.4 7.1.2"},"disqusIdentifier":"926 http://beerpla.net/?page_id=926","disqusShortname":"beerplanet","disqusTitle":"About","disqusUrl":"https://beerpla.net/about/","postId":"926"}; 586//# sourceURL=disqus_embed-js-extra 587</script>
vendor: 1 bytes, line 587
587
588<script id="disqus_embed-js" src="https://beerpla.net/wp-content/plugins/disqus-comment-system/public/js/comment_embed.js?ver=3.1.4" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 588
588
589<script id="wp-syntax-js-js" src="https://beerpla.net/wp-content/plugins/wp-syntax/js/wp-syntax.js?ver=1.1" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 589
589
590<script defer id="akismet-frontend-js" src="https://beerpla.net/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1785900793" type="473e178a9b6bec6447cc218e-text/javascript"></script>
vendor: 1 bytes, line 590
590
591<script id="wp-emoji-settings" type="application/json"> 592{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://beerpla.net/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 593</script>
vendor: 1 bytes, line 593
593
594<script type="473e178a9b6bec6447cc218e-module"> 595/*! This file is auto-generated */ 596var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 597//# sourceURL=https://beerpla.net/wp-includes/js/wp-emoji-loader.min.js 598</script>
598 599</div>
vendor: 143 bytes, lines 599-600
599 600<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="473e178a9b6bec6447cc218e-|49" defer></script>
600<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"7e0e2ac259004e848533eb8c251406b8","r":1,"spa":2}' crossorigin="anonymous"></script>
600 601</body> 602</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.