• Сборка ICO файла с иконками в формате PNG при помощи FASM
    0
    Это всё делает же convert из пакета IMagick
    (Его так же можно попросить завернуть в ico заранее подготовленные png)

    convert icon.png -bordercolor white -border 0 \
              \( -clone 0 -resize 48x48 -colors 256 \) \
              \( -clone 0 -resize 32x32 -colors 256 \) \
              \( -clone 0 -resize 16x16 -colors 256 \) \
              \( -clone 0 -resize 256x256 -colors 256 \) \
              \( -clone 0 -resize 48x48 \) \
              \( -clone 0 -resize 32x32 \) \
              \( -clone 0 -resize 24x24 \) \
              \( -clone 0 -resize 16x16 \) \
              icon.ico
    
  • DBSlayer прокси на BASH за 5 минут или еще один способ отдать JSON из MySQL
    0
    расововерный sleep :)
    Я очень радовался )
  • Четыре профессиональные деформации программистов на языке Perl, демонстрируемые на живом примере
    +6
    Бггггг
    Если бы меня попросили что-то написать для ФИДО, я бы завернул что-нибудь еще менее читаемое и максимально трудно запускаемое, чтобы оно гармонировало с остальным так называемым программным обеспечением фидонета.

    И там бы обязательно была бы регекспа s/H/Н/g %) Если вы понимаете, о чем я :)
  • Я просто оставлю это здесь
    +3
    Perl — язык для взрослых ;)

    Есть еще очень много интересных и загадочных граблей, но часть из них — изюм высшей пробы :)
  • В nginx появился нативный модуль стриминга mp4
    0
    Свершилось!
  • Говнокод: врага надо знать в лицо
    0
    немного опоздал :)

    local $\="\n";
    print join '-', $_%2?1..$_:reverse 1..$_ for 1..6;
  • Восстановление сохраненного пароля pppoe сессии из маршрутизатора
    0
    Ести есть пароль от роутера, и из него надо достать пароль от интернета, то для роутеров dlink заходим по ssh и делаем ps. Один из процессов получает пароль в явном виде и палится ;) Не факт что так можно со всеми роутерами, своей модели уже не помню.

    Ваш способ конечно полностью универсален.
  • В Украине дали четкое определение эротики
    0
    Эротика — это когда смотришь, и тебе нравится, а порнография — это когда смотришь, и тебе хочется…
  • Как очистить карму своему коду?
    0
    Главное потом не ошибиться в названии функции %)

    Это не рефакторинг, это прям обфускация какая-то…
  • Будущее суперкомпьютерных вычислений
    0
    Я, конечно, могу ошибаться. Но квантовые компьютеры как правило решают конкретные задачи. Иными словами, нельзя создать квантовый компьютер, не смоделировав решаемую им задачу. А это уже требует немалых ресурсов :)

    Попробуйте разобраться во всей рекурсии определения данного в википедии loh.ru/x0u — сразу станет понятно, что чтобы понять рекурсию, надо понять рекурсию ;)

    Ну все ИМХО )))) Там посмотрим, вроде на наш век приходится.
  • Будущее суперкомпьютерных вычислений
    +4
    Тут скорее вопрос не алгоритмов, а «предельного перехода» :)
    ИИ с большей вероятностью появится не за счет каких-то там алгоритмов, а за счет моделирования снизу вверх от простого к сложному с использованием тупого брутфорса (модель эволюции). Для этого понадобятся мощности, и только потом алгоритмы.
    Ну по крайней мере я склоняюсь к такому сценарию :)
  • Будущее суперкомпьютерных вычислений
    +3
    трансгуманист детектед :)
  • Будущее суперкомпьютерных вычислений
    +1
    Время искуственного интеллекта приближается гораздо быстрее, чем казалось…
  • Будущее суперкомпьютерных вычислений
    +4
    Транзистор «размерами в одну 22-миллиардную(!) долю метра» представить очень-очень трудно :)
    А вот в 22 миллиардных метра вполне себе транзистор.
  • Операторы '&&' и 'and' в Ruby
    0
    Этапять ящитаю %)
    Неожиданно )
  • Операторы '&&' и 'and' в Ruby
    0
    Такой приоритет операторов пришел из Perl. Многие современные скриптовые языки так или иначе многое почерпнули из Perl :) PHP, Ruby и Python не исключение.

    Кстати, в Perl логические операторы && и || (а теперь еще и //) на самом деле не чисто логические. Конструкция вида $a || $b вернет значение первой переменной, которое будет истиной. Например $a = 0 || 5 присвоит $a = 5, но не $a = true :)
    Это дает дополнительную гибкость языку. Многие этого почему-то не любят, но это их право всего бояться и писать конструкции вида if (1 == $a) {...}
    Возможности и особенности языка надо знать, без этого иногда становится грустно :)
  • Прекратите спрашивать с меня подтверждение
    +1
    Вводить надо только мыло, логины отменить, пароль с подтверждением регистрации высылать на почту, после подтверждения дать возможность (не обязать!!!) заполнить анкету. Для большинства современных сервисов этого вполне достаточно. Ну максимум еще ник просить.
  • Этот загадочный while…
    0
    Я был уверен, что Perl все условия раскрывает как тернарный оператор. ))

    Я не экспериментировал с депарсом. Но что-то мне теперь подсказывает, что постфиксные условия Deparse раскрывает через логические операторы ))

    Я and гарантированно использую в одном случае, когда не хочется отдельно объявлять переменную, а в одну строчку нельзя.
    Писать
    my $var = 'some' if $a == $b;
    не есть правильно.
    Я пишу
    my $var = $a == $b && 'some'; # and писать нельзя! ))
    Конечно при условии, что тут не получится откровенной фигни )))
    Что-то мне подсказывает, что Perl поступил бы примерно так же ))

    А вообще да, тут есть неоднозначность. Вернее сказать, неоднозначность для неопытного программиста )) Думаю большинство предположат, что мап сформирует список из одного элемента. Здесь же мап, в случаях, когда $_ != 4, вставит пустую строку, т.к. пустая строка есть последнее вычисленное значение внутри блока.

    Хрупкий, хрупкий мир.
  • Этот загадочный while…
    0
    Ну как сказать :)
    TMTOWTDI во всей красе ))
    Второй вариант кстати проще к понимаю что происходит. Конечно при условии, что знаешь, что не истинное логическое выражение возвращает пустую строку, а истинное единицу )))
    Я не люблю строить такие логические цепочки. Хотя вру. Люблю, но только с || или or ))) Они как-то понятнее смотрятся ) Да и применение находят чаще )
  • Этот загадочный while…
    0
    Вот еще:

    perl -MData::Dumper -e 'warn Dumper [map {$_ if $_ == 4} 1..10];'

    Без интерпретатора не так просто угадать результат )))

    Из той же оперы:
    sub some {return 'A' if 0} что вернет?

    Или еще из прекрасного )))
    sub some {return}
    warn Dumper {
    some => some,
    some => some,
    };
    warn Dumper {
    some, some,
    some, some,
    };
    Продолжать можно долго )))))
  • Этот загадочный while…
    0
    Что-то я не пойму где вы шутите %)
    Если что, то для меня все примеры понятны :)

    Поигравшись с last (кстати next ведет себя так же в ваших примерах и коментариях ниже) сообразил для себя прикольный финт ушами :)

    if (1) {{
    print 1;
    next if 1;
    print 2;
    }};

    Мне всегда не хватало такой конструкции )))
  • Этот загадочный while…
    0
    Ых, поспешил %)
    Но что такое контекст забывать нельзя :) А Perl это контекстный язык %)
  • Этот загадочный while…
    0
    Читайте мануалы :) В первом случае перл понимает скобки как ссылку на хеш, во втором — как блок ;)

    Правильно будет:
    perl -MData::Dumper -e '@a = map { my $x = $_; +{$x => $x} } qw/a b/; print Dumper(\@a)'
  • Вызов функции с «неизвестным» именем на C++. Часть 1 — cdecl
    –1
    Я знал! Я знал, что Си это высшее шоманство…
  • Разбираемся с проблемой мертвого кода и инклудами
    0
    Мда. Реализация PHP адова. mod_php нихрена не mod, fcgi нихрена не fcgi.

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

    В случае с PHP на каждый запрос компилируется исходник и выполняется. Отсюда масса времени уходит на подгрузку модулей и на компиляцию. Все эти акселераторы и кешеры кода по большому счету и обеспечивают более менее подобие работы нормального mod или FCGI.

    Вывод: все описанные проблемы и бубны следствие не правильной архитектуры самого языка.
  • Большие таблицы и ENUM
    0
    Сработает. Файл описания структуры таблицы все равно хранится отдельно от данных.
  • Нанолого, или как сделать логотип который будет удивлять
    0
    Чем-то напомнило хабракапчу.
  • Некоторые ошибки при написании регэкспов
    0
    А зачем, если не секрет, используете модификатор gx?
    Какой смысл в переменной $r?
  • Couchsurfing.org или клубы гостеприимства
    +1
    Мечты сбываются )
    Спасибо за наводку, возможно пригодится )

    * Sign Up * Login * ????: Русский
    А вот с русским там проблемы ) Причем как-то местами…
  • Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»
    +2
    Я смотрю тут перловики со стажем :)
    C-style тут не при чем, сейчас докажу :) Он конечно медленнее range, но не трагически.
    Этот кусок перлкода можно ускорить раза в полтора, тупо объявив все переменные локальными.
    Не забывайте use strict; Он конечно жрет часть памяти и производительности, но это стоит того, эти потери много меньше, чем от пропущенного my ;)
    Ну и использование контексных переменный чуть-чуть ускоряет.
    Про use integer уже сказали, его можно применять контекстно. Да и хак это такой же, как на Java вместо float использовать int ;)

    #~ use strict;
    use Benchmark;

    Benchmark::timethese(1_000, {
    'A' => sub {
    #~ use integer;
    $r = 0;
    for ($i = 0; $i < 100; $i++) {
    for ($j = 0; $j < 100; $j++) {
    $r = ($r + ($i * $j) % 100) % 47;
    }
    }
    },
    'B' => sub {
    #~ use integer;
    my $r = 0;
    for (my $i = 0; $i < 100; $i++) {
    for (my $j = 0; $j < 100; $j++) {
    $r = ($r + ($i * $j) % 100) % 47;
    }
    }
    },
    'C' => sub {
    #~ use integer;
    my $r = 0;
    for my $i (0..99) {
    for my $j (0..99) {
    $r = ($r + ($i * $j) % 100) % 47;
    }
    }
    },
    'D' => sub {
    #~ use integer;
    my $r = 0;
    for my $i (0..99) {
    $r = ($r + ($i * $_) % 100) % 47 for 0..99;
    }
    },
    });

    >perl math.pl
    Benchmark: timing 1000 iterations of A, B, C, D…
    A: 5 wallclock secs ( 5.04 usr + 0.00 sys = 5.04 CPU) @ 198.49/s (n=1000)
    B: 4 wallclock secs ( 3.82 usr + 0.00 sys = 3.82 CPU) @ 261.64/s (n=1000)
    C: 4 wallclock secs ( 3.54 usr + 0.00 sys = 3.54 CPU) @ 282.41/s (n=1000)
    D: 3 wallclock secs ( 3.26 usr + 0.00 sys = 3.26 CPU) @ 306.65/s (n=1000)
    >Exit code: 0 Time: 16.124

    PS: Пардон за форматирование, теги не работают :(
  • Использование составных ключей для манипуляции данными в memcached
    0
    Что такое сущность на фотофайле?

    У нас же не один демон мемкеша :) Для каждого типа сущности свой кеш, или даже несколько кешей. Сейчас у нас 20 мемкешей. Так что там все нормально. А держать все в мемкешах просто приходится. От этого никуда не денешься.
  • Использование составных ключей для манипуляции данными в memcached
    0
    Онлайн игра Дозоры. У нас порядка 20М сущностей. От них никуда не денешься, все держим в мемкешах.
  • Использование составных ключей для манипуляции данными в memcached
    0
    Ну судя по графикам во всех мемкешах лежит что-то около 7М ключей. Это примерно половина всех сущностей, вторая половина, видимо, не востребована )
    Строить хеш совершенно не интересно )
  • Использование составных ключей для манипуляции данными в memcached
    0
    Ну у нас в среднем 12М хитов в сутки и подобное решение вымерло бы очень быстро :) Тем более при конкурентном доступе. Даже при размере кешхеадера в 100Кб это решение оказалось бы узким местом.

    Я считаю, что вы где-то в архитектуре приняли неверное решение. При обновлении того же списка комментариев, куда менее затратно обновить все необходимые значения в кеше, чем почистить кеш и подкинуть работы базе данных. Кеш обычно вводится, когда база или какой-то ресурсоемкий код оказывается узким местом. И решение задачи типа «выльем воду из чайника, чем сведем задачу к предыдущей» в данном случае выглядит странным.
  • Использование составных ключей для манипуляции данными в memcached
    0
    Меня больше настораживает другое, что я описал в комменте ниже.
    Как бы допоперация поиска стоит не так много. Тот же механизм блокировок через memcached чего стоит ))) Это не жалко, да и времени не так много займет. А вот передача пожирневшего «кешхеадер» будет стоить достаточно дорого :) Не столько процессорного времени, сколько iowait. А это может оказаться очень неприятно )
  • Использование составных ключей для манипуляции данными в memcached
    0
    Т.е. вы предлагаете хранить структуру, которая помнит о всех объектах, хранящихся в кеше?
    А если структура вырастет? По личному опыту знаю, что если в memcached класть данные размером порядка 1Мб, то это чревато частыми ошибками записи (причем почему-то больше записи) или чтения этих данных из кеша. К тому же передавать мегабайт данных по сети это далеко не мгновенно (если кеш находится на другой машине).
    Иными словами если ваш «кешхеадер» разростется, это приведет к тормозам, которые будет трудно найти :)

    Все сказанное мной относится к очень нагруженному проекту. На не очень больших нагрузках этого может и не случаться.

    P.S.: если memcached начинает вытеснять данные, это сигнал, что в архитектуре допущен косячок :) Это не критично, но лучше такого не далать. Хотя бы из чувства прекрасного )))
    PPS: Если у вас достаточно серьезный проект и вам нужен специфический функционал, то лучше будет взять исходники memcached и дописать то, что необходимо. Оно будет того стоить )
  • Использование составных ключей для манипуляции данными в memcached
    0
    memcached устроен так, что он совершенно не тратит ресурсы на поиск данных, другими словами, скорость поиска нужного значения не зависит от количества данных в memcached.
  • Memcached — стратегия кеширования
    0
    Использовать мемкеш для хранения структур данных это вполне жизнеспособная и распространенная практика ). memcachedb это все тот же memcache, только данные он хранит не в памяти, а на диске, используя движок BDB.
  • Текущий семестр и задание на Perl
    0
    Откуда мне знать? Как я понял, чувак впервые на Perl пишет, а может и вообще впервые ) Думаю не стоит к этому коду придираться )
  • Текущий семестр и задание на Perl
    0
    это вечная тема )
    мы как-то справились с уходом гуру, и сами порядком прокачались )
    тут можно много спорить, не будем ))
    Есть части проекта, которые должен писать один человек, которые должны быть очень быстрыми и стабильными, и которые править нет особой необходимости.
    Все мы дружно и весело используем CGI.pm, но сколько он памяти ест и сколько времени тратит на свою работу? В HL проектах такое недопустимо. Так же мы часто используем xs модули для повышения производительности, там вообще шойтан что происходит :)

    Естественно, в промышленных масштабах такой подход не желателен :)
    А если нам приходится писать HL проект, мы рискуем использовать нестандартные подходы. Часто это оправдывает себя.