41554 blogs · [ { "id": "01a08799-eec0-73f0-b0fd-05a063a80720", "title": "Багатошарове освітлення одною кнопкою", "url": "https://leonid.shevtsov.me/post/bahatosharove-osvitlennia-odnoiu-knopkoiu/", "published_at": "2026-07-25T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a063acd78f", "title": "Scripts to export Safari tabs", "url": "https://leonid.shevtsov.me/post/safari-tabs-export-scripts/", "published_at": "2025-05-13T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a063f1eef0", "title": "Controlling Minuflux with its Go API client", "url": "https://leonid.shevtsov.me/post/miniflux-go-api/", "published_at": "2025-03-09T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a064c3c904", "title": "Export YouTube subscriptions into RSS", "url": "https://leonid.shevtsov.me/post/export-youtube-subscriptions-into-rss/", "published_at": "2025-03-08T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a064e61109", "title": "Installing DietPi on an Odroid XU4 with eMMC, 2024 edition", "url": "https://leonid.shevtsov.me/post/installing-dietpi-on-odroid-xu4/", "published_at": "2024-01-06T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a065afcca9", "title": "UUIDs are obsolete in the age of Docker", "url": "https://leonid.shevtsov.me/post/uuids-are-obsolete/", "published_at": "2023-05-18T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06612faa5", "title": "How to change serialization level on Amazon Redshift", "url": "https://leonid.shevtsov.me/post/how-to-change-serialization-level-on-amazon-redshift/", "published_at": "2023-01-20T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06664372d", "title": "Стендап Сьогодні", "url": "https://leonid.shevtsov.me/post/introducing-stendap-sogodni/", "published_at": "2022-11-05T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0667e6b72", "title": "My guide to macOS for (new) power users", "url": "https://leonid.shevtsov.me/post/macos-power-user-guide/", "published_at": "2022-07-03T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a066bd4eae", "title": "Інженерна підноготна Сінтри", "url": "https://leonid.shevtsov.me/post/sintra-engineering-details/", "published_at": "2022-06-04T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0673e76f0", "title": "M1 MacBook Air: a laptop that does not suck", "url": "https://leonid.shevtsov.me/post/m1-macbook-air-review/", "published_at": "2022-01-16T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0678143e3", "title": "Почему я 11 лет работаю в Railsware", "url": "https://leonid.shevtsov.me/post/11-years-of-railsware-ru/", "published_at": "2021-12-26T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0684bee72", "title": "Always cancel promises started in React.useEffect", "url": "https://leonid.shevtsov.me/post/always-cancel-useeffect-promises/", "published_at": "2021-12-11T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a068ba7521", "title": "How to build Go projects with multiple private dependencies in GitHub Actions", "url": "https://leonid.shevtsov.me/post/go-github-actions-private-dependencies/", "published_at": "2021-11-30T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a068dede58", "title": "How we made our Rails feature test suite twice as fast", "url": "https://leonid.shevtsov.me/post/how-to-make-rails-feature-tests-twice-as-fast/", "published_at": "2021-10-08T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a069bfcef6", "title": "Синяк", "url": "https://leonid.shevtsov.me/travel/synyak/", "published_at": "2021-09-22T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06a1654e6", "title": "How to fix \"No bundle URL present\" and change the packager port in React Native", "url": "https://leonid.shevtsov.me/post/change-react-native-packager-port/", "published_at": "2021-08-09T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06ae03ec7", "title": "The web architecture ladder", "url": "https://leonid.shevtsov.me/post/web-architecture-ladder/", "published_at": "2021-06-24T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06ba3eba3", "title": "Reselect memoization explained", "url": "https://leonid.shevtsov.me/post/reselect-memoization-explained/", "published_at": "2021-06-13T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06bdd5f88", "title": "Apple Silicon — M1 for Ruby developers", "url": "https://leonid.shevtsov.me/post/m1-for-ruby-developers/", "published_at": "2021-05-15T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06c5c3eba", "title": "How to set up a quasi-kanban for Jira in VS Code", "url": "https://leonid.shevtsov.me/post/vscode-jira-kanban/", "published_at": "2021-04-29T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06d4efcd5", "title": "Migrating a 20K SLOC production project to TypeScript", "url": "https://leonid.shevtsov.me/post/migrating-sintra-to-typescript/", "published_at": "2021-03-28T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06db95c6f", "title": "A review of the Awair Element indoor air quality monitor", "url": "https://leonid.shevtsov.me/post/awair-element-review/", "published_at": "2021-03-08T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06df8ac32", "title": "Keychron K3 wireless mechanical keyboard review", "url": "https://leonid.shevtsov.me/post/keychron-k3-review/", "published_at": "2021-03-02T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06e90e3ac", "title": "How to shim legacy dependencies in Webpack (like jQuery)", "url": "https://leonid.shevtsov.me/post/how-to-shim-legacy-dependencies-in-webpack/", "published_at": "2021-02-16T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06eea69fe", "title": "Rails is still the king", "url": "https://leonid.shevtsov.me/post/rails-is-still-the-king-2021/", "published_at": "2021-01-31T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06ef17f72", "title": "Lunar lander software development", "url": "https://leonid.shevtsov.me/post/lunar-lander-software-development/", "published_at": "2020-12-17T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06f57e99c", "title": "Things I've learned from writing React apps", "url": "https://leonid.shevtsov.me/post/react-practical-wisdom/", "published_at": "2019-02-26T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06f5f846a", "title": "I made a React hook to get the current date", "url": "https://leonid.shevtsov.me/post/react-usedate-hook/", "published_at": "2019-02-24T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06f8a0413", "title": "LG Ultrafine 4K 21\" review", "url": "https://leonid.shevtsov.me/post/lg-ultrafine-4k-21-review/", "published_at": "2018-07-27T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a06fe60326", "title": "Best code in available time", "url": "https://leonid.shevtsov.me/post/best-code-in-available-time/", "published_at": "2018-06-04T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a070cb7c21", "title": "A polyglot's view of Ruby&Rails", "url": "https://leonid.shevtsov.me/post/ruby-and-rails-in-2018-rubymeditation-may-2018-talk/", "published_at": "2018-05-19T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07139de57", "title": "The JavaScript that I like", "url": "https://leonid.shevtsov.me/post/the-javascript-that-i-like/", "published_at": "2018-04-18T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a072058350", "title": "React / Redux - инженерный подход к фронтенду", "url": "https://leonid.shevtsov.me/talk/react-frontend-engineering/", "published_at": "2017-10-18T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0726f2445", "title": "Turning an iPod Touch into a high-tech weather display", "url": "https://leonid.shevtsov.me/post/weather-widget/", "published_at": "2016-08-23T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a072994d5c", "title": "How to test your gem against multiple Ruby versions on CircleCI", "url": "https://leonid.shevtsov.me/post/multiple-rubies-on-circleci/", "published_at": "2016-08-15T18:51:25+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a072d3b8fa", "title": "SB - a command-line helper for Sublime Text projects", "url": "https://leonid.shevtsov.me/post/sb-sublime-project-helper/", "published_at": "2016-08-13T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a073cd3aa4", "title": "How to geotag photos with Moves.app", "url": "https://leonid.shevtsov.me/post/moves-geotag/", "published_at": "2016-08-05T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0743ead30", "title": "Messagepack-RPC - a fast, simple protocol for microservices", "url": "https://leonid.shevtsov.me/post/messagepack-rpc/", "published_at": "2016-08-03T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07484c107", "title": "Communicating Sequential Processes", "url": "https://leonid.shevtsov.me/talk/csp/", "published_at": "2016-06-24T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0756e3f8d", "title": "How to serialize moment.js values with Transit", "url": "https://leonid.shevtsov.me/post/how-to-serialize-momentjs-values-with-transit/", "published_at": "2016-01-06T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0766171f0", "title": "How to log errors coming from React components", "url": "https://leonid.shevtsov.me/post/how-to-log-errors-coming-from-react-components/", "published_at": "2015-12-24T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07675b18d", "title": "Zen estimation - bare minimum iteration planning", "url": "https://leonid.shevtsov.me/post/zen-estimation/", "published_at": "2015-12-14T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a076a21f39", "title": "How I used Let's Encrypt to enable HTTPS on this blog", "url": "https://leonid.shevtsov.me/post/how-i-used-letsencrypt-to-enable-https-on-this-blog/", "published_at": "2015-12-08T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a076c2a64b", "title": "How to make a Java daemon with start-stop-daemon", "url": "https://leonid.shevtsov.me/post/how-to-make-a-java-daemon-with-start-stop-daemon/", "published_at": "2015-11-21T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a0771f6d2e", "title": "Demystifying direct uploads from the browser to Amazon S3 - with a full example in 167 lines of code", "url": "https://leonid.shevtsov.me/post/demystifying-s3-browser-upload/", "published_at": "2015-11-11T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07805b65a", "title": "How to build MAPS.ME for Mac OS X - an offline OpenStreetMaps browser", "url": "https://leonid.shevtsov.me/post/how-to-build-maps-me-for-osx/", "published_at": "2015-10-21T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07879a190", "title": "Handle large JSONs effortlessly with jq", "url": "https://leonid.shevtsov.me/post/handle-large-jsons-effortlessly-with-jq/", "published_at": "2015-09-15T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07942a044", "title": "The genius of React", "url": "https://leonid.shevtsov.me/post/the-genius-of-react/", "published_at": "2015-08-30T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a079b183ba", "title": "Companies that are using Clojure", "url": "https://leonid.shevtsov.me/post/companies-that-are-using-clojure/", "published_at": "2015-08-20T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a079dec917", "title": "How to index mixed-language content with Lunr.js", "url": "https://leonid.shevtsov.me/post/how-to-index-mixed-language-content-with-lunr-js/", "published_at": "2015-08-09T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07a894b16", "title": "OAuth2 is easy - illustrated in 50 lines of Clojure", "url": "https://leonid.shevtsov.me/post/oauth2-is-easy/", "published_at": "2015-07-30T00:00:00+00:00" }, { "id": "01a08799-eec0-73f0-b0fd-05a07b3b8448", "title": "Some custom git commands that I use", "url": "https://leonid.shevtsov.me/post/some-custom-git-commands-that-i-use/", "published_at": "2015-07-30T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343ce5e3b3c", "title": "What separates software consultancy from engineering? Breadth of vision", "url": "https://leonid.shevtsov.me/post/software-consultancy-vs-engineering/", "published_at": "2015-07-13T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343cea7be5e", "title": "A formal prover for certain programs in the Javascript programming language", "url": "https://leonid.shevtsov.me/post/javascript-formal-prover/", "published_at": "2015-07-06T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343cf56dcf2", "title": "Blog article versioning in Ruby on Rails - a post mortem", "url": "https://leonid.shevtsov.me/post/blog-article-versioning-in-ruby-on-rails-a-post-mortem/", "published_at": "2015-03-28T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343cf77d362", "title": "Blog comments in Ruby on Rails - a post mortem", "url": "https://leonid.shevtsov.me/post/blog-comments-in-ruby-on-rails-a-post-mortem/", "published_at": "2015-03-27T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343cfbe94c1", "title": "Best practice: use your global .gitignore", "url": "https://leonid.shevtsov.me/post/best-practice-use-your-global-gitignore/", "published_at": "2014-04-15T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d0612bb3", "title": "Fix for Raspberry Pi / ODROID silently failing to boot", "url": "https://leonid.shevtsov.me/post/fix-for-raspberry-pi-odroid-silently-failing-to-boot/", "published_at": "2014-04-14T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d0b306ab", "title": "No SSL, no problems", "url": "https://leonid.shevtsov.me/post/no-ssl-no-problems/", "published_at": "2014-04-09T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d104497b", "title": "Grapher", "url": "https://leonid.shevtsov.me/post/grapher/", "published_at": "2014-03-30T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d1c99aba", "title": "Сравнение ODROID-U3 и Raspberry Pi", "url": "https://leonid.shevtsov.me/post/sravnenie-odroid-u3-i-raspberry-pi/", "published_at": "2014-03-14T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d251024e", "title": "Чтобы выделить на что-то время, нужно у чего-то его забрать", "url": "https://leonid.shevtsov.me/post/chtoby-vydelit-na-chto-to-vremya-nuzhno-u-chego-to-ego-zabrat/", "published_at": "2014-03-14T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d26bf98f", "title": "Отзыв о доставке кофе с Square Mile Coffee Roasters", "url": "https://leonid.shevtsov.me/post/otzyv-o-dostavke-kofe-s-square-mile-coffee-roasters/", "published_at": "2014-03-09T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d317a723", "title": "Советы по выбору фильтровой кофеварки", "url": "https://leonid.shevtsov.me/post/sovety-po-vyboru-filtrovoy-kofevarki/", "published_at": "2014-03-09T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d3d11499", "title": "Кофейная зависимость", "url": "https://leonid.shevtsov.me/post/kofeynaya-zavisimost/", "published_at": "2014-03-05T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d4614b4c", "title": "Be so kind and warn users before navigating from an unsaved form", "url": "https://leonid.shevtsov.me/post/be-so-kind-and-warn-users-before-navigating-from-an-unsaved-form/", "published_at": "2014-03-02T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d4ff0a83", "title": "How to use PaperTrail for soft-deletion", "url": "https://leonid.shevtsov.me/post/how-to-use-papertrail-for-soft-deletetion/", "published_at": "2014-02-28T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d5a0006f", "title": "Memcached expiration time: a horrible API fail", "url": "https://leonid.shevtsov.me/post/memcached-expiration-time-a-horrible-api-fail/", "published_at": "2014-02-26T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d5a66ac7", "title": "Some of my chef definitions that help deploy Rails apps", "url": "https://leonid.shevtsov.me/post/some-chef-definitions-that-help-deploy-rails-apps/", "published_at": "2014-02-26T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d6304d38", "title": "How to find files with filenames that are too long", "url": "https://leonid.shevtsov.me/post/how-to-find-files-with-filenames-that-are-too-long/", "published_at": "2014-02-19T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d6af7d35", "title": "Two reasons not to use exFAT on your NAS", "url": "https://leonid.shevtsov.me/post/two-reasons-not-to-use-exfat-on-your-nas/", "published_at": "2014-02-19T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d7082f34", "title": "Windows context menu command to watermark images", "url": "https://leonid.shevtsov.me/post/windows-context-menu-command-to-watermark-images/", "published_at": "2014-02-13T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d747ab00", "title": "How to configure Dual WAN on AsusWRT routers", "url": "https://leonid.shevtsov.me/post/how-to-configure-dual-wan-on-asuswrt-routers/", "published_at": "2014-01-30T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d78732d6", "title": "SSH key forwarding with Chef deploy from git", "url": "https://leonid.shevtsov.me/post/ssh-key-forwarding-with-chef-deploy-from-git/", "published_at": "2014-01-30T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d7bc7fcc", "title": "Рекомендую: читалку Marvin для iPhone", "url": "https://leonid.shevtsov.me/post/rekomenduyu-chitalku-marvin-dlya-iphone/", "published_at": "2014-01-30T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d8ab01b9", "title": "Кемекс", "url": "https://leonid.shevtsov.me/post/chemex/", "published_at": "2014-01-29T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343d9985526", "title": "Рекомендую: сделать из Caps Lock \"гиперклавишу\"", "url": "https://leonid.shevtsov.me/post/rekomenduyu-sdelat-iz-caps-lock-giperklavishu/", "published_at": "2013-12-12T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343da5984db", "title": "Рекомендую: Humble New Tab Page для Chrome", "url": "https://leonid.shevtsov.me/post/rekomenduyu-humble-new-tab-page-dlya-chrome/", "published_at": "2013-12-10T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343dac61fff", "title": "Рекомендую: наушники AKG Q460", "url": "https://leonid.shevtsov.me/post/rekomenduyu-naushniki-akg-q460/", "published_at": "2013-12-05T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343db20ffda", "title": "Рекомендую: Scanner Pro - сканируй айфоном", "url": "https://leonid.shevtsov.me/post/rekomenduyu-scanner-pro-skaniruy-ayfonom/", "published_at": "2013-12-03T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343db772794", "title": "Отчет о хакатоне TCDisrupt Berlin 2013", "url": "https://leonid.shevtsov.me/post/otchet-o-hakatone-tcdisrupt-berlin-2013/", "published_at": "2013-11-05T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343dbcc7411", "title": "Improve your code with unit tests", "url": "https://leonid.shevtsov.me/post/improve-your-code-with-unit-tests/", "published_at": "2013-10-16T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343dc57712f", "title": "Unobtrusive flash messages for Rails", "url": "https://leonid.shevtsov.me/post/unobtrusive-flash-messages-for-rails/", "published_at": "2013-10-10T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343dc8b8089", "title": "Water, laptops, and how to assemble and install Macbook Air keys", "url": "https://leonid.shevtsov.me/post/water-laptops-and-how-to-assemble-and-install-macbook-air-keys/", "published_at": "2013-09-16T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343dd055139", "title": "Учеба в автошколе", "url": "https://leonid.shevtsov.me/post/ucheba-v-avtoshkole/", "published_at": "2013-08-28T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343ddb4cf3a", "title": "RSS blues", "url": "https://leonid.shevtsov.me/post/rss-blues/", "published_at": "2013-08-27T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343ddeb5535", "title": "Don't measure current without a load", "url": "https://leonid.shevtsov.me/post/don-t-measure-current-without-a-load/", "published_at": "2013-08-20T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343dee96245", "title": "Отчет о хакатоне 24hack", "url": "https://leonid.shevtsov.me/post/otchet-o-hakatone-24hack/", "published_at": "2013-08-19T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343df3b1931", "title": "A practical guide to Hackintosh", "url": "https://leonid.shevtsov.me/post/a-practical-guide-to-hackintosh/", "published_at": "2013-08-14T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343df6f43e5", "title": "Railsware нужны программисты на Ruby", "url": "https://leonid.shevtsov.me/post/railsware-nuzhny-programmisty-na-ruby/", "published_at": "2013-08-11T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343dfe7447a", "title": "Тот самый крик", "url": "https://leonid.shevtsov.me/post/tot-samyy-krik/", "published_at": "2013-08-06T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e04ca6cc", "title": "Making RVM play nicely with system scripts", "url": "https://leonid.shevtsov.me/post/making-rvm-play-nicely-with-system-scripts/", "published_at": "2013-08-05T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e06f81bb", "title": "Как проезжать лужи \"бродом\"", "url": "https://leonid.shevtsov.me/post/kak-proezzhat-luzhi-brodom/", "published_at": "2013-08-05T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e0b1f9ca", "title": "Горячие клавиши в Microsoft Word for Mac 2011 в русской раскладке", "url": "https://leonid.shevtsov.me/post/goryachie-klavishi-v-microsoft-word-for-mac-2011-v-russkoy-raskladke/", "published_at": "2013-07-25T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e16a1f0d", "title": "Хабрахабру не нужны пермалинки", "url": "https://leonid.shevtsov.me/post/habrahabru-ne-nuzhny-permalinki/", "published_at": "2013-07-22T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e2183d37", "title": "Make URLs clickable in Sublime Text", "url": "https://leonid.shevtsov.me/post/clickable-urls-in-sublime-text/", "published_at": "2013-07-16T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e2cb1a43", "title": "Технический спирт, он же денатурат", "url": "https://leonid.shevtsov.me/post/tehnicheskiy-spirt-on-zhe-denaturat/", "published_at": "2013-07-16T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e2e22c6e", "title": "Initscript hack that allows an application to control itself", "url": "https://leonid.shevtsov.me/post/initscript-hack-that-allows-an-application-to-control-itself/", "published_at": "2013-07-15T00:00:00+00:00" }, { "id": "01a08799-eec1-701d-b589-f343e33912a3", "title": "Кеды, кроссовки и сникерс", "url": "https://leonid.shevtsov.me/post/kedy-krossovki-i-snikers/", "published_at": "2013-07-14T00:00:00+00:00" } ] posts Claim your blog
Back to Leonid Shevtsov - software architect and blogger
Blog · corpus.blog/blogs/leonid.shevtsov.me/posts

Leonid Shevtsov - software architect and blogger

leonid.shevtsov.me

2026

2025

2024

2023

2022

2021

2020

2019

2018

2017

2016

2015

2014

2013