• Как с помощью rabbitmq ускорить отправку писем (php)?

    @veitmen
    Задача решается очень разным путями. И в первую очередь нужно подумать о хитростях. :)

    Во первых одно письмо отправляется 9600 клиентам или 9600 разных писем отправляется? Если 9600 клиентов, то нужно не забывать о том, что одно письмо может содержать много адресатов. Понятно что есть ограничения, но забывать об этом нельзя.

    Во втором случае нужно думать о многопоточности. Опять таки всякие очереди задачу никак не решают, просто вам будет удобно считывать сообщения из очереди. Это удобно с точки зрения и стабильности в том числе. Но считывать нужно будет в несколько потоков.

    Еще нужно помнить о том, что можно за раз отправить несколько писем сформировав Batch, если это поддерживает сервис отправки писем (если это сервис ессно).
    Ответ написан
    Комментировать
  • Как имитировать игровой сервер?

    @veitmen
    Что за игра то?

    Как было сказано выше, сервера могут делать много что. В том числе и считать физику (WoT например). В таком случае это будет сделать сложно.

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

    В общем случае сделать это нереально (UPD: нереально имею ввиду не нереально технически, а нереально с точки зрения затрат-профит). Только если сервер реально очень простой.

    UPD: Вы же понимаете, что не можете просто сохранить все вопросы-ответы от офф сервера и потом у себя просто искать наиболее подходящий ответ на запрос?
    Ответ написан
    Комментировать
  • Как добавлять класс к элементу в React?

    @veitmen
    Могу ошибаться, конечно, но видимо, насколько я понимаю, при изменении элемента в дереве ReactJs элементов, этот элемент заменяется на другой. Т.е. не просто класс у элемента меняется, а полностью элемент меняется, поэтому не работает анимация. Хотя я могу быть не прав. Может быть имеет смысл просто подписаться на некое событие и поменять класс с использованием jQuery. Но может быть есть подход более правильный.
    Ответ написан
  • Как отправить\обновить встречу в Outlook через письмо?

    @veitmen Автор вопроса
    Да вроде разобрался. Там у события есть поле UUID. Вот собственно его передаешь при создании, тогда в следующий раз когда передашь это значение, и оно будет такое же как первый раз, произойдет просто обновление.
    Ответ написан
    Комментировать
  • Какое приложение написать для изучения Java?

    @veitmen
    Если EE, то напишите для себя какой нить менеджер задач. С приоритетами, аттачами, сроками и блэкджеком.
    Ответ написан
    Комментировать
  • Как найти общий язык с сотрудниками военных предприятий, чтобы они дали описание своих процессов для составления ТЗ?

    @veitmen
    Вам нужно почитать профильную литературу. Советую Вигерса, Разработка требований к ПО. Есть в нете в виде PDF. Расставит все точки над i, по поводу работы с требованиями.
    Ответ написан
    Комментировать
  • Как заставить html появляться плавно?

    @veitmen
    Надавить посильнее на него. Думаю согласится. ;)
    Ответ написан
    Комментировать
  • А каким способом Ты организуешь динамическую форму?

    @veitmen
    Я для таких целей использую фреймворки разные. Дабы и ленивую загрузку сделать и кода поменьше написать. Например knockoutjs или ReactJS.

    Хотя это не основная цель использования этих фреймворков. :)
    Ответ написан
    Комментировать
  • Как динамически добавлять новое поле python flask?

    @veitmen
    Приветствую.

    К фласк никакого отношения это не имеет. Это Вам надо на клиенте с использованием JavaScript показывать\скрывать форму, если она уже есть, в DOM. Если ее нет, то надо сначала получить HTML для этой формы по нажатию кнопки сделав AJAX запрос к серверу. Погуглите jQuery. Для начала вам будет достаточно этого фреймворка для скрытия\показа элементов и отправки AJAX запросов на сервер.

    Пример скрытия: www.w3schools.com/jquery/tryit.asp?filename=tryjqu...
    Как получить HTML и отобразить его в div: api.jquery.com/load
    Ответ написан
    Комментировать
  • MVC. Может ли быть что-нибудь общедоступным?

    @veitmen
    Ошибка в понимании есть. Вы класс Human рассматриваете как одну из частей MVC. Это не совсем так, Human, это как раз и есть те данные, которые отображает VIew, процессит контроллер и извлекает модель. Если вы поменяете данные, то ведь нужно изменить отображение, обработку и то, как они достаются. От этого никуда не денешься и в этом нет ничего страшного. НА текущий момент изменение структуры данных, не так страшно, как было раньше. Технологии позволяют генерировать как БД, так и модели, контроллеры и вьюхи, не делая это руками. Но не стоит злоупотреблять, все должно быть в меру. А то помню, как на одном проекте пытались генерить по модели абсолютно все что только можно, начиная от БД, заканчивая скриптами на клиенте. Ад получался.

    В целом да, о данных с которым идет работа знают все слои MVC. Иначе бы непонятно было бы, что делать, что отображать и т.д. Также советую рассматривать Human, как DTO, это так называемый Data Transfer Object, объект, который транспортирует данные, как некая посылка. Вы даже не рушите объектного подхода при использовании DTO, как некоторые думают.
    Ответ написан
    1 комментарий
  • Есть ли какие то хорошие решения или практики для верстки адаптивного интернет-магазина, в том числе для мобильных устройств?

    @veitmen
    Возьмите готовый css фреймворк, аля бутстрап, и сделайте себе тему, или найдите, и все. Лучше вы ничего не придумаете.
    Ответ написан
    Комментировать
  • Стоит ли переводиться на заочку и пойти работать?

    @veitmen
    Если коротко, то спокойно учитесь и старайтесь работать столько, сколько получается. И да, оттягиваться не забывайте. Всему свое время.
    Ответ написан
    3 комментария
  • Что выбрать для SPA?

    @veitmen
    Есть еще ExtJs. Мне нравится. Использовал. Есть куча сэмплов. Быстро можно сделать прототип.

    Но в целом, некоторые вещи, которые вы хотите, не совсем касается фреймворков для реализации SPA. Например:
    2) Авторизация и разделение пользователей по ролям - отдельно реализуется проверка на стороне сервера. Далее уже в зависимости от прав проверяется возможность выполнения какого либо метода API + скрыть\показать элементы интерфейса.
    3) Различные уведомления о новых событиях (пришла почта, менеджер спустил задачу, приближается срок выполнения и т.п.) - это реализуется опять таки частично на сервере, частично на клиенте. Только клиентский фреймворк не поможет. Вообще используют либо LongPooling, либо, что лучше, WebSocket. Либо вообще фреймворк, который позволит абстрагироваться от собственно способа оповещения клиента.

    А вообще ReactJs - круто. Очень быстро. Но это только фреймворк для реализации UI, не более. Flux - это подход, который просто описывает то, кто с кем и как взаимодействует. Да, удобно для ReactJS, но не панацея.
    Ответ написан
  • Где лучше хранить изображения для сайта?

    @veitmen
    Посмотрите на Amason S3.
    Ответ написан
    Комментировать
  • Совет начинающему программисту. Как следует подходить к приобритению навыка OOP?

    @veitmen
    Почитал ответы.

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

    ООП - лишь еще один инструмент, не думайте что это золотая пуля. Состояние, в целом - зло.
    Ответ написан
    2 комментария
  • Почему Steam, Origin не запрашивают UAC?

    @veitmen
    Вероятнее всего их приложения подписаны доверенными сертификатами.
    Ответ написан
  • Логирование через синглтон?

    @veitmen
    Приветствую.
    LogManager.GetCurrentClassLogger()
    Использовать следует тогда, когда вы хотите использовать отдельный логгер для каждого класса и имя логгера будет совпадать с именем класса.
    Пример правильного использования:
    namespace MyNamespace
    {
      public class MyClass
      {
        private static Logger logger = LogManager.GetCurrentClassLogger();
      }
    }

    Далее всегда используете в своем классе для логирования logger.
    Подробнее тут: https://github.com/NLog/NLog/wiki/Tutorial#creatin...

    Если вы хотите сделать общий класс логирования и везде его использовать, то сделайте статический класс Logger, в нем реализуйте нужные вам методы логирования, которые будут использовать NLog. Т.е. примерно так:
    namespace MyNamespace
    {
      public static class MyClass
      {
        private static Logger logger = LogManager.GetLogger("MyCoolLogger");//или упомянутый GetCurrentClassLogger()
    
       public static void Debug(string message){
          logger.Log(message);
       }
    ...
      }
    }

    Собственно так используете:
    Logger.Debug("Hello!");
    Это простое решение, но я бы не советовал его использовать.

    Я бы советовал использовать отдельный логгер для каждого класса, это BestPractise. Это позволит вам проще ориентироваться в логах, т.к. каждый логгер будет указывать на свой класс.
    Ответ написан
    Комментировать
  • Как провести сравнение двух Html файлов с получением списка изменений?

    @veitmen Автор вопроса
    Без лишних зависимостей и очень просто:
    https://github.com/aaronsw/htmldiff
    Ответ написан
    Комментировать
  • Как провести сравнение двух Html файлов с получением списка изменений?

    @veitmen Автор вопроса
    В общем много чего есть. Надо только правильно задавать вопросы гуглу.
    lxml.de/index.html
    https://code.google.com/p/google-diff-match-patch/...
    https://github.com/christian-oudard/htmltreediff
    www.aaronsw.com/2002/diff
    Ответ написан
    Комментировать