Задать вопрос
  • Почему консоль VPS (Linux) зависает после ввода пароля?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Чтобы диагностировать проблему, нужно смотреть логи, анализировать нагрузку сервера любым мониторингом.
    Вангую, что раз вы задаете такой вопрос - у вас открыт 22 порт ssh и идет подбор паролей, создаюший DDOS атаку на login
    Ответ написан
    3 комментария
  • Как задать ACL для одного из доменов?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    В location пишите где-то так:
    set test="";
    if ($host = "name1.example.com") set test="1";
    if ($remote_addr != "1.2.3.4") set test=$test."2";
    if ($test = "12") return 403;
    Ответ написан
    2 комментария
  • В чем можно хранить около триллиона значений key=>value?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Давайте прикинем объем который понадобится. Что такое триллион?
    Это 12 нулей. Или 1 000 000 000 000 элементов. Какая у нас data-row?
    8 + 64 символов типа ASCII (байт подходит чтоб покрыть все символы).
    Итого 72 байта на строку. Там можно еще поужимать биты в байтах но только
    сложность повышает а большой пользы для дела не дает. Пускай будет ASCII == 1 байт.

    Вобщем такой расчет

    72000000000000 байтов на весь сегмент данных когда таблица загружена.
    Или 65 терабайт. А сколько магнитных блинов надо прикупить? Возьмем популярный магнитный
    Western Digital Purple 10TB 7200rpm 256MB WD102PURZ 3.5" SATA III при цене 290$
    Порядка 7 штук надо. Вобщем готовте котлету денег 290$ * 7 = 2030$

    По поводу DBMS. Да key-value здесь подходит. Можно начинать с LevelDb или RocksDb но у них
    расход дисковой памяти на 1 строчку может быть больше чем я посчитал. Я ведь считал эконом-эконом
    вариант в виде бинарного типизированного файла где все записи строго по 72 байта. Сколько именно
    захватит РоксДб или ЛевлДб - чорт его знает. Вряд-ли документация об этом что-то говорит.
    Но берите 1% датасета. Загружайте
    и аппроксимируйте сколько выйдет после полной прогрузкуи. Это - надежный способ оценки.
    Ответ написан
    12 комментариев
  • Какое оптимальное время въехать в проект?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Какое оптимальное время въехать в проект?

    Не бывает оптимального времени. Обычно заказчик и исполнитель вместе решают какое время.
    Но для оценки я рекомендую следующее. Посмотреть backlog проекта. Посмотреть какие критичные
    таски висят. Или блокеры. Посмотреть что у них общее.

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

    Для анализа кода поставте план - график. Например 1 неделя на развертывание проекта.
    Если там специфичное облако - то на изучение облака еще 1-2 недели.

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

    Если на проекте есть архитектурная документация, confluence, wiki - то берите пару недель на чтение.
    Выписывайте ВСЕ новые слова на бумажку. По ним задаете вопросы.

    У вас должен быть ментор или консультант который раз в несколько дней должен отвечать
    на ваши вопросы по списку. Ваш план-график должен учитывать риски и внезапные investigations
    результатом которых могут быть НОВЫЕ таски которые вы сами создадите. Например - сдохли
    сертификаты по сроку. Создать новые. Это время. Это тоже таски и они должны быть эстимированы.
    Ответ написан
    3 комментария
  • О каких IT специалистах говорят, когда речь идет о дефиците кадров?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Даже просто посмотри вопросы на тостере год назад и сейчас.
    Последние 5 лет на тостере вопросы становились сложнее, специфичнее. Много вопросов где сам сидишь думаешь.

    А последние 5 месяцев полно треша.

    На вакансию может откликнуться кто угодно. Даже не айтишник. Поэтому из 357 человек до собеседования может быть хорошо если десяток дойдет. А на собеседовании и из них никого не захочется.
    Ответ написан
    Комментировать
  • Почему socket работает только в локальной сети? Как это исправить?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Дело в том, что пока ваши устройства в одной подсети (им выдал адреса один DHCP сервер, это обычно ваш роутер), вы, указав локальный IP другого устройства в сокете, можете создать соединение.
    Но если устройства в разных локальных сетях, между которыми не настоен никакой роутинг, то устройства не смогут видеть друг друга. Их адреса будут в разных адресных пространствах.
    Это как звонить внутри отеля по внутреннему номеру телефона. Если один из абонентов окажется в другом отеле, то, даже зная его внутренний номер, вы из первого отеля не дозвонитесь ему напрямую по короткому номеру. Придётся пользоваться шлюзом. Вот шлюз - это NAT.
    Тут дальше аналогия уже поплывёт, если ещё глубже пытаться её применять.
    Прочитайте что такое NAT, что такое белый IP, динамический и статический IP, что такое port-forwarding, сетевая модель OSI, что такое маска подсети и как устроен IP-адрес, как происходит маршрутизация.
    Это слишком много инфы, чтобы рассказывать вам об этом в ответе на один вопрос. Вам нужно изучать это самостоятельно.
    Ответ написан
    3 комментария
  • За счет чего происходит ускорение программ при наличии модуля ядра linux?

    ValdikSS
    @ValdikSS
    Модуль TUN/TAP, через которые работают все не-ядерные VPN, очень медленный из-за того, что у него есть только интерфейс получения и отправки пакетов по одному пакету за вызов. Большое количество переключений контекста между ядром и пользовательским уровнем очень затратны, что влечёт за собой неэффективное использование процессорного времени.

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

    Оценить ускорение от уменьшения переключений контекста довольно просто, достаточно провести тестирование со значительно увеличенным MTU пакета. Вот какие цифры приводит проект slirp4netns.

    Implementation |  MTU=1500  |  MTU=4000  |  MTU=16384  |  MTU=65520
    ---------------|------------|------------|-------------|------------
    slirp4netns    | 1.07 Gbps  | 2.78 Gbps  |  4.55 Gbps  |  9.21 Gbps
    Ответ написан
    4 комментария
  • Свой почтовый сервер взамен яндекс почты для домена?

    Sanes
    @Sanes
    Свой почтовый сервер содержать дорого. Чтобы работало хотя бы на уровне 'Хорошо".
    Ответ написан
  • Не хожу на работу, но меня не увольняют и не платят зарплату, как быть?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    У Вас отличный кейс! Отличный в плане того, что есть возможность получить всю заработную плату с дня заключения трудового договора, до его расторжения. Перечитайте трудовой договор, проконсултируйтесь с юристом. И если Вас что-то не устраивает - всегда можно уволиться )
    Ответ написан
    2 комментария
  • Как удалить все строки до n через sed?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А почему именно через sed?
    tail -n +10 << my_file
    Вернет все строки файла, начиная с десятой.
    Только нельзя писать в тот же файл, откуда читаете, иначе получите путой файл.
    Вот можно так:
    tail -n +10 my_file > temp_file; mv temp_file my_file
    Ответ написан
    6 комментариев
  • Как работать с двумя и более базами данных одновременно?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Или можно как-то в PDO подключаться не сразу к бд

    PDO подключается не к базе данных, а к серверу. Просто в процессе подключения некоторая база сервера назначается текущей, и в случаях, когда в имени таблицы отсутствует алиас базы данных, считается, что данная таблица лежит в текущей БД. Кстати, в процессе работы текущая БД может быть и изменена - запросом USE new_default_database_name

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

    А если ещё подключить внешние таблицы (используя FEDERATED ENGINE) - то можно работать и с данными из баз на другом инстансе (сервере) MySQL.
    Ответ написан
    Комментировать
  • Зачем нужна рекурсия в реальных случаях?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Рекурсия нужна при обработке иерархических данных. Например - обойти файлы и каталоги
    в файловой системе и выполнить какое-то действие. Или действие с условием. Например если
    в текущем фолдере есть фолдер .git - то выполнить какой-то git script.

    Рекурсия может понадобиться при работе с документами XML/JSon (шаблон composer). И хотя
    в некоторых API рекурсия может быть частично скрыта за языками XPath/JSonPath тем не меннее
    ее рекурсивная природа остается налицо. Кроме того если вам достался узкий API типа DomDocument
    без поисковых диалектов - то обойти его можно на любом ЯП с рекурсивной функцией.

    Рекурсия нужна при парсинге сайтов. Это вобщем просто более расширенная трактовка работы с файловой
    системой. Если Url-s это как-бы файлы в web пространстве и они имеют ссылки друг на друга - то вы
    можете рекурсией это все обходить.

    Рекурсия почти всегда нужна при работе с графами. Берите любой алгорим на теорию графов и я готов
    спорить что 99% он будет содержать рекурсию.

    Все настольные игры (шахматы-шашки) в основе своего алгоритма альфа-бета поиска с отсечениями и
    BWF базируются на рекурсии.
    Ответ написан
  • Стоит ли делать проект специально для гитхаба?

    Довольно часто предлагают тестовое задание, на которое у меня нет времени.

    Ну в принципе если вам быстрее ждать чуда, где вам не зададут тестовое, чем выполнить его за вечер и пойти на собес - ваше право :)

    Разумно ли написать проект с нуля, скажем, интернет магазин, залить все это на гитхаб и давать ссылку работодателям каждый раз когда просят пройти тестовое задание?

    Такое возможно только если о вашем проекте работодатель узнает раньше, чем о вас (=> "проект специально для гитхаба" должен попасть в продакшен у потенциального работодателя) , и существование этого проекта будет само по себе говорить о вас, как о хорошем разработчике. Ибо никто не будет лазить в вашем коде.

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

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

    PS: ну и никто не запрещает просить деньги за выполнение тестового задания, как за обычную работу - это распространённая практика
    Ответ написан
    Комментировать
  • Как закрыть порт на веб-сервере у определенных IP?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Если я правильно понял, то нужно настроить, чтобы SMTP сервер слушал (listen) только на нужном вам интерфейсе сервера, а не на всех. Что и где прописать в конфигурационном файле - зависит от установленного ПО.
    Ответ написан
    Комментировать
  • Что использовать для сравнения двух CSV файлов?

    Еще одно весьма оригинальное решение: https://github.com/dolthub/dolt
    Ответ написан
    Комментировать
  • Как найти хорошую утилиту для конвертации HTML -> Markdown?

    Валидный HTML считается валидным markdown.
    Зачем ещё конвертировать? И зачем делать из этого markdown, если потом всё равно его в HTML переводить?

    А вообще в md нет встроенных средств для выделения цветом, так что врядли у тебя получится
    Ответ написан
    6 комментариев
  • Что использовать для сравнения двух CSV файлов?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    допустим у нас есть файлы file1.csv и file2.csv
    $ cat file1.csv
    kpi1,kpi2,kpi3,kpi4,kpi5
    1.23,5.67,2.21,3.45,4.44
    
    $ cat file2.csv
    kpi1,kpi2,kpi3,kpi4,kpi5
    0.23,5.67,2.22,3.45,2.44

    где согласно условию: "Заголовки одинаковые, возможны вариации в значениях."

    cat file1.csv | head -1 | tr ',' '\n' > file3_1.csv
    cat file1.csv | tail -1 | tr ',' '\n' | paste file3_1.csv - > file3_2.csv
    cat file2.csv | tail -1 | tr ',' '\n' | paste file3_2.csv - > file3_3.csv

    в итоге получим
    $ cat file3_3.csv
    kpi1	1.23	0.23
    kpi2	5.67	5.67
    kpi3	2.21	2.22
    kpi4	3.45	3.45
    kpi5	4.24	2.44

    для удобства можно ввести 4-й столбец где укажем разницу между вторым и третим
    cat file3_3.csv | awk '{print $0"\t"$2-$3}' > file3_4.csv

    $ cat file3_4.csv
    kpi1	1.23	0.23	1
    kpi2	5.67	5.67	0
    kpi3	2.21	2.22	-0.01
    kpi4	3.45	3.45	0
    kpi5	4.24	2.44	1.8

    а заодно добавим заголовки
    echo -e 'name\t$2\t$3\t$2-$3' | cat - file3_4.csv > file3_5.csv

    $ cat file3_5.csv
    name	$2	$3	$2-$3
    kpi1	1.23	0.23	1
    kpi2	5.67	5.67	0
    kpi3	2.21	2.22	-0.01
    kpi4	3.45	3.45	0
    kpi5	4.44	2.44	2

    пример того как в консоли выделить красным цветом строки где разница между вторым и третим столбцом больше нуля:
    cat file3_5.csv | awk '$4>0{print "\033[41m"$0"\033[0m"}$4<=0{print}'


    для красивого оформления в консоли можно использовать утилиту csview
    $ csview -t file3_5.csv
    ┌──────┬──────┬──────┬───────┐
    │ name │ $2   │ $3   │ $2-$3 │
    ├──────┼──────┼──────┼───────┤
    │ kpi1 │ 1.23 │ 0.23 │ 1     │
    │ kpi2 │ 5.67 │ 5.67 │ 0     │
    │ kpi3 │ 2.21 │ 2.22 │ -0.01 │
    │ kpi4 │ 3.45 │ 3.45 │ 0     │
    │ kpi5 │ 4.44 │ 2.44 │ 2     │
    └──────┴──────┴──────┴───────┘

    пример покраски значения в таблице:
    csview -t file3_5.csv | awk '$8>0{print "\033[41m"$0"\033[0m"}$8<=0{print}'

    636a486564c22703960926.png

    для перекидывания в markdown используем ключ -s, --style
    $ csview -t -s Markdown file3_5.csv
    | name | $2   | $3   | $2-$3 |
    |------|------|------|-------|
    | kpi1 | 1.23 | 0.23 | 1     |
    | kpi2 | 5.67 | 5.67 | 0     |
    | kpi3 | 2.21 | 2.22 | -0.01 |
    | kpi4 | 3.45 | 3.45 | 0     |
    | kpi5 | 4.44 | 2.44 | 2     |
    Ответ написан
    1 комментарий
  • Как работали городские локальные сети?

    @alexalexes
    Городские локальные сети существовали лишь благодаря особенности первых тарифных сеток провайдера.
    Как правило, тарифы были сильно лимитированы по скорости, либо по объему трафика, но это касалось только тех случаев, когда трафик абонента шел из IP адреса, не принадлежащего провайдеру. Для обмена с внутренними IP адресами провайдер, как правило, не учитывал лимиты тарифа, и позволял практически свободно пользоваться этим преимуществом.
    Второй особенностью было то, что провайдер не только мог предоставлять услуги подключения к Интернету, но и предоставлять услуги хостинга, предоставления доменного имени третьего уровня, других внутренних сервисов, например, облачный диск.
    Два этих фактора давало возможность создать сайт в пределах локальной сети провайдера и разместить на нем каталог торрентов, а отсутствие тарифных ограничений внутри сети позволяло выгодно гонять peer-to-peer трафик. Таким образом это позволило жить и процветать торрентам в таких сетях.
    Еще одной особенностью такого сайта торрента - был свой белый список диапазонов IP адресов в аккурат соответствующий провайдеру. Его полагалось указывать в торрент-клиенте, чтобы не хватануть тарифный трафик, если кто-то чужой зарегистрируется на сайте, и начнет что-то скачивать и отдавать.
    Еще у учетной записи каталога торрента был рейтинг - соотношение отданного к скаченному, чтобы стимулировать пользователей оставаться на раздаче и создавать свои раздачи.
    Сейчас такие ресурсы создавать не имеет смысла - потому, что не каждый провайдер имеет услуги хостинга, ужесточилось законодательство в отношении выкладываемого в сеть материала, тарифные планы дешевы, чтобы купить себе скорость близкую к технологической скорости канала, и нет различий какой трафик поступает.
    Ответ написан
    6 комментариев
  • Как программировать и не работать?

    ZERGeich
    @ZERGeich
    Возможно. В мире вообще достаточно мало невозможного.
    Какие-то варианты точно есть. Чтобы не было похоже на издевательский ответ - как минимум есть фриланс.
    Ответ написан
    Комментировать
  • Как автоматизировать сбор замеров (DevTools) статистики открытия веб-страниц сайта в БД?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    открой для себя APM - Newrelic и все такое подобное,
    + автотесты фронтэнда - на ошибки,
    + фичи от Cloudflare да и того же гугла по средней загрузке страниц

    а если в СЕО играетесь - то Селениум
    Ответ написан
    2 комментария