Задать вопрос
  • Вопрос по HTML разметке и кроссбраузерности?

    @egorinsk
    Пробовали добавить тогда html { position: relative; height: 100%; }? Почитайте например, это: www.w3.org/TR/CSS2/visuren.html#positioning-scheme — у вас видимо body вырван из потока и у html высота 0.

    И, насчет, «работает в IE» — вы погорячились, в 6-м ИЕ точно не будет рабоать, а может и в 7-м.
    Ответ написан
  • Библиотека для решения интегралов

    @egorinsk
    Вы бы хоть писали, вам надо численное решение или аналитическое.
    Ответ написан
  • Как вызвать событие на javascript

    @egorinsk
    Идея такая. Есть способ для w3c браузеров, есть для IE. В w3c вызывается одна функция для создания объекта события, он заполняется нужными данеыми. и вторая функция, которая запускает распространение этого события, т.е. вызывает слушающие его обработчики. В Ие вроде проще, все делается одной функцией.

    Подвохи: в ИЕ нельзя создать кастомное пользовательское событие, только стандартные. Также, запуск события, например, click, только вызывает обработчики onclick(), но не нажимает кнопку, не двигает курсор в поле ввода, ит.д., то есть не делает того же, что и реальный клик мышкой.

    Для подробностей ищите слова fireEvent, createEvent, dispatchEvent на сайтах MDN и MSDN.
    Ответ написан
    Комментировать
  • Файловая система в ОЗУ?

    @egorinsk
    Для процессора ваша «планка памяти», будучи воткнутой в плату, видится просто как набор ячеек с адресами от N до M (число ячеек = числу байт в планке, для 2 Гб это чуть больше 2 млрд.), в каждую из которых можно положить 1 байт данных. Но можно и файловую систему там создать, но уже на уровне ОС.
    Ответ написан
    3 комментария
  • Лаконичный класс для логирования событий

    @egorinsk
    file_put_contents(LOG_FILE_NAME, $logMessage, FILE_APPEND); — class и public static function log можете вписать сами.
    Ответ написан
    5 комментариев
  • Как выполнить mysql запрос в php не дожидаясь его окончания?

    @egorinsk
    system('nohup script.php&') — что-то вроде этого, но это раюотает только в linux и создает лишнюю фоновую задачу нагрузку на БД.
    Ответ написан
    2 комментария
  • Какую защиту использовать от спам ботов?

    @egorinsk
    Повторяю способы защиты, выбирайте любой, который нравится:

    Начнем со случая, когад у вас маленький (меньше 100 тыс юников в день/1 млн зарегистрированных юзеров) сайт.

    1) Сделать невидимое поле с именем email. 98% ботов-дебилов его заполнят, дальше вы понимаете, что с ними делать и куда вносить их IP. Чтобы не палиться, не пишите style=display:none, а скройте его чуть хитрее.

    Этот способ у меня отсеивает практически всех ботов на одном сайте. Правда, там боты, не заточенные под сайт, а просто, которые ходят и заполняют все формы подряд своей рекламой. Типа Хрумера наверно.

    2) Заполняемое яваскриптом поле типа hidden. Куча ботов не выполняют яваскрипт. Куки, кстати, наоборот, большинство ботов исправно присылают. Реферер и юзер-агент тоже обычно у них правильный.

    3) Более радикальный подход — убрать кнопку submit, заменив ее на div, который по событию onclick собирает значения полей формы и отправляет их аяксом. Аттрибут action тега form сделать указывающим на скрипт-ловушку. Если бот не написан специально под ваш сайт, он тупо не сможет отправить такую форму.

    Ок, допустим, вам не повезло, и ваш сайт с миллионами пользователей атакуют спамеры специально написанными скриптами. Что мы можем вам предложить?

    4) Добавлять вычисляемые/расшифровываемые яваскриптом поля. Внезапная смена алгоритма шифрования в 2 часа ночи скорее всего сдаст тех ботов, которые смогли через нее пробиться, но не успели переписать алгоритм.

    5) Проверять поддержку клиентом Flash (загружать флешку и через нее подписывать форму кодом).

    6) Проверять соответствие User-Agent и уровня поддержки технологий HTML5/CSS3 (например, определенные версии браузеров не поддерживают border-radius, другие поддерживают, и тд.)

    Более серьезные возможности дают методы статистического анализа. Например, можно вычленять из сообщений несловарные слова (это будут ссылки например) и анализировать источники их отправки. Например, если 1000 пользователей начинает за час отправлять по 100 сообщений не-друзьям с одним и тем же словом super-shop — это явный признак спам-рассылки. Для таких систем надо собирать статистику и писать белые/черные правила, вводить негласные лимиты подозрительных действий, в общем. серьезная работа.

    Можно, как вконтакте, привязывать аккаунты к телефонам. это работает.

    Еще немного рассуждений на эту тему тут: habrahabr.ru/qa/16920/#answer_70019

    А использование капчи в формах говорит о лени/низкой квалификации/урезанном бюджете или непрофессионализме и причиняет неудобства пользователям.
    Ответ написан
    1 комментарий
  • Блиц-вопрос: покупка телефона на андроиде до 10 тыс. рублей?

    @egorinsk
    Дешевые телефона на андроиде же тормозные, плеваться ведь потом будете, особенно если вам айфон нравится.
    Ответ написан
    Комментировать
  • Как не пустить вирусы и трояны на винду?

    @egorinsk
    Хороший вариант, как вам советуют, сделать диск для системы и программ (c:) и для данных и документов (d:). Перенести весь Documents And Settings на d: (чтобы рабочий стол и Мои документы были на d:). Запретить запуск любых exe-файлов с d: (в линуксе это делается через noexec, в винде тоже должен быть способ). Установить ОС и все нужные программы. Сделать образ диска c:

    Отдать ноутбук. В случае каких-то проблем тупо востановить c: из образа (займет максимум минут 15-30, а если образ записать на CD и показать как его восстановить, девушка сможет сделать это сама), а все файлы, настройки пользователя и документы на d: останутся в полном здравии. даже картинка на рабочем столе не поменяется, а вирусы и винлокеры сгинут вмиг.

    Без прав админа нельзя будет поставить новый софт, но это в данном случае только плюс.

    Когда будете рассчитывать размер диска c:, учтите: размер файлов ОС, размер program Files, размер свап- и hibernate-файла и оставьте еще минимум 10-15 Гб под временные файлы.
    Ответ написан
  • Open source проект для участия (С++)?

    @egorinsk
    > Чтобы окончательно не погрязнуть и совершенствовать навыки ищу open source проект, в котором можно было бы получить навыки в следующих областях: multithreading, highload, network programming.

    > Так же интересуюсь различными сложными алгоритмическими задачами в областях поиска, сбора и анализа информации.

    Отлично, напишите Open-source модуль для фасеточного (или как это там называется?) многокритериального поиска. Чтобы, например, с его помощью можно было сделать поиск по характеристикам товаров, как в Яндекс-маркете, или как по людям вконтакте. Данные поисковый демон может как сам брать из MySQL, так и принимать в Xml формате. Демон должен искать по миллионам записей в предельно краткое время. Слабо?

    Простая задача? Сделайте то же, но с возможностью масштабирования на несколько узлов.

    Кстати, для его реализации вам может помочь изучение интересных, но сложных техник: многомерных бинарных деревьев и кластеризации данных.

    По поводу работы с текстом — тоже есть задача. Добавьте в Sphinx средство для поиска слов с типичными опечатками (например, башеный кран вместо башенный), неправильно написанных составных слов (патч-корд и патчкорд), и всяких артикулов/идентификаторов (например, при поиске RS232 находится и RS-232 и RS 232).

    Третья задача. Бесплатный Open Source модуль склонения слов, имен, городов и словочоетаний. Чтобы например, из слов «башенный кран» можно было сгенерировать падеж: «о башенных кранах». Чтобы он был на Си++, не тормозил и не жрал память как бешеный.
    Ответ написан
    1 комментарий
  • Перевожу книгу по backbone.js. Публиковать статьи или просто ссылку?

    @egorinsk
    Я считаю, подобные статьи можно публиковать только в том случае, если автор может в начале статьи объяснить, какие выгоды дает использование backbone.js. А то, может, проще как-нибудь по-простому написать код и не тратить время на статью?
    Ответ написан
  • MVC в PHP??????

    @egorinsk
    Что значит аналоги MVC? Есть модификации MVC типа MVVM или MVP (по сути, примерно то же), есть 3-tier архитектура (но вряд ли вы захотите ее делать на PHP).

    Я осваивал MVC на примере CakePHP (хотя сам фреймворк мне не нравится, он тупой, но как учебный пример годится). Просто прочтите прилагаемый к нему мануал, где приведен пример, как сделать блог с использованием подхода MVC.

    Паттерны вам пока не нужны. Все паттерны описаны в какой-то книге Мартина Фаулера (вот список: martinfowler.com/eaaCatalog/, там есть перевод на русский, но он плохой ), но, чтобы их понять, надо сначала иметь определенный опыт написания кода и разбора чужого кода. Если его у вас нет, для вас эти паттерны будут чем-то чужеродным и непонятным (много умных слов, а зачем это нужно, если можно по-простому написать).

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

    — DRY (не повторяйся) — не должно быть повторяющихся кусков в коде длинее нескольких строк, не должно быть генерации кода путем копипасты и правки, какие-то данные (к примеру, список стран) должны храниться только в 1 месте, а не в нескольких. Следование этому принципу улучшает архитектуру кода, упрощает поддержку.

    — KISS (делай как можно проще) — выбирай самый простой способ реализации, если есть несколько вариантов, и если это не грозит проблемами в будущем.

    — не ориентируйся и не используй фичи из PHP4. Он умер.

    — не полагайся только на HTML5/CSS3. Еще не у всех есть айпады с маками, и живы ИЕ8, ИЕ7 и ИЕ6.

    — пиши свой код, так, как будто после тебя его будет поддерживать псих-маньяк, который знает, где ты живешь. То есть, не пиши такие вещи, которые трудно/невозможно понять другому человеку. Думай о том, кто будет читать твой код. Изредка в сложных местах ставь комментарии. Не раскидывай логику выполнения действия по 10 файлам. Не делай файлы больше 500-1000 строк.

    — давай правильные названия классам, функциям, константам и переменным. Не используй транслит ($chisloPokupatelei). Не знаешь английский — вооружись Яндекс.Словарями/Гуглотранслейтом. Выбери и следуй стандарту кодирования (рекомендую Zend Coding Standard).

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

    @egorinsk
    Берете сколько вы хотите заработать, прибавляете расходы, делите на число пользователей.
    Ответ написан
    Комментировать
  • Помогите разобраться в терминологии

    @egorinsk
    Микропроцессор — это процессор, выполненный в виде IC (микросхемы)?
    Ответ написан
    Комментировать
  • Жестоко лагает Опера

    @egorinsk
    Да, проблема в Flash плагине. Ждать фикса от разработчиков оперы или адоб, по-видимому.
    Ответ написан
    2 комментария
  • Почему в России под опенсорс проекты не принято заводить IRC-канал?

    @egorinsk
    Наверно, потому что разработчикам придется круглосуточно сидеть там и отвечать на вопросы?

    А так, для внутрикомандного общения, удобнее всего скайп.
    Ответ написан
    2 комментария
  • Написал статью, как публиковать?

    @egorinsk
    Слушайте, хабраюзер, слово на кар… (нет, это не кардан и не карман) и все что с ним связано, на Хабре запрещено упоминать. Надо было посоветоваться со старожилами, прежде чем писать такие глупости. Не жалуйтесь теперь.

    Опубликуйте статью в своем блоге, гуглоплюсе, ЖЖ, whatever, ** сделав хитрое лицо** после чего можете в комментариях и ответах ненавязчиво оставлять ссылку на нее, чтобы ее увидело как можно больше человек.
    Ответ написан
  • Универсальная система технического разума?

    @egorinsk
    > Универсальная система технического разума

    Видели Wolfram Alpha? Это по моему ближе всего к этому определению.
    Ответ написан
  • Ряд вопросов по защите интеллектуальной собственности

    @egorinsk
    Цукерберг не смог, вы тем более не сможете. К слову, Дуров в самом начале истории некоторые куски CSS и Javascript с фейсбука просто копипастил, и ничего, сошло с рук.

    Патенты выдаются на изобретения, а не на сайты.

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

    Также, проблема в том, что если ваш контент копирует сайт с американским доменом и IP, на кого вы в суд подавать будете? вы сначала должны (например, при помощи полиции) установить личность нарушителя, а они ради вас в США выяснять это не поедут.
    Ответ написан
    Комментировать