Автор: rikki

Партнёрки, баннеры и дорвеи

На тему заработка в интернете написано столько чуши, что кто-то даже может поверить, что это работает. Для полных лохов пишут статьи в духе “Зарабатываю $100500 каждый день”. Для лохов, которых уже пару сотен раз облапошили, актуальны статьи класса “Правда ли, что бинарные опционы развод для лохов?”. Лох читает и узнаёт, что для лохов это разводка, а…

Прочитать статью целиком

source для virtualenv под windows

Иногда бывает нужно сделать свой, небольшой локальный Python-мирок. Например, если мы пишем на djan­go и не хотим ставить пакеты глобально. Это очень поможет, когда намного позже мы будем собирать инсталлятор к проекту. Мы сможем одной командой pip узнать, какие пакеты нужны. Как это делается сейчас Python 3 научился создавать vir­tualenv штатными средствами. Вот так: python3…

Прочитать статью целиком

Как C и Perl захватили планету

Почему C и Perl стали стандартами в своих областях и до сих пор на коне? Дело, конечно, не только в синтаксисе и парадигме. И даже не в простоте. C, конечно, прост, это по-человечески записанный кроссплатформенный ассемблер. Но Perl совсем не прост, это многослойная обёртка вокруг парсера регулярных выражений. Весь секрет — в нечестных преимуществах. Компиляторы…

Прочитать статью целиком

Пишем Ruby gem для Yandex Direct API

Очень хотелось изучить Ruby получше, а рабочего проекта не было. И я попробовал написать gem для работы с Yan­dex Direct API. Причин было несколько. Среди них: Yan­dex Direct API очень типичен для Яндекса и современных REST-сервисов вообще. Если разобраться и преодолеть типичные ошибки, то можно легко и быстро написать аналоги для прочих API Яндекса (и…

Прочитать статью целиком

RegExp в Presto

Opera в своё время прославилась тем, что не поддерживала com­pile() у регулярных выражений. Дело было в движке Presto (которые почему-то не желает их копилировать). И вот случилось — Opera переехала на Blink. Теперь com­pile() поддерживается.… но не в Opera Mini, которая как была на Presto, там так и остаётся.

Показать в JavaScript alert без остановки таймера

Вообще, использовать стандартный JavaScript alert даже для отладки — плохая идея. Для сообщений есть отличные окошки из Boot­strap JS или jQueryUI, для отладочной информации — console.log. Но иногда нужно написать окошко очень-очень быстро. Например, сдать бета-версию приложения, а окошко потом переделать. В браузерах, основанных на WebKit (Chrome, Safari, JavaFX WebEngine) открытый alert считается чрезвычайным событием…

Прочитать статью целиком

SHA256 в Python

SHA256 в Python бывает и стандартный (из hash­lib), и сторонний (из PyCryp­to). Интересно, что при неосторожном использовании они дают разные результаты. Во-первых, SHA256.new() из PyCryp­to сразу после создания имеет digest. Это SHA от пустой строки — широко известное 0xe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. Во-вторых, каждый update накладывается в нём на предыдущий, поэтому если digest используется на следующей итерации, то SHA256.new()…

Прочитать статью целиком

Тайна неуязвимости Человека с чемоданчиком

Раскрыт секрет неуязвимости Человека с чемоданчиком (он же G-Man) из первых версий Half-Life. Если заглянуть в исходники, становится ясно, почему в него высаживали целую обойму, а он всё равно живой: SetIm­pactEn­er­gyScale( 0.0f ); // no physics dam­age on the gman