• 50 лет Паскаля

    • Translation


    В начале 1960-х в мире доминировали языки Фортран (Джон Бэкус из IBM) для научного и Кобол (Жан Саммет из IBM и Министерство обороны) для коммерческого применения. Программы писались на бумаге, затем перфорировались на картах, после чего результатов их выполнения ждали целый день. Языки программирования считались важными помощниками и ускорителями процесса программирования.

    В 1960 году международный комитет опубликовал спецификацию языка Алгол 601. Впервые язык определялся чётко сформулированными конструкциями и точным, формальным синтаксисом. Двумя годами позже стало понятно, что требуются некоторые исправления и усовершенствования. Однако основной задачей было расширение ассортимента приложений, поскольку Алгол 60 был предназначен только для научных вычислений (вычислительной математики). Для работы над этим проектом была собрана рабочая группа (Working Group, WG 2.1) под эгидой Международной федерации по обработке информации (IFIP).
    Читать дальше →
  • PHP 8 и развитие языка в 30 вопросах и ответах

      В конце ноября мы провели стрим с Никитой Поповым и Дмитрием Стоговым, ключевыми контрибьюторами ядра PHP. За полчаса мы получили 100+ вопросов и ребята не успели ответить на все. Поэтому я сгруппировал оставшиеся сообщения по темам, отсеял совсем специфические и собрал ответы в текстовом виде. Все острые и холиварные вопросы оставил.



      Готовя ответы, по многим пунктам я консультировался с Никитой и другими активными участниками сообщества. Кстати, в эту субботу, 27 февраля, мы проводим новый стрим! Будет пара докладов, несколько дискуссий, интересные гости и возможность задать новые вопросы. Читайте те, что под катом и подключайтесь, чтобы задать новые.
      Читать дальше →
    • У разработчиков есть склонность к азартным играм: как решить проблему риска?

      • Translation


      Вероятно, вы этого не осознаёте, но у вас есть склонность к азартным играм.

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

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

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

      Каждая фича — это ставка. Весь проект — это казино. А вы — простофиля, пытающийся сорвать мифический джекпот.
      Читать дальше →
      • +14
      • 1.6k
      • 7
    • Альтернатива электронной почте для 21 века


        Специализированный мини-компьютер IMP соединял между собой участников сети ARPANET в 1969 году, прообраз современных маршрутизаторов и символ древности SMTP. Фото: Fred Prouser / Reuters

        Электронная почта — очень старая технология. Протокол Simple Mail Transfer Protocol (SMTP) впервые описан в RFC 821 (1982 год), а его основой стали технологии 1970-х. В те времена никто не мог представить, какие проблемы возникнут в будущем из-за открытости протокола.

        Сейчас электронная почта — рассадник спама и главное оружие киберпреступников. Большинство кибератак начинается с проникновения в сеть через фишинг. Жертву изучают — и направляют ей таргетированное письмо с обращением по имени, должности, с указанием деталей личной жизни, после чего искусно убеждают открыть приложенный файл. Многие соглашаются и открывают (например, см. проверку персонала в GoDaddy и GitLab). SMTP идеально подходит для социальной инженерии.

        Поэтому программист Лиам Брек (Liam Breck) придумал безопасную и современную альтернативу электронной почте — это сеть MNM (расшифровывается как mnm is not mail), сайт сейчас не справляется с нагрузкой, вот кэш в Google.
        Читать дальше →
      • Плавучий Белый дом: как планировали действовать США в случае ядерного Армагеддона

        • Translation


        Среди постоянно меняющихся планов правительства США на случай полномасштабной ядерной конфронтации были и малоизвестные проекты сильно модифицированных военных судов, реализованные в один из самых напряжённых периодов взаимоотношений между Советским Союзом и Соединёнными Штатами. Если бы холодная война превратилась в горячую, президент США, скорее всего, отдавал бы приказы в условиях последовавшего обмена ядерными ударами с одного из этих удивительных «плавучих Белых домов». Эти потрясающие суда во всех смыслах стали предками современных воздушных командных пунктов на «самолётах Судного дня».
        Читать дальше →
        • +46
        • 11.8k
        • 7
      • PHP Дайджест № 199 (8 – 22 февраля 2021)


          В PHP 8.1 будет enum, и еще два принятых, два отклоненных и три новых RFC предложения для PHP 8.1. WordPress используется на 40% сайтов. Почему нужно убрать strict_types, почему не стоит использовать empty(), а также инструменты, видео, статьи, подкасты, и PHP Дайджест Live в 20:00 МСК.

          Приятного чтения!


          Читать дальше →
        • Кто использует магнитную плёнку и почему за ней будущее



            В декабре 2020 года IBM Research и Fujifilm представили прототип картриджа LTO на 580 терабайт. Небольшая кассета с магнитной лентой вмещает информации как несколько десятков обычных HDD или 120 000 DVD.

            Магнитные ленты появились почти сто лет назад, а компьютерные файлы на них записывают с 1952 года. Ещё наши мамы в советских НИИ меняли катушки на мейнфреймах. И в 2021 году плёнки остаются самым дешёвым накопителем со стоимостью хранения примерно в 6 раз ниже, чем на HDD. Поскольку плёнка практически исчезла с потребительского рынка, многие даже не знают, насколько бурно развивается эта технология.
            Читать дальше →
          • Противостояние беспроводных и проводных наушников

              image

              Сегодня мы затронем популярную тему, в которой, итак, много очевидного, но не для всех. Речь пойдёт о современных беспроводных (TWS) и проводных наушниках. Поскольку полноразмерные наушники вообще разорвут в пух и прах TWSки, будем сравнивать с проводными внутриканальными наушниками.
              В теме будет гореть у всех: любителей комфорта, аудиофилов, эплофанов и просто у Игоря, которому «норм» потреблять контент через стриминговые аудиосервисы типа Spotify. Let's go!
              Читать дальше →
            • Почему Microsoft перестала бороться с пиратством своего ПО

              • Translation


              Microsoft — одна из немногих корпораций, основанных десятки лет назад и по-прежнему остающихся одними из крупнейших технологических гигантов. Даже несмотря на множество технологических войн, она выдержала проверку временем, отсеявшую многих её конкурентов.

              Однако одна из первых войн, с которой компания до сих пор сталкивается каждый день — это война против пиратов. Пираты программ продавали миллионы фальшивых копий продуктов Microsoft или загружали их на торрент-сайты.

              Во сколько обходится Microsoft пиратство?


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

              Вместо навязывания собственных цифр (что было бы губительно для PR), Microsoft приспособилась информировать о возможных потерях от спираченного ПО для бизнесов и потребителей. На основании исследований, проведённых в 2014 году, Microsoft выпустила публикацию, выполненную вместе с исследовательской фирмой IDC и Национальным университетом Сингапура.

              В этом отчёте говорится, что в 2014 году потребители по всему миру потратили 25 миллиардов долларов и примерно 1,2 миллиарда часов (устранение неполадок) на пиратское ПО.

              С другой стороны, компании потратили полтриллиона долларов на устранение проблем, связанных со скачиванием пиратского ПО. Эти проблемы вызваны обслуживанием, зловредными программами и вирусами.

              Политика Microsoft против пиратства


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

              • Translation
              Многие сталкивались с нерелятивистскими искажениями времени разработки крупных проектов. Кажется, что выполнение задачи должно занять один-два дня, а на самом деле требуется две-три недели. Это вызывает вопросы, однако существует красивая метафора для иллюстрации происходящего. Разумеется, как любая метафора, она упрощает ситуацию, поэтому на самом деле ничего не объясняет, но всё же демонстрирует некоторые любопытные механики.


              Допустим, мы строим пирамиду из кирпичиков Lego размером 2x2 блока. Сколько потребуется времени на создание MVP (minimum viable product) пирамиды? Столько, сколько требуется для установки одного кирпичика! Допустим, это 1 секунда. То есть мы создали MVP пирамиды за 1 с. Сколько потребуется времени на реализацию v1? Нам нужно установить ещё три детали на уровне 0 и одну на уровне 1. Ещё 4 детали, то есть ещё 4 секунды. А для версии v2? Ещё пять деталей на уровне 0, три детали на уровне 1 и одна на уровне 2 — суммарно девять деталей и ещё девять секунд.
              Читать дальше →
            • OrbitDB — децентрализованная база данных на IPFS



                Мы уже рассказывали про InterPlanetary File System, распределённую сеть поверх одноимённого p2p-протокола с доступом к данным по HTTP. Данные в ней не поддаются изменению (не блокчейн, но часть принципов совпадает), хранятся неограниченно долго и у неё даже есть система резервируемых имён IPNS, позволяющая бесплатно размещать статические сайты и serverless приложения. Главный недостаток IPFS — низкая и непредсказуемая скорость передачи данных: каждый файл или каталог разбивается на блоки, которые случайным образом разлетаются по всей сети и собираются воедино с помощью DHT. Таким образом, если даже незначительную часть блоков занесёт на другое полушарие, затормозится вся загрузка. Это в принципе проблема всех распределённых сетей и легкого решения нет. Зато разработчики и комьюнити проекта OrbitDB смогли решить другую назойливую проблему IPFS — отсутствие полноценной базы данных, которая могла бы полноценно интегрироваться с экосистемой IPFS и быть такой же независимой и безопасной.
                Читать дальше →
                • +28
                • 2.8k
                • 6
              • У традиционных инженерных проектов есть проблема, о которой никто не говорит

                • Translation


                Где мой летающий автомобиль?


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

                "Мы мечтали о летающих автомобилях, а получили 140 символов."

                Но правы ли они? Приведём пример: в свои ранние годы Instagram оценивался примерно в 1 миллиард долларов (на момент приобретения приложения компанией Facebook в 2012 году), имея в штате всего 6 инженеров по разработке ПО. Для контраста сравним его с более традиционной конструкторской компанией из мира атомов, например, с Rolls Royce: в 2018 году в её штате было примерно 17 тысяч инженеров из разных дисциплин (в основном не программных!), но её рыночная капитализация составляла около 27 миллиардов долларов.

                Это всего лишь один пример, и, вероятно, сравнение ценности чрезвычайно грубо, однако отличие программной и непрограммной сфер реально и наглядно. Нужно задать важный вопрос: почему инженеры-разработчики ПО производят на два порядка большую выгоду, чем инженер, не создающий программы?
                Читать дальше →
              • Защита от уязвимости Dependency Confusion в PHP с помощью Composer

                • Translation


                Недавно Алекс Бирсан опубликовал статью «Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies», в которой рассказал, как использовал диспетчеры пакетов уровня языков наподобие npm (Javascript), pip (Python) и gems (Ruby), чтобы заставить компании установить и запустить в своей инфраструктуре зловредный код.

                Проблема сводится к тому, что компании ссылаются на внутренние пакеты по имени, например my-internal-package, а злоумышленник публикует в центральном реестре/репозитории пакетов языка (для PHP это packagist.org) пакет с таким же названием my-internal-package, имеющий более высокую версию. После этого компании устанавливали и выполняли эти зловредные пакеты вместо своих внутренних пакетов, потому что их диспетчер пакетов выбирал версию с более высоким номером из стандартного репозитория пакетов вместо внутреннего репозитория.
                Читать дальше →
                • +37
                • 3.4k
                • 7
              • Что лучше: дистрибутив Linux в яблочном стиле или нормальный хакинтош?


                  Дистрибутив Trenta OS для публичного тестирования обещают выпустить в начале 2021 года

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

                  Конечно, большинство пользователей Apple благодарны за такую заботу, но некоторые считают её неуместной.

                  Выход есть: свободная и универсальная система Linux поддерживает любой GUI, в том числе «яблочный». Есть особые дистрибутивы с интерфейсом в стиле macOS или iOS — специально для пользователей с повышенными эстетическими запросами. И для тех, кто стремится вырваться из «огороженного сада» Apple, не теряя при этом чувство прекрасного.
                  Читать дальше →
                • Невидимые символы, скрывающие веб-шелл в зловредном коде на PHP

                  • Translation


                  В ноябре мы писали о том, как злоумышленники используют инъекции JavaScript для загрузки зловредного кода из файлов CSS.

                  Поначалу незаметно, что эти инъекции содержат что-то, кроме безобидных правил CSS. Однако при более тщательном анализе файла .CSS обнаруживается 56 964 кажущиеся пустыми строки, содержащие сочетания из невидимых символов табуляции (0x09), пробелов (0x20) и переводов строки (0x0A), которые преобразуются в двоичное представление символов, а затем в текст исполняемого кода на JavaScript.

                  Вскоре мы обнаружили такую же схему использования и во вредоносных программах на PHP. В статье мы расскажем о том, что обнаружил аналитик вредоносного ПО Лиам СмитSmith, работая недавно над сайтом, содержащим множество загружаемых хакерами бэкдоров и веб-шеллов.
                  Читать дальше →
                • «Who let the Doge out» или зачем приобретать альткоины

                    image

                    Курс Биткоина растет и бьет собственные рекорды. И вы человек, который до этого не задумывавшийся о криптовалютах, на волне всеобщего интереса решили попробовать приобрести крипту, но не уверены, удачное ли это вложение. А вдруг это финансовый пузырь, который скоро лопнет? Вы не хотите рисковать, но вы серьезно заинтересовались этой темой. Думаете, что необязательно терять голову и приобретать Биткоин (цена которого давно выше 40000$), ведь есть альткоины, криптовалюты, появившиеся после Биткоина. Например, один из таких, Dogecoin, который, поднялся в топ-10 криптовалют по капитализации на фоне последних новостей.
                    Читать дальше →
                  • Тестирование процессора Intel Core i9-11900K и анализ результатов PassMark

                      Несколько дней назад в базах результатов комплексного бенчмарка PassMark засветились показатели тестирования анонсированного в рамках CES 2021 семейства Rocket Lake-S в лице топового представителя Intel Core i9-11900K. Результаты тестирования быстро стали основой для однотипных новостей на различных порталах, однако никто не потрудился соотнести их с текущей ситуацией на рынке процессоров.



                      Чтобы это исправить, мы специально собрали собственный тестовый стенд и провели тестирование нового процессора компании Intel.

                      Нужно понимать, что Intel Core i9-11900K и Intel Core i7-11700K — промежуточные решения от производителя, которые вышли в откровенное «межсезонье». Принципиальное новое, двенадцатое поколение процессоров Intel на новом техпроцессе 10 нм будут анонсированы и поступят в продажу, по заверениям производителя, уже осенью 2021 года. То есть цикл жизни нового флагмана Intel Core i9-11900K — всего около 6-8 месяцев.
                      Читать дальше →
                      • +27
                      • 10.4k
                      • 6
                    • Превращаем старый Amazon Kindle в платформу разработки с e-ink

                      • Translation


                      Мне всегда хотелось заполучить экран на электронных чернилах для своих будущих проектов. Я купил небольшой экранчик с платой расширения Raspberry Pi, однако потом понял, что можно просто воспользоваться старой «читалкой» Amazon Kindle.

                      Когда-то давно я уже экспериментировал с Kindle: портировал на него интерпретатор Infocom и приложение для чтения манги. Мне удалось заставить ПО Amazon загружать их как Kindlet и отображать их интегрированными в «читалку». Однако сейчас мне нужна была просто дешёвая и удобная платформа разработки под Linux с eink.

                      Дешёвый Kindle с Ebay (и причина его дешевизны)


                      Итак, я отправился на ebay! Нашёл там множество очень дешёвых лотов, помеченных как «Заблокирован Amazon». Я решил, что не стоит их брать, потому что, теоретически, они могут быть краденными. В конечном итоге я выбрал Kindle 4 без сенсорного экрана за 7 фунтов.

                      Спустя несколько дней он приехал. Тогда я и понял, почему он был таким дешёвым: на экране постоянно отображался некий демо-режим, из которого невозможно выйти:
                      Читать дальше →
                    • Хостим Bitwarden — open-source менеджер паролей

                      • Tutorial


                      Менеджеры паролей действительно полезны и важны как для отдельных пользователей, так и для организаций, и они пригодятся, когда у вас много разных учетных записей и паролей. Обычно люди не любят пользоваться сторонними менеджерами паролей с сервисной архитектурой — неизвестно, что происходит с данными на чужом сервере, и не будет ли он скомпрометирован. Самое безопасное решение это разместить менеджер на своём собственном (как следует защищенном) сервере. Разумеется, к такому self-hosted варианту возникает много требований, и большой список решений с открытым исходным кодом довольно быстро сужается до нескольких известных, проверенных продуктов. Среди них мне больше всего нравится Bitwarden, и сейчас я объясню почему.
                      Читать дальше →
                    • Решение забавной задачки на JavaScript

                      • Translation
                      Наша история начинается с твита Томаша Лакомы, в котором он предлагает представить, что такой вопрос встретился вам на собеседовании.



                      Мне кажется, что реакция на такой вопрос на собеседовании зависит от того, в чём конкретно он заключается. Если вопрос действительно в том, каково значение tree, то код можно просто вставить в консоль и получить результат.

                      Однако если вопрос в том, как бы вы решили эту задачу, то всё становится достаточно любопытным и приводит к проверке знаний тонкостей работы JavaScript и компилятора. В этой статье я попробую разобрать всю эту неразбериху и получить интересные выводы.
                      Читать дальше →