• Введение в компиляторы, интерпретаторы и JIT’ы

    • Перевод
    С рождением PHP 7 не прекращаются споры об абстрактных синтаксических деревьях, just-in-time компиляторах, статическом анализе и т. д. Но что означают все эти термины? Это какие-то волшебные свойства, делающие PHP гораздо производительнее? И если да, то как это всё работает? В этой статье мы рассмотрим основы работы языков программирования и разъясним для себя процесс, который должен выполняться до того, как компьютер запустит, например, ваш PHP-скрипт.
    Читать дальше →
  • Что стоит за номером «кредитки»

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

      А теперь, собственно, инфографика о том, как устроены номера банковски карт (600*1800px 280KB):

      Читать дальше →
    • Эксклюзив: Как алгоритм Google управляет интернетом

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

      imageХотите ли вы узнать, как Google собирается изменить вашу жизнь? Остановитесь около комнаты совещаний Уагадугу во вторник утром. Это решается здесь, в Калифорнии, в Маунтин Вью, в головном офисе самой влиятельной интернет-компании в мире, в комнате, наполненной тремя десятками инженеров, менеджеров и руководителей, которые определяют, как сделать поисковую машину еще умнее. В этом году компания Google представила около 550 усовершенствований в свой легендарный алгоритм, и каждое определяет выдачу информации. Решения, принимаемые на еженедельном Совещании по Качеству Поиска, влияют на результаты выдачи поисковой системы для любых ваших запросов — «принтер Samsung SF-755p», «страничка Ed Hardy на MySpace» или даже «столица Буркина Фасо», которая, кстати, называется также, как и эта комната для совещаний. Руководит процессом Уди Мэнбер, глава Google по поиску с 2006 года. Предполагаемые изменения вместе с результатами месяцев тестирования в различных странах и на всевозможных языках представляются одно за другим. На экранах рядом друг с другом отображаются результаты запросов до и после изменения. Следом за выдачей результата поиска «гитарный центр вау-вау» — Мэнбер кричит: «Получилось!»
      Читать дальше →
    • Алгоритмы поиска, обратный индекс — Часть 1

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


        Что вы узнаете?


        Алгоритмы поиска. Что представляет из себя индексация, инвертированный индекс. Математические модели, используемые современными поисковыми системами.
        Узнать больше
      • Превью и Resize картинок на лету

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

          Идея простая и не новая. C таким подходом я в первые столкнулся в UMI-CMS, а использовал в RubyOnRails. Смысл в том, что превью создаются только когда они нужны и какого угодно размера, а В БД храниться только название оригинала.

          Если Вам необходимо вывести превью картинки вы вызываете функцию типа:
          1. @thumbs = Photo.view_thumbs('originals_name_file.jpg', '100', 'auto')
          где второй и третий параметр это нужный размер в пикселах (auto значит автоматическая подгонка под массштаб).

          Метод view_thumbs проверяет в папке (например "/images/cache") наличие файла originals_name_file_100xauto.jpg. Если находит то возвращает строку «originals_name_file_100xauto.jpg», если не находит, то создаёт файл нужных размеров на лету и возвращает то же самое.

          Достоинства подхода очевидны:
          1. Не создаётся мусора в виде большого количества превьюшек на диске. Все превью храняться в одной папке «cache» и могут периодически удаляться для освобождения места.
          2. Неограниченное количество превьюшек разных размеров. Достаточно только задать нужные параметры в методе.
          Для cakePHP есть хелпер images.php который можно выдернуть из Bakesale (автоматической подгонки нет). Ниже представлен метод на RubyOnRails реализующий данный подход.
          Читать дальше →
        • Декоратор для обработки форм Ajax`ом

            После прочтения статьи я решил написать декоратор который будет прикреплять jquery код для получения данных из формы и отправки их на сервер.
            Своим опытом спешу поделится с хабрасообществом.
            Читать дальше →
          • Сервер дома — AMD, Debian x64, Bind9, Apache 2, PHP5, MySQL5, Trac, Subversion и море удовольствия

              Шило в известном месте всё никак не даёт мне покоя.
              И решил я поэкспериментировать с установкой сервера дома.

              Итак, дано:

              1. Домашний интернет с внешним ip на роутере, канал туда/обратно — 8 мбит, провайдер — QWERTY *
              2. Бюджет не больше 10 тысяч рублей — чем меньше, тем лучше. **
              3. Жгучее желание экспериментов и чего-нибудь эдакого ***

              * К сожалению, мой дом не подключает Корбина, у которой более широкие каналы. Приходится довольствоваться тем, что есть
              ** Получилось путём более-менее реального подсчёта стоимости комплектующих на среднестатический компьютер
              *** Для тех, кто хмыкнет и скажет — «эка невидаль, я такое регулярно делаю» — я не так часто что-то настраиваю, больше пишу под уже настроенное, и для меня это чистой воды развлечение — что-то сделать своими руками=)

              Ну, все процедуры тут, под катом.

              Сразу хочу сказать, что у меня это работает — так, как есть. Дополнительно с бубном я не плясал — но тут вытяжки из моих гуглений и мануалокурений.

              Вероятно, что-то можно настроить более гибко или качественно, и я крайне буду рад советам или решениям=)


              Читать дальше →
            • Логика английских времен

                Изучавшие или изучающие английский язык знают, каким страшным может казаться множество английских временных форм глаголов.
                Всего в английском 12 временных форм. А в русском-то, на первый взгляд, всего 3, и как их связать с английскими, для новичка может быть совершенно не понятно.
                Читать дальше →
              • PHP класс для сборки инклюдов в один файл

                  по мотивам коммента mocksoul из темы PHP: Введение в Zend Framework

                  Проблема


                  В кратце, речь шла о том, что одним из недостатков фреймворка является его концепция «один класс – один файл». И хотя, с моей точки зрения, это не является недостатком архитектуры ZF, это является недостатком PHP. Проблемы начинаются когда PHP начинает инклюдить десятки и сотни файлов, да еще проверять их на once.

                  Предложенное решение – сборка всех инклюдов в один файл.
                  Читать дальше →
                • Подключаемся к камерам наблюдения

                    image

                    Зачем нужны камеры наблюдения? Правильно — чтобы наблюдать за происходящим и контролировать ситуацию! В наше неспокойное время эти самые камеры развешаны повсюду — от денежных хранилищ до придорожных кафе. Однако защищая свои владения, хозяева порой забывают о защите самой камеры путем банальной установки пароля на доступ из Интернета. И очень зря. Если пароль не установить — ваша камера «безопасности» превращается в публичную вэб-камеру с реалити шоу для всех желающих.
                    Читать дальше →