Задать вопрос
  • Что использовать для сравнения двух 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 комментария
  • Быстрый старт в IT с хорошей базой?

    DevMan
    @DevMan
    все описанные скилы на фрилансе вообще не роялят: там в первую очередь важен единственный скилл - продать себя.
    затем следует понимание процессов и задач: клиента вообще не интересует path_finding и прочая заумная хрень, его интересует реализация свои хотелок ещё вчера, даже если она из говнопалок, но работает.
    серьезных/крупных клиентов на фрилансе нет. максимум - развитие стартапа или какого-то локального среднячка.

    ну и отдельно: "старт в it" и "старт в фрилансе" - два разных человека.
    Ответ написан
    1 комментарий
  • Как подменить файл при создании образа?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Почитать мануал к образу
    Ответ написан
    Комментировать
  • Можно ли автоматизировать через bash удаление кукис определенного сайта в chromium?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Ну по кукам вот гуглится https://superuser.com/a/920604
    Лежат в sqlite3
    • on Linux: ~/.config/google-chrome/Default/Cookies
    • on Windows: %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cookies
    • on Mac: ~/Library/Application Support/Google/Chrome/Default/Cookies

    Правда, сам файлик БД пришлось поискать, он у меня оказался в ещё одной папке Network
    Запросом
    DELETE FROM cookies where host_key LIKE '%habr.com'
    у меня получилось разлогиниться с Хабра. Только предварительно надо было закрыть браузер.
    Ответ написан
    3 комментария
  • Не подскажете стратегию ускорения сайта Wordpress сервисами?

    dimasmagadan
    @dimasmagadan
    Вы не с того начали. Прежде чем что-то чинить, нужно понять, что не работает Проведите аудит, найдите узкие места. Дальше ищите варианты, как их оптимизировать.
    Может у вас сайт ок, просто аудитория вся на 3G, а вы им видосики в 4к?

    Но, если хотите какой-то общий алгоритм для сферического сайта, вот вам два.

    Номер раз:
    1 подключаем cloudflare на бесплатном тарифе
    2 подключаем WP Rocket, играемся с настройками

    Номер два:
    1 подключаем cloudflare на бесплатном тарифе
    2 подключаем Jetpack, настраиваем использование CDN - это оптимизирует картинки и дает lazyload
    3 подключаем Jetpack Boost, генерим им критикал
    4 откладываем загрузку всех скриптов
    5 прогоняйте сайт через любой тестер скорости, хоть тот же пейдж спид, и выполняйте рекомендации

    Ну и, не стоит использовать элементор и прочие билдеры. Это дешево и быстро только на первом этапе. Позже поддержка и оптимизация с лихвой съедают сэкономленное
    Ответ написан
    4 комментария
  • Какие есть решения для брудфорса учетных записей windows в локальной сети?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Задача решается наоборот:
    1. Политикой запрещаем "ненадежные" пароли.
    2. Всем юзерам ставим галку "Принудительно сменить пароль". И заодно вторую галку "Менять пароль раз в 30 (например) дней."

    Объяснение: нет большого смысла в том, чтобы брутфорсить пароли и составлять списки пользователей, потому что ваша реальная цель состоит не в том, чтобы узнать, у кого стоит какой пароль. Ваша цель - избавиться от плохих паролей.
    Ответ написан
    Комментировать
  • Как встроить кнопку "Копировать" в "чужой сайт"?

    XOR2048
    @XOR2048
    Web & Browser extension developer
    Если вы имеете в виду то, чтобы добавить кнопку на сайт, но чтобы она была видна только вам (то есть не делать никаких code-injection, которые навредят другим), то для такого даже не нужно писать никаких userscript'ов, можно воспользоваться расширением для браузера Automa, создав там сценарий абсолютно любых действий, которые будут производится по нажатию или при загрузке страницы, подробнее можно ознакомиться в репозитории или найти ролик на YouTube.
    Ответ написан
    1 комментарий
  • Как устроиться devops инженером?

    paran0id
    @paran0id
    Умный, но ленивый
    Вакансий junior devops мало, потому что devops не вырастают из джунов, обычно ими становятся уже опытные админы или разработчики. Смотрите не джуновские вакансии, а просто devops engineer. Оцените требования, наверстайте недостающий опыт, сходите на собеседование. Я был просто линуксовым админом и однажды устроился на админскую вакансию в софтверную компанию, где в некотором объеме devops-методология применялась.
    Ответ написан
    Комментировать
  • Что такое process management в DevOps и как ему обучиться?

    paran0id
    @paran0id
    Умный, но ленивый
    Речь идёт, как ни странно, об initd - системе инициализации и управления процессами в операционной системе linux. Да только вот устарел initd, и теперь ему на смену пришел systemd. Учите systemd.
    Ответ написан
    1 комментарий
  • Куда совершать релокейт из unix админа в 2022 году?

    paran0id
    @paran0id
    Умный, но ленивый
    ИМХО проще всего будет двигаться в сторону DevOps, тем более, что подготовиться можно прямо на нынешней работе. Освойте ansible, docker, kubernetes (хотя бы поверхностно), какой-нибудь модный мониторинг (zabbix или prometheus+grafana, ELK не помешает), внедрите у себя хотя бы в некритических местах. На это можно отвести полгода-год. С полученным опытом уже можно будет идти в большое ИТ.
    Ответ написан
    2 комментария
  • Как сделать docker pull на определенный диск?

    2ord
    @2ord
    Можно создать директорию достаточно большого размера на свободном разделе, перенести туда все содержимое /var/lib/docker, установить нужные права на директорию, затем создать символьную ссылку в /var/lib/docker на директорию со всеми данными docker.

    Тогда sudo ls -l /var/lib/dockerпокажет
    типа /var/lib/docker -> /path/to/var-docker
    Ответ написан
    1 комментарий
  • Как сделать обработчик сообщений в Telethon?

    borisdenis
    @borisdenis
    Ленив и вреден...
    Так как непонятно какой ответ вы хотите получить (ну не готовый же код) то отвечу так:
    Опубликовать этот же текст на любой фриланс бирже + указать сроки (оно ведь срочно) и всё будет сделано.
    Ответ написан
    Комментировать
  • Насколько большую роль в IT-карьере играют связи?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Очень большую роль играют нейронные связи в мозгу. Чем их больше, тем лучше соображается, а в кодинге без этого никак. Остальные связи особого значения не имеют.
    Ответ написан
    4 комментария
  • Как поступить с заказчиком?

    SeaInside
    @SeaInside
    15 лет пилю все эти штуки
    Вы ведь сами понимаете, что это ваш косяк, а не заказчика? А чего ему за него платить?

    Мне прям вспомнилась ситуация, когда я пришёл к стоматологу вылечить кариес (пусть будет 2 000 рублей), мне рассверлили весь зуб и заявляют "батюшки, да тут же пульпит!" (12 000 рублей).
    Помогите Маше найти фразу для стоматолога, которая позволила бы сохранить хорошие отношения.

    И вот вы сейчас, по прошествии 2 месяцев, оставите заказчика один на один с незавершённым проектом, в котором никто не разберётся (то есть по сути ни с чем) - то вы поступаете как чудак. Я же вижу по тексту, что понимаете.
    А сюда вы за индульгенцией пришли? :)

    Хотите "сохранить отношения" - доделывайте как есть, в будущем будете мудрее.

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

    Два совета на будущее:
    1) Перезакладывать стоимость и время разработки;
    2) Если понимаешь, что всё идёт не по плану/пропал интерес / слишком сложно / некомфортно / whatever - сказать об этом сразу и отказаться от проекта, так всегда получается честнее

    Опыт всегда стоит дорого, а 53 000 рублей - ну не самая большая цена его получения :)
    Ответ написан
    8 комментариев