• Отправляем рутину и бюрократию в прошлое или как большим и средним предприятиям оставаться на вершине айсберга

      Довольно часто так случается, что с ростом предприятие превращается из динамично развивающегося в медленно разлагающееся. Предприятие обрастает формализмом и от него истощается болотистый запах и вроде цели благородные – спасти от злого умысла внешних или внутренних угроз, но в итоге предприятие зарастает сводом приказов, в которых и разобраться, то довольно проблематично, я уже не говорю про то, чтобы исполнять. Т. е. с одной стороны рынок диктует условия, в которых нужно упростить жизнь потребителю, с другой стороны защита предприятия должна выдерживать напасти окружающей среды. И как же здесь быть?

      Как сделать так, чтобы предприятие постоянно динамично развивалось, и сотрудники получали адекватную оплату в соответствии со своими трудовыми вложениями? Как быть с проблемой неравномерной нагрузки на сотрудников предприятия, разной эффективностью подчиненных одного ранга при одинаковой оплате труда? Кто хочет, чтобы его работа в основе своей была творческой? Если Вы руководитель, то готовы ли Вы потратить свое драгоценное время в большом количестве до запуска УБПС (Управленческой Бонусно-Процессной Системы), чтобы после получить мощное ускорение развития предприятия и увеличение прибыли?
      Читать дальше →
    • Архитектура чистого кода и разработка через тестирование в PHP

      • Перевод

      Перевод статьи Vitalij Mik Clean Code Architecture and Test Driven Development in PHP

      Понятие «архитектура чистого кода» (Clean Code Architecture) ввел Роберт Мартин в блоге 8light. Смысл понятия в том, чтобы создавать архитектуру, которая не зависела бы от внешнего воздействия. Ваша бизнес-логика не должна быть объединена с фреймворком, базой данных или самим вебом. Подобная независимость даёт ряд преимуществ. К примеру, при разработке вы сможете откладывать какие-то технические решения, например выбор фреймворка, движка/поставщика БД. Также вы сможете легко переключаться между разными реализациями и сравнивать их. Но самое важное преимущество такого подхода — ваши тесты будут выполняться быстрее.

      Просто подумайте об этом. Вы действительно хотите пройти роутинг, подгрузить абстрактный уровень базы данных или какое-нибудь ORM-колдовство? Или просто выполнить какой-то код, чтобы проверить (assert) те или иные результаты?
      Читать дальше →
    • Рендеринг двунаправленного текста с поддержкой диакритиков

        Введение


        В этой статье я поделюсь опытом как в собственный TextBox была добавлена поддержка двунаправленного текста с правильным отображением диакритиков с использованием FriBidi и HarfBuzz. Это вторая статья на эту тему, а первой была Добавление поддержки двунаправленного текста в собственный TextBox. В ней я описывал особенности добавления арабского в собственный текст с использованием FriBidi.

        Пример арабского текста

        Читать дальше →
        • +18
        • 7,9k
        • 9
      • Почему ваш любимый мессенджер должен умереть

          image
          Кладбище мессенджеров, на котором обязательно должны оказаться Skype, Viber, WhatsApp, Hangouts, ooVoo, Apple iMessage, Telegram, Line, Facebook messenger и еще сотни мессенджеров, которым только предстоит выйти в ближайшее время.

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

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

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

          image

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


          Читать дальше →
        • В клиенте OpenSSH обнаружена серьёзная уязвимость CVE-2016-0777


            Сегодня стало известно о новой уязвимости в клиенте OpenSSH получившей идентификаторы CVE-2016-0777 и CVE-2016-0778. Ей подвержены все версии программы от 5.4 до 7.1.

            Обнаруженный баг позволяет осуществить атаку, приводящую к утечке приватного ключа. Аутентификация ключа сервера предотвращает атаку типа man-in-the-middle, так что злоумышленникам понадобится сначала получить доступ к машине, на которую вы пытаетесь зайти. Хотя, при подключении к машине впервые, не сверяя ключ, MITM возможен.

            До тех пор пока вы не обновите уязвимые системы рекомендуется использовать следующий фикс:
            echo -e 'Host *\nUseRoaming no' >> /etc/ssh/ssh_config
            

            Обновления для различных ОС уже выходят, в том числе выпущена portable версия OpenSSH 7.1p2.

            Клиент OpenSSH версий от 5.4 до 7.1 содержит код экспериментальной функции «roaming», позволяющей продолжать сессии. Серверная часть этой функциональности никогда не была опубликована, но существующий код клиента уязвим — злоумышленники могут получить часть памяти клиентской машины, содержащую приватный ключ. По умолчанию эта функция включена, поэтому узявимость достаточно серьёзна.
            Читать дальше →
          • Коллекция практических советов и заметок по вёрстке

              CSS Refresher


              Это большая коллекция практических советов и заметок по вёрстке. Своеобразная памятка для тех, кто каждодневно использует CSS. Освещаются самые разные темы, от деталей поведения плавающих элементов до использования SVG и спрайтов. Проект постоянно обновляется, активное сообщество github также принимает в нем участие, там добавляются интересные замечания, о которых, возможно, вы и не слышали.

              От переводчика


              Приветствую всех, меня зовут Максим Иванов, и сегодня я подготовил для вас перевод заметок разработчика из Сан-Франциско Васанта Кришнамурти (Vasanth Krishnamoorthy) «CSS Refresher». Web-программирование одна из самых быстро развивающихся отраслей в наше время. Казалось бы, возьми какой-нибудь видеокурс на tuts+ и освой html-верстку, однако, как говорил разработчик Opera Software Вадим Макеев, выступая на конференции CodeFest, они все равно это делают плохо. Но давайте посмотрим, может мы итак все это знаем.

              Содержание


              1. Позиционирование (position)
              2. Отображение элемента в документе (display)
              3. Плавающие элементы (float)
              4. CSS селекторы
              5. Эффективные селекторы
              6. Переотрисовка и перерасчет
              7. CSS3 свойства
              8. CSS3 медиа-запросы
              9. Адаптивный web-дизайн
              10. CSS3 переходы
              11. CSS3 анимации
              12. Масштабируемая векторная графика (SVG)
              13. CSS спрайты
              14. Вертикальное выравнивание
              15. Известные проблемы

              Читать дальше →
            • Перевод: Трагедия common lisp

              • Перевод
              Вашему вниманию предлагается перевод письма Марка Миллера, одного из участников комитета по стандартизации JavaScript. В этом письме Марк рассказывает, к чему может привести «ползучий фичеризм» при дизайне языков программирования. И почему он не хочет добавлять в javascript синтаксис «let-block».
              Почитать, что придумал гранд-мастер оправданий
              • +29
              • 15,7k
              • 8
            • Охота на грызунов под Linux

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

              Для этого я сочинил для себя несложный скрипт ratcatcher.sh который вы сможете модифицировать под свои системы и задачи.

              Принцип работы несложный — скрипт запускается с заданной периодичностью, проверяет уровень Load Average (вы можете использовать другие контрольные параметры) и в случае превышения заданной величины скрипт выполняет заданный набор диагностических команд с созданием отчета который высылается на указанный вами почтовый адрес.
              Читать дальше →
            • Большой обзор красивых многоуровневых меню с codepen



                Хабр, привет!

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

                Раньше я их выкладывал в группе продукта облачной IDE mr. Gefest, это были сборки из 5-8 решений. Но теперь у меня стало скапливаться по 15-30 скриптов в разных тематиках (кнопки, меню, подсказки и так далее).

                Такие большие наборы следует показывать большему числу специалистов. Поэтому выкладываю их на Хабр. Надеюсь они будут Вам полезны.
                Читать дальше →
              • Случайности не случайны?

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



                  Читать дальше →
                • Как мы перешли со Scala на Go

                  • Перевод
                  Перевод статьи технического директора компании CrowdStrike, о том, как и почему они перешли со Scala на Go по мере роста компании с 5 до 200+ человек.

                  Scala долгое время была частью стека нашей компании CrowdStrike, по сути даже главным языком. Я помогал внедрять Scala когда мы начали разрабатывать наш софт в 2012-м году. На самом деле, это было даже одной из главных причин моего перехода в CrowdStrike. Несколько основных разработчиков были заинтересованы во внедрении Scala, так что это был хороший вариант для всех.

                  Я перешёл из компании Gravity, которая достаточно активно использовала Scala. Это был основной язык в компании. Я привык к нему, мне он нравился, я видел его мощь и был уверен, что смогу предотвратить некоторые из сложностей, которые я видел в Scala, по мере того, как CrowdStrike будет расти. Мы делали высоконагруженную аналитику, batch-задачи на Hadoop и наш Chief Architect (привет, Биссел!) использовал лямбда-архитектуру задолго до того, как это стало модно.

                  Недавняя цитата от одного из наших senior-разработчиков заставила меня таки написать этот пост, описывающий, почему мы перевели большую часть нашего стека на Go, и почему новые сервисы мы по-умолчанию теперь пишем именно на Go.
                  Читать дальше →
                • Черный пиар Telegram. Кому верить?

                    image Недавно на Geektimes подняли шум со статьей «Плохой Telegram» или Как я не взял денег за черный пиар Telegram на Хабрахабре. В итоге выяснили, что знакомый Бурумыча читает переписку дочери и что приветствие «Добрый день» лучше чем «Доброго времени суток».

                    Дабы вбросить в вентилятор полезной информации, мы со специалистами компании Edison сделали подборку публикаций про Telegam и безопасные мессенджеры, чтобы пытливый читатель мог самостоятельно сделать вывод (а не получить «проплаченную» экспертизу) чему стоит доверять и чем пользоваться для своих целей. Про уровень доверия/желтизны СМИ предлагаю решить читателю самостоятельно.

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

                    Какими критериями пользоваться для оценки безопасности мессенджеров, можно подсмотреть у борцов за цифровую неприкосновенность — Electronic Frontier Foundation (EFF). Кстати, вопрос, являются ли эти критерии исчерпывающими или нужны дополнительные (например, про маскировку метаданных)?

                    Чтобы повысить градус объективности и независимости, прошу высказаться в комментах тех, кто разбирается в вопросе по поводу безопасности мессенджеров.

                    На основе каких данных можно делать выводы?
                    Читать дальше →
                  • Достаточно Git-а, чтобы быть (менее) опасным

                    imageТы просто-напросто ненавидишь Git? Ты абсолютно счастлив с Mercurial (или, фу, с Subversion), но раз в месяц тебе приходится отважно сталкиваться с Git, потому что каждый, даже его чертова собака, теперь использует GitHub? Тебя терзают смутные подозрения, что половина всех команд Git на самом деле удалят всю твою работу навсегда, но ты не знаешь какие именно и не хочешь проводить три недели, углубляясь в документацию?

                    Хорошие новости! Я написал тебе этот изумительный Интернет-пост. Я надеюсь, что смогу размазать достаточно Git-а по твоему лицу, чтобы понизить вероятность сделать что-то непоправимое, а так же уменьшить твой страх что-то сломать. Этого должно быть также достаточно, чтобы сделать документацию Git немного более понятной; она крайне тщательно и глубоко проработана и очень глупо, если ты все еще не прочитал половину.

                    Я постараюсь излагать коротко, но также, чтобы это было потенциально полезно тем людям, кто вообще никогда не сталкивался с контролем версий, поэтому повсюду будет разбросан 101 совет. Не бойся! Я не думаю, что пользователи Mercurial понятия не имеют, что такое патч.
                    Но подожди! Там еще...
                  • Стиль именования коммитов

                      the Octobi Wan Catnobi

                      Про многие моменты разработки есть очень много информации. Как писать комментарии, как именовать классы, методы, какие паттерны использовать и т.д. и т.п. Но есть одна область, в которой многие даже и не задумываются о том, что можно что-то улучшить — это написание коммитов.
                      Читать дальше →
                    • Двухпанельный веб-файл менеджер Cloud Commander

                        Файловых менеджеров много, но есть один, о котором, думаю, будет многим интересно узнать. Ведь он двухпанельный, работает в браузере, оснащён редактором (с подсветкой синтаксиса) и консолью, состоит из клиента и сервера, а написан на JavaScript/Node.js.



                        Читать дальше
                      • Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №186 (15 — 22 ноября 2015)

                          Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости

                          Читать дальше →
                          • +21
                          • 27,2k
                          • 3
                        • Flexbox для интерфейсов во всей красе: Реализация Tracks (Часть 1)

                          • Перевод
                          Дни ухищрений с float и margin наконец позади, так как сегодня CSS предлагает разработчикам новые улучшенные возможности, которые отлично подходят для деликатных раскладок. Такие функции раскладок, как вертикальное выравнивание, равномерное распределение свободного пространства, управление порядком исходного кода и прочие шаблоны, вроде «липких» футеров, довольно легко воплотить с помощью flexbox.

                          В этой статье мы рассмотрим шаблоны раскладки, которые подходят для flexbox, используя интерфейс приложения Tracks, в котором также используются принципы атомного дизайна. Я расскажу вам, как flexbox доказал свою эффективность, и укажу некоторые подводные камни использования его вместе с определенными шаблонами раскладки. Мы рассмотрим шаблоны, которые создают проблемы, приведем примеры запасных вариантов и поделимся дополнительными тактиками того, как начать использовать данное свойство CSS немедленно.

                          Часть 2
                          Читать дальше →
                          • +6
                          • 14,1k
                          • 1
                        • Flexbox для интерфейсов во всей красе: Реализация Tracks (Часть 2)

                          • Перевод
                          Продолжаем перевод статьи smashingmagazine, в котором подробно рассмотрены все нюансы разработки интерфейсов с помощью flexbox на примере сайта Tracks.

                          Часть 1
                          Читать дальше →
                          • +7
                          • 13,3k
                          • 6
                        • 400 потрясающих бесплатных сервисов

                          • Перевод

                          Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

                          И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



                          A. Бесплатные веб-сайты

                          • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
                          • Bootswatch: Бесплатные темы для Bootstrap.
                          • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
                          • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
                          • Strikingly: Конструктор веб-сайтов.
                          • Layers: Создание сайтов на WordPress (new).
                          • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
                          • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
                          Читать дальше →