{"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_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,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":[],"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}]}}