• Олды в ИТ

      Когда ты молод, ты «бессмертен» и не задумываешься о старости. Есть просто уверенность, что если много и хорошо работать, то твоя карьера и доходы будут неуклонно расти. Следуя этой стратегии, ты развиваешься в профессии уже 15, 20, 30 лет. За эти годы уже получил огромный опыт и, наверное, он обязательно поможет безбедно и интересно прожить остаток дней. Но все не так просто. Да, ты уже давно работаешь в хорошей компании, занимаешься интересными проектами, получаешь за это достойную зарплату, но в будущем уже не так уверен, как раньше. Профессиональный возраст приходит с массой вопросов, на которые нужно ответь стратегически.

       Эта статья родилась на основе обсуждения горячей темы «Олды в ИТ», которую 4 января 2021 г. мы записали для подкаста Linkmeup. Обязательно послушайте запись здесь или в любимом подкаст-приложении.

      Читать далее
    • Путь к ООП: Взгляд инженера

      • Tutorial

      Дисклеймер


      Статья не предполагает какой-то принципиально новый взгляд на вещи, кроме как с точки зрения изучения этого материала с «абсолютного нуля».


      Материал основан на записях примерно 7-летней давности, когда мой путь в изучении ООП без IT-образования только начинался. В те времена основным языком был MATLAB, много позже я перешел на C#.

      Изложение принципов ООП, которое я находил, с примерами в виде каких-то яблок, груш, унаследованных от класса «фрукты» и кучей терминологии (наследование, полиморфизм, инкапсуляция и т.п.), — воспринималось как китайская грамота.

      Напротив, теперь же я почему-то воспринимаю подобный материал нормально, а изложение из своей же статьи временами кажется заморочным и длинным.

      Но мои старые заметки и сохранившийся ужасный код на голодисках в пипбое говорят о том, что «классическое» изложение не выполняло в те времена свои функции, и было совершенно неудачным. Возможно, в этом что-то есть.

      Насколько это соответствует действительности и вашим собственным предпочтениям, — решайте сами…
      Читать дальше →
    • Технология Solid: пришло время для перестройки веба


        Сэр Тим Бернерс-Ли на Campus Party 2008, фото Jonan Basterra

        Сэр Тим Бернерс-Ли, создатель Всемирной паутины и директор консорциума W3C, уверен, что развитие веба достигло критической точки, максимально отклонилось от изначальной концепции. Изначально он задумывался как децентрализованная сеть, где первый браузер одновременно был и редактором документов. Идея состояла в том, что каждый пользователь не только сможет просматривать документы, но и создавать, редактировать их. Веб должен был стать местом совместного творчества и сотрудничества для всего человечества. Но что-то пошло не так.

        Есть примеры удачной реализации совместного творчества, как Википедия, децентрализованный хостинг сайтов и пиринговые социальные сети. Это предвестники того, каким может стать веб на основе новой технологии Solid, которую разработал Тим Бернерс-Ли совместно с группой исследователей из Массачусетского технологического института. Это венец десятилетий концептуальной работы, которой занимался Бернерс-Ли.
        Читать дальше →
      • Блокчейн 101: книги, исследования и статьи по теме

          Мы подготовили дайджест из 30 полезных материалов о блокчейне: это книги, статьи, видео для тех, кто «что-то слышал, но хочет лучше разобраться в теме». Этот список мы формировали на основе собственных материалов и исследований, а также рекомендаций резидентов платформ Hacker News, Quora, Reddit.

          Как устроены смарт-контракты, как объяснить концепцию биткойна ребенку и (самое интересное) как сделать свой собственный блокчейн — обо всем под катом.

          Читать дальше →
          • +16
          • 34.6k
          • 4
        • Разработка транзакционных микросервисов с помощью агрегатов, Event Sourcing и CQRS (Часть 1)

          • Translation

          Предлагаем вашему вниманию перевод первой части полезной статьи о том, как разрабатывать транзакционные бизнес-приложения, используя микросервисную архитектуру.

          Микросервисная архитектура становится всё более популярной. Это модульный подход, при котором приложение функционально разделяется на отдельные сервисы. В результате разработчики больших и сложных приложений могут быстрее выпускать качественный софт. При таком подходе им проще осваивать новые технологии, так как появляется возможность реализовывать каждый отдельный сервис с помощью наиболее подходящего и современного стека технологий. Микросервисная архитектура также улучшает масштабируемость приложений за счет возможности развёртывать каждый отдельный сервис на оптимальном для него оборудовании.

          Однако микросервисы являются не таким уж простым и универсальным решением. В частности, модели предметной области, транзакции и запросы удивительно устойчивы к разделению по функциональному признаку. В результате разработка транзакционных бизнес-приложений с использованием микросервисной архитектуры является довольно сложной задачей. В этой статье мы рассмотрим способ разработки микросервисов, при котором эти проблемы решаются с помощью паттерна проектирования на основе предметной области (Domain Driven Design), Event Sourcing и CQRS.
          Читать дальше →
        • Я устал

            Создание программных продуктов – это стиль, это умение думать, понимать. Часто программистов ассоциируют с архитекторами, которые строят будущее жилище для людей, которое будет удобным, качественным и т.д.

            Однажды я столкнулся с такой вакансией:

            Текст вакансии

            Требования:
            Опыт поисковой оптимизации сайтов (SEO).
            Опыт разработки с использованием LINQ, WCF, WPF, Silverlight, VBA.
            Опыт работы с ORM-платформами.
            Опыт командной разработки и использования систем управления версиями.
            Наличие сертификатов.
            Хорошие коммуникационные навыки.
            Высшее техническое образование (информационные технологии, информационные системы, вычислительные системы).
            Кроссбраузерная вёрстка.
            Отличное знание XHTML/Javascript/CSS, Ruby on Rails, Perl, PHP, C++, Java, SQL, СУБД Oracle Enterprise, Microsoft SQL Server.
            Владение графическими пакетами: Adobe Photoshop, CorelDraw

            Опыт работы с различными CMS (Joomla, Drupal, NetCat, WP).
            Опыт разработки и уверенное знание платформы .NET, языка C#, технологии ASP.NET и ASP.NET MVC.
            Опыт работы в среде Visual Studio 2005/2008.
            Отличное понимание принципов ООП.
            Уверенное знание теории БД, опыт проектирования БД, опыт работы с промышленными СУБД, знание языка SQL и опыт написания запросов.
            Знание принципов, подходов и архитектуры построения традиционных телефонных и IP-телефонных сетей;
            Опыт участия в проектах по внедрению и сопровождению систем обработки и передачи голосовой информации;
            Опыт работы с оборудованием Cisco (Catalyst, ISR/ISR G2);
            Знание ПО Cisco Systems (Unified Communications Manager, Unified Contact Center Express);
            Знание ОС Windows XP/2003/2008, AD, exchange, DNS, DHCP, Proxy, Firewall, MS ISA Server, Terminal Server, VPN

            Провернув вверх, я увидел, что требовался «Помощник программиста».
            На мой вопрос друзьям–программистам чем же он отличается от обычного (хотя, тут больше подойдет необычного) программиста я получил ответ – наличием бороды.
            К чему я все это?
          • Стоит ли использовать русские буквы в написании ЧПУ — человекопонятных URL?

               

              Only registered users can participate in poll. Log in, please.

              Стоит ли использовать русские буквы в написании ЧПУ — человекопонятных URL?

              • 22.3%www.example.ru/Детская_одежда (как в Википедии)516
              • 50.4%www.example.ru/detskaya-odezhda (как рекомендует Google)1165
              • 5.5%Использование любых ЧПУ является злом!127
              • 21.9%I hate SEO peoples!506
            • Что такое консалтинг?

                Слово “консалтинг” стало нынче очень модным и популярным, однако большинство из тех, кто его употребляет, не могут ответить на простой вопрос: “А что же представляет собой консалтинг?”
                Читать дальше →
                • –2
                • 1.3k
                • 4
              • Профессиональная иммиграция в Австралию, IT и жизнь на другом континенте

                Навеяно несколькими хорошими статьями на Хабре, посвященным иммиграции, учебе и работе в разных странах, включая Австралию.

                Собственно хочу поделиться собственным опытом получения независимой иммиграционной визы, переезда, работы и жизни в Австралии. До сих пор так до этого руки и не дошли, если не считать рассказов друзьям тет-а-тет, а опыт-то на самом деле довольно интересный. Это может быть полезно как состоявшимся специалистам в области IT, которые ищут дальнейших перспектив для своей карьеры, жизни, или просто хотят сменить обстановку или климат, так и начинающим специалистам и, возможно, студентам, которые ищут правильное направление для своей карьеры. Всем остальным может быть интересно узнать подробнее как IT и повседневная жизнь выглядят за океаном.



                Читать дальше →
              • Что же не так с QR-кодами?


                  Прекрасная картинка неизвестного автора

                  Я долго не писал эту статью. На протяжении полугода я регулярно практиковал попытки пройти в поликлинике к докторам без очереди и хамское вождение с московскими номерами в глубинке, чтобы стать толстокожим и невосприимчивым к ненависти (даже НЕНАВИСТИ!!!1), которая прольётся на меня после этой статьи. Это неизбежно, так как Хабр — гик-ориентированный ресурс, а QR-коды — гик-технология. Они уже получили широкое распространение и теплую поддержку от гиков Хабра, так что будущее у меня в мрачных оттенках. Не удивлюсь бритвенным лезвиям в почтовом ящике и молчаливому дыханию в телефонную трубку от полуночных незнакомцев.

                  Видимо, для апологетов QR-кодов эта технология — возможностью приблизить будущее, шагнуть в прекрасный мир завтрашнего дня с дополненной реальностью из всех этих многочисленных видеороликов и фильмов про будущее с прозрачными дисплеями, что-то разобрать на которых можно только при отсутствии просвечивающегося пёстрого бабушкина ковра на стене. Гики радуются любому новому примеру использованию QR-кода, даже если это помогающая рассказывать сказки детская пижама с QR-кодами, надгробия, коровы. И с мечтательным видом прогнозируют, что в будущем QR-коды будут повсеместно. По моему мнению, такой вариант событий можно описывать в антиутопиях, что-нибудь вроде «Мы» Замятина.

                  Для создания видимости аргументов в защиту своего мнения я мог бы устроить тут филиал wtfqrcodes.com и со злыми комментариями публиковать самые неудачные и даже опасные случаи использования QR-кодов, завершив всё это ссылкой на понятную инструкцию. Но эта демагогия не поможет прийти к цели — понять суть проблемы QR-кодов, так что passive-aggressive mod off, и давайте разберемся.

                  Так что же с ними не так?
                • Fenom — yet another PHP template engine

                    Доброго времени суток. Вышла первая стабильная версия нового шаблонизатора Fenom. Для нетерпеливых, Fenom — это легковесный (статистика прилагается), быстрый (бенчмарк прилагается), гибкий (API прилагается) шаблонизатор, который может стать удачной заменой шаблонизаторам Twig или Smarty.
                    Заинтересовавшихся прошу под кат
                  • Четыре навыка владения иностранным языком

                      В данной статье я постараюсь пересказать вам опыт изучения иностранных языков, полученный мной в течение последних двух с половиной лет. Статья раскрывает наиболее эффективные методики изучения языка, которые я использую, также раскрывает кучу советов по изучению языков.

                      Сразу скажу что здесь я говорю только от первого лица и исходя из своего опыта, который возможно подойдёт не всем. Но, однако, как я заметил, очень много солидных лингвистов пользуются именно этими методиками изучения языков. В любом случае вы вольны использовать или не использовать этот опыт на практике, либо использовать опыт других людей, либо вырабатывать свой собственный.

                      Статья изначально была просто сообщением в скайп моему другу. Однако, после того как я заметил что объём информации уже занимает 3 страницы формата A4, решил переобразовать это сообщение в полноценную статью, которую вы можете лицезреть.
                      Читать дальше →
                    • 3D принтер UP! — обзор и первая печать

                        Про пистолет я уже писал, а вот про принтер, который этот самый пистолет не напечатал — нет. Сегодня я расскажу о 3д-принтере UP! Plus китайской компании PP3DP, продажей которого в РФ занимается компания 3DP Home.
                        image
                        По классификации принтеров, которую я уже описывал, принтер относится к классу «X Head/ZY Bed». Если говорить простым языком — головка перемещается только по оси X(если смотреть на принтер спереди — вправо-влево. Впрочем, если смотреть на принтер сзади, будет тоже самое), а платформа, на которой находит печатающий обьект — вверх-вниз, и ближе-дальше. В общем-то, UP это единственный известный принтер этой категории.
                        Да-да, нажми меня.
                      • Как стать руководителем

                        • Translation


                        Мы в Alconost’е очень любим стройную мысль в хорошем изложении. Именно так пишет Бен Хоровиц, в далеком прошлом — обычный программист, а сегодня — соучредитель одного из самых успешных мировых венчурных фондов. В свободное от инвестирования время Бен делится всеми нажитыми знаниями в своем блоге. Мы не можем молчать. Впечатлились и перевели один из его постов, очень уж он хорош и полезен.

                        Управленцы, налетай!

                        Читать дальше →
                      • Пишем одностраничный клиент на javascript

                          Данная статья является вольным переводом. Оригинал тут.

                          Введение


                          Думаю, ни для кого не секрет, что клиентские приложения в современных веб-сервисах становится все сложнее и количество JS кода в них растет. До недавнего времени архитектура клиентской части, как правило, разрабатывалась с нуля и была специфична для каждого проекта. Не удивительно что приходилось снова и снова сталкиваться с типичными задачами.
                          К MVC-фреймворкам на серверной стороне все уже привыкли, но JS код на клиенте часто бывает плохо структурирован.

                          Предлагаю ознакомиться с решением на базе backbone.js, underscore.js и jQuery, которое поможет решить эту проблему.

                          Постановка задачи


                          Каким бы мы хотели видеть наше приложение? Вот основные моменты, которые мне кажутся важными:
                          1. Должен быть удобный способ описать модели нашей предметной области.
                          2. Любые изменения в модели должны немедленно отражаться в пользовательском интерфейсе, если модель в нем представлена каким-либо образом.
                          3. Понятная и легко-поддерживаемая структуризация кода в стиле MVC.


                          Попробуем решить эти задачи на примере простого приложения «Каталог фильмов».
                          Поехали!
                        • Пишем игру для Samsung SmartTV на JS

                            Всем привет. Я по долгу службы занимаюсь разработкой для Samsung SmartTV. В силу того, что на хабре мало статей на эту тему, я решил это исправить. Кому интересна пошаговая инструкция как сделать свой пинг-понг на «умный телик» с распознованием жестов — милости прошу под кат.
                            Читать дальше →
                          • Suggest.io: на пути к идеальному поиску

                              Живой поиск для вашего сайта


                              Поиск по сайту — проблема для большинства Интернет-ресурсов. Создание собственного поиска занимает время и требует навыков тонкой настройки поисковой системы. Если владелец сайта заинтересован, чтобы его поиск оставался актуальным, ему нужно иметь «под рукой» специалиста, который постоянно занимается совершенствованием алгоритма релевантности, индексом, базой запросов и т.д. Всё это хлопотно, поддержка собственного поиска требует серьезных затрат.

                              Suggest.io восполняет этот пробел. Новый сервис ближе других подошёл к решению задачи организации живого поиска по сайту c минимумом затрат времени на установку.

                              image

                              Читать дальше →
                            • Бесшовная миграция MySQL 5.0 -> Percona Server 5.5 с переразбивкой хранилища

                                Здравствуйте.

                                Хочу поделиться опытом миграции боевой базы данных с MySQL 5.0 на Percona Server 5.5 под нагрузкой почти без отрыва от производства.

                                Опишу вкратце эволюцию нашей базы до текущего состояния


                                База у нас древняя, пережила несколько апгрейдов MySQL. Начинали с MySQL 3.x. С ростом нагрузки, уже на MySQL 5.0, настроили репликацию и подключили еще один сервер для чтения. Тогда мы это делали стандартными средствами MySQL, без привлечения xtrabackup — полностью блокировали сервер на время создания мастер-дампа и вывешивали на сайтах заглушки.

                                Затем встала следующая проблема — на томе с данными стало заканчиваться место. Плюс InnoDB-хранилище исторически располагалось в одном файле. Было рассмотрено много вариантов решения. Начиная от размещения базы на iSCSI-томе и заканчивая перетыканием в рейд более емких дисков, расширением на них volume group / logical volume с последующим расширением файловой системы.

                                В качестве временного варианта решили подключить iSCSI-том из виртуалки под VMWare vCloud (не реклама, честно!). vCloud стоит у нас под боком.
                                Читать дальше →
                                • +30
                                • 17.9k
                                • 9
                              • Трансляция прыжка с высоты 36 километров



                                  На прошлой неделе с помощью нашего сервиса Ivideon на сайте hi-testing.ru можно было наблюдать появление на свет цыплят в реальном времени. Ребята огромные молодцы, что сумели воплотить в жизнь старую добрую сказку Николая Носова. То, о чем наверняка многие мечтали еще в детстве, но так и не реализовали, когда выросли.

                                  И сейчас я бы хотел рассказать вам о трансляции, которую, к сожалению, делаем не мы, но на которую стоит обратить свое внимание.
                                  Читать дальше →
                                • TeamLab — перезагрузка

                                    Новый сезон начался, почти все вернулись из отпуска и включились в работу. Самое время рассказать, какие обновления ждут TeamLab в версии для SaaS 7.0, которая уже доступна в режиме beta. Мы называем новую версию перезагрузкой не просто ради красного словца, а потому что реализовали значительные изменения в интерфейсе, сделав его более унифицированным для всех модулей, добавили новые инструменты, а также оптимизировали и дополнили целый ряд уже существующего функционала. Теперь по порядку.

                                    Читать дальше →