Задать вопрос
  • Нравится ли вам дизайн сайта?

    @Svirepyy_Barsik Автор вопроса
    Друзья, благодарю каждого из вас за уделённое мне время. За то что указали мне на мои существенные недостатки, грубейшие ошибки и неправильный подход к дизайну.
    Я сейчас внёс небольшие изменения на сайте, но это всё пока так... Позже я придумаю принципиально другой дизайн. Я буду постоянно развиваться и учиться делать сайты всё лучше, лучше и лучше.

    P.S. Поздравляю всех с наступающим новым годом и желаю каждому непрерывного самосовершенствования и профессионального роста. Не бойтесь ошибаться, ведь ни один веб-дизайнер не делал прям сразу красивые сайты. Сначала у всех получалось коряво, потом делались какие-то изменения, потом всё снова переделывалось... и так с каждым разом становилось всё красивее.
    Ответ написан
    Комментировать
  • Как правильнее организовать архитектуру сервиса?

    Kwisatz
    @Kwisatz
    Больше web-приложений, хороших и разных
    По первому: наиболее секурно все же отдельные виртуальные машины.
    Однако если вопрос только в БД, при условии нормальной архитектуры самого приложения и бд скажем PostgreSQL/Oracle То я бы остановился на схемах. Причем каждый поддомен работает от своего пользователя/схемы с четко разграниченными грантами.
    С управляющей схемой контактируют только системы полностью изолированные от пользователя.
    Начальное копирование баз для posgre, скажем: от простого дампа основной схемы/create table like до create table of type / inherits

    По второму пункту: при грамотной реализации ничего тормозить не будет, во всяком случае у меня 250млн сообщений при 2тысячах активных пользователей не тормозили абсолютно. Тут больше думать нужно над реализаций самих сообщений. Если скажем мы можем удалять свое сообщение из переписки то его копия не нужна, если не можем то табличка вида
    -message_id
    -message_text
    -message_theme (если нужно)
    -parent_id (для иерархии ответов, если нужно),
    -folder_id (если нужны папочки)
    -author_id
    -author_name
    -recipient_id
    -recipient_name
    -keeper_id
    Решает все проблемы. На каждое сообщение создается два экземпляра и соответственно если keeper_id==author_id то это исходящее, если keeper_id==recipient_id - входящее. Имена отправителя/получателя кешируем в соответствующих полях дабы не выполнять на каждый чих лишний джоин а так же дабы не потерять адресата если вам захочется потереть пользователя из бд (что само по себе плохая идея). Определяемся нужны ли темы,папки итд и составляем индексы под наши запросы - все: радость и счастье, бабочки летают.
    Ответ написан
    2 комментария
  • Как защитить Web приложение?

    effetto
    @effetto
    .Net разработчик
    Рекомендую Вам для начала задуматься над вопросом: "от кого вы собрались защищаться?".

    Если Вы хотите чтобы Ваш клиент, не обладающий специальными навыками не уркал Ваше ПО, то Вам будет достаточно обфускаторов, о которых пишут коллеги выше (Zend, например).

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

    Защитить же решение, которое размещается на внешнем сервере от хакеров / крякеров или иных специалистов, которые почему-то захотели именно Вашу программульку, Вам скорее всего самому не удастся. В таком случае стоит обратиться к профессионалам. Скорее всего Вам предстоит в таком случае пересмотреть архитектуру Вашего ПО, а так же каналы его распространения. Самый надежный сегодня вариант - это архитектура Software as a Service и собстенные защищенные сервера. Так поступают лидеры рынка, которые заполонили веб своими облачными решениями.
    Ответ написан
    6 комментариев
  • Как определить причину утечки памяти в PHP скрипте?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Есть.
    Причина утечки - прокладка. Между стулом и монитором.
    В данном случае причина -
    Получаю массив записей из бд

    Получать записи надо не массивом, а по одной.
    И никакая память никуда утекать не будет. ДАЖЕ если не ансетить те переменные, которые и так будут перезаписаны при следующей итерации.
    Ответ написан
  • Какие есть бесплатные сервисы для учета времени (1 сотрудник, 1 админ) с снятием скриншотов?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    Покажите этот вопрос самому удаленному сотруднику, я думаю вопрос сразу решится, он просто вежливо уйдет сверкая пятками. Если человек не готов потратить 5 баксов за устраивающий его сервис - это говорит о многом.
    Ответ написан
    1 комментарий
  • Как сделать такие границы (HTML, CSS)?

    @bogomazov_vadim
    Этот гайд посмотри, как раз похожий пример.
    Ответ написан
    Комментировать
  • Как «наказать» горе-хакеров, пытающихся взломать сайт?

    DjPhoeniX
    @DjPhoeniX
    Hardcore iOS & ESP developer & DJ
    Настроить fail2ban
    Ответ написан
    Комментировать
  • Как «наказать» горе-хакеров, пытающихся взломать сайт?

    @SergeyKochergan
    IP2ASN
    Узнать кому принадлежит подсеть, и написать в суппорт.
    Ответ написан
    Комментировать
  • Интересно, как научить CRM перезванивать номера и проверять сняли трубку или нет?

    shcherbanich
    @shcherbanich
    Программист
    Надеюсь эта компания не знает мой номер)
    Ответ написан
    Комментировать
  • Как создать серверную архитектуру для приложений?

    @kaasius
    Вы рассуждаете абстракциями. В рамках этих абстракций application сервер выполняет основную работу. Принимает запрос, обрабатывает его, возвращает результат.

    А вот на вопрос - как выгладит application сервер - однозначного ответа не существует. Простейший пример - apache/mod_php, отдающий некий сайт. Или php-fpm. Или node.js. Или… тыщи их.

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