• Hello world! Или англоязычный Хабр, v1.0

      Это первая публикация в нашем блоге в 2019 году, но она очень важная для всех нас. Мы наконец-то запускаем англоязычную версию Хабра! У нас было почти всё готово ещё к середине декабря, но релизиться перед Новым Годом — это как выкатывать релиз в пятницу вечером. Поэтому отправку в большое плавание мы решили перенести на начало 2019 года.


      Read more →
    • DIY тепловизор на Raspberry PI или «Кажется теперь я знаю, чем займусь этим летом»

        image

        Всем привет!

        Пришла зима, а с ней и задача проверить теплоизолирующие свойства построек загородной резиденции дачи. А тут ещё оказалось, что на известном китайском сайте появились вполне доступные тепловизионные модули. Не собрать ли себе экзотическую и, возможно, даже полезную вещь — самодельный тепловизор? Почему бы и нет, вроде и Raspberry где-то валялась… Что из этого вышло — расскажу под катом.
        Читать дальше →
      • Я растерял веру в разработку, выгорел, но меня спас культ инструмента



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

          Уколы в адрес технологий разрабы воспринимают на свой счет. Культ инструмента — очень странная штука, которую не объяснить логически. Одни говорят, что культ есть у всех, потому что мышление плотно сплетается с япом. Другие говорят, это джунироская болезнь — ты впервые что-то написал, оно получилось, от восторга ты посчитал свой яп чудом божьим.

          Чем бы оно ни было, я эту фигню не понимал никогда.

          Сторонники культов кажутся мне непроходимыми тупицами. А я всегда пытаюсь понять, как тупицы стали тупицами, и почему тупицей не стал я. Начал думать и бам! — понял, что все-таки стал. Я тупица-культист, который восхваляет F#. И конечно за этим есть история.
          Читать дальше →
        • Как стать разработчиком игр, если ты риелтор

            Добрый день, Хабр.

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

            image

            Вы тепло приняли этот пост и это дало мне хороший толчок в нужном направлении. За эти два года я попробовал и научился многому: работал с 3D моделями, знакомился с C++, рисовал текстуры, записывал звуки, писал тексты и диз-доки, но самое главное – я нашел для себя подходящую среду разработки, а именно — божественный Unreal Engine 4.

            Я не решался ничего писать до тех пор, пока не смогу сделать что-то, что сможет порадовать хотя бы меня. И, думаю, мне это удалось. Довольно приятно видеть тот большой и тернистый путь, который был пройден, чтобы, начав с картинки в начале статьи, дойти до того, что под катом ;)
            Читать дальше →
          • Mastercard запрещает компаниям автоматически списывать деньги после завершения бесплатного тестового периода (обновлено)

            • Новость
            UPD. Компания обновила пресс-релиз. Оказалось, что все сказанное ниже относится лишь к физическим товарам (косметика, товары из сферы здравоохранения), а не виртуальным (сервисы и т.п.).

            Грустно, когда бесплатная подписка кончается, а деньги автоматически начинают списывать с карты. И хорошо, если продукт понравился, но бывает и так, что в ходе тестового периода пользователь понимает, что предложение ему не подходит. По забывчивости или из-за занятости подписка не отменяется, и деньги тратятся напрасно.

            В некоторых случаях отмена подписки превращается в сложный квест, прохождение которого не приносит никакого удовольствия. Mastercard решила помочь держателям своих карт. Компания объявила о запрете на автоматическое списание денег после завершения бесплатного тестового периода.
            Читать дальше →
          • Мой компилятор Паскаля и польское современное искусство

            Истоки


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

            image
            ha.art.pl

            Сперва родился простейший компилятор PL/0, а из него постепенно вырос почти полнофункциональный компилятор Паскаля для MS-DOS. Вдохновением мне служила книга Compiler Construction, написанная создателем языка Паскаль Никлаусом Виртом. И пусть взгляды Вирта уже устарели и утратили всякую связь с реалиями ИТ, а компиляторы делают совсем не так, как учил Вирт. Однако его методы по-прежнему просты, изящны, а главное — приносят радость, ведь самостоятельно разобрать текст программы рекурсивным спуском и сгенерировать машинный код намного заманчивее, чем призывать на помощь яков, бизонов и всех их преемников.

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

            • Перевод
            image

            Ветеран программирования трёхмерной графики Майкл Абраш на примере разработки первого Quake рассказывает о необходимости творческого мышления в программировании.

            Много лет назад я работал в теперь уже не существующей компании-производителе видеоадаптеров Video Seven. Там я помогал в разработке клона VGA. Мой коллега Том Уилсон, долгие месяцы круглосуточно работавший над разработкой VGA-чипа Video Seven, стремился сделать VGA как можно более быстрым, и был уверен, что его производительность оптимизирована почти по максимуму. Однако когда Том уже вносил в конструкцию чипа последние штрихи, до нас донеслись слухи, что наш конкурент Paradise достиг ещё большей производительности в своём разрабатываемом клоне, добавив в него FIFO.

            На этом слухи заканчивались — мы не знали, ни что это за FIFO, ни насколько он помог, ничего другого. Тем не менее, Том, обычно приветливый и расслабленный человек, превратился в активного, одержимого фанатика со слишком большим процентом кофеина в крови. Исходя из этих крупиц информации, он пытался выяснить, что же удалось сделать Paradise. В конце концов он пришёл к выводу, что Paradise вероятно вставил FIFO-буфер записи между системной шиной и VGA, чтобы когда ЦП выполнял запись в видеопамять, записываемые данные сразу же попадали в FIFO, и это позволяло ЦП продолжать обработку, а не простаивать каждый раз, когда он выполнял запись в память дисплея.

            У Тома не было ни логических элементов, ни достаточно времени на реализацию полного FIFO, но ему удалось реализовать FIFO глубиной в одну операцию, что позволяло процессору обгонять VGA-чип на одну операцию записи. Том не был уверен, что это даст хорошие результаты, но это было единственное, что он смог сделать, поэтому он реализовал эту систему и передал чип в производство.
            Читать дальше →
            • +86
            • 23k
            • 6
          • 12 странных вещей, которые могут произойти после установки npm пакета

            Пару месяцев назад я начал заниматься проектом под названием malicious-packages (ака "вредоносные пакеты"). Он следит за обновлениями в npm репозитории, скачивает все новые модули, а затем проверяет их на вшивость — ищет сетевую активность, подозрительные операции с файловой системой и т.д. Даже маленькие проекты на node.js часто имеют большое дерево зависимостей, и у разработчиков физически нет возможности проверить их все. Это даёт злоумышленникам огромный простор для манёвра, и возникает вопрос — сколько же всякой гадости прячется по тёмным углам npm registry? 180000 проверенных пакетов спустя я получил примерный ответ.


            image

            Читать дальше →
          • Крупнейший дамп в истории: 2,7 млрд аккаунтов, из них 773 млн уникальных



              Известный специалист по безопасности Трой Хант уже несколько лет поддерживает сайт Have I Been Pwned (HIBP) с миллионами записей об украденных аккаунтов. Каждый может проверить там свой email на предмет утечки. Трой Хант следит за хакерскими форумами, покупает базы данных, которые выставляют на продажу, иногда эти базы присылают ему бесплатно. Но он никогда не видел, чтобы на продажу выставляли такую огромную базу, как нынешняя Коллекция № 1 (Collection #1).

              Гигантский архив содержит 2 692 818 238 записей с адресами электронной почты и паролями.
              Читать дальше →
            • Пишем операционную систему на Rust. Страничная организация памяти

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

              Этот блог выложен на GitHub. Если у вас какие-то вопросы или проблемы, открывайте там соответствующий запрос.
              Читать дальше →
              • +76
              • 11,3k
              • 9
            • Минкомсвязи одобрило законопроект об изоляции рунета

              • Новость
              Министерство цифрового развития, связи и массовых коммуникаций РФ поддержало законопроект №608767-7 об автономной работе рунета, внесённый в Госдуму 14 декабря 2018 года. Об этом сегодня сообщил замглавы Минкомсвязи Олег Иванов в ходе расширенного заседания комитета Госдумы по информационной политике, информационным технологиям и связи.

              «Концептуально, по целеполаганию Минкомсвязь и другие федеральные органы исполнительной власти, которые предоставили свои заключения, законопроект поддерживают», — заявил Иванов. Чиновник считает, что Госдума примет законопроект в первом чтении, с определёнными правками: «Критических моментов, которые бы не позволили принять законопроект в первом чтении, пока не отмечается. Но замечаний много».
              Читать дальше →
            • Личный опыт: Пять сложностей при запуске бизнеса в США



                Вот уже пару лет я живу в США, развиваю два собственных проекта и сегодня решил поделиться опытом. Мне на глаза часто попадаются статьи с рассказами о том, как классно делать бизнес в США, авторы которых не рассказывают о возможных сложностях на этом пути. В итоге у многих может сложиться чересчур идеализированное представление о том, как они приедут в Кремниевую Долину со своим стартапом менять мир.

                Так было и со мной, что неоднократно приводило к фрустрациям при столкновении с реальности. Поэтому сегодня я расскажу о сложностях в ведении бизнеса в Америке, к которым следует морально подготовиться еще до переезда.
                Читать дальше →
              • 1 февраля 2019 года ваш сайт может перестать работать

                  Cisco является одним из крупнейших DNS-провайдеров в мире, предоставляя услугу безопасного DNS на базе Cisco Umbrella (ранее OpenDNS), но речь сегодня пойдет не о ней и даже не о безопасности. Дело в том, что 1-го февраля наступит так называемый DNS Flag Day, после которого ваш сайт может быть недоступен пользователям в Интернет.

                  С 1-го февраля будет недоступен сайт НКЦКИ ФСБ
                  Читать дальше →
                • PVS-Studio 7.00

                    PVS-Studio C#\Java\C++Сегодня важный день – после 28 релизов шестой версии мы выпускаем PVS-Studio 7.00, где ключевым новшеством является поддержка языка Java. Однако за 2018 год накопилось много других важных изменений, касающихся С++, С#, инфраструктуры и поддержки стандартов кодирования. Поэтому предлагаем вашему вниманию заметку, которая обобщает основные изменения, произошедшие в PVS-Studio за последнее время.
                    Читать дальше →
                  • Как не продолбать пароли в Python скриптах

                    • Tutorial


                    Хранение паролей всегда было головной болью. В классическом варианте у вас есть пользователь, который очень старается не забыть жутко секретный «qwerty123» и информационная система, которая хранит хеш от этого пароля. Хорошая система еще и заботливо солит хеши, чтобы отравить жизнь нехорошим людям, которые могут украсть базу с хешированными паролями. Тут все понятно. Какие-то пароли храним в голове, а какие-то засовываем в зашифрованном виде в keepass.

                    Все меняется, когда мы убираем из схемы человека, который старательно вводит ключ с бумажки. При взаимодействии двух информационных систем, на клиентской стороне в любом случае должен храниться пароль в открытом для системы виде, чтобы его можно было передать и сравнить с эталонным хешем. И вот на этом этапе админы обычно открывают местный филиал велосипедостроительного завода и начинают старательно прятать, обфусцировать и закапывать секретный ключ в коде скриптов. Многие из этих вариантов не просто бесполезны, но и опасны. Я попробую предложить удобное и безопасное решение этой проблемы для python. И чуть затронем powershell.
                    Читать дальше →
                  • Как работает аэропорт Внуково

                      Внуково запустили 2 июля 1941 года, стройку курировал К. Е. Ворошилов. Хотели успеть к 18 августа — Дню Воздушного Флота СССР. Но война началась 22 июня, поэтому пришлось запускаться быстрее, перекрашивать корпуса из белого в чёрно-зелёный. Московская авиагруппа особого назначения (МАГОН) сделала 60 тысяч вылетов на линию фронта и в тыл противника. Немцы не трогали сами ВПП (похоже, рассчитывали использовать при захвате), но бомбили здание и склады горючего, зенитные установки рядом.

                      image

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

                      Сюда ходит двухэтажный аэроэкспресс. Это первый аэропорт, который ввёл режим тишины в России: объявления — только критичные, все подряд рейсы не зачитываются.

                      Но давайте начнём постепенно.
                      Читать дальше →
                    • Сравниваем PHP FPM, PHP PPM, Nginx Unit, React PHP и RoadRunner



                        Тестирование производилось с помощью Yandex Tank.
                        В качестве приложения использовались Symfony 4 и PHP 7.2.
                        Целью являлось сравнение характеристик сервисов при разных нагрузках и нахождение оптимального варианта.
                        Для удобства все собрано в docker-контейнеры и поднимается с помощью docker-compose.
                        Под катом много таблиц и графиков.
                        Read more →
                      • Фаял: место встречи в Атлантике

                          Посреди Атлантики как-то поломалась геологическая плита. И — хоба! — выросли Азорские острова. Давно. Но приключения там продолжаются до сих пор. Вот, например, посмотрите на этот маяк, некогда очень важный для всех тех, кто переходит Атлантику. Он стоял себе спокойно на берегу моря до 1957 года. А потом около него вдруг начал извергаться вулкан, и насыпал лавы так, что получилось ещё два с половиной квадратных километра территории острова:


                          Видите, как маяк стоял на самом-самом краю мыса?

                          Ещё Азоры — это важный перевалочный пункт. И остров Фаял — точка встречи всех моряков и авиаторов. До появления реактивной авиации главной проблемой трансатлантического перелёта было топливо. Нужен был пункт для дозаправки, и Азоры подошли как нельзя лучше. Поскольку остров с самой крутой ровной площадкой (и там же есть международная марина), то как-то получилось, что образовался городок, где нет ничего постоянного, и всё для путешественников. Удивительный в своём роде.
                          Читать дальше →
                        • Всегда ли нужны Docker, микросервисы и реактивное программирование?

                          • Tutorial


                          Автор: Денис Цыплаков, Solution Architect, DataArt

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

                          Если вы не делаете что-то принципиально новое, например, первый в мире интернет-поисковик или искусственный интеллект для управления запуском ядерных ракет, создать дизайн хорошей системы довольно просто. Достаточно учесть все требования, посмотреть на дизайн похожих систем и сделать примерно так же, не совершив при этом грубых ошибок. Звучит как чрезмерное упрощение вопроса, но давайте вспомним, что на дворе 2019 год, и «типовые рецепты» дизайна систем есть практически для всего. Бизнес может подкидывать сложные технические задачи — скажем, обработать миллион разнородных PDF-файлов и вынуть из них таблицы с данными о расходах — но вот архитектура систем редко отличается большой оригинальностью. Главное тут — не ошибиться с определением того, какую именно систему мы строим, и не промахнуться с выбором технологий.

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

                            19 декабря 2018 года кабинет министров Германии согласовал закон о квалифицированной трудовой иммиграции (Fachkräfteeinwanderungsgesetz). Благодаря ему будет легче мигрировать квалифицированным работникам из стран, не входящих в Европейский Союз. Но эти изменения коснутся только квалифицированных рабочих. Немцы рассчитывают, что специалисты из России, Украины, Индии, Китая и других стран восполнят дефицит кадров. Сразу отмечу, что речь не идет о неквалифицированной или низкоквалифицированной работе.

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

                          Самое читаемое