Задать вопрос
  • Архитектура кластера баз данных для географически распределенного проекта?

    Eugene-Usachev
    @Eugene-Usachev
    Если "чат/мессенджер/что-то подобное", будет лежать очень много данных. То есть профили можно сохранить хоть в Postgres + Redis (шардированный по регионам), и иметь вполне себе хорошую производительность. Проблема будет именно с сообщениями.

    Если решать проблему по логике "почему бы не стремиться к 8 млрд пользователей", для профилей можно взять Aerospike или Tarantool. Оба решения имеют возможность шардирования по вторичным ключам, так что их можно разнести по разным регионам. Причём надо именно шардироваться, а не только реплицироваться. Таким образом, можно избежать "узких горлышек". В этом случае оба решения будут выдавать более миллиона запросов в секунду на один кластер с маленькой задержкой (скорее всего двухзначной в медиане) и не иметь единой точки отказа.

    С сообщениями сложнее, так как их будут петабайты. Тут советую не "изобретать велосипед" и взять ScyllaDB, как это сделал Discord. ScyllaDB работает с огромными массивами данных довольно быстро и прекрасно масштабируется. Ради двухзначных чисел задержки в медиане достаточно шардироваться по регионам.

    Выводы очень простые. Если "стремиться к 8 млрд пользователей" надо
    1 - использовать нереляционные СУБД
    2 - шардировать БД по регионам (тогда можно отказаться от очередей)
    3 - использовать кэширование "горячих" данных
    4 - использовать Write-Optimized СУБД для больших массивов данных.

    Если у Вас "8 млрд пользователей" Вы можете позволить себе по датацентру в каждом регионе, поэтому основной задачей является правильное шардирование. И ещё один совет. Если гнаться за производительностью, надо использовать не очереди сообщений, а многопоточные асинхронные серверы, которые "кучкуют" сообщения пачками, чтобы как можно реже обращаться по сети.
    Ответ написан
    1 комментарий
  • При каждом запуске хрома автоматически устанавливается расширение "Часы и секундомер". Откуда лезет зараза?

    sudo_sandzo
    @sudo_sandzo
    Зайди в реестр. Найди папку HKEY_LOCAL_MACHINE, в ней открываешь Software, потом Policies и, наконец, Google и Chrome. В данной папке найди папку ExtensionInstallWhitelist и удали ее содержимое. Нажми WIN+R и нажмите Enter и в открывшееся окно вставьте следующее:

    %userprofile%\AppData\Local\Google\Chrome\User Data\Default

    Нажми Enter В открывшейся папке удалите следующие папки Extension State, Extension Rules и Extensio.Жмем WIN+R нажимаем Enter, в открывшееся окно вставьте следующее: msconfig, нажми ENTER, в открывшемся окне переходим на вкладку автозагрузка и снимаем флаги с неизвестных тебе программ. Ну как-то так, удачи.
    Ответ написан
    2 комментария
  • Laravel в чем ошибка?

    @Giperoglif
    нет пхп модуля для SQLite

    php-sqlite3
    Ответ написан
    4 комментария
  • Как безопасно скачивать и открывать файлы (например zip,txt,jpg) из интернета?

    @tifco
    Надо стараться файлы брать с проверенных источников, а не абы откуда.

    Вирус открывать не надо. Зачем? Удалить и дело с концом. Т. к. "вылечить" исполняемый файл не всегда возможно. Он может быть просто поломан в процессе: антивирус не те байты поменяет и привет.

    В виртуальной машине можно, к примеру, поизучать действие вредоноса. Любопытства ради. И, обычно, без ущерба для основной машины. Если машины, конечно, не объединены в локальную сеть (хост система <-> виртуальная система) и мы не запускаем, к примеру, некоего сетевого червя, что распространяется, как раз-таки, по сети. Используя, допустим, какие-то уязвимости, размещенных в ней (локалке), хостов. Как видно, опасность сего мероприятия зависит от функциональности, продвинутости зловреда. Так что насчет 100% абсолютности - врядли, не всегда и не со всеми. Ну а в целом, если не фанатеть этим, то интересного там не особо много. Потестил раз, два и надоест. Возникнет вопрос: нафиг оно вообще?
    Тут же жизнь со всеми ее приключениями. Кого-то не взяли айтишником, а он - талантище. Так вот и мстит обидчивый миру за несправедливость. Как умеет. Или изначально пошел по пути криминала. Это уже о мотивах и психологии данных "писателей".

    Исполняемые файлы (exe) содержат в себе исполняемый программный код. Все остальные (если грубо разделить) форматы не содержат его.
    Пример. Раньше, как-то была статья об уязвимости встроенного просмотрщика фотографий Windows. Дескать, открытие, специально сформированного, графического файла могло вызвать ошибку программы просмотра и, вроде как, допустить несанкционированный доступ к системе из вне. Вообще, софт пишут люди и в нем хватает ошибок. Сколько, в процентном отношении, таких уязвимостей и насколько реально они опасны (что в итоге может натворить программа после получения доступа (ее опасная начинка) или злоумышленник (по сети)) - еще вопрос. Тут, всеже, эксешники (exe) вне конкуренции. Их-то и надо опасаться, при прочих равных. Хотя, "вирусы" тоже эволюционировали. Понапридумано масса иных лазеек. Сейчас классические вирусы не столь актуальны, нежели трояны.
    Временами, эти истории вообще походят на байки. Про зараженные архивы, картинки и уже тем более текстовики. Если подумать логически: чего может быть опасного в простейшем текстовом файле? Ну завершит он с ошибкой Блокнот, если, к примеру, файл будет очень большой (пару мегабайт, да и на слабом ПК). Так это не вирус, а ограничения программы. Памяти не хватило.

    Тема вирусов достаточно обширная. Начиная от самых безобидных "шуток" и до очень мудреных, резидентных вирусов, сетевых червей и т. п. Что висят только лишь в оперативной памяти. Но на такое способно малое число "писателей", в основном же, речь идет о лютой туфте.

    Так что тут дело в вероятности. EXE-высока вероятность, все остальные - мала, если не крайне. Либо ущерб незначителен. Легко фиксится руками. Как и обезвреживается само поделие.

    Если exe-файл не запускать, не выбирать команду по файлу "открыть", то он безвреден. Т. к., в данном случае, это просто набор байтов (как и все остальное компьютерное содержимое), а не некая выполняющаяся программа (код).
    Ответ написан
    2 комментария
  • Почему не срабатывает HapticFeedback?

    r0n1x
    @r0n1x
    html, css, js
    661e4e64d0a96053130503.png
    661e4e71193ff128211302.png

    Потому что window.Telegram.WebApp.HapticFeedback
    Ответ написан
    Комментировать
  • За какой срок можно выучиться на junior front-end dev.?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    60% html и css

    А вы уверены? Рекомендую пройтись по списку know it all, чтобы точно понимать, что вы знаете, а что - нет. И это не издевка. Для разработчика очень полезно иметь представление о том, что существует в его языках, кроме того, что он "знает". Это помогает меньше тупить там, где есть стандартное решение, которое можно за секунду загуглить, но только если знаешь, что оно вообще существует в природе.

    что учить после

    Нужно изучить процесс сборки фронтенда, который нынче применяют, и понять, зачем нужны все эти инструменты - пре/пост-процессоры, линтеры, сборщики, таск-раннеры, пакетные менеджеры и.т.д. Именно не "выучить", а понять смысл. И почитать про хорошие практики и методологии. Архитектуру проектировать джуниора никто не посадит, а вот чистый и понятный код должен быть. После этого уже имеет смысл познакомиться с популярными библиотеками и фреймворками, которые вы без труда найдете в описаниях вакансий.

    где найти практику

    Макеты для верстки - в гуглопоиске, интересные примеры и еженедельные челленджи - на CodePen, вопросы из бытовой фронтендерской практики и разные решения для них - тут, на тостере (отвечать тоже полезно, пока объясняешь что-то другому - сам лучше понимаешь).
    Ответ написан
    1 комментарий