• Как быстро отправить 1 миллион запросов на внешний API?

    @falconandy
    Навскидку придумался какой-то такой алгоритм, возможно некорректный:
    0. преполагается видимо, что константная точка неизвестна, а сервис возвращает расстояние от неё до переданной точки
    1. берете две произвольные (но разные) точки P1, P2 из своего миллиона и отправляете два запроса, получая два расстояния R1, R2
    2. неизвестная константная точка находится в точках пересечения двух окружностей с центрами P1, P2 и радиусами R1, R2
    3. по идее таких пересечений будет два, возможно одно, если повезет
    4. если одно, то оно и будет той самой неизвестной константной точкой
    5. если два, то отправляете каждую на сервис и проверяете, до какой расстояние будет нулевое - это и будет та самая неизвестная константная точка
    6. локально находите ближайшую к теперь уже известной константной точке из своего миллиона

    В результате, максимум 4 запроса к сервису.
    Не забываем про погрешности при работе с числами.
    Ответ написан
    7 комментариев
  • Какую SQL базу данных под Linux лучше использовать с FTP через FUSE?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Никакую базу, имхо, не нужно использовать с "FTP через FUSE".
    Ответ написан
    4 комментария
  • Равноценно ли использование MariaDB вместе MySQL?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    MariaDB несколько отошла от MySQL с момента создания форка.
    https://mariadb.com/kb/en/mariadb-vs-mysql-features/
    Ответ написан
    Комментировать
  • Какие есть примеры построения большой организационной структуры?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ох и амбиции. И что за перфекционизм в отношении Postgresql?

    Не знаю как автор посчитал миллиард. Это если все население планеты Земля составляет порядка 8 млрд.
    И что мы возьмем целую страну и инвентаризируем ее чтоб получить такое число?

    Для графовых БД существует не Postgresql а специальные БД типа Neo4j. Но еще до того как ты доберешся
    до графовых БД - задание может многократно измениться и выйдет что граф - рудимент. Так часто бывало.
    Вообще очень малое число задач требуют именно графов. Если табличка отражает семантику модели
    то можно и ее использовать. Только с условием не решать в ней задачи о рукопожатиях.

    По поводу того что в таблице что-то там кого-то убивает на 1 млрд. Я отвечу так что если вы строите OLTP
    систему то в ней этот миллиард никогда не будет использоваться целиком. Там будут горячие области.
    Их можно каким-то образом кешировать или алгоритмически пред-выбирать. Или брать key-value системы если ТЗ позволяет. Для них что миллиард что триллион все безразлично. Не забывайте только поднимать новые ноды и подкидывать диски в облачко. Или если речь идет
    о BigData к примеру то там есть свой техно-стек. Например Apache Spark / GraphX. Хотя я с модулем GraphX
    не работал ни разу. Но биг-дата запросы обычно никогда не запрашивают одного физ-лица или одну
    единицу тех-средства. Биг дате ставят задачу собрать всё про всех и отгрузить отчет в виде другой таблички
    или DataMart. И на это ей дадут пару часиков а то и день. Поэтому разговоры относительно убивания
    производительности - очень можно смягчить.

    Вообще такие сложные системы не обязаны строиться поверх Postgres или Neo или Spark. В их разработке
    вполне можно использовать целый pipeline из технологий где например Postgres будет просто одним
    из элементов. Или одним stage.
    Ответ написан
    3 комментария
  • Как защитить свое api от ddos-атак?

    @rPman
    Хочу напомнить - ddos это не только про сетевые атаки, а любые атаки, направленные на нарушение работы приложения,.. т.е. если злоумышленник найдет как заставить твоих операторов обрабатывать тысячи и миллионы заявок, которые никакой пользы не принесут (с них не будет получен доход) - то это тоже 'атака на отказ обслуживания', ведь операторы будут заняты фейковой работой вместо обслуживанием нормальных клиентов.

    Готовых решений ты и не найдешь, кроме как от ограниченного типа атак (сетевых) и тут самому лучше не заморачиваться, а воспользоваться сервисом провайдера.

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

    p.s. типовые направления атак ddos используют анонимные каналы, т.е. любые команды от анонимного пользователя, которые нельзя сгруппировать по их иннициатору (да хоть по ip адресу) - первые на проверку возможности для использования, вот их и проверяй, как можно раньше в бизнеспроцессах вводи авторизацию (пусть и прозрачную), лимитируй пользователей во всем на разумные количества действий (обычный человек не будет создавать сотню заявок на покупку унитазов, как минимум он создаст одну с пометкой количества).

    p.p.s. ограничивая пользователей, всегда предлагай им действия, которые позволят этот лимит убрать, чтобы ошибочно наказанные пользователи не сидели перед экраном - 'вы забанены, идите на..й'
    Ответ написан
    Комментировать
  • Где хранить токены авторизации в браузере?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Комментировать
  • Как тестировать код работающий через очерди?

    Как работает, так и тестировать.
    Если тестируется продюсер - запустить его и посмотреть, что нужное сообщение появилось в очереди (сделать тестового консюмера).

    Если тестируется консюмер - запихнуть сообщение в очередь и посмотреть, что консюмер отреагирует на него ожидаемым образом за отведённое время. (Делаем тестового продюсера)
    Ответ написан
    Комментировать
  • Не открываются порты 8890, 8891, 5222. Что делать?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Никто их не блокирует. Их просто никто не слушает. Не запущена ни одна задача, которая бы слушала что-то по TCP на этих портах.
    Ответ написан
    Комментировать
  • Не открываются порты 8890, 8891, 5222. Что делать?

    @Zerg89
    Запустить службы которые эти порты будут слушать
    Ответ написан
    2 комментария
  • Почему Linux постоянно обращается к внешнему диску во время простоя?

    @rPman
    Если диск примонтирован без опции noatime, то любое чтение файлов будет вызывать записи на диск даты последнего чтения файлов

    Поэтому по совету выше или не только процессы на запись но и на чтение
    Ответ написан
    Комментировать
  • Как восстановить файлы после reset --hard?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Восстановить очень легко, так как гит ничего не удаляет из репозитория, по крайней мере сразу.
    Команда reset лишь переместила указатель ветки. Полностью удалить что-то крайне сложно.
    Вы можете посмотреть через git reflog где был указатель до этого и вернуть его туда обратно.
    git reset --hard HEAD@{1}
    Данная команда вернёт ветку на состояние, помеченное на вашем скрине как HEAD@{1}
    Либо можно скопировать непосредственно sha-хэш места, куда хотите вернуться.

    Затем повторить отмену последнего коммита, но уже правильно:
    git reset HEAD~1
    Такая команда не будет изменять рабочий каталог, а значит ничего из него не удалит.
    Ответ написан
    1 комментарий
  • Как корректно изменить DNS запись для сервера при миграции на другой хост?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Выставить суток за двое до миграции TTL в 5 минут для нужной DNS записи.
    Изменить значение DNS - будет "шов" в 5 минут.
    После миграции вернуть TTL обратно, ибо 5 минутный TTL создает лишнюю нагрузку.
    Ответ написан
    Комментировать
  • Какой ноутбук выбрать для Linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Хочу заниматься саморазвитием в сфере кибербеза и компьютерных сетей, и хочу поставить Дебиан на ноутбук


    Если ты только начинаешь, то поставь дебиан в виртуалку. Запускаешь ее в full screen и все, зачем целый ноутбук покупать если ты только захотел начать заниматься?
    Ответ написан
    2 комментария
  • Как произвести на свет сию программу?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Для создания сей программы есть два пути:
    1. Самостоятельно изучить Python, равно как и программирование, как таковое. То есть полностью погрузиться в тему, в том числе изучить сопутствующие библиотеки, их плюсы и минусы.
    2. Составить ТЗ и заказать работу на фрилансе.

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

    freeExec
    @freeExec
    Участник OpenStreetMap
    Заказывать выписки из кадастра
    Ответ написан
  • Сильно ли тяжело для базы данных innoDB 1 500 таблиц?

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

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

    Я настоятельно рекомендую книгу Святослава Куликова "Реляционные базы данных в примерах", она свободно доступна для скачивания. В ней как раз и даются основы проектирования баз данных.
    Ответ написан
    Комментировать
  • Сильно ли тяжело для базы данных innoDB 1 500 таблиц?

    @rPman
    Полторы тысячи таблиц для innodb это мало и дополнительной нагрузки это не создаст (помню были какие то заморочки с myisam уже при количестве таблиц больше 100).

    'очень частые' у разных людей разное значение, для кого то 1 раз в секунду - уже нереальная нагрузка, а кому то нужно 10к запросов в секунду обработать. Так вот во втором случае оптимизация будет требоваться уже на ином уровне и возможно 1500 таблиц станет заметно нагружать базу.

    Задача не ясна, рекомендации невозможно дать.
    Ответ написан
    1 комментарий
  • Как быть хорошим junior?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    1. Адекватность и самостоятельность.
    Детальнее: Умение понять суть задачи, чтобы выполнить ее. Самостоятельно решать проблемы - в это слово входит не только то, что возникла проблема - порешал. А умение решить проблемы, которые ты решить не можешь. То есть организовать решение проблемы. Заблочили аккаунт? Выяснить, вызвонить, попинать, чтобы разлочили побыстрее. Не знаешь как решить какую-то техническую проблему - достучаться до куратора. Не сидеть и ждать три дня, пока он вспомнит про твою проблему, а регулярно уточнять. Занят куратор - подойти к другому. Не успеваешь решить в срок - прийти к куратору заранее, а не за час до конца срока.
    В общем, чтобы за тобой не бегали.

    2. Умение ставить правильные вопросы.
    Сперва загуглить, потом задать вопрос для уточнения. В идеале ставить вопросы, на которые ответ будет "да" или "нет", но это я утрирую. Не бояться спрашивать вещи, которые совсем не понимаешь, но тут не нужно ожидать что все будут разжевывать - следует задать вопрос, чтобы понять куда копать. Иногда достаточно знать пару ключевых слов, по которым можно загуглить.

    3. Желание учиться.
    Не бояться изучить лишнее, потому что "мне же это не пригодится". Умение гуглить по ключевым словам. Не лениться изучать как что-то работает, чтобы понимать почему это происходит. Понимание принципов работы очень сильно увеличивает интуицию.
    Ответ написан
    1 комментарий
  • Как найти удаленную работу системным администратором если нет опыта?

    saboteur_kiev
    @saboteur_kiev Куратор тега Системное администрирование
    software engineer
    Для начала, я прочитал не только вопрос но и твои комментарии к другим ответам, и поэтому да, у тебя есть проблемы с оценкой и себя и собственных знаний и понимания что ты хочешь получить.

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

    Как в наших реалях найти работу сис админа.

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

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

    Есть огромное желание развиваться в данном направление.Опыт работы системным администратором нет.

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

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

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

    Есть опыт своего игрового сервера на esxi я не про vps а полноценный сервер.

    Этой фразой ты противоречишь сам себе. Чем VPS не полноценный сервер - непонятно - сейчас на VPS навреное живет почти все.
    Опять же игровые сервера бывают разные.
    Например у меня был опыт нескольких игровых серверов. И опыт работы с ними можно сравнить с весьма неслабым опытом и разработки и поддержки в коммерческой организации.
    А можно было просто поставить майнкрафт на домашнем компе без виртуалки - и тоже "опыт игрового сервера", при этом практически ноль технического.
    То есть твоя формулировка ну ничего не несет (ну разве что ты создавал виртуалку на esxi, но ведь это может быть и create-next-done по инструкции в инете)

    Так же знаю что нужно знать сетевые стеки tcp/ip, osi в этом не сильно силён но есть понимание настройки домашний сети.

    Домашняя сеть - в современном понятии поднимается блондинкой. Купила роутер, подключила провода, все само завелось. В крайнем случае позвонила в техподдержку, там подсказали.
    Опять твоя фраза не дает понимания что у тебя есть. Понимание OSI нужно больше для планирования архитектуры и траблшутинга.

    Так же есть опыт в сборке железа. И работы с nas synology думаю на определенной фирме не стоит заострять внимание так как примерно все они работают одинаково. Но в чем же спросить проблема?

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

    Все актуальные вакансии требуются с опытом от 2-3 лет.

    Как я уже писал - работы на полный рабочий день в большинстве маленьких контор нет.
    С простыми задачами сотрудники справятся сами, либо позовут друзей/детей/племянников за небольшую премию или чай с печеньками.

    Ситуация в мире сильно развилась за последние 20 лет. Если 20 лет назад просто поставить винду для обычного пользователя был сложный квест, то сейчас практически любая ОС ставится легко (next-next-done).
    Не нужно компилировать софт под Линукс, не нужно ставить все драйвера руками под Windows 95 с постоянными синими экранами. Очень, очень много вещей сейчас user-friendly по сравнению с прошлым.
    Поэтому недосисадмин-эникейщик - крайне редкий вид.

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

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

    Конечно составлять sql запросы я не умею но понимание что такое БД тоже есть. Перечислять все свои знания либо понимание каких либо вещей не вижу смысла так как хочу услышать совета а не оставить здесь своё резюме))

    Ну совет только один - повышай квалификацию, ищи дальше. Нет волшебной палочки.
    Те же самые sql запросы - это настолько простая вещь, что простейшие sql запросы учат набирать в любом вузе. Как человек, считающий себя начинающим сисадмином не умеет? Нонсенс.
    Понимание что такое БД - ну для этого достаточно прочитать 1 абзац в википедии. От сисадмина требуется хотя бы навыки резервного копирования, восстановления, простого траблшутинга.

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

    Суть в практических знаниях.
    2-3 года коммерческого опыта, это в первую очередь показатель, что ты наконец чему-то научился полезному для работы на позиции сисадмина.
    В современном ИТ мире существует уже не просто абстрактный "компьютерщик", а множество профессий, которые уже и не особо друг с другом сочетаются.
    Поэтому оценить что именно учить, без опыта работы - сложно.
    Зато поработав в крупной организации со развитой инфраструктурой, даже не занимаясь техническими задачами, можно примерно понять что сделано, какими инструментами и главное зачем.

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

    Именно поэтому и требуют опыт, как самый простой способ подтвердить знания еще до собеседования.

    Что можете посоветовать в данной ситуации

    Не сможешь найти работу - изучай самостоятельно.
    Без опыта тоже возьмут, если у тебя действительно есть знания и ты сможешь их подтвердить на собеседовании и испытательном сроке.
    Это сделать сложно, но все в твоих руках.

    а забыл упомянуть что есть так же оыпт работы с Linux и ssh на базавом уровне.

    Что значат эти слова?
    Для меня они обозначают, что ты очень плохо знаешь Linux и ssh, потому что... ну вот банально, давай спрошу про ssh. Как используется ssh ключ хостов? Поднимал обратный проброс портов через ssh?
    Или подожди, я конечно догадываюсь, что ты перепутал слова и хотел сказать Linux и shell.
    Но вот именно такие оговорки и подразумевают, что знания у тебя скорее всего недостаточны даже для работы стажером.

    P.s думал выбрать направление devops но там все намного сложней нужен хороший опыт сис админа пока изучаю docker но уже научился git)

    В DevOps вообще пока не лезь.
    DevOps это уже путь ИЗ сисадмина или ИЗ разработчика или ИЗ тестировщика. Но первой профессией DevOps - это звучит бредово. DevOps в проекте нужен тогда, когда проект уже сложный. Настолько сложный, что нужен отдельный человек со специфическим набором навыков. DevOps джуниор это зачастую мид или даже сеньор в другой области.

    Научился в git - опять таки слова, слова... Как ты им пользуешься? Есть что-то на гитхабе или в локальной репе? Или ты просто почитал что-то, попробовал что-то но даже не нашел как применить git в своих собственных повседневных задачах?

    В общем как-то так. Серьезнее и шире смотри на вещи и объективнее оценивай свои знания. От того, как ты формулируешь свои мысли - и идет отношение к тебе и твоим вопросам.
    Ответ написан
    5 комментариев
  • Существует ли инструмент для управления серверами ssh?

    ky0
    @ky0 Куратор тега Системное администрирование
    Миллиардер, филантроп, патологический лгун
    Как верно заметили выше - FreeIPA умеет рулить пользователями и группами. Но кроме того, о чём часто забывают - она же умеет хранить SSH-ключи юзеров и контролировать гранулярные sudo-права.
    Ответ написан
    Комментировать