Задать вопрос
  • Безопасно ли запускать виртуальную машину с реальной партиции?

    @rPman
    Если не будет одновременного доступа к разделу (в управлении дисков снимаем назначение буквы, если это FAT/NTFS разделы), то никаких проблем не будет, неоднократно пользовался этим, и не только с VirtualBox, но еще и с QEMU.
    Ответ написан
    Комментировать
  • Нужен юзерскрипт для чтения постов на всю ширину экрана?

    @rPman
    userstyles.org/stylish плагин, есть для firefox и chrome
    @-moz-document domain("habrahabr.ru")
    {
    div#viva-la-w3c {width:50% !important}
    div#sidebar {display:none}
    div#main-content {width:100% !important}
    div .yandex-direct {display:none}
    div#special_nokia {display:none}
    div .ufo-was-here {display:none}
    ul.panel-nav-top img {display:none}

    }
    Ответ написан
    Комментировать
  • Как вы считаете, удобно ли сейчас располагается раздел ссылок на хабре?

    @rPman
    специально зашел с браузера, где не установлен stylish… о каких изменениях идет речь?

    p.s. так как 'чукча — читатель', у меня скрыто все, не относящееся к основному контенту, т.е. вижу только список топиков, сами топики и комменты.
    Ответ написан
  • Закрытые базы в memcached, как?

    @rPman
    По уму недавно к memcached прикрутили простую аутентификацию, но не нашел с ходу ничего про это, может быть подойдет?
    code.google.com/p/memcached/wiki/ReleaseNotes144
    Ответ написан
  • Распознавание осмысленного текста?

    @rPman
    Случайный набор символов — это детектируется по словарям (немного прикрутить поддержку окончаний, приставок и т.п.), как я помню опенсорсные библиотеки проверки орфографии содержат необходимые алгоритмы и базы.

    Выявление просто предложений на человеческом языке можно сделать статистическим анализом, но это на порядок сложнее и так же ничего не решает, так как осмысленный текст таким образом не выделишь…

    Монстры вида Abbyy берут миллиардные гранты на разработку таких алгоритмов, боюсь у вас не на много больше шансов разработать успешные алгоритмы.

    p.s. попробуйте понять, осмысленный ли это текст, это просто класика (взято тут, еще тут):
    Родился на улице Герцена. В гастрономе № 22. Известный экономист. По призванию своему библиотекарь. В народе — колхозник. В магазине — продавец. В экономике, так сказать, необходим. Это, так сказать, система… эээ… в составе 120 единиц. Фотографируйте Мурманский полуостров — и получаете te-le-fun-ken. И бухгалтер работает по другой линии. По линии «Библиотека». Потому что не воздух будет, а академик будет! Ну вот можно сфотографировать Мурманский полуостров. Можно стать воздушным асом. Можно стать воздушной планетой. И будешь уверен, что эту планету примут по учебнику. Значит, на пользу физики пойдет одна планета. Величина — оторванная в область дипломатии — дает свои колебания на всю дипломатию. А Илья Муромец дает колебания только на семью на свою. Спичка в библиотеке работает. В кинохронику ходит и зажигает в кинохронике большой лист. В библиотеке маленький лист разжигает. Огонь будет… эээ… вырабатываться гораздо легче, чем учебник крепкий. А крепкий учебник будет весомей, чем гастроном на улице Герцена. А на улице Герцена будет расщепленный учебник. Тогда учебник будет проходить через улицу Герцена, через гастроном № 22, и замещаться там по формуле экономического единства. Вот в магазине 22 она может расщепиться, экономика! На экономистов, на диспетчеров, на продавцов, на культуру торговли… Так что, в эту сторону двигается вся экономика. Библиотека двинется в сторону 120 единиц, которые будут… эээ… предмет укладывать на предмет. 120 единиц — предмет физика. Электрическая лампочка горит от 120 кирпичей, потому что структура у нее, так сказать, похожа у нее на кирпич. Илья Муромец работает на стадионе «Динамо». Илья Муромец работает у себя дома. Вот конкретная дипломатия! «Открытая дипломатия» — то же самое. Ну, берем телевизор, вставляем в Мурманский полуостров, накручиваем, там… эээ… все время черный хлеб… Дак что же, будет Муромец, что ли, вырастать? Илья Муромец, что ли, будет вырастать из этого?

    А ведь черные СЕОшники генерируют гораздо более интересные тексты.
    Ответ написан
  • Высоконагруженный сокет-сервер?

    @rPman
    Я не специалист, но фраза 'какой из механизмов IPC выдержит' немного странная, какая разница, если в ОС штатно только один — message queue, shared memory и semaphore, что бы вы не выбрали, будет использовать их (особо кривые что то одно).

    Не совсем веб-проект, но для распараллеливания задачи пришлось использовать и очереди и семафоры (очень активное использование), рекомендую не передавать данные в очереди, она быстро кончается… максимум идентификаторы и подробности через shared memory или другие механизмы.
    Возможно, не стоит создавать один семафор на все, лучше под напрячься и по семафору на объект или хотя бы группу (чтобы блокировать только на доступ к группе а не всех ко всему) — этот подход может дать наверное максимально возможный прирост, когда упретесь в потолок (особенно грустно когда процессоры еще не нагружен и демоны чего то ждут), это в смысле организации многопроцессорного демона (или демон на ядро, так удобнее).
    Ответ написан
    2 комментария
  • С++ какой вид памяти использовать лучше и главное почему?

    @rPman
    самое важное отличие — когда вы пользуетесь malloc, то приходится делать приведение типа, в этот момент всю ответственность за корректность приведения берет программист, а значит потенциальное место для ошибок (причем си именно за это и ругают, так как ошибки получаются самые страшные), а если совсем избавиться от указателей (можно оставить ссылочные типы MyClass& a) то тогда за целостностью системы будет следить компилятор и писать 'не туда' вы не сможете.
    Ответ написан
    1 комментарий
  • Что вы используете для cоздания журналирования системы?

    @rPman
    Если по каким то причинам не устраивает одна таблица (хотя, изучите такие вещи как кластеризация), то можно автоматически по структуре БД для каждой таблицы создать парную, заполняемую триггерами, при этом логику заполнения для разных таблиц можно варьировать — для одних хранить только факты добавления и удаления, для других добавить факты модификации, для третьих может понадобиться факты чтения данных (эти данные можно и не триггерами заполнять), где то можно вообще полный лог изменений данных (сохранять изменившиеся полей для истории изменений)…

    Проблема потом интерпретировать эти данные… но, возможности, которые обеспечивает такой подход, очень велики.
    Ответ написан
  • Электронный архив?

    @rPman
    из самого простого, особенно если с правами мало заморочек, любой вики-проект и общие договоренности о стилях наполнения

    первые же результаты из гугла: Викизнание: Каталог wiki-движков и Вики-движок
    Ответ написан
    3 комментария
  • Нужен простенький framework для разработки двухстраничного сайта для android и iphone

    @rPman
    это феерично! что именно вы хотите в таком случае от фреймворка?
    * первая страничка — зависит от выбора серверной части, но в конечном счете без фреймворков это 5-6 строчек кода!
    * вторая страничка — картинка меняющая прозрачность? это в css делается, какие фреймворки? доступ к железу изменяющему яркость света? опять таки от него зависит, но по любому еще 5 строчек кода.
    Ответ написан
    1 комментарий
  • Законность декомпиляции и использования кода библиотеки

    @rPman
    * 'посмотреть как оно работает и написать свое' — да, можно, так поступают разработчики ReactOS, причем даже круче, одна команда изучает библиотеки windows, описывает это письменно/устно второй команде, которая пишет код
    * 'декомпилировать и скопировать получившийся код, с модификациями' — нельзя ни при каких условиях, а коммерческое назначение использование только усугубляет вину, но отсутствие этой цели — ее не уберет.

    p.s. но, в лицензии к программе может стоять запрет на декомпиляцию, тогда у вас останется только один легальный способ изучения кода — на основе поведения, но нужно будет обвиняющим доказать, что вы так делали, а 'не пойман — не вор'.
    Ответ написан
    3 комментария
  • Запуск С++ Linux библиотеки c OpenCV на другом компьютере

    @rPman
    это что за windows way?
    'положить необходимые библиотеки' это и есть 'установка', какие проблемы? на удаленном компьютере в репозитарии нет необходимой версии? найдите или соберите свою сборку под версию ту OS и передайте вместе со своей программой, если с той стороны боятся что ваша сборка что то порушит — пусть устанавливают библиотеки и программу в chroot копию самих же себя, скрипты этого дела из пары команд можете сами написать (sudo cp -rx / /chroot;sudo chroot /chroot;… хотя не, создание копии системы еще тот вопрос, лучше вместо cp -xr прописать список каталогов, гарантированно принадлежащих системе), но то, мне кажется, извращение

    p.s. если на удаленном компьютер не установлены драйвера, то ничего не получится… ставить их придется без вариантов.

    p.p.s. спросите их про тип видеокарты на той стороне и подготовьте свой демонстрационный дистрибутив в виде iso файлика (благо с поддержкой opencl это либо ati, либо nvidia, либо изредка intel), а уж прожечь компакт диск и запустить его сможет практически любой пользователь.
    Ответ написан
    Комментировать
  • Как лучше хранить адрес файлов/картинок в базе данных

    @rPman
    Хранить в базе смещение (можно поделить на размер сектора или больше 4096...) и размер файла, при должном красноглазии можно завернуть оба числа в 64bit long и пользоваться им как идентификатор файла, сами файлы хранить в одном большом контейнере (можно не сильно заморачиваться с файловыми системами и складывать прямо в /dev/sda), как результат — максимально быстрый доступ к файлам (быстрее — только при самостоятельной организации кеширования под задачу) и максимально неудобное обслуживание при частых удалениях/изменениях файлов (запись только в конец контейнера, по окончании места — полная реорганизация хранилища, с выдачей новых id… но это может оказаться приемлемой платой и в некоторых задачах ее даже не придется платить).

    p.s. посчитали это шуткой? просто все зависит от задачи и особенностей использования данных.
    Вышеописанный способ использовался достаточно давно для не web-проекта, обеспечивал 'максимальную из возможных' производительность при резервном копировании, чтении и добавлении новых файлов, позволял организовать версионность 'из каропки',…
    Ответ написан
    2 комментария
  • Реально ли вообще хоть что то гарантировать в GAE datastore (Java, JDO)?

    @rPman Автор вопроса
    Залил приложение на appspot.com (настройки базы High Replication), Test.amount увеличивается успешно, но проскакивает такое:
    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 9
    Test repeat read: 10, queryed:9

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 10
    Test repeat read: 11, queryed:10

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 11
    Test repeat read: 12, queryed:12

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 12
    Test repeat read: 13, queryed:12

    # curl blablabla.appspot.com/test
    Test length:1
    Test[1]: 13
    Test repeat read: 14, queryed:13

    Т.е. нет никакой гарантии что Query вернет верные данные, но каким то образом данные все равно корректно изменяются.

    p.s. уже размышляю по исключению из проекта любых Query и работа с данными исключительно по id (а особые списки реализовывать самостоятельно) все еще надеюсь что я где то ошибся, ибо это нереально глупое поведение БД
    Ответ написан
  • Реально ли вообще хоть что то гарантировать в GAE datastore (Java, JDO)?

    @rPman Автор вопроса
    Стало еще страшнее!!! я ошибся выше в коментарии, не перепроверил, если запросить после изменений данных данные объекта через Query execute() и .get(0) то данные ВООБЩЕ никогда не записываются!
    Добавив код после обновления данных:
    q=pm.newQuery(Test.class);
    qdr=(List)q.execute();
    q.closeAll();
    resp.getWriter().println(«Test repeat read: „+d.getAmount()+“, queryed:»+qdr.get(0).getAmount());

    т.е. вывод всегда такой:
    # curl 127.0.0.1:8888/test
    Test length:1
    Test[1]: 44
    Test repeat read: 45, queryed:44

    # curl 127.0.0.1:8888/test
    Test length:1
    Test[1]: 44
    Test repeat read: 45, queryed:44

    # curl 127.0.0.1:8888/test
    Test length:1
    Test[1]: 44
    Test repeat read: 45, queryed:44
    Ответ написан
  • Реально ли вообще хоть что то гарантировать в GAE datastore (Java, JDO)?

    @rPman Автор вопроса
    для очистки совести проверил, конечно ничего не изменилось, там d=pm.getObjectById(Test.class, new_id); исключительно для тестов и вывода в лог данных далее по коду.

    Гарантированно сериями по 2 запроса данные тупо никуда не записываются, при этом в пределах метода сервлета данные успешно записаны, доступны по повторным запросам через Query, но по завершению метода и выдачи результата клиенту изменения куда то исчезают

    p.s. в основном проекте все еще хуже… в один объект данные сохраняются, в другом, записываемым в этом же методе — нет, группы у объектов разные, в транзакцию завернуть еще не могу, я пока еще не придумал красиво объединить в группу слабо связанные сущности, по документации, чтобы это сделать — нужна связь типа 1к1 или 1кМ, либо что то нетривиальное с ключами
    Ответ написан
    Комментировать
  • Какие есть способы монетизации скачиваемых казуальных игр?

    @rPman
    доступ к онлайн-пузомеркам (размещение достижений оплатившего доступ в соотв. рейтинговых табличках на сайте разработчика)
    Ответ написан
    Комментировать
  • PHP: очень медленно работает echo

    @rPman
    Почти наверняка проблемы с вебсервером или может быть DNS?

    gentoo, apache, тормозной старенький AMD Sempron(tm) Processor 3400+

    a.php: <?php echo str_repeat('0123456789012345',8192); ?>

    # date; curl http://localhost/a.php >/dev/null;date
    Втр Авг 9 20:15:03 NOVST 2011
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 128k 0 128k 0 0 31.4M 0 --:--:-- --:--:-- --:--:-- 41.6M
    Втр Авг 9 20:15:03 NOVST 2011


    p.s. но если у вас тоже самое с cli php то нужно бить тревогу!!!

    p.p.s. у меня на first vds был момент, когда простейший lib_curl (точнее вызовы curl_… из php) нещадно подвешивали виртуалку под 100% на секунды, но в то же время консольная утилита curl/wget — работали без проблем… пока вообще выяснял, откуда тормоза, проблема самоустранилась (длилась часами), поэтому записал на счет потенциальных глюков openvz (точнее virtuozzo) и сделал зарубку в памяти, что и такое возможно.
    Ответ написан
    1 комментарий
  • Ссылки в perl

    @rPman
    как я понимаю во второй строке ошибка, не '\$a' а '&$a'?
    $a = 'a'; // переменная a значение a
    $b = &$a; // переменная b значение всегда будет равно значению переменной a (т.е. сейчас это 'a')
    $c = $$b; // переменная c равна значению переменной, имя которой в переменной b, т.е. равна значению переменной a, значит равна 'a'
    $a = 'bb'; // переменная a меняет значение на 'bb', значит переменная b так же теперь возвращает 'bb'
    print "$$c\n"; // выводит значение переменной, имя которой в переменной c, сейчас там значение a, значит результат переменной с именем a сейчас 'bb'
    print "$c\n"; // значение переменной c — 'a'
    Ответ написан
    3 комментария