• Как подступиться к fullstack-разработке сегодня, если ты проспал десять лет



    Привет, Хабр! Несколько месяцев назад у меня остро встал вопрос смены профиля деятельности и я обнаружил, что для претендента на вакансию web-разработчика сейчас недостаточно навыков десятилетней давности (какая неожиданность!). Пришлось срочно актуализировать свои знания. Заодно я решил составить шпаргалку с описанием большинства современных технологий, чтобы в случае чего кидать жаждущим новых знаний линк на эту статью, да и самому не забывать.
    Читать дальше →
  • HTML, который мы потеряли

    Привет, Хабр! Представляю вашему вниманию перевод статьи "The HTML we never had" автора Сергея Кучерова.


    В этом году исполняется 30 лет с тех пор, как Бернерс-Ли начал разрабатывать язык HTML. С тех пор мы прошли долгий путь, начиная с восхищения новой технологией, и заканчивая лечением интернет-зависимости и цензурой. Каких только бед не принес нам Интернет, взломанные пароли, кража личных данных, компьютерные вирусы, черви, а теперь даже вирусы-вымогатели. Вы когда-нибудь задумывались, почему Сеть до сих пор остается такой нестабильной и уязвимой? Где-то на этом длинном пути мы свернули не туда? Давайте разбираться.

    Читать дальше →
  • Как «пробить» человека в Интернет: используем операторы Google и логику

    • Tutorial

    В очередной статье нашего цикла публикаций, посвященного интернет-разведке, рассмотрим, как операторы продвинутого поиска Google (advanced search operators) позволяют быстро находить необходимую информацию о конкретном человеке.


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


    Читать дальше →
  • Junior FPGA Design Engineer: как стать?

      Всем привет!

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

      Разработка под FPGA (ПЛИС) — это не просто какой-то язык. Это очень объемная область, с огромным количеством подводных камней и нюансов.

      В этой статье вы найдете:
      • список тем, которые должен освоить начинающий разработчик под FPGA
      • рекомендуемую литературу по каждой из тем
      • набор тестовых вопросов и лабораторных работ
      • классические ошибки новичков (и советы по исправлению)

      Добро пожаловать под кат!
      Читать дальше →
    • Диаграмма Вороного и её применения

      Доброго всем времени суток, уважаемые посетители сайта Хабрахабр. В данной статье я бы хотел рассказать вам о том, что такое диаграмма Вороного (изображена на картинке ниже), о различных алгоритмах её построения (за , — пересечение полуплоскостей, — алгоритм Форчуна) и некоторых тонкостях реализации (на языке C++).



      Также будет рассмотрено много интересных применений диаграммы и несколько любопытных фактов о ней. Будет интересно!
      Читать дальше →
    • Новая техника атак на основе Meltdown. Использование спекулятивных инструкций для детектирования виртуализации

        Атака Meltdown открыла новый класс атак на процессоры, использующий архитектурные состояния для передачи информации. Но спекулятивное исполнение, которое было впервые применено для атаки в Meltdown, позволяет не только выполнить код со снятием ограничений, но и узнать определенные детали работы процессора. Мы нашли новый способ реализации атаки с использованием архитектурных состояний. Он позволяет детектировать виртуализацию, опираясь на то, как процессор выбирает, отправлять инструкции на спекулятивное исполнение или нет. Мы сообщили о данном способе в Intel, и 21 мая 2018 года было выпущено оповещение об уязвимостях «Q2 2018 Speculative Execution Side Channel Update», в котором присутствует наша уязвимость CVE-2018-3640 или Spectre Variant 3a.
        Читать дальше →
      • Часы на газоразрядных лампах (ГРИ), они же Nixie clock

          Концепция проекта


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

          Задачи создать прибор для массового производства не ставилось.

          Поэтому бюджет проекта заметно больше разумного. Решения принимались исходя из собственных представлений о красоте, стоимость комплектующих не учитывалась. Реально ограничения конечно есть всегда и, например, покупать большие ГРИ (газоразрядные индикаторы) типа ИН18 я не стал – цена их больше интуитивно определенной границы и они не вписывались в мою концепцию внешнего вида изделия. Я использовал ГРИ типа ИН-12.
          Рассказ об увлекательной работе далее
        • Брет Виктор: Несколько слов о Дугласе Энгельбарте

          • Перевод
          image
          Люди часто сравнивают работу Энгельбарта с современными технологиями, но это неправильно. Забудьте про сегодня, просто подумайте о том, что он делал, с точки зрения его целей.

          Дуглас Энгельбарт умер сегодня (July 3, 2013). Его труды всегда было очень сложно интерпретировать и объяснять.

          Многие эксперты, к сожалению, часто упускают суть его работы, потому что они рассматривают всё как техническую задачу. Энгельбарт посвятил свою жизнь проблемам человечества, технологии были лишь частью их решения. Когда я читаю интервью экспертов с Энгельбартом, я представляю, как они брали бы интервью у Джорджа Оруэлла, задавая глубокие вопросы про его пишущую машинку.
          Читать дальше →
        • IT в Германии — как искать работу в крупных городах Германии

            Уехать в Германию при наличии опыта работы в IT довольно просто, и множество статей на эту тему помогают определиться с выбором. Эта статья не будет исключением, в ней собраны истории 5х эмигрантов, которые поделились своим опытом работы в крупных городах Германии и рассказали, что нужно делать, чтобы найти работу и успешно продвигаться по карьерной лестнице. В качестве бонуса — особенности выживания в иностранном коллективе и приятные фишки немецкой рабочей среды. Статья написана в формате мини-интервью, 6 вопросов и ответов от каждого автора


            Читать дальше →
          • Алан Кей: «Какие книги Вы бы посоветовали прочесть тому, кто учится на Computer Science»

            • Перевод
            Если вкратце, то я бы посоветовал читать много книг, не имеющих отношения к информатике.

            image

            Важно понимать, какое место занимает понятие «science» в «Computer Science», и что означает «engineering» в «Software Engineering».

            Современное понятие «науки» можно сформулировать так: это попытка перевести явления в модели, которые можно более-менее легко объяснить и предсказать. На эту тему можно прочесть «Sciences of the Artificial» (одна из важных книг Герберта Саймона). На это можно смотреть с такой точки зрения: если люди (особенно разработчики) строят мосты, то учёные могут объяснять эти явления, создавая модели. Самое интересное в этом то, что наука почти постоянно будет находить новые, лучшие способы наведения мостов, так что дружеские отношения между учеными и разработчиками вполне могут улучшаться с каждым годом.

            Примером подобного из сферы Computer Science является Джон Маккарти, размышляющий о компьютерах в конце 50-х годов, то есть о невероятно большом спектре того, что они могут сделать (может быть, ИИ?), и создание модели вычислений, которая является языком, и может служить в качестве собственного метаязыка (Lisp). Моя любимая книга на эту тему — «The Lisp 1.5 Manual» от MIT Press (автор Маккарти с соавторами). Первая часть этой книги по-прежнему остается классикой того, как нужно думать в целом и об информационных технологиях в частности.
            Читать дальше →
            • +14
            • 15,3k
            • 5
          • Смарт апдейты против смарт контрактов

              Что есть смарт контракт и зачем он был нужен?


              Давным давно, после появления биткоина — первой реплицируемой стейт машины — люди начали замечать что функциональность заложенная в консенсус слишком ограничена. Я не говорю сейчас про добавление торговлей криптокотов, а про вполне реальные юзкейсы — DNS где каждый домен принадлежит публичному ключу а не централизованному регистратору, всякого рода токены и финансовые деривативы (ведь хочется владеть акциями так же как ты владеешь биткоином), ончейн обменки (чтобы торговать на крупные суммы без доверия обменке), пеймент каналы (быстро перераспределять общий escrow между двумя аккаунтами без оверхеда сообщения о транзакции вообще всем)…

              Выходов для добавления функций было три:

              1) самый очевидный — вписать их в код самого блокчейн, нативно.

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

              2) создать другой блокчейн с этим функционалом.

              Так и произошло с несколькими «блокчейнами одной идеи» аля namecoin. Вскоре было замечено что люди не хотят использовать новую сеть ради одной функции, также нужна interoperability и очень многие вещи зависят друг от друга (кредиты, айдентити и сами ассеты хотят жить в одном адресном пространстве)

              3) реализовать функции средствами внутренней виртуальной машины и опкодов.

              Даже в биткоин Сатоши заложил Script именно из-за проблемы обновлений, который позволял сделать многое, но его было не достаточно. Поэтому эфиром был предложен расширенный скрипт (теперь turing complete) и с ним якобы можно сделать что угодно (в теории).
              image
              Читать дальше →
            • Иголка в стоге сессий, или Байт-код регулярных выражений


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


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


                В последней статье из серии, посвящённой виртуальным машинам, я расскажу про альтернативный подход к поиску интересных сессий — движок регулярных выражений («Поросячий Матчер»), определённых для последовательностей событий.


                Виртуальная машина, байт-код и компилятор прилагаются бесплатно!

                Читать дальше →
              • Проектирование процессора (CPU Design) RAM-машина

                • Tutorial

                Часть I
                Часть II
                Часть III
                Часть IV
                Часть V


                На Хабре уже была опубликована статья, посвящённая RAM-машине.
                Вообще, статья про RAM-машину есть на Википедии.

                RAM-машина, которая упоминается в книге «Построение и анализ вычислительных алгоритмов» -авторы: Ахо, Хопкрофт, Ульман — имеет ограниченный набор арифметических команд, у нас же из арифметических команд будут только «сложение» и «вычитание». Кроме арифметических доступны также команды ввода-вывода, косвенной адресации и команды ветвления.

                Отличием LIttle Man Computer'а (который я описывал в предыдущих частях цикла) от RAM-машины является механизм, обеспечивающий косвенную адресацию (возможность работать с числом, хранящемся в памяти, как с адресом).

                Для того, чтобы работать с числом, хранящимся в памяти, как с адресом, подключим к адресному входу Памяти Данных мультиплексор MUX, осуществляющий выборку между, собственно, адресом (поступающим из Памяти Команд) и числом, представляющем адрес и хранящемся в Памяти Данных.


                Читать дальше →
              • Качество воздуха в доме зимой

                  image

                  Зимой воздух в помещении хуже всего. Духота, сухость. Работает отопление, проветривать часто нельзя, потому что замерзнешь. Особенно актуально, когда дома есть маленькие дети.
                  Как соблюсти баланс? Возможно ли это?

                  В статье я приведу цифры и расчеты. А еще свой вариант решения проблемы и устройство, собранное для этого. Кому интересно, прошу под кат…
                  Читать дальше →
                • Full disclosure: 0day-уязвимость побега из VirtualBox

                  image


                  Мне нравится VirtualBox, и он не имеет никакого отношения к причине, по которой я выкладываю информацию об уязвимости. Причина заключается в несогласии с текущими реалиями в информационной безопасности, точнее, в направлении security research и bug bounty.

                  Читать дальше →
                • Схема разделения секрета Шамира

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

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

                  С мыслью об отпуске вы решили сделать копию ключа и доверить её другому сотруднику. Однако вы понимаете, что это тоже не идеально. Удваивая количество ключей, вы также удвоили возможности кражи ключа.

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

                    В данной статье хотелось бы рассмотреть механизмы доставки прерываний от внешних устройств в системе x86 и попытаться ответить на вопросы:

                    • что такое PIC и для чего он нужен?
                    • что такое APIC и для чего он нужен? Для чего нужны LAPIC и I/O APIC?
                    • в чём отличия APIC, xAPIC и x2APIC?
                    • что такое MSI? В чём отличия MSI и MSI-X?
                    • как с этим связаны таблицы $PIR, MPtable, ACPI?

                    Если на какой-то из этих вопросов вам интересно получить ответ или вы просто хотите ознакомиться с эволюцией контроллеров прерываний в системе x86, добро пожаловать под кат.
                    Читать дальше →
                  • Правдоподобия, P-значения и кризис воспроизводимости

                    • Перевод
                    Или: Как переход от публикации P-значений к публикации функций правдоподобия поможет справиться с кризисом воспроизводимости: личное мнение Элиезера Юдковского.

                    Если Монро нарисовал комиксы про 75% существующих интересных проблем, а четверть моих статей интересные, то какова вероятность, что рано или поздно мне придётся искать КДПВ где-то ещё?

                    Комментарий переводчика: Юдковский, автор HPMOR, создатель Lesswrong и прочая и прочая, изложил свою позицию по поводу пользы байесовской статистики в естественных науках в форме диалога. Прямо классический такой диалог из античности или эпохи возрождения, с персонажами, излагающими идеи, обменом колкостями вперемешку с запутанными аргументами и неизбежно тупящим Симплицио. Диалог довольно длинный, минут на двадцать чтения, но по-моему, он того стоит.

                    Дисклеймеры
                    • Этот диалог был написан сторонником байесовского подхода. Реплики Учёного в нижеприведённом диалоге могут и не пройти идеологический тест Тьюринга на фреквентизм. Возможно, что они не отдают должное аргументам и контраргументам сторонников частотного подхода к вероятности.
                    • Автор не рассчитывает, что описанные ниже предложения будут приняты широким научным сообществом в ближайшие десять лет. Тем не менее, это стоило написать.

                    Если вы ещё не знакомы с правилом Байеса, на сайте Arbital есть подробное введение.

                    Модератор: Добрый вечер. Сегодня в нашей студии: Учёный, практикующий специалист в области… химической психологии или чего-то типа того; его оппонент Байесовец, который намерен доказать, что кризис воспроизводимости в науке можно как-то преодолеть с помощью замены P-значений на что-то из Байесовской статистики…
                    Студент: Извините, как это пишется?
                    Модератор:… и, наконец, ничего не понимающий Студент справа от меня.
                    Читать дальше →
                  • Управляемые токенами реестры 1.0

                    • Перевод


                    Идея управляемых токенами реестров (TCR) зародилась в блокчейн-сообществе не менее года назад. По крайней мере, эта статья была опубликована автором еще в сентябре 2017 года. А недавно я был на конференции DappCon 2018 в Берлине и увидел большой интерес к этой теме, а также несколько ранних набросков на основе TCR. Поэтому предполагаю, что пик интереса еще впереди.


                    Мне TCR-контракты представляются крайне интересными, поскольку они являют собой пример наиболее простой замкнутой системы, управляемой децентрализованно и на основе экономических стимулов. Если немного пофантазировать, становится понятно, что на основе этой идеи можно децентрализовать очень многое, возможно даже всё в нашей социально-экономической жизни. И это уже не просто галлюцинации сумасшедших криптанов, а вполне неплохо сформулированный протокол. Более подробно читайте под катом.

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