• На-click-ать известность, или как взбудоражить робота и … остальных



    Давным-давно, у фасада далекого-далекого магазина состоялся подслушанный разговор:
    NB: - А как привести много посетителей на свой новый сайт?

    GURU: - Ну можно ссылок «раскидать» на разных форумах и в соц. сетях. Поисковая оптимизация поможет и контент. Можно тизерные сети привлечь, а можно много раз посетить сайт через разные прокси ...

    NB: - И чем же помогут такие посещения, ведь это иллюзия живых людей?

    GURU: - Счетчик статистики от google или от yandex объяснит поисковикам, что сайт становится популярным. Да еще и реферер можно связать с посещаемыми сайтами по запросам. Подрастет позиция в поисковиках, а значит и подрастет поисковый трафик.

    NB: - А где же взять такое количество прокси?

    GURU: - Где?… Ну в интернете поищи...
    NB перестал спрашивать, видимо, опасаясь раздражать явно более опытного собеседника.
    GURU закатил глаза, как бы подчеркивая исчерпанность темы про прокси и замолчал…
    Читать дальше →
  • Как сделать расширение на PHP7 сложнее, чем «hello, world», и не стать красноглазиком. Часть 2

    • Tutorial

    Краткое содержание первой части


    В первой части я сделал болванку расширения, заставил ее правильно работать в IDE Clion, написал функцию-аналог my_array_fill() и проверил ее работоспособность в php.

    Что теперь?


    Теперь я запилю код библиотеки libtrie в наше расширение.

    Немного расскажу как можно заставить работать старые php5 расширения в php7.
    Дальше я сделаю несколько основных функций из этой библиотеки в php и проверю, что получилось.
    Читать дальше →
    • +16
    • 4,6k
    • 8
  • Как сделать расширение на PHP7 сложнее, чем «hello, world», и не стать красноглазиком. Часть 1

    • Tutorial

    Зачем?


    Я пишу эту статью для того, чтобы путь, который у меня занял в общей сложности не меньше года, читатель смог пройти за пару часов. Как показал мой личный опыт, просто программировать на Си несколько легче, чем заставить работать серьезное расширение для PHP. Здесь я максимально подробно расскажу вам о том, как сделать расширение на примере библиотеки libtrie, реализующей префиксное дерево, более известное как trie. Я буду писать и параллельно выполнять описываемые действия на свежеустановленной системе Lubuntu 18.04.

    Начнем.
    Читать дальше →
  • Загрузка ядра Linux. Часть 1

    • Перевод
    От загрузчика к ядру

    Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux.

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

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

      image

      Введение


      Прошло долгих четыре месяца с момента публикации статьи о моей попытке низкоуровневой реализации префиксного дерева. Несмотря на все мои старания потолок на который оказалась способна моя прошлая реализация префиксного дерева был ~80 тыс. слов в секунду. Я потратил тогда кучу сил и времени, но полученный результат сгодился бы только как лабораторная работа по информатике.

      Многие тогда мне говорили: «Не изобретай велосипед, который уже изобрели! Используй готовое решение». Сложность в том, что мне не удавалось использовать что-то, что я не понимаю хотя бы в общих очертаниях.

      Префиксное дерево я кажется понял, и вот чего удалось добиться.
      Читать дальше →
    • Курс MIT «Безопасность компьютерных систем». Лекция 14: «SSL и HTTPS», часть 2

      • Перевод
      • Tutorial

      Массачусетский Технологический институт. Курс лекций #6.858. «Безопасность компьютерных систем». Николай Зельдович, Джеймс Микенс. 2014 год


      Computer Systems Security — это курс о разработке и внедрении защищенных компьютерных систем. Лекции охватывают модели угроз, атаки, которые ставят под угрозу безопасность, и методы обеспечения безопасности на основе последних научных работ. Темы включают в себя безопасность операционной системы (ОС), возможности, управление потоками информации, языковую безопасность, сетевые протоколы, аппаратную защиту и безопасность в веб-приложениях.

      Лекция 1: «Вступление: модели угроз» Часть 1 / Часть 2 / Часть 3
      Лекция 2: «Контроль хакерских атак» Часть 1 / Часть 2 / Часть 3
      Лекция 3: «Переполнение буфера: эксплойты и защита» Часть 1 / Часть 2 / Часть 3
      Лекция 4: «Разделение привилегий» Часть 1 / Часть 2 / Часть 3
      Лекция 5: «Откуда берутся ошибки систем безопасности» Часть 1 / Часть 2
      Лекция 6: «Возможности» Часть 1 / Часть 2 / Часть 3
      Лекция 7: «Песочница Native Client» Часть 1 / Часть 2 / Часть 3
      Лекция 8: «Модель сетевой безопасности» Часть 1 / Часть 2 / Часть 3
      Лекция 9: «Безопасность Web-приложений» Часть 1 / Часть 2 / Часть 3
      Лекция 10: «Символьное выполнение» Часть 1 / Часть 2 / Часть 3
      Лекция 11: «Язык программирования Ur/Web» Часть 1 / Часть 2 / Часть 3
      Лекция 12: «Сетевая безопасность» Часть 1 / Часть 2 / Часть 3
      Лекция 13: «Сетевые протоколы» Часть 1 / Часть 2 / Часть 3
      Лекция 14: «SSL и HTTPS» Часть 1 / Часть 2 / Часть 3
      Читать дальше →
    • Низкоуровневая реализация префиксного дерева trie на PHP

        Предисловие


        Описанная здесь реализация trie на PHP делает пока слишком жирный словарь, который соответственно довольно долго загружается в память, что нивелирует довольно неплохую скорость её работы. Скорость поиска составляет ~80 тыс. слов в секунду. Словарь сделан из списка лемм словаря opencorpora.org и включает в себя 389844 слова. В несжатом виде словарь весит ~150мб, а сжатый gzip ~6мб. Однако довольно неплохие результаты быстродействия доказывают, что на чистом PHP можно сделать вполне работоспособное префиксное дерево trie.
        Читать дальше →