{"id":21878,"date":"2014-05-29T14:52:44","date_gmt":"2014-05-29T12:52:44","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=21878"},"modified":"2014-05-29T14:52:44","modified_gmt":"2014-05-29T12:52:44","slug":"semaphore-bull-memorial","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/","title":{"rendered":"Semaphore Bull Memorial"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p>I joined Easy Forex back in 2012 to work on a rather complex project &#8211; migrate main website of the company from a really outdated version of DotNetNuke to WordPress. \u00a0WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. \u00a0But we&#8217;ve managed to deliver anyway. \u00a0One of the annoying practices that we had to employ though was a semaphore flag for the database changes &#8211; only a single developer could work on the database at any given time. \u00a0(Again, this wasn&#8217;t a WordPress limitation, but rather specifics of our environment at the time). \u00a0That was the time when we introduced the Semaphore Bull to our development process.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"21879\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/bull\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull.png?fit=505%2C577&amp;ssl=1\" data-orig-size=\"505,577\" 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=\"Semaphore Bull\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull.png?fit=505%2C577&amp;ssl=1\" class=\"aligncenter size-medium wp-image-21879\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull-437x500.png?resize=437%2C500&#038;ssl=1\" alt=\"Semaphore Bull\" width=\"437\" height=\"500\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull.png?resize=437%2C500&amp;ssl=1 437w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull.png?resize=500%2C571&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull.png?w=505&amp;ssl=1 505w\" sizes=\"auto, (max-width: 437px) 100vw, 437px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>It worked out quite well. \u00a0But being a soft toy, it got abused a lot along the way. \u00a0It lost a leg, which was screwed in for a while. \u00a0Then it nearly lost the whole butt. \u00a0Then the head. \u00a0Beaten, barely alive, it still stood its ground and did the job! \u00a0At some point it got so bad, that we&#8217;ve had to place it into the plastic container, where it survived for a few more month.<\/p>\n<p>Today we&#8217;ve finalized our migration of the main website from WordPress to CakePHP. \u00a0The system is so simple now that we don&#8217;t even need a database \u00a0anymore. \u00a0 And with that, the job of the Semaphore Bull ends. \u00a0 Gone, but not forgotten though!<\/p>\n<p>Because of its huge contribution to our work, because it saved us from countless painful hours of resolving SQL conflicts, we&#8217;ve decided to create a memorial. \u00a0Ironically, the memorial to Semaphore Bull is built out Semaphore Bull itself, and the container it lived in. \u00a0For the future generations to remember the deed, we&#8217;ve printed out the snippet of the developer&#8217;s manual and embedded it into the memorial together with the dates. \u00a0 Here&#8217;s how it looks altogether now.<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/Semaphore-Bull-memorial.jpg?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"21880\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/semaphore-bull-memorial\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/Semaphore-Bull-memorial.jpg?fit=640%2C640&amp;ssl=1\" data-orig-size=\"640,640\" 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=\"Semaphore Bull memorial\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/Semaphore-Bull-memorial.jpg?fit=640%2C640&amp;ssl=1\" class=\"aligncenter size-medium wp-image-21880\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/Semaphore-Bull-memorial-500x500.jpg?resize=500%2C500&#038;ssl=1\" alt=\"Semaphore Bull memorial\" width=\"500\" height=\"500\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/Semaphore-Bull-memorial.jpg?resize=500%2C500&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/Semaphore-Bull-memorial.jpg?resize=150%2C150&amp;ssl=1 150w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/Semaphore-Bull-memorial.jpg?w=640&amp;ssl=1 640w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Thank you, Semaphore Bull. \u00a0You&#8217;ve done us a great service. \u00a0Rest in peace.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>I joined Easy Forex back in 2012 to work on a rather complex project &#8211; migrate main website of the company from a really outdated version of DotNetNuke to WordPress. \u00a0WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. \u00a0But we&#8217;ve managed to deliver &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Semaphore Bull Memorial<\/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":"standard","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,18,62,60],"tags":[1537,1559,2418,139,1330,17],"keyring_services":[],"class_list":["post-21878","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-wordpress","tag-cakephp","tag-databases","tag-humor","tag-office","tag-web-development","tag-work"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we&#039;ve managed to deliver\" \/>\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\/05\/29\/semaphore-bull-memorial\/\" \/>\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=\"Semaphore Bull Memorial - Leonid Mamchenkov\" \/>\n\t\t<meta property=\"og:description\" content=\"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we&#039;ve managed to deliver\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/\" \/>\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-05-29T12:52:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2014-05-29T12:52:44+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=\"Semaphore Bull Memorial - Leonid Mamchenkov\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we&#039;ve managed to deliver\" \/>\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\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#blogposting\",\"name\":\"Semaphore Bull Memorial - Leonid Mamchenkov\",\"headline\":\"Semaphore Bull Memorial\",\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/wp-content\\\/uploads\\\/2014\\\/05\\\/bull-437x500.png\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#articleImage\"},\"datePublished\":\"2014-05-29T14:52:44+02:00\",\"dateModified\":\"2014-05-29T14:52:44+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":4,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#webpage\"},\"articleSection\":\"All, Programming, Technology, WordPress, CakePHP, databases, humor, office, web development, work\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#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\\\/programming\\\/#listItem\",\"name\":\"Programming\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"position\":3,\"name\":\"Programming\",\"item\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#listItem\",\"name\":\"Semaphore Bull Memorial\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#listItem\",\"position\":4,\"name\":\"Semaphore Bull Memorial\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/category\\\/technology\\\/programming\\\/#listItem\",\"name\":\"Programming\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#person\",\"name\":\"Leonid Mamchenkov\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#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\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#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\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#webpage\",\"url\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/\",\"name\":\"Semaphore Bull Memorial - Leonid Mamchenkov\",\"description\":\"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we've managed to deliver\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/2014\\\/05\\\/29\\\/semaphore-bull-memorial\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mamchenkov.net\\\/wordpress\\\/author\\\/leonid\\\/#author\"},\"datePublished\":\"2014-05-29T14:52:44+02:00\",\"dateModified\":\"2014-05-29T14:52:44+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":"Semaphore Bull Memorial - Leonid Mamchenkov","description":"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we've managed to deliver","canonical_url":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/","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\/05\/29\/semaphore-bull-memorial\/#blogposting","name":"Semaphore Bull Memorial - Leonid Mamchenkov","headline":"Semaphore Bull Memorial","author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"publisher":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#person"},"image":{"@type":"ImageObject","url":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/05\/bull-437x500.png","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#articleImage"},"datePublished":"2014-05-29T14:52:44+02:00","dateModified":"2014-05-29T14:52:44+02:00","inLanguage":"en-US","commentCount":4,"mainEntityOfPage":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#webpage"},"isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#webpage"},"articleSection":"All, Programming, Technology, WordPress, CakePHP, databases, humor, office, web development, work"},{"@type":"BreadcrumbList","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#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\/programming\/#listItem","name":"Programming"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","position":3,"name":"Programming","item":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#listItem","name":"Semaphore Bull Memorial"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#listItem","position":4,"name":"Semaphore Bull Memorial","previousItem":{"@type":"ListItem","@id":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/#listItem","name":"Programming"}}]},{"@type":"Person","@id":"https:\/\/mamchenkov.net\/wordpress\/#person","name":"Leonid Mamchenkov","image":{"@type":"ImageObject","@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#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\/05\/29\/semaphore-bull-memorial\/#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\/05\/29\/semaphore-bull-memorial\/#webpage","url":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/","name":"Semaphore Bull Memorial - Leonid Mamchenkov","description":"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we've managed to deliver","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mamchenkov.net\/wordpress\/#website"},"breadcrumb":{"@id":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/#breadcrumblist"},"author":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"creator":{"@id":"https:\/\/mamchenkov.net\/wordpress\/author\/leonid\/#author"},"datePublished":"2014-05-29T14:52:44+02:00","dateModified":"2014-05-29T14:52:44+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":"Semaphore Bull Memorial - Leonid Mamchenkov","og:description":"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we've managed to deliver","og:url":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/","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-05-29T12:52:44+00:00","article:modified_time":"2014-05-29T12:52:44+00:00","article:publisher":"https:\/\/www.facebook.com\/MamchenkovBlog","twitter:card":"summary_large_image","twitter:site":"@mamchenkov","twitter:title":"Semaphore Bull Memorial - Leonid Mamchenkov","twitter:description":"I joined Easy Forex back in 2012 to work on a rather complex project - migrate main website of the company from a really outdated version of DotNetNuke to WordPress. WordPress, even though it is an absolutely amazing platform, turned out not to be the right tool for the job. But we've managed to deliver","twitter:creator":"@mamchenkov","twitter:image":"https:\/\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2026\/03\/leonid-sailing-beer.jpg"},"aioseo_meta_data":{"post_id":"21878","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":"","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-20 02:11:37","updated":"2026-01-15 10:26:59","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\/programming\/\" title=\"Programming\">Programming<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tSemaphore Bull Memorial\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":"Programming","link":"https:\/\/mamchenkov.net\/wordpress\/category\/technology\/programming\/"},{"label":"Semaphore Bull Memorial","link":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/29\/semaphore-bull-memorial\/"}],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":22436,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/08\/26\/stellar-fast-database-snapshot-and-restore-tool-for-development\/","url_meta":{"origin":21878,"position":0},"title":"Stellar &#8211; fast database snapshot and restore tool for development","author":"Leonid Mamchenkov","date":"August 26, 2014","format":"link","excerpt":"Stellar - Fast database snapshot and restore tool for development.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"stellar","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2014\/08\/stellar-500x333.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":24248,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/05\/28\/wpscan-vulnerability-database\/","url_meta":{"origin":21878,"position":1},"title":"WPScan Vulnerability Database","author":"Leonid Mamchenkov","date":"May 28, 2015","format":"link","excerpt":"WPScan Vulnerability Database\u00a0- covers not on the WordPress core, but also themes and plugins.","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":21781,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/05\/09\/wordpress-plugin-file-uploads-saving-to-the-database\/","url_meta":{"origin":21878,"position":2},"title":"WordPress Plugin : file uploads saving to the database","author":"Leonid Mamchenkov","date":"May 9, 2014","format":"status","excerpt":"Does anybody know of a WordPress plugin that would allow saving file uploads into the database?","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":23544,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/02\/18\/mysql-compare-compare-two-database-structures-and-get-the-differences-between-them\/","url_meta":{"origin":21878,"position":3},"title":"MySQL Compare &#8211; compare two database structures and get the differences between them","author":"Leonid Mamchenkov","date":"February 18, 2015","format":"link","excerpt":"MySQL Compare - compare two database structures and get the differences between them","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":27005,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/11\/29\/magento-database-maintenance\/","url_meta":{"origin":21878,"position":4},"title":"Magento database maintenance","author":"Leonid Mamchenkov","date":"November 29, 2016","format":false,"excerpt":"If you are running a Magento-based website, make sure you add the database maintenance script to the cron. \u00a0For example, append this to the \/etc\/crontab: Thanks to this page, obviously. \u00a0You'll be surprised how much leaner your database will be, especially if you get any kind of traffic to 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":[]},{"id":22440,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/08\/28\/meteor-an-ultra-simple-database-everywhere-data-on-the-wire-pure-javascript-web-framework\/","url_meta":{"origin":21878,"position":5},"title":"Meteor &#8211; an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework","author":"Leonid Mamchenkov","date":"August 28, 2014","format":"link","excerpt":"Meteor - an ultra-simple, database-everywhere, data-on-the-wire, pure-Javascript web framework","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\/21878","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=21878"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/21878\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=21878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=21878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=21878"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=21878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}