• Лучшая архитектура на базе Docker и Kubernetes — миф или реальность?

      Как изменился мир разработки ПО в эпоху Docker и Kubernetes? Можно ли построить архитектуру один раз и навсегда на базе этих технологий? Возможно ли унифицировать процессы разработки и интеграции, когда все "упаковано" в контейнеры? Какие требования предъявляются таким решениям? Какие ограничения несут они с собой? Упростят ли они жизнь простым разработчикам или сделают её тяжелее?



      Пришло время ответить на все эти и не только эти вопросы! (В тексте и оригинальных иллюстрациях)

      Читать дальше →
    • Kubernetes & production — быть или не быть?

        Сотни контейнеров. Миллионы внешних запросов. Миллиарды внутренних транзакций. Мониторинг и нотификации проблем. Простое масштабирование. 99% up time. Деплои и откатывание релизов.


        Kubernetes как решение всех проблем! «Быть или не быть?» — вот в чем вопрос!
        Читать дальше →
      • Неубиваемый Postgresql cluster внутри Kubernetes cluster

          Если вы когда-нибудь задумывались о доверии и надежде, то скорее всего, не испытывали этого ни к чему так же сильно, как к системам управления базами данных. Ну и действительно, это же База Данных! В названии содержится весь смысл — место, где хранятся данные, основная задача ХРАНИТЬ. И что самое печальное, как всегда, однажды, эти убеждения разбиваются об останки такой одной умершей БД на 'проде'.



          И что же делать? — спросите вы. Не деплоить на сервера ничего, — отвечаем мы. Ничего, что не умеет само себя чинить, хотя бы временно, однако надежно и быстро!


          В этой статье я попробую рассказать о своем опыте настройки почти бессмертного Postgresql кластера внутри другого отказоустойчивого решения от Google — Kubernetes (aka k8s)

          Читать дальше →
        • Немножко анонимен

            Обсуждение анонимности нужно начинать не со слов прокси/тор/впн, а с определения задачи: анонимно подключиться к чужому серверу по SSH это одно, анонимно поднять свой веб-сайт это другое, анонимно работать в инете это третье, etc. — и все эти задачи решаются по-разному. Эта статья о задаче «анонимно работать в интернете как пользователь».

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

            Во-первых, нужно адекватно оценивать потенциального противника. Если вы хотите быть «анонимным», значит вы пытаетесь избежать возможности связывания вашей активности в интернете с вашим физическим расположением и/или настоящим именем. Обычные пользователи и так не имеют возможности вас отслеживать (технически, социальные методы когда по вашему нику на форуме легко гуглится ваш аккаунт в соц.сетях со всеми личными данными мы здесь не рассматриваем). Ваш провайдер/соседи могут иметь возможность прослушать большую часть вашего трафика, но, как правило, вы им не интересны (да, соседи могут украсть ваши пароли, но заниматься отслеживанием вашей активности или вашей деанонимизацией они не станут). Что же касается владельцев используемых вами ресурсов (веб-сайтов, прокси/vpn-серверов, etc.) то у них в распоряжении множество средств по отслеживаю вас (DNS-leaks, Flash/Java-плагины, баннерные сети, «отпечатки браузера», множество разных видов кук, etc.) плюс серьёзный коммерческий интерес к тому, чтобы надёжно вас отслеживать (для таргетирования рекламы, продажи данных, etc.). Ну а правительство и спец.службы могут получить доступ и к данным, которые на вас собирают веб-сайты, и к данным, которые собирают провайдеры. Таким образом получается, что те, кто имеют возможность и желание вас отслеживать — имеют доступ к большинству возможных каналов утечки.

            Во-вторых, каналов утечки информации очень и очень много. И они очень разнообразны (от внезапно отключившегося VPN до получения реального IP через Flash/Java-плагины браузера или отправки серийника на свой сервер каким-нить приложением при попытке обновления). Более того, регулярно обнаруживаются (и создаются) новые. Поэтому попытка блокировать каждый из них в индивидуальном порядке, уникальными для каждого методами, просто не имеет смысла, всё-равно что-то где-то протечёт.

            В-третьих, при «работе в интернете» используется не только браузер — большинство пользуются так же IM, торрентами, почтой, SSH, FTP, IRC… при этом часто информация передаваемая по этим каналам пересекается и позволяет их связать между собой (.torrent-файл скачанный с сайта под вашим аккаунтом грузится в torrent клиент, ссылка пришедшая в письме/IM/IRC открывается в браузере, etc.). Добавьте сюда то, что ваша ОС и приложения тоже регулярно лазят в инет по своим делам, передавая при этом кучу деанонимизирующей вас информации…

            Из всего этого логически следует то, что пытаться добавить «немножко анонимности» путём использования браузера со встроенным Tor, или настройкой торрент-клиента на работу через SOCKS — нет смысла. Большинство вас не сможет отследить и без этих мер, а тех, кто имеет возможности и желание вас отследить эти меры не остановят (максимум — немного усложнят/замедлят их работу).
            Читать дальше →
          • Перестаньте называть себя программистом и другие карьерные советы

            • Translation
            Есть один курс, который я бы добавил в программу обучения по всякой инженерной специальности, и он не о компиляторах или сложности алгоритмов. Это “Введение в реальность индустрии”, ибо об этом не говорят и это приводит к никому не нужным обломам. Эта статья претендует стать README.txt для молодого инженера в деле построения карьеры. Ее цель — сделать вас счастливее, заполнив пробелы в образовании относительно того, как работает реальный мир. Я не призываю следовать написанному как подробному руководству, но я надеюсь, что эта информация окажется для вас более ценной, чем то ничто, что вам рассказали об этом в университете.
            Читать дальше →
          • Проверка соблюдения стандартов кодирования РHP через git

            В разработке проекта зачастую принимают участие разработчики разного уровня. Это приводит к тому, что нет строгого формата написания кода. За качеством кода на проекте приходится постоянно следить старшим разработчикам и это отнимает у них кучу времени.

            Для того чтобы наказать говнокодеров облегчить страдания тех, кто делает ревью кода, можно использовать автоматические средства проверки кода, которые всем давно известны. Это PEAR и PHP Code Sniffer.
            Читать дальше →
          • Написание программ на PHP с использованием fork()

              Параллельные программы на PHP


              Раньше заголовок темы был «Написание многопоточных программ на PHP». В PHP есть ровно один «нормальный» способ писать приложения, которые используют несколько ядер/процессоров — это fork(). О прикладном использовании системного вызова fork() в языке PHP и расширения pcntl я и расскажу. В качестве примера мы напишем достаточно быструю параллельную реализацию grep (со скоростью работы, аналогичной find . -type f -print0 | xargs -0 -P $NUM_PROCS grep $EXPR).
              Читать дальше →
            • Жизнь как 8-битная игра: Руководство

              • Translation
              • Tutorial
              Press Start
              Жизнь — игра, в которую играют буквально все. Эта статья — ваше руководство.

              Основы

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

                Апофеоз сотни холиваров и улучшения работы QA — чек-лист по юзабилити интернет-магазинов. В нем частично задействованы прошлые документы — чек-листы по формам и фильтрам. Пользуйтесь.


                Читать дальше →
                • +48
                • 66.8k
                • 4
              • PMBoK за 2.5 часа: интервью с Иваном Селиховкиным

                  Друзья, не знаю как вы, но мы не верим в быстродействующие таблетки. Мы не верим в «похудение за 2 недели на 40 кг». Черт побери, верить-то хочется, но реальность обычно против…

                  А тут целый PMBoK… Здоровенная такая штуковина, для больших и умных корпораций, а также неповоротливых гос.заказчиков… Как оказалось все не совсем. Для того, чтобы рассказать о чем-то сложном в понятной и доступной форме нужен практик, который разобрал вопрос до деталей, выделил главное, расставил акценты и прошелся по материалы с большим ярким маркером – читать тут, смотреть тут, применять вот так.

                  4 года назад менеджер по управлению проектами (PMI PMP), автор книги «Управление ИТ-проектом с нуля в любой организации» Иван Селиховкин выпустил бесплатный курс «Практический PMBoK за 5 дней», который на сегодня уже скачало более 7.000 человек. Однако, не так давно Иван пошел дальше и выпустил курс «Практический PMBoK за 2.5 часа» (доступен бесплатно после регистрации).

                  5 дней — я еще понимаю, но 2.5 часа — как-то того… отдает похуданием за 40 минут. :) Поскольку мы с Иваном давно сотрудничаем, то решили выяснить, как так получилось, что курс ужался с 5 дней до 2.5 часов. И начав говорить, поняли, что надо делать отдельное интервью. В итоге, обсудили массу тем:
                  • Как из медицины попасть в управление IT-проектами
                  • Почему последние годы процент успешных проектов не меняется
                  • Три шага на пути создания проектного офиса
                  • Что такое гос.заказчики геройские, бизнесовые и заурядные
                  • Есть ли противоречие между PMI и гибкими методологиями

                  image
                  Читать дальше →
                • [кейс] Как навести порядок снизу: за 90 дней от бардака к проектному офису

                    Не так давно мы проводили опрос по проблемам в проектах для нашей новой программы “Формула управления проектами”. Получили более 600 ответов, которые распределились в темы работы с заказчиком, оценок работ, сроков, коммуникаций и прочих безусловно нужных проектных вещей.

                    Интересным оказался эмоциональный настрой многих комментариев. Возникло четкое ощущение, что многие коллеги недовольны своей действительностью. Но при этом не знают, как ее изменить в лучшую сторону — и крайне недовольны этим. Отчего текущая действительность описывается достаточно красочными эпитетами. Эту же картину косвенно подтвердил и недавний опрос по методологиям.

                    Мы пригласили в студию нашего эксперта по управлению проектами Ивана Селиховкина (selikhovkin) и попросили поделиться историей наведения порядка. В итоге Иван рассказал историю о том, как он с коллегами по шагам за 90 дней привел компанию от хаоса к работающему проектному офису. Находясь при этом не на должности ТОП-менеджера. Все изменения шли СНИЗУ.



                    37 минут о том, как по шагам шла небольшая команда энтузиастов своего дела, чтобы увеличить число успешных проектов компании и сделать свою жизнь (и жизнь коллег) проще, успешнее, управляемей и правильней.

                    Если это видео придаст правильный заряд, будем категорически рады. Хороших выходных!

                    P.S. Если поможете нам с опросом по проблемам проектов — будем отдельно благодарны.

                    P.P.S. Краткое содержание истории по шагам — под катом:

                    По шагам: за 90 дней от хаоса к порядку
                    • +18
                    • 30.9k
                    • 9
                  • PhpStorm — повышаем производительность (клавиатурные сокращения). Часть 1

                    • Translation
                    • Tutorial
                    imagePhpStorm — повышаем производительность (плагины и темы оформления). Часть 2

                    У всех нас есть любимые IDE или редакторы в которых мы пишем код. Для меня это PhpStorm, и потребовалось некоторое время, чтобы освоить все клавиатурные сокращения и ускорить свой рабочий процесс. В этой статье я поделюсь с вами некоторыми сочетания клавиш и советами, которые возьмут на себя часть рутинной работы, если вы тоже делаете свою работу в этой IDE. Эта статья была частично вдохновлена этим Reddit тредом, и я буду упомянать и демонстрировать некоторые трюки найденные там.

                    Обратите внимание, что я разрабатываю на Linux в Vagrant, размещенном в Windows, я буду использовать клавишу CTRL вместо CMD. Если вы работаете в OS X, замените CTRL на CMD.

                    Клавиатурные сокращения и хаки


                    PhpStorm позволяет настроить себя практически до бесконечности — вы можете заточить этот инструмент под себя так, что постороннему может показаться, что это совсем другая IDE.

                    (осторожно, много gif изображений)
                    Давайте посмотрим, чем мы можем воспользоваться
                  • Создание кроссплатформенного Smart TV приложения на базе библиотеки SmartBox для Samsung, LG, Philips и других

                    • Tutorial
                    Ввиду живого интереса к прошлой статье о библиотеке Smartbox, которая призвана стать основой для любого кроссплатформенного SmartTv приложения, я решили описать, как же создать такое приложение разом для трёх вендоров SmartTv устройств:

                    image
                    Как создать приложение. Как использовать библиотеку. Как запустить на устройствах и эмуляторах
                  • Кроссплатформенное Smart TV приложение в одном экземпляре. Библиотека SmartBox для Samsung, LG, Philips, STB Mag 200/250 и других

                    Копаясь в памяти своего неискушённого идеальным миром мозга, я, припоминаю, как два года назад начиналась наша история по разработке приложений для SmartTv. Если коротко, то это был АД!!! богатейший опыт.

                    image


                    Однако, хотелось бы получить этот опыт сразу, не наступая на недокументированные грабли, разложенные по всей технологии, и специальные детские грабли разложенные каждым вендором отдельно. Но как говорится «c'est la vie» и нам пришлось пробиваться сквозь тернии к звёздам!

                    В итоге мы получили кроссплатформенную расширяемую библиотеку для всех SmartTv.
                    Описание, демки, скрины, видео данной библиотеки
                  • PHP Console 3.0 — важнейшее обновление за 3 года



                      Прошло 3 года с момента выхода первой версии, о которой вы могли читать в статье Как подружить PHP с консолью Google Chrome. За это время расширение набрало 43`000 активных пользователей, и, что не менее важно, в ноябре 2013 обновилось до версии 3.0. Несколько месяцев разработки, и получилась полностью переписанная, в несколько раз более функциональная версия.

                      Новый функционал PHP Console 3.0

                      • Отладка PHP ошибок и исключений (было в v1.1)
                      • Дамп переменных любого типа
                      • Выполнение PHP кода удалённо
                      • Защита соединения по паролю
                      • Группировка данных отладки по URL запроса
                      • Открытие файла-строки ошибки в вашей IDE по клику на кнопку в уведомлении
                      • Копирование данных ошибки/дампа в буфер обмена(для тестеров)
                      • Новый клиент-сервер протокол без ограничений на размер данных
                      • Новая PHP библиотека на GitHub
                      • Новый плагин для Yii
                      • Новый плагин для Laravel
                      • Новый плагин для Silex
                      • Новый модуль для Drupal (спасибо @Chi-teck)
                      • И многое другое...

                      В статье:

                      • Скриншоты
                      • Видео
                      • Список функций Google Chrome расширения
                      • Список функций PHP библиотеки
                      • Голосование за портирование на другие языки

                      Читать дальше →
                    • Покупаем Nexus 5 через Google Play

                      После успешного релиза смартфона Nexus 4 компании LG и Google вновь объединили усилия и анонсировали первый смартфон на основе самой свежей версии ОС Android — Android™ 4.4, KitKat®. Получивший новые характеристики смартфон Nexus 5 является самой тонкой и быстрой моделью в линейке устройств Google Nexus на сегодняшний день.

                      Для жителей Соединенных Штатов Nexus 5 продается в 4 модификациях:
                      • Nexus 5 (16 ГБ, черный) — 349$
                      • Nexus 5 (32 ГБ, черный) — 399$
                      • Nexus 5 (16 ГБ, белый) — 349$
                      • Nexus 5 (32 ГБ, белый) — 399$



                      На данный момент аппарат можно заказать в США. Но, к сожалению, для жителей СНГ раздел Устройства недоступен в Play Маркет'е. Поэтому просто положить товар в корзину, ввести адрес и оплатить — не получится. Но не будем отчаиваться и попытаемся обойти этот запрет. В статье я постараюсь максимально подробно рассказать о процедуре покупки и различных тонкостях. Начнём!
                      Читать дальше →
                    • Паттерны ООП в метафорах

                        Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
                        Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
                        Читать дальше →
                      • Ungit — самый простой способ использовать Git

                          Доброго времени суток уважаемые хабражители. Буквально только что увидел потрясающий проект на GitHub от FredrikNoren.



                          Ungit:


                          • Чистый и интуитивно понятный интерфейс для Git (что есть невероятно круто для освоения Git)
                          • Работает на любой платформе с установленными Node.js и самим Git
                          • Веб-ориентированный. Возможность запускать его в облаке.
                          • GitHub

                          Необходим Node.js версии 0.10 или выше и npm версии 1.3.1 или выше
                          Установка

                          npm install -g ungit

                          Я думаю, что после просмотра видео, моего более тщательного описания не потребуется. Спасибо всем за внимание.
                        • Мифы об ответственности за пиратское ПО

                            Привет! Сегодня хотим поднять тему, связанную с ответственностью за незаконное программное обеспечение.



                            2 недели назад мы провели для участников сообщества СмартCIO на эту тему вебинар, и судя по рекорду (для сообщества) в 170 одновременных слушателей, тема сия весьма и весьма актуальна.

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

                            Итак, поехали.
                            Читать дальше →