• Шпионим за вашими программами с помощью Strace

    • Translation
    Не смогли пройти мимо и перевели ко Дню программиста комикс Джулии Эванс об утилите Strace. Полезный инструмент, который помогает отслеживать системные вызовы и доставку сигналов между процессами и ядром Linux. Читайте и вдохновляйтесь. С наступающим, друзья!



    Читать дальше →
  • Таинственный противник: нечеткие заимствования

      Неправомерное Заимствование — это многоголовая гидра, враг, постоянно меняющий свое лицо. Наши лучшие частные сыщики готовы зацепиться за любое злодеяние, совершенное этим врагом. Однако противник не дремлет, он хитер и коварен: явно подставляясь в одном деле, он невероятно умело заметает следы в других. Иногда его удается поймать с поличным с помощью нашего самого шустрого сотрудника — Суффиксного Массива. Иногда противник мешкает, и скрупулезный, но неторопливый Поиск Парафраза успевает вычислить его местоположение. Но зло коварно, и нам постоянно нужны новые силы для борьбы с ним.


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


      С вами детективное агентство Антиплагиат, приготовьтесь к Делу о Таинственном Противнике



      Начать расследование
    • О столе для работы стоя, здоровье позвоночника и личной эффективности

        С недавних пор я снова перешёл на 100% работу из дома и стал использовать стол для работы стоя. Хочу поделиться дампом своего опыта на тему здоровья, призвать закончить прокрастинировать и начать работать стоя.



        Сначала, о том, почему стол для работы стоя — не панацея...

        Читать дальше →
      • Десять лет на удалёнке

        • Translation
        Ещё во время учёбы в колледже (вперёд, Бронкос!) мы с Алеком запустили стартап. Мы были молоды, неопытны и наивны. Наш первый проект назывался YippieMail: агрегатор электронной почты. Проще говоря, YippieMail отображает все ваши почтовые ящики (например, Hotmail, Yahoo, Gmail и т. д.) в одном веб-интерфейсе. Это было до того, как большинство провайдеров внедрили IMAP, поэтому вы не могли использовать почтовый клиент. Оглядываясь назад, YippieMail кажется довольно глупой идеей, но благодаря ей мы познакомились с венчурными инвесторами из Sequoia Capital и других фондов. Имейте в виду, что примерно в то время Meebo привлёк много миллионов от Sequia и DFJ, реализовав точно такую же идею для IM-мессенджеров. Так что в то время стартап выглядел перспективным.

        В первые дни YippieMail (позже переименован в YippieMove, RIP 2008−2019) начался мой десятилетний опыт удалённой работы, иногда я жил как цифровой кочевник.
        Читать дальше →
        • +15
        • 7.4k
        • 8
      • Ускоряем сборку веб-приложения с webpack

        По мере того как ваше приложение развивается и растёт, увеличивается и время его сборки — от нескольких минут при пересборке в development-режиме до десятков минут при «холодной» production-сборке. Это совершенно неприемлемо. Мы, разработчики, не любим переключать контекст в ожидании готовности бандла и хотим получать фидбек от приложения как можно раньше — в идеале за то время, пока переключаемся с IDE на браузер.


        Как этого достичь? Что мы можем сделать, чтобы оптимизировать время сборки?


        Эта статья — обзор существующих в экосистеме webpack инструментов для ускорения сборки, опыт их применения и советы.


        Оптимизации размера бандла и производительности самого приложения в этой статье не рассматриваются.

        Читать дальше →
      • 12 приемов работы с JavaScript, которых нет в большинстве туториалов

        • Translation


        Когда я начал изучать JavaScript, то первым делом составил список приемов, которые помогали мне экономить время. Я подсмотрел их у других программистов, на разных сайтах и в мануалах.

        В этой статье я покажу 12 отличных способов улучшить и ускорить свой JavaScript-код. В большинстве случаев они универсальны.
        Читать дальше →
      • Совещания — это узаконенный грабеж

        • Translation
        В разработке всё дело в творчестве, не так ли? Это искусство, а не наука. Мы, разработчики, решаем сложные задачи, и зачастую наши решения совершенно не очевидны. Мы экспериментируем, внедряем новшества, исследуем и расследуем. Чтобы делать всё это, мы разговариваем. Мы вместе сидим в переговорках, конференциях в скайпе или каналах в слаке; мы обсуждаем свои решения; мы спрашиваем мнения коллег; мы спорим о лучших идеях. Без сомнения, совещания — ключевой компонент современного проектирования ПО… и это очень печально наблюдать.

        Хороший архитектор, как и хороший PM, не нуждается в совещаниях и никогда их не организует.

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

        Скажем, я архитектор, которому нужно спроектировать схему реляционной базы данных в новом проекте, у меня есть команда из пяти программистов, и я хочу, чтобы они помогли мне с проектированием. Это очень логичное и адекватное желание, т.к. хороший архитектор всегда обсуждает все возможные варианты с командой перед тем, как принять окончательное решение. Так что, я собираю совещание? Нет!
        Читать дальше →
      • Новый взгляд на изучение и документирование исходного кода

          TL;DR Привет. Меня зовут Богдан и я изучаю проблемы чтения кода. Я только что закочнил первую рабочую версию «codecrumbs» — визуального инструмента для изучения исходного кода с помощью «хлебных крошек». Гитхаб репозиторий можно посмотреть тут.

          image

          Проблема


          Недавно я проводил опрос о главных проблемах с которыми мы сталкиваемся когда начинаем изучать исходный код большого проекта (если вы ещё не участвовали, то пройти опрос всё ещё можно тут).
          Читать дальше →
        • Безумие дотфайлов

          • Translation
          Мы больше не контролируем свои домашние каталоги.

          В моём собственном 25 обычных файлов и 144 скрытых. В дотфайлах хранятся данные, которые не принадлежат мне: они принадлежат программистам, чьи программы решили захватить моё пространство, предназначенное для хранения моих личных файлов.

          Я не могу убрать эти файлы в другое место. Если я попытаюсь их удалить, они появятся снова. Всё, что я могу сделать — это сидеть и знать, что в темноте, за кулисами, они есть. Ожидание в тишине. Некоторые из этих программистов решили дополнительно разместить здесь несколько обычных файлов и каталогов. Они хорошо видны каждый раз, когда я выполняю ls. Понятия не имею, как в мою личную папку попали каталог node_modules, файлы package-lock.json, yarn.lock (я никогда сознательно даже не ставил yarn!), какие-то два странных лог-файла от какой-то Java-программы, явно использующей СУБД H2, и папка Desktop. Последнюю создал Steam, что довольно неудачно, поскольку на моей машине просто нет рабочего стола или какого-то десктопа. Боюсь того дня, когда услышу громкий стук в дверь — и один из этих программистов ворвётся и сообщит, что собирается хранить часть своей мебели посреди моей гостиной, если я не возражаю.
          Читать дальше →
        • Краткий курс по управлению удаленными командами

          • Translation

          Всем привет!


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


          • «Стоит ли работать удаленно?»
          • «Как вы организовали удаленную работу для своей команды?»
          • «Нам сложно работать с удаленными разработчиками...»

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


          И раз… два… три… Поехали!


          Читать дальше →
          • +31
          • 8.6k
          • 7
        • 10 физических фактов, которые вы должны были узнать в школе, но, возможно, не узнали

          • Translation
          image

          1. Энтропия измеряет не беспорядок, а вероятность


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

          Я бы сказала, что тесто. Но это состояние с большей энтропией. А если вы выберете вариант с яйцом на муке – как насчёт воды и масла? Энтропия выше, когда они разделены, или после того, как вы их яростно потрясёте, чтобы смешать? В данном примере энтропия выше у варианта с разделёнными веществами.

          Энтропия определяется как количество “микросостояний”, дающих одно и то же “макросостояние”. В микросостояниях содержатся все детали по поводу отдельных составляющих системы. Макросостояние же характеризуется только общей информацией, вроде “разделено на два слоя” или “в среднем однородное”. У ингредиентов теста есть много разных состояний, и все они при смешивании превратятся в тесто, однако очень мало состояний сможет при смешивании разделиться на яйца и муку. Поэтому, у теста энтропия выше. То же работает для примера с водой и маслом. Их легче разделить, тяжелее смешать, поэтому у разделённого варианта энтропия выше.
          Читать дальше →
        • Как украсть деньги с бесконтактной карты и Apple Pay

            Как украсть деньги с бесконтактной карты из кармана? Насколько безопасен PayPass и Apple Pay?

            В статье разбираются популярные мифы и сценарии мошенничества с бесконтактными системами оплаты на примере настоящего POS-терминала, карт PayPass/payWave и телефонов с функцией Google Pay/Apple Pay.

            Рассматриваемые темы:

            • Можно ли НА САМОМ ДЕЛЕ украсть деньги, прислонившись POS-терминалом к карману? — мы попытаемся полностью воспроизвести этот сценарий мошенничества от начала до конца, с использованием настоящего POS-терминала и платежных карт в реальных условиях.
            • В чем разница между физическими и виртуальными картами Apple Pay? — как происходит связывание физической карты и токена Apple Pay, и почему Apple Pay во много раз безопаснее обычной карты.
            • Используем аппаратный NFC-сниффер (ISO 14443A) — воспользуемся устройством HydraNFC для перехвата данных между POS-терминалом и картой. Рассмотрим, какие конфиденциальные данные можно извлечь из перехваченного трафика.
            • Разбираем протокол EMV — какими данными обменивается карта с POS-терминалом, используемый формат запросов, механизмы защиты от мошенничества и replay-атак.
            • Исследуем операции без карты (CNP, MO/TO) — в каких случаях на самом деле(!) можно украсть деньги с карты, имея только реквизиты, считанные бесконтактно, а в каких нельзя.

            Внимание!

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

            Материалы в статье представлены исключительно в ознакомительных целях. Все сцены демонстрации мошенничества инсценированы и выполнены с согласия участвующих в них лиц. Все списанные деньги с карт были возвращены их владельцам. Воровство денег с карт является уголовным преступлением и преследуется по закону.
            Читать дальше →
          • Оцениваем разработчика на основе объективных данных

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

              В небольшой команде тимлид может попытаться судить обо всем происходящем на основе субъективных ощущений, но, чем больше компания, тем важнее использовать объективные данные и метрики. Александр Киселев (AleksandrKiselev) и Сергей Семенов в своем докладе на TeamLead Conf показали, как использовать данные, которые вы уже накопили, где взять дополнительные, и что они все вместе могут помочь определить неочевидные проблемы. И даже, аккумулировав опыт многих коллег, предложили варианты решения.


              О спикерах: Александр Киселев и Сергей Семенов в IT мы уже больше 8 лет. Оба прошли путь от разработчика до тимлида и далее до product-менеджера. Сейчас работают над аналитическим сервисом GitLean, который автоматически собирает аналитику у команд разработки для тимлидов и CTO. Задача этого сервиса в том, чтобы технические менеджеры могли принимать свои решения на основе объективных данных.
              Читать дальше →
            • Не все беспроводные наушники одинаково полезны или несколько слов о проблеме кодеков

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


                Этот пост будет содержать ответы на распространённые вопросы, связанные с качеством передачи звука по bluetooth от смартфона к беспроводным наушникам, а также некоторые рекомендации по выбору беспроводных наушников и смартфонов, использующих кодек APTX. Уверен, что материал будет полезен всем, кто озадачен выбором и использованием беспроводных наушников. Если это ваш случай — добро пожаловать под кат.
                Читать дальше →
              • 5 советов от экспертов, как построить карьеру в ИТ

                  image

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

                  Ниже я подобрала пять докладов, которые отвечают на вопросы, как проходить собеседования, какие способности нужно развить, чтобы стать успешнее в сфере ИТ, и что делать, чтобы карьера пошла в гору. Осторожно, здесь говорят про бизнес!

                  Читать дальше →
                • Аккумуляторы AA/AAA через 7 месяцев хранения

                    В прошлом году я протестировал 198 аккумуляторов (44 модели AA и 35 моделей AAA). Тогда я измерял ёмкость аккумуляторов сразу после зарядки, а так же через неделю и месяц хранения.

                    Я провёл дополнительный тест большинства моделей аккумуляторов через семь месяцев после зарядки. Результаты получились интересными.



                    Читать дальше →
                  • Angular Light + Object.observe

                      Angular Light — это самостоятельный клиентский MV(C/VM) фреймворк, который построен на идеях Angular.js и Knockout.js, и похож на упрощенный Angular.js



                      Вышла версия Angular Light 0.8 которая включает разные улучшения и исправления, основные изменения:

                      1. Поддержка Object.observe и Array.observe, что может увеличить производительность веб-приложений.
                      Использование Object.observe — это опциональная фича, так же её можно включать для отдельных Scope (scope деревьев). Браузеры которые не поддерживают Object.observe продолжают работать через dirty-checking, так же нужно знать некоторые нюансы.
                      Читать дальше →
                    • Как легально получать деньги из-за пределов России

                        Дано: заказчик за рубежом, желающий работать с Вами и платить вам евро или доллары.
                        Найти: оптимальный способ организовать работу с ним, чтобы платить налоги и спать спокойно.

                        Сразу скажу, что получение денег на пластиковую карту без уплаты налогов может вылиться в серьезные проблемы (про ответственность написано в конце топика). Объяснения, что деньги «от бабушки внучку на мороженное» при суммах больше 10К$ в год уже не прокатывают, особенно если в реквизитах «бабушки» будет стоять что-то вроде «GMBH Star Development» Вероятность того, что возьмут за задницу достаточно высокая и поэтому лучше не рисковать и делать все по Закону, тем более, что ничего сложного в этом нет
                        Читать дальше →
                      • Управление летающим дроном с помощью Leap Motion

                        • Translation


                        Неважно, нужно ли вам сделать фотографии с высоты птичьего полёта, доставить книги или просто полетать для удовольствия, дроны становятся всё более популярны. В то же время, разработчики не прекращают поиски новых способов управления ими. Ниже вы можете посмотреть, как команда разработчиков Leap Motion использовала своё творение для бесконтактного управления дронами.
                        Читать дальше →
                        • +14
                        • 12.9k
                        • 8
                      • Возврат денег за Windows 8 на ноутбуке Lenovo в Нотике

                          В этом посте излагается моя история по возврату windows 8.
                          Купил ноутбук Lenovo в магазине Нотик. Деньги удалось вернуть в досудебном порядке, за что большое магазину спасибо. Это сэкономило время как мне, так и вам. Это также уменьшило ваши расходы на моего адвоката (в случае если бы я выйграл дело, а я бы обязательно выйграл), штраф в размере 50% стоимости сделки, а также выплаты неустойки. Кроме того, я бы требовал возврата общеизвестной стоимости Windows 8, а не той суммы, которую определила леново.




                          О том, что нужно сделать для возврата восьмёрки читайте делее.
                          Читать дальше →