Задать вопрос
  • Нужно прозванивать сотрудников и проверять как часто берется трубка…?

    @egorinsk
    Не проще ли нанять специального менеджера по мотивации и дать ему кнут? Или у вас не в офисе люди сидят?
    Ответ написан
    Комментировать
  • Текст под углом ( не сss-transform)?

    @egorinsk
    То, что выше — плохие решения. Абзац любого текста можно выгнуть любой дугой с помощью кучи небольших флоатов слева и справа.
    Ответ написан
    4 комментария
  • Отладка скрипта в Safari, который вешает браузер намертво?

    @egorinsk
    Где-то в Яваскрипте бесконечный цикл
    Ответ написан
    Комментировать
  • Сайт кешируется в корпоративных сетях

    @egorinsk
    Надо запретить кеширование страниц, если пользователь залогинен.
    Ответ написан
    Комментировать
  • Как реализовать рекурсивное слияние деревьев?

    @egorinsk
    Рекурсивные операции с деревом делаются проще всего рекурсивной функцией. У вас так вопрос описан, что ничего не понять, потому приведу пример функции, проходящей по дереву и умножающей каждый элемент на 2:

    ideone.com/2zVf8C

    То есть мы делаем функцию, обрабатывающей один массив, и если в нем есть подмассивы, просто вызываем эту же функцию для них. Этот же подход, мне кажется, прекрасно подойдет к вашйе задаче.
    Ответ написан
    Комментировать
  • Что выбрать для разработки веб-приложений?

    @egorinsk
    А вы попробуйте микрофреймворк вроде Slim. Он изучается за час максимум, мне, правда он не нравится, я бы лучше свой написал, но тем не менее, он очень прост и много времени на него не уйдет.

    Для шаблонов стоит использовать нативный PHP.

    На PHP не стоит переносить подходы, применяемые в той же яве, когда на каждый чих содаются фабрики, объекты, билдеры и прочее. Это, конечно, возможно на PHP, но работает не очень быстро и пишется не очень быстро. Если вы не делаете мегапортал, то лучше применять более простые подходы.
    Ответ написан
    2 комментария
  • SMS-мошенничество. Возможен ли возврат средств?

    @egorinsk
    Ходят слухи, что если найтойчиво мучать техподдержку и требовать вернуть незаконно списанные деньги, можно добиться успеха. Оператор прекрасно понимает, что большой процент платных СМС и подписок отправляются по незнанию.
    Ответ написан
    Комментировать
  • Запросы Google Bot &post=хххххх_ххх

    @egorinsk
    Referer смотрели? Может, просто кто-то на своем сайте разместил такую ссылку, а вы панику развели. Ну или у вас на странице есть форма с полем post как вариант.

    Я считаю, что подстраиваться под косяки Гугла не самое разумное дело и надо просто игнорировать такие параметры — то есть, ничего не делать.
    Ответ написан
  • Где или как можно повысить навыки композиции сложных проектов на PHP?

    @egorinsk
    Книгу про паттерны проектирования корпоративных приложений читали?

    Вообще, как я понимаю, надо просто хорошо понимать что такое, как делается и зачем были придуманы штуки вроде N-tier architecture, MVC, DI, и принципы вроде loose coupling, DRY, KISS — по моему, это те теоретические вещи которые надо знать, и которых для веб-приложений достаточно, а дальше уже идет опыт вроде «мы использовали такой-то подход и наткнулись на такие-то недостатки».

    Я не уверен, что вы найдете где-то например проект с примером идеальной архитектуры и не найдете описание такой архитектуры, так как всегда приходится принимать решения на основе существующих требований, ограничений, совместимости с существующим кодом, и т.д.

    И не стоит ограничиваться условием «именно на PHP». Архитектура она на то и архитектура, что не привязана к конкретному языку.
    Ответ написан
    1 комментарий
  • Какую СУБД посоветуете при работе с древовидными структурами данных?

    @egorinsk
    Не проще ли освоить алгоритмы вроде Nested Sets и подобных?
    Ответ написан
    Комментировать
  • Как на Python распарсить большой XML файл (>500Мб) содержаший ошибки?

    @egorinsk
    Если файл XML содержит ошибки, то это уже не файл XML.
    Ответ написан
    Комментировать
  • Платежную систему для сайта продажи электронных книг?

    @egorinsk
    Paypal придирается к вам или к вашим клиентам? Если к вам, то можно и потрепеть.
    Ответ написан
  • Как поднять свой уровень программирования?

    @egorinsk
    Как поменять образ деятельности:

    1) Устроиться на работу в компанию, которая этим занимается, может вам разрешат хотя бы заваривать чай и разносить печеньки тамошним разрабочикам
    2) Сделать свою успешную софтокомпанию, добиться известности и получить заказ на разработку какой-нибудь сложной системы.
    3) Просто придумать какйю-то идею и пытаться ее реализовать.

    «Хитроумное кеширование» — этого нет, кеширование не более чем костыль.

    «Алгоритмы» — если вам интересны алгоритмы, решайте олимпиадные задачи, например на codeforces и читайте статьи по способы сортировки, поиска пути на графе, вроде на тему алгоритмов есть какой-то западный видеокурс по Computer Science.

    Товарищу, который написал про геймдев, не верьте — российский «геймдев» не имеет ничего общего с компаниями врде Valve/id Software и занимается копипастингом зомбиферм, натягиванием моделей на купленные движки, убогоиграми для айфонов и прочей иногда впрочем хорошо оплачиваемой ерундой.

    Про фриланс — тоже не верьте, там обычно задачи уровня «I need a plugin for my ecommerce site».

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

    @egorinsk
    Правильное, но невыгодное финансово решение: не нанимать быдлокодеров и переделать сайт.

    Быстрое и дешевое решение: написать/прикрутить фильтр, который не будет пропускать запросы со словами SELECT, where, JOIN, UNION (в любом регистре), script, onload, onerror, onmouseover (и все остальные JS-события), object, applet, iframe, frame и так далее. Список слов ищите в интернете. Если ваши посетители, например. общаются на русском, очевидно, такие слова они вряд ли используют.

    Также, можно заменять во входных данных одиночную, двойную кавычки и апостроф на косые юникодные кавычки. Выглядят они примерно так же, а инъекцию уже не сделать. Также можно использовать прием Дурова — в словах вроде script менять с на русскую — выглядит оно так же, а вреда никакого не несет. Сайт работает, а инъекции — нет, школохакеры мучительно пялятся в монитор, а поделать ничего не могут.

    Также, если вы умеете администрировать linux, можно на сервере засунуть веб-сервер и сервер БД в отдельные контейнеры и изолировать их (или даже selinux включить). Плюс зафаерволлить намертво. Это вообще идеальнй вариант — даже если ваш сайт представляет один большой бекдор, взломщик не сможет получить из него никакой выгоды. Если правильно настроить сервер, фаерволл и изоляцию, для написания кода можно нанимать хоть школьников.
    Ответ написан
    Комментировать
  • Mod_rewrite и хостингом?

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

    @egorinsk
    В таком простом случае — проще всего руками.
    Ответ написан
  • Взаимодействие демона и веб-морды на разных серверах

    @egorinsk
    > (не хочется, чтобы DDoSом на веб-морду можно было положить демона)

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

    > Как именно лучше организовать взаимодействие между двумя этими серверами (RPC, Socket, что-то еще)?

    Можно через HTTP/1.0 + JSON, например. Или бинарный протокол, если есть желание выжать максимум, но тогда надо демона переписать на Си.
    Ответ написан
    Комментировать
  • Адаптивная верстка средствами CSS

    @egorinsk
    > 1. Я просто хочу, что бы IE678 игнорировали эти настройки, а именно использовали стили для 980px+ разрешения. Подходят ли данные средства CSS для этого?

    caniuse.com/css-mediaqueries — IE 6-8 не поддерживают CSS media queries, потому они скорее всего будут игнорировать их. Для этого не надо дописывать ни одной строчки кода :) Соответственно, в Media Queries надо заключать условия для маленьких экранов, а без них — для больших.

    > Какие разрешения вообще стоит использовать?

    Имхо, только 2 разрешения: большой экран и маленький. Также, если вы хотите, чтобы айфон использовал стили для маленького экрана, а не имитировал большой браузер, надо дописать meta viewport что-то там.

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

    То есть, использование ад. дизайна требует лишних усилий от дизайнера, верстальщика, программиста, надо тестировать все страницы в 2 разрешениях, а ради чего? Непонятно. У меня такое ощущение, что некоторые люди где-то услышали, что это модно, а зачем это делается и какой ценой обойдется, не понимают.
    Ответ написан
    1 комментарий
  • Что такое оверхэд (overhead)?

    @egorinsk
    Неизбежные накладные расходы.

    Например, программа, которую вы написали, делает полезную работу в течение 10 мс, но на запуск и завершение виртуальный машины Ява уйдет дополнительно 5 секунд, и эти 5 секунд будут оверхедом.
    Ответ написан
    2 комментария
  • Замена строковых констант из панели администрирования. Подводные камни?

    @egorinsk
    > Есть ли возможность выбирать и вставлять текст из браузера с учетом верстки/разметки. Если пользователь копирует аб, нужно чтобы в буфере обмена оказалось именно «аб» а не «аб».

    Есть везде, кроме Оперы. В Опере (подозреваю) можно сделать костыль в виде превращения куска страницы в contentEditable
    Ответ написан
    2 комментария