• Приводим в порядок css-код. Опыт Яндекса

      Всем привет!

      Я работаю над фронтендом огромного проекта — поисковой выдачи Яндекса. И у нас, как и у любого другого большого веб-проекта, есть огромное количество css-кода и немаленькая команда, которая с ним взаимодействует.

      Когда много людей, используя разные инструменты, пишут и редактируют css, со временем этот css может получиться очень запутанным, неконсистентым и в целом начинает выглядеть плохо. Например, кому-то удобнее писать вендорные префиксы в одном порядке, кому-то — в другом, кто-то ставит кавычки вокруг url, кто-то — нет, а кто-нибудь фикся срочную багу к релизу мог бы, к примеру, написать position: relative в начале блока свойств, незаметив что где-нибудь внизу между color и box-shadow, уже есть position: absolute, и долго гадать, почему у него ничего не работает.



      Но несмотря на то, что все пишут код по-разному, у нас в репозитории идеальный порядок: css-код полностью консистентен, и прекрасно выглядит. Весь.

      Как мы этого добились, можно прочитать под катом.
      Читать дальше →
    • Несколько интересностей и полезностей для веб-разработчика #20

        Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

        Awesome Sysadmin


        Мега популярный репозиторий на GitHub, который за несколько дней собрал более 4000 звезд. Это огромной живой список всех самых полезных инструментов с открытым исходным кодом для сисадмина по категориям: Backups, Cloning, Cloud Computing, Cloud Orchestration, Cloud Storage, Collaborative Software, Distributed Filesystems, DNS, VPN и др. Автор проекта упомянул также Awesome PHP, по образу и подобию которого он опубликовал свой список.

        NodeBB



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

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




        Читать дальше →
        • +92
        • 43,4k
        • 6
      • Как готовиться к экзамену PMP опытному руководителю проекта

          На взгляд абсолютного большинства руководителей проектов, программ и портфелей проектов опыт гораздо более важен, чем какой-либо сертификат. Ведь опыт нарабатывается годами руководства проектами в реальных условиях, а подготовиться к экзамену и получить сертификат можно менее чем за месяц (про это мы писали в предыдущей статье). Однако, иногда даже опытные руководители проектов сталкиваются с ситуацией, когда получение сертификата является если не обязательным, то очень желательным. И, как известно, самым популярным сертификатом в области управления проектами является PMP (Project Management Professional) от PMI (Project Management Institute).

          Согласно официальному описанию экзамена для получения сертификата PMP требуется как наличие теоретических знаний, так и наличие практического опыта. К сожалению, даже самые опытные руководители проектов не смогут сдать экзамен с положительным результатом без проработки материалов именно для этого экзамена. В этой статье мы попробовали описать, в каких областях знаний можно больше доверять опыту и знаниям, полученным из других источников, а какие следует тщательно проштудировать, так как практический опыт может даже помешать!
          Читать дальше →
        • Аттестация программистов: наш опыт



            Дисклеймер: если после прочтения этого текста вы захотите внедрить KPI для программистов — сходите прочитать еще и это.

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

            Итак, какие цели преследует аттестация.
            Читать дальше →
          • Образовательные и обучающие ресурсы для веб-разработчиков и веб-дизайнеров

              Данным постом мы открываем рубрику «Переводы» в нашем блоге. Почему мы решили открыть такую рубрику? Дело в том, что сотни специалистов, работающих в Mail.Ru Group, для решения стоящих перед ними задач ежедневно прочитывают множество интересных статей и постов на форумах. Некоторые из них кажутся нам интересными, и мы считаем своим долгом перевести их на русский и поделиться этими ценными знаниями с Хабражителями.

              Пользуясь случаем, хотим сообщить новость: сегодня состоялось открытие Технопарка — нашего образовательного проекта, о котором мы уже не раз писали на Хабре (например, тут, тут и тут). Теперь у технопарковцев есть свое собственное помещение. Изначально Технопарк задуман как место, где талантливые студенты МГТУ им. Баумана могут получить дополнительное образование в сфере веб-разработки, дизайна и программирования, а также окунуться в работу над реальными проектами высокой сложности. В общем, у Технопарка сегодня знаменательный день, и поэтому первый выпуск в рубрике «Переводы» мы решили посвятить образовательным ресурсам для веб-разработчиков и веб-дизайнеров. Ведь пока такие Технопарки не распространились по всей стране, разработчикам зачастую приходится заниматься исключительно самообразованием.

              Читать дальше →
            • Извлечение 4096-битных ключей RSA с помощью микрофона



                Знаменитый криптограф Ади Шамир (буква “S” в аббревиатуре RSA) с коллегами вчера опубликовал научную работу под названием «Извлечение ключа RSA путём акустического криптоанализа с низкой частотой дискретизации» (RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis). За сложным названием скрывается исключительно доступный метод извлечения ключей RSA (в реализации GnuPG) с помощью обычного мобильного телефона или микрофона. Достаточно лишь положить телефон в 30 см от компьютера жертвы. Если использовать качественные микрофоны, то извлекать ключи можно с расстояния до 4 метров.
                Читать дальше →
              • Абсолютное горизонтальное и вертикальное центрирование

                • Перевод
                • Tutorial
                Сколько уже было сломано копий о задачу выравнивания элементов на странице. Предлагаю вашему вниманию перевод отличной статьи с решением этой проблемы от Стефана Шоу (Stephen Shaw) для Smashing Magazine — Absolute Horizontal And Vertical Centering In CSS.

                Все мы знали о margin: 0 auto; для горизонтального центрирования, но margin: auto; не работало для вертикального. Это можно легко исправить, просто задав высоту и применив следующие стили:

                .Absolute-Center {
                  margin: auto;
                  position: absolute;
                  top: 0; left: 0; bottom: 0; right: 0;
                }
                

                Я не первый, кто предложил это решение, однако такой подход редко применяется при вертикальном выравнивании. В комментариях к статье How to Center Anything With CSS Simon ссылается на пример jsFiddle, где приводится отличное решение для вертикального центрирования. Вот еще несколько источников на эту тему.

                Рассмотрим способ поближе.
                Читать дальше →
              • Каверзные сетевые вопросы

                  Давно была идея собрать воедино интересные вопросы, касающиеся сетей.

                  Объединяет их то, что все они довольно простые, но мы подчас о них не задумываемся (я во всяком случае о них не задумывался).
                  В общем я их собрал, подбил, нашёл ответы.
                  Итак, блиц опрос:

                  Начнём с самых низких уровней и с самых простых вопросов



                  В1. Почему для витой пары выбран такой странный порядок: синяя пара на 4-5, разрывая зелёную, которая на 3, 6?




                  Ответ
                  О1: Сделано это в угоду двухконтактному телефонному разъёму. Таким образом, например, в патч-панель можно вставить как телефонный кабель, так и витую пару.
                  Можно даже через один кабель вывести и сеть и телефонию, но я вам этого не говорил!

                  habrahabr.ru/post/158177.


                  В2. В стандарте Ethernet между кадрами всегда имеется промежуток, называемый IFG (Inter Frame Gap) длиною 12 байтов. Для чего он нужен, и почему он присутствует в современных стандартах?

                  Читать дальше →
                • Раскрытие IP-адреса пользователя Skype



                    Деанонимизация скайп-пользователя по его skypename через нахождение его реального IP-адреса

                    1. Качаем отсюда пропатченный скайп версии 5.5:
                    http://skype-open-source.blogspot.com/2012/03/skype55-deobfuscated-released.html

                    2. Включаем создание файла с дешифрованным debug логом. Для этого добавляем нескольких ключей в реестр.
                    https://github.com/skypeopensource/skypeopensource/wiki/skype-3.x-4.x-5.x-enable-logging

                    3. Выбираем функцию добавить скайп контакт, но не добавляем, а только кликаем на него, чтобы посмотреть vcard. Этого будет достаточно.
                    Читать дальше →