• В самом популярном фрагменте кода за всю историю StackOverflow ошибка! 

    • Translation
    Недавнее исследование «Использование и атрибуция сниппетов кода Stack Overflow в проектах GitHub» внезапно обнаружило, что чаще всего в опенсорсных проектах встречается мой ответ, написанный почти десять лет назад. По иронии судьбы, там баг.

    Давным-давно…


    Еще в 2010 году я сидел в своём офисе и занимался ерундой: развлекался код-гольфингом и накручивал рейтинг на Stack Overflow.

    Моё внимание привлёк следующий вопрос: как вывести количество байт в удобочитаемом формате? То есть как преобразовать что-то вроде 123456789 байт в «123,5 МБ».


    Старый добрый интерфейс 2010 года, спасибо The Wayback Machine
    Читать дальше →
  • Справочник начинающего подкастера

    Эта статья — краткое руководство для тех, кто хочет запустить свой собственный подкаст. Когда я вместе с моим нынешним соведущим год назад запускал подкаст “В бесконечность и далее”, я не смог найти ни одной по-настоящему всеобъемлющей статьи. Поэтому я решил попытаться заполнить этот пробел и написать руководство для себя из прошлого.


    Немного о структуре — это руководство содержит 4 статьи:


    1. Общая философия
      1.1. Зачем делать подкаст?
      1.2. Целевая аудитория
      1.3. Выбор жанра
      1.4. Формат
    2. Технический базис
      2.1. Что такое подкаст с технической точки зрения
      2.2. Аудио-формат
      2.3. Про динамики, наушники и ламповый звук
      2.4. Про тихое помещение
    3. Делаем покупки
      3.1. Покупаем микрофон
      3.2. Выбираем аудиоредактор
      3.3. Выбираем программу для записи звука
      3.4. Выбираем хостинг подкаста
      3.5. Сайт-визитка
    4. Записываем и выпускаем
      4.1. Запись выпуска
      4.2. Редактирование выпуска
      4.3. Про джинглы и звуковые схемы
      4.4. Про фоновый шум
      4.5. Про фильтры
      4.6. Про Show Notes, а также про то, зачем слушать свой подкаст
      4.7. Публикация подкаста
      4.8. Монетизация
      4.9. Темы, которые есть, но о которых мы не говорили

    Каждый раздел статьи содержит три блока


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

    Интересно — читайте все. Нет времени — читайте первый и последний абзац.



    1. Общая философия


    1.1. Зачем делать подкаст?


    Ответ может быть любым, но только не “потом посмотрим”, ”ещё не думал” или “не знаю”. Если ответа нет, весьма высока вероятность что

    Читать дальше →
  • DDS Синтезатор на Verilog


    В этом посте я поделюсь тем, как разбирался с написанием DDS синтезатора на Verilog. Он будет использован для генерации синусоидального колебания, частоту и начальную фазу которого можно регулировать и рассчитан для использования с 8-битным однополярным ЦАП. О том, как работает синтезатор хорошо написано в статье журнала Компоненты и Технологии. Для сокращения объема использованной памяти таблицы синуса использована симметрия.

    Читать дальше →
  • Жадный гном: Как я писал аналитику рынка в Lineage 2

      Вот и наступила осенне-зимняя пора. За окном дожди и желания проводить время на открытом воздухе все меньше и меньше. И вот приходит мне сообщение от товарища "А давай поиграем в Lineage 2?". И опять я, поддавшись ностальгии, согласился. Выбрали мы свеженький сервер на ру-офе и создали персонажей.



       
      В отличии от World of Warcraft в Lineage 2 совершенно другая система добычи игровой валюты. Нужно круглыми сутками охотиться на монстров с целью получения наживы. Для меня было даже открытием, что для некоторых людей RMT (Real money trading) является чем то вроде работы. Также, в игре присутствует экономика, которую формируют игроки. Иными словами, можно заработать на купи-продай или же покупать дешевые ресурсы, из них делать вещи и продавать с наценкой. Так как для нас игра остается чем то вроде отдыха именно такой способ получения игровой валюты был выбран нами.


      Чтобы покупать и продавать предметы игрок должен находиться online (Скриншот сверху). Соответсвенно, кто-то хочет побыстрее продать (дешевле) а кто-то побыстрее купить (дороже). А что если разница продать — купить положительная? Как раз этот пример и будет рассмотрен в статье как итог.


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


      Spoiler:
      В статье будут использованы следующие технологии
      Docker, DigitalOcean, NodeJs, Ktor, Prometheus, Grafana, Telegram bot notification

      Читать дальше →
    • Работаем в консоли быстро и эффективно

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

      Читать дальше →
    • Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

      • Tutorial

      Регулярные выражения в Python от простого к сложному




      Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
      Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

      Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
      Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

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

      Привет, Хабр! Представляю вашему вниманию перевод и адаптацию статьи "CIS-Controls Implementation Guide for Small- and Medium-Sized Enterprises (SMEs)".

      image

      Введение


      Утечки информации о кредитных картах, кража персональных данных, программы-вымогатели (например, WannaCry), кража интеллектуальной собственности, нарушение конфиденциальности, отказ в обслуживании — эти инциденты информационной безопасности стали обычными новостями. Среди пострадавших попадаются крупнейшие, наиболее состоятельные и наиболее защищенные предприятия: правительственные учреждения, крупные розничные сети, финансовые структуры, даже производители решений по информационной безопасности.

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

      Что же тогда делать всем остальным? Как организациям с небольшим бюджетом и ограниченным штатом сотрудников реагировать на увеличивающееся число кибер-преступлений? Данный документ разработан для того, чтобы предоставить владельцам SMB инструменты для защиты своего бизнеса, основанные на CIS Controls. CIS Controls — это комплексный набор хорошо зарекомендовавших себя методов защиты информации, которые противодействуют наиболее распространенным угрозам и уязвимостям. Данные методы защиты информации разработаны специалистами в предметной области.
      Читать дальше →
      • +19
      • 22.8k
      • 4
    • Дэниэль Лерх: «Стеганография – это инструмент, представляющий огромный интерес для кибер-преступников»

      • Translation


      Эллиот Алдерсон прятал секретную информацию в аудио-CD файлах. Однако, техника, использованная вымышленным хакером из сериала «Мистер Робот», далека от простой прихоти телевизионщиков. Это всего лишь один из многих методов стеганографии, используемых хакерами и кибер-преступниками для обхода систем безопасности.

      Произошедшее от греческих слов steganos (скрытый) и graphos (письмо), слово «стеганография» означает метод сокрытия данных. Чтобы понять, как лучше всего справиться с этой тайной угрозой, мы поговорили с Дэниэлем Лерхом, который имеет степень кандидата компьютерных наук в Университете Universitat Oberta de Catalunya (Каталония, Испания) и является одним из лучших экспертов по стеганографии в Испании.
      Читать дальше →
      • +13
      • 8.4k
      • 9
    • Чиним Plymouth в Debian 8 (а возможно и еще где-то)

        TL;DR Захотелось поставить на старый нетбук Debian 8, сказано — сделано. В целом все работает, но вот вместо красивой заставки при загрузке — бегущие строки загрузки ядра и сервисов. Не красиво. В чем же проблема? Будем разбираться.


        Читать дальше →
      • Пролетая над долиной Маринера



          Если в новогодние каникулы у вас окончательно испортилась погода, и посмотреть на небесные красоты нельзя, то есть еще минимум два интересных варианта. Можно открыть какую-нибудь из немаленького набора программ-планетариев. А можно, набравшись храбрости, преодолеть ненулевой порог вхождения и научиться летать с честной ньютоновской физикой в Orbiter. Благо, кроме недели отдыха, есть отличный повод — в этом году после шестилетнего перерыва вышла новая версия.
          Читать дальше →
        • Допустимые и недопустимые контакты металлов. Популярные метрические и дюймовые резьбы

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

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

            В советских ГОСТах было написано почти всё о допустимых контактах металлов, но если изучение чёрно-белых таблиц из 1000 ячеек мелким шрифтом утомляет, то правильный ответ на «медный» вопрос — нержавейка, либо никелированная сталь, из которой, кстати, и сделан почти весь «компьютерный» крепёж. В эпоху чёрно-белого телевидения были другие понятия об удобстве интерфейса, поэтому для уважаемых читателей (и для себя заодно) автор приготовил цветную шпаргалку.

            И, раз уж зашла речь о металлообработке, заодно автор привёл таблицу с популярными в электронике резьбами и соответствующими свёрлами, отобрав из объёмных источников наиболее релевантное по тематике портала. Не все же здесь слесари и металлурги, экономьте своё время.
            Читать дальше →
          • Эмуляция и перехват SIM-команд через SIM Toolkit на Android 5.1 и ниже (CVE-2015-3843)



              Я обнаружил эту уязвимость, исследуя возможность перехвата одноразовых паролей, которые отправлялись банком поставщику телекоммуникационных услуг, а затем поступали на специальное приложение SIM-карты и выводились на пользовательский интерфейс Android.
              Читать дальше →
              • +23
              • 34.1k
              • 6
            • Универсальный скрипт переключения 2-х каналов интернета Mikrotik

              • Tutorial
              Около 2,5 лет назад писал статью на тему автоматического переключения канала Интернет на резервный. Скрипт, конечно, и по сей день работает «на отлично», но его внешний вид и некоторые нюансы…

              Итак, встала задача улучшить скрипт, максимально устранив побочные эффекты. Что ж, приступим.

              image
              Читать дальше →
            • Радиоприёмник из DVB стика за $8 — изучаем SDR с GNURadio

              • Tutorial
              Каждый день мы пользуемся множеством радио устройств. Однако редко понимаем, как они работают. Эпоха радиолюбителей фактически прошла, оставив в прошлом любителей спаять приёмник ДВ или СВ своими руками. Да и в методах кодирования техника ушла далеко вперёд. Мы часто слышим рассуждения о взломе умных домов на радио протоколах, о ненадёжности радио связи и т.д. Но многие ли из вас пробовали, например, подслушать Z-Wave сеть умного дома соседа и тем более поуправлять ей? Насколько велика эта угроза для вас?

              К счастью в наши дни стали доступны очень удобные средства для работы с радио, а именно SDR.

              SDR (Software Defined Radio) позволяет программно перестраивать приёмник и передатчик для работы на различных частотах от 20 до 2000 МГц, после чего произвести обработку сигнала на компьютере с помощью цифровых методов. Это существенно отличает SDR от аналоговых схем радиопрёмников и передатчиков, позволяя легко менять алгоритм обработки полученного сигнала.




              Существует множество разных программ для обработки радио сигналов. Я изучил наиболее популярную из них GNURadio. Этот пакет позволяет строить процесс обработки из различных блоков, стыкуя их друг с другом в формате потоковой обработки (pipe). Каждый следующий блок принимает данный от одного или нескольких предыдущих, а вывод передаётся другим блокам.

              Под катом я расскажу об основах SDR и GNURadio и о том, как за 8 баксов сделать приёмник AM/FM, китайской управляемой розетки, телеметрии со спутника и всего, что вздумается.

              Читать дальше →
            • Как правильно внести свою лепту в Open Source проект: простые подсказки

                Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
                Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

                Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

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


                Читать дальше →
              • Как таинственный трейдер и его алгоритм вызвали крупнейший биржевой сбой

                • Translation


                В мае 2010 году произошел один из крупнейших биржевых обвалов — за считанные минуты рынок потерял триллион долларов. Это событие получило название Flash Crash, а одним их главных его виновников власти США и Велокбритании назвали скромного трейдера из Лондона. Мы представляем вашему вниманию адаптированный перевод рассказа издания Bloomberg о главном герое этой истории.

                История одного из самых драматичных моментов во всей истории Уолл-стрит началась в скромном доме на западной окраине Лондона, где постоянно слышен шум снижающихся для посадки в Хитроу самолетов. Именно здесь жил трейдер Навиндер Сингх Сарао (Navinder Singh Sarao), и до этого дня он ничем не выделялся из тысяч таких же, как он.
                Читать дальше →
              • Как «одушевить» продукт? Леттеринг



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

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

                  Существует много способов «одушевить» продукт: придумать зверюшку-символ, использовать образы людей, фотографии, иллюстрации. Я расскажу вам о леттеринге. Осторожно — много картинок!
                  Читать дальше →
                  • +10
                  • 31.6k
                  • 5
                • DIY порошок для посудомойки: разбираем промышленные средства и улучшаем рецепт



                    Внимание! В рецепте с отбеливателем обнаружилась опасность коррозии металла! Не рекомендуется в стандартном применении!

                    Обзор экспериментов год спустя:
                    DIY порошок для посудомойки: как не растворить посуду и не повторить моих ошибок. Год экспериментов

                    В прошлой публикации мы создавали дешевый порошок для посудомойки из желудей и спичек кальцинированной соды и стирального порошка. В этой я расскажу о том, как можно его улучшить с помощью кислородного отбеливателя и где можно купить компоненты для более продвинутой версии. Будем делать упор на эффективности мойки, но даже при этом цена не выйдет за 100 рублей/килограмм. А еще будет рецепт ополаскивателя с себестоимостью в районе 1 рубля за литр. Как справедливо заметил amarao, занятие не для всех и многим проще использовать готовые таблетки. Но в подобных экспериментах с бытовой химией есть что-то от детства, первых опытов по смешиванию соды с уксусом и газировки с мятными конфетами. Так что ощутимая экономия здесь все-таки вторична. Будем развлекаться) Если кому-то лень читать весь текст — в конце поста будут подробные рецепты с рекомендациями.
                    Читать дальше →
                  • От установки Windows 10 стало труднее отказаться

                      Microsoft перепробовала разные способы, как склонить пользователей Windows 7 и 8.1 к обновлению на Windows 10: файлы установки 3-5 ГБ скачиваются в фоновом режиме, постоянно показываются всплывающие сообщения «Ваш апгрейд готов к установке», сама программа установки «случайно» запускается на исполнение. Но теперь они превзошли себя.

                      Взгляните на этот скриншот. Вам ничего не кажется странным?


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