• Корпорация добра

    @egorinsk
    В английском есть слово «kindness», это правда не добро, а доброта. Может, оно подойдет?
    Ответ написан
    Комментировать
  • Утилита для «загрузки» оперативной памяти?

    @egorinsk
    Воспользуйтесь богатыми возможностями языка PHP:

    <?php

    ini_set('memory_limit', 1e12);
    $data = str_repeat(" ", 100000000); // сколько вешать в байтах
    echo «OK, wait now\n»;
    sleep(60); // сколько ждать секунд
    Ответ написан
    1 комментарий
  • Количество памяти занятой процессом значительно меньше чем уменьшение свободной памяти (8Мб vs 160Мб)?

    @egorinsk
    > Виртуализация openvz

    C этого и надо было начинать. В OpenVZ как-то странно считается память, там считается все виртуальное пространство, которое выделено процессу. А поскольку линуксовые программы обычно выделяют память в несметном количестве и без всякой логики, вся она учитывается как занятая. Например, если у вас есть многопоточная программа вроде Апача, допустим, из 20 потоков, то в OpenVZ каждый поток сразу выделяет под стек 8 Мб, и это уже считается как 160 Мб памяти (в то время как на реальной железке 8 Мб — это лишь максимальный размер, а выделяется столько, сколько по факту использовано, т.е. намного меньше). При этом разработчики программ, естественно, на такой сценарий не рассчитывали, и никаких мер по снижению выделяемого виртуального пространства не предпринимают. И вам приходится устраивать пляски с ulimit, чтобы хоть как-то улучшить ситуацию.

    Вот например: www.webhostingtalk.com/showthread.php?t=855618

    Я вам советую попробовать для сравнения виртуальную машину на основе Xen или физическую машину. У вас сразу все цифры придут в соответствие. OpenVZ позволяет хостеру продавать больше памяти, чем у него есть в сервере, и это очень непрозрачная вещь. Не советую использовать эту технологию.
    Ответ написан
    4 комментария
  • Количество памяти занятой процессом значительно меньше чем уменьшение свободной памяти (8Мб vs 160Мб)?

    @egorinsk
    Может, исчезающая память — это какой-нибудь ram disk? Т.е. программа создает там временные файлы какие-нибудь.
    Ответ написан
  • Любопытный вопрос из тестового задания?

    @egorinsk
    Я не понимаю, с какой целью даются такие задания (да, я не помню наизусть правила приведения типов). Они ищут людей, которые будут им писать код в таком стиле? Они ищут любителей зазубривания документации?
    Ответ написан
    4 комментария
  • Поздравление женской части коллектива от IT-отдела

    @egorinsk
    Печенек испеките (только чтобы они вкусные и мягкие были, а не твердые и засохшие, и хорошо бы добавить изюма или цукатов внутрь). Я бы поел.
    Ответ написан
    Комментировать
  • Confirm Form Resubmission после POST-запроса в Google Chrome

    @egorinsk
    Прежде чем обвинять Хром в «неправильном» поведении, стоит посмотреть в RFC, а как должны себя вести браузеры в такой ситуации:

    www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2

    > Note: When automatically redirecting a POST request after receiving a 301 status code, some existing HTTP/1.0 user agents will erroneously change it into a GET request.

    Полчуается, такое поведение соответствует стандарту HTTP. Неудивительно, ведь Хром разрабатывают (в отличие от конкурирующих браузеров) лучшие в мире программисты.
    Ответ написан
  • Как создать перегруженный конструктор класса в JS?

    @egorinsk
    У вас очень странное (не)понимание ООП, писать в конструктор объекта код рисования — похоже на наркоманство. Вообще, писать в конструкторе сколько-нибудь сложный код — плохая идея. Если вы хотите нарисовать круг, сделайте метод drawCircle(...)

    То. что вы спрашиваете в вопросе, называется не перегрузка функции (в яваскрипт нельзя делать такие вещи), а значения аргументов по умолчанию. Чтобы их сделать, используем тот факт, что непереданный аргумент имеет значение undefined:

    function (arg1, arg2, arg3) {
    arg2 = arg2 || 10; // значение по умолчанию
    arg3 = arg3 || 20;


    }

    Как видите, получилось совсем не сложно!
    Ответ написан
    7 комментариев
  • Заполнение форм — автоматизатор

    @egorinsk
    > Это не спам, а рассылки по информ агентствам.

    А неужели нельзя переслыать информацию нормально, электронной почтой?
    Ответ написан
    1 комментарий
  • Основные мероприятия по переводу на HighLoad?

    @egorinsk
    Наверно хороший способ узнать это — изучить архитектуру существующих highload проектов. Держите ссылку: www.insight-it.ru/highload/

    От себя добавлю, что практически всегда необходимо предусмотреть возможность масштабирования в самом приложении (т.е. переписывать код). Нельзя просто так взять, поставить нгинкс, поменять MySQL на mongo и получить хайлоад проект (более того, поменяв mysql на mongo можно получить еще больше проблем).
    Ответ написан
    Комментировать
  • Как разобрать такой POST ответ? API интернет-магазина

    @egorinsk
    Выглядит, как будто кто-то отлаживает код и временно поставил var_dump(). Вы уверены, что это не временная проблема?

    Если не временная. то разбирать, видимо, при помощи регулярок и (возможно) html_entities_decode.
    Ответ написан
    Комментировать
  • Как вернуть в Firefox просмотр pdf??

    @egorinsk
    Акробат вставлять в браузер опасно, так как он содержит в себе уязвимости. Правильное решение — перейти на Хром, в него встроен качественный, но при этом безопасный просмотрщик в PDF. Я советую именно перейти на Хром по этой причине. Используя акробат, вы подвергаетесь риску.
    Ответ написан
    4 комментария
  • Clodo: Внезапно машинка выключилась — как понять из-за чего?

    @egorinsk
    У одного конкурирующего облачного сервиса из Питера, кстати, перезагрузки и выключения и их причина отображаются в админке.
    Ответ написан
    5 комментариев
  • Алгоритм надежной системы голосования, исключающий «накрутки»?

    @egorinsk
    Проверка паспортных данных — единственный надежный способ.
    Ответ написан
  • Плюсы и минусы разработки и поддержки мобильного веб-приложения на html5 вместо нативных приложений

    @egorinsk
    Плюс: скорость, простота и дешевизна разработки, легко найти исполнителей

    Минус: низкая производительность, тормоза, дерганья, высокое потребление памяти (первый айфон может не потянуть) и нельзя использовать все возможности платформы, например, графический ускоритель.
    Ответ написан
    2 комментария
  • $(...).attr('checked', 'checked') не работает?

    @egorinsk
    Не уверен, что это баг.

    Вы неправильно используете Jquery и Javascript. Функция attr ( api.jquery.com/attr/ ) предназначена для изменения HTML-аттрибута элемента, а не изменения состояния чекбокса. Если вы хотите снять/установить галочку, есть определенный в стандарте DOM способ ( www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-30233917 ):

    > checked of type boolean
    > When the type attribute of the element has the value «radio» or «checkbox», this represents the current state of the form control, in an interactive user agent. Changes to this attribute change the state of the form control, but do not change the value of the HTML checked attribute of the INPUT element.

    Поскольку других способов поменять сосотояние чекбокса в спецификациях HTML и DOM не указано, это значит, что единственный официальный способ — использовать свойство checked у DOM-объекта…

    Очевидно, что некоторые браузеры переносят манипуляции с аттрибутами на чекбокс. Но это очень хлипкий и ненадежный способ и не всегда работает. Видимо, делая remoevAttr, вы что-то ломаете. Чтобы проверить, установлена ли галочка, пишите:

    if ($element[0].checked)

    Чтобы установить состояние чекбокса, пишите:

    $element[0].checked = true;

    Также могу дать совет, не читайте перед обедом советск^W статей с Хабра вроде «jQuery для чайников», написанных школьниками, а читайте официальную документацию или хотя бы книги от нормальных авторов, разбирающихся в предмете. Конечно, спецификация не ответит вам на любой вопрос, но она хотя бы даст отправную точку для поиска ответа.
    Ответ написан
    6 комментариев
  • Насколько легко скрыть то, что файл фотошопился?

    @egorinsk
    Если речь идет о системах покупки рекламы вроде Google AdWords, там вроде рекламщики могут открыть гостевой аккаунт, дающий доступ на чтение.

    Что касается скриншотов — наверно, если имеется большая выборка, можно сделать какой-нибудь статанализ (наподобие того, которым анализировали выборы), но тут надо много данных и нехилые знания математики, лежащие далеко за пределами возможностей обычного землянина.
    Ответ написан
    Комментировать
  • Страница Хабра 404 съедает много процессорных ресурсов и скрипт не отключается?

    @egorinsk
    Код на странице явно поручили неопытному стажеру.

    — Надо использовать requestAnimationFrame где он доступен
    — Надо вычислять положение объекта из времени и уравнения движения, а не увеличивать его каждый раз на определенный шаг (так как никто не гарантирует что callback будет вызываться равномерно, на практике это не так)
    — Canvas может дать выигрыш, а может и не дать, плюс придется думать что делать в ИЕ
    Ответ написан
    Комментировать
  • Ссылки на «практичные» материалы по Rails?

    @egorinsk
    > и как, вообще, правильно ДУМАТЬ, чтобы построить приложение

    Мне кажется, «как построить приложение» описано не в документации по RoR, а, например, в книгах про паттерны вроде MVC. Зачем нужно разделение на M, V и C, какие есть способы сохранять и загружать модели из хранилища, и т.д. Правда, чтобы понимать паттерны, нужен опыт работы с кодом, так что могу посоветовать пройти какой-нибудь подробный туториал по создания блога или чего-нибудь вроде этого.
    Ответ написан
    Комментировать
  • Сильно ли плохо подключать один и тот же файл 20 раз?

    @egorinsk
    Вы абсолютно правильно заметили. Не знаю, кто это придумал, но делать блоки на странице через подключение отдельных файлов абсолютно неэффективно с точки зрения производтельности и неуклюже с точки зрения архитектуры. Костыль, а не решение. Логично использовать для этого функции или статические методы классов (бонус: получаем автозагрузку и изоляцию локальных переменных). Пример шаблона:

    class UserBlock {
    public static function renderUserInfo($user) {
    ?>
    … HTML код…
    <?php
    }
    }

    Пример использования:

    <?php foreach ($users as $user): ?>
    {div}<?php UserBlock::renderUserInfo($user); ?>{/div}
    <?php endforeach ?>

    Людям, которые скажут, что плохо использовать функции в шаблонах (почему, кстати?), предложите придумать более простое, изящное, быстрое, без использования громоздких бибилиотек и надежное решение, а потом убедитесь, что у них ничего не вышло.
    Ответ написан
    Комментировать