• Почему у некоторых в скайпе аккаунты типа vasya15@molodec.ru, а у некоторых live:.cid.b790823jdxsf09u82lfjkde?

    sashkets
    @sashkets
    Прекратил отвечать после 24.02.2022
    Те у которых live логин, сначала зарегались на МС по другому сервису, потом решили получить логин скайп и вошли/зарегали по существующему паспорту live
    Те, что по мейлу - так они регистрировались в скайпе вводя не паспорт live, а свой мейл
    Ну и есть третьи, у которых нормальный, человеческий логин - слово. Эти регались в эпоху, когда скайп еще не принадлежал МС

    Как-то так
    Ответ написан
    Комментировать
  • Nginx redirect from http to https?

    nikitasius
    @nikitasius
    еще хороший вариант:
    if ($ssl_protocol = "") {                                
                                    rewrite ^/(.*) https://$server_name/$1 permanent;
    }

    У меня такой код для определенных location сделан. К примеру чтобы admin и иже с ними только через https работыли.
    Ответ написан
    Комментировать
  • Селекты из таблицы на 5 млн строк. Если разбить её на 100 таблиц - будет выигрыш в производительности?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Clickhouse. Б-гоподобные индексы, column-based, вот это вот всё.
    Ответ написан
    Комментировать
  • Селекты из таблицы на 5 млн строк. Если разбить её на 100 таблиц - будет выигрыш в производительности?

    1. Возможно, тут более правильно использовать noSQL.
    2. Даже если SQL (= РСУБД) - нужно избавляться от JOIN-ов.
    Но! ! Уровень JOIN-ов =1 может оказаться вполне приемлем, если вы
    - при фильтрации на фронте сразу выделите id связанных сущностей (бренд, цвет, и т.п.)
    - правильно настроите индексы, и сделаете правильные запросы
    Например, при хотя бы одном активном фильтре делаете 1 SELECT, а потому уже в PHP (или что там у вас) отфильтровываете по другим параметрам.
    И да, надеюсь, тексты и тем более картинки (не в БД же они?) у вас не выбираются этим же запросом?
    Если вдруг выбираются (типа SELECT * ..), замените "*" на "поле1, поле2" (только нужные), может оказаться приятным сюрпризом
    Ответ написан
    2 комментария
  • Селекты из таблицы на 5 млн строк. Если разбить её на 100 таблиц - будет выигрыш в производительности?

    gobananas
    @gobananas
    finishhim.ru
    Нет, выигрыша вы не получите, потому что в MySQL есть ещё время на открытие таблицы некоторое, и там доп. логику придётся писать с условиями из какой таблицы выбирать. Надо денормализовать данные хотя бы немного, сделать EXPLAIN, посмотреть, бывает MySQL сходит с ума и не использует правильные индексы.
    5 млн. это не очень много, уверен всё можно привести в норму.
    P.S. Сам работал с таблицей 3,5 млн. записей на сервере с 2 Гб памяти, всё отлично, дольше 0,1 секунды запросов нет, хотя и это многовато имхо.
    Ответ написан
    Комментировать
  • Безопасно ли хранить файлы в архиве WinRar?

    x67
    @x67
    Обойдусь без демагогий. Winrar использует алгоритм шифрования AES с ключом 128 или 256 бит в зависимости от версии. И это на сегодняшний день очень надежный алгоритм, которые используется повсеместно. Если ваш 25 значный пароль смогут взломать за разумное время, можете не беспокоиться, так как у всего мира проблемы будут побольше. Поэтому используйте винрар 5 версии (ключ 256 бит) и не забывайте о криптопаяльнике, скорость взлома которым никогда не зависела от алгоритма шифрования)
    Ответ написан
    2 комментария
  • Каким должен быть правильный контроллер?

    onqu
    @onqu
    weasy
    Никаким. Его не должно быть. Вообще. Только сразу камнями не закидываете.

    Разъясню.

    1. Контроллеры в большинстве случаев не имеют состояний, а объект без состояния лишь дополнительное пространство имен для функций.

    2. Реализации
    В небольших приложениях в контроллеры наваливают бизнес логику, чтобы не тратить время на построение архитектуры. Оно себя оправдывает. Да мы лишаем себя возможности модульных тестов, но функциональные остаются рабочими. И это является противоречием назначению контроллера.
    class RobotsControlller
    {
        public function inactiveRobots()
        {
            $robots = Robots::find()->where(['active' => false])->all();
            foreach ($robots as $robot) {
                $robot->active = true;
                $robot->save();
            }
    
            return $this->render('robots', [
                'robots' => $robots
            ]);
        }
    }


    В проектах средней величины уже пытаются выносить бизнес логику в сервисы. Сервисный слой это и есть модель из множества классов. В контроллере вызывается один-два из этих сервисов и данные передаются в представление. И все бы хорошо, связующее звено для сервисов..., но это грамотно завуалированная бизнес логика, которую отчетливо видно лишь в крупных проектах.
    class RobotsControlller
    {
        public function inactiveRobots()
        {
            $container = $this->getContainer();
            $robotsService = $container->getRobotsService();
            $robots = $robotsService->getInactiveRobots();
    
            $stationService = $container->getStationService();
            $stationService->acivateRobots($robots);
    
            return $this->render('robots', [
                'robots' => $robots
            ]);
        }
    }


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

    3. Как же все-таки правильно.
    Отказываться от контроллеров и пилить свой велосипед на текущий момент слишком затратно по времени на всех проектах меньше больших. Мой ответ будет прост - использовать здравый смысл, сохранять семантику и не забывать об удобстве. Называете вещи своими именами и придерживайтесь однородности. Если строите api на типах resource (get | delete | put | post) то придерживайтесь этого стиля, не мешайте со стандартными экшенами. Разобравшись в одном будет проще понять работу всего остального.

    4. Примеры из жизни
    Рассмотрите любые примеры из реальной жизни. Например, процедуру покупки продуктов в супермаркете или покупки билета в метро. Контроллером является кассир, который принимает входящие данные (товары и деньги) и отдает представление (чек). Но со временем роль кассира начинает выполнять автомат, покупатель сам пробивает товары или покупает билет на проезд. Контроллер поменялся. Через еще некоторое время билет покупать уже не требуется, есть просто телефон с NFC, а в супермаркете просто получаем товары по заранее отправленному с этого же телефона заказу.

    В каждом MVC много других маленьких MVC, скажете вы, ища оправдания необходимости контроллера.

    p.s. можно начинать кидать камни)
    Ответ написан
    3 комментария
  • Как вы повышаете собственную продуктивность?

    @Lexans
    Корень проблемы лежит в твоём восприятии. Твоё восприятие дел, времени и есть проблема.
    Ты не обязан делать всё, что тебе велят. Стань независимым: делай то, что соответствует твоим ценностям и целям, которые нужно тщательно обдумать.
    Ты не обязан тратить всё свое время на труд. Эффективный человек соблюдает баланс труда и отдыха. Научись правильно делегировать задачи.
    Возросшая производительность не избавить тебя от проблемы, а лишь усилит беспокойство о ней. Только работа над своим характером, восприятием решит твою проблему, а не новые техники тайм менеджмента.
    p.s. так бы ответил С. Кови, автор книги 7 навыков высокоэффективных людей, которую я советую тебе прочитать или прослушать, если ответ заинтересовал.
    Ответ написан
    Комментировать
  • Как вы повышаете собственную продуктивность?

    stasparshin
    @stasparshin
    не забывайте помечать ответы. дрочу на статистику
    + Вести список дел
    + Вести список проектов
    + Выбирать главное и стараться уменьшать первые два
    + Стараться каждый день сделать один MIT (most important task)
    + Записывать все идеи в инбокс и только потом переносить в списки
    + Найти подходящее для этого всего приложение
    + Прочесть GTD Девида Аллена
    + Заводить помидор, когда работаешь. Техника Помодоро.
    + Выключить звук на телефоне.
    + Бороться с остальными поглащателями времени.

    Но это все возможно только после принятия тезиса о том, что нет такой проблемы как "нехватка времени". Времени у всех одинаково. Успешные люди — это те, кто находят время для важных вещей.
    Ответ написан
    7 комментариев
  • Почему $_POST пустой, если отправить JSON?

    DIITHiTech
    @DIITHiTech
    Fullstack javascript developer
    А какая связь между $_POST и JSON?=)

    stackoverflow.com/questions/19004783/reading-json-...

    $json = file_get_contents('php://input');
    $obj = json_decode($json);
    Ответ написан
    4 комментария
  • Как и где хранить пользовательские данные в соответствии с законом "О персональных данных"?

    kumaxim
    @kumaxim
    Web-программист
    В тексте этого закона написано примерно следующее: "персональные данные граждан РФ должны храниться на серверах, расположенных в пределах РФ". Вы где-то видите что эти данные должны хранится исключительно в РФ? Лично я там такого пункта не нашел.

    Лично для себя я придумал такое решение: ничего из Германии где у меня все настроено и прекрасно работает я переносить не собираюсь, но дабы не влететь на штраф от Роскомнадзора, я беру в РФ VPS'очку, устанавливаю там СУБД и настраиваю репликацию. Все! Формально я требования закона исполнил, регулятору придраться не к чему.

    Если пойдете по моему пути - заключайте с российским хостером договор и платите через банк ему на р/с, квитанции храним 3 года. Так в суде Вам будет легче доказать что Вы не "олень", если Ваша разборка с регулятором дойдет до суда.
    Ответ написан
    Комментировать
  • Что должен уметь веб-программист?

    @ivkol
    с одной стороны, чем шире кругозор, тем лучше. с другой стороны, в сутках 24 часа + знания устаревают быстро. поэтому ответ такой: развиваемся максимально в том направлении, которое в ближайшее время имеет практическое применение, а в свободное время (которого почти не должно быть) изучаем нечто принципиально иное для разминки мозга и свежих идей в своей области.
    P.S. вот пример для размышления: человечество стонет от нищеты, болезней, неграмотности, а мировой бюджет игровой комп. индустрии сопоставим с суммарными расходами на медицину, образование, космос. аналогично и мы в рамках своей жизни
    Ответ написан
    5 комментариев
  • Где взять актуальную статистику по используемым ОС?

    SowingSadness
    @SowingSadness
    web-разработчик
    Весь мир ориентируется на 2 статистики:
    gs.statcounter.com/
    www.netmarketshare.com/report.aspx?qprid=11&qpcustomb=0

    Всякий бред про w3schools не слушайте
    Ответ написан
    1 комментарий