Search
Write a publication
Pull to refresh
0
0
Константин Садовский @AsmodeusL

User

Send message

Лучшие практики bash-скриптов: краткое руководство по надежным и производительным скриптам bash

Reading time6 min
Views40K

Shell wallpaper by manapi

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

Команда Mail.ru Cloud Solutions перевела статью с рекомендациям, благодаря которым вы сможете лучше писать, отлаживать и поддерживать свои сценарии. Хотите верьте, хотите нет, но ничто не может сравниться с удовлетворением от написания чистого, готового к использованию bash-кода, который работает каждый раз.

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

Как в 2020 году разработчику найти удаленную работу: статистика, инструменты + советы инженера

Reading time6 min
Views31K


По статистике Stack Overflow, активно ищут работу немногим более 17% разработчиков. При этом, помимо зарплаты, в пятерку важных факторов при смене места входит и запрос на улучшения work/life balance. Традиционно многие люди видят в удаленной работе возможность улучшить этот баланс, больше времени проводить с родными и контролировать график.



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

Я изучил текущую статистику по рынку труда для разработчиков, материалы, которые публикуют рекрутеры и инженеры, которые сами проводят собеседования, а также поговорил с Александром Жилиным, Go/Python разработчиком из Питера, который недавно сумел найти работу с помощью специализированного чат-бота. В итоге я составил материал с актуальными советами по поиску удаленной работы в 2020 году.
Читать дальше →

Сборник полезных ссылок для системного администратора

Reading time2 min
Views18K


Сборник полезных ссылок для системного администратора, руководства, инструкции, учебные курсы, секреты-советы и многое другое – ниже в нашем еженедельном посте.
Читать дальше: Сборник полезных ссылок для системного администратора

5 стратегий успешного поиска работы в сфере IT

Reading time4 min
Views15K


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

1. Инвестируйте время в резюме


Мало найдется людей, которые регулярно обновляют и совершенствуют свое резюме — а вот и ваш шанс быть впереди. Рекрутер в среднем тратит 7 секунд на просмотр (initial screening) вашего резюме. Следуйте этим советам, если хотите составить резюме, на которое «клюнут». Стоит отметить, что на сегодняшний день существует огромное количество сервисов по созданию и улучшению резюме, которые могут в значительной мере помочь вам в достижении этой цели.
Читать дальше →

VPS на Linux с графическим интерфейсом: запускаем сервер X2Go на Ubuntu 18.04

Reading time4 min
Views36K

Настройку VNC и RDP на виртуальном сервере мы уже освоили, осталось изучить еще один вариант подключения к виртуальному рабочему столу Linux. Возможности созданного компанией NoMachine протокола NX достаточно интересны, к тому же он хорошо работает через медленные каналы. Фирменные серверные решения стоят дорого (клиентские бесплатны), но существует и свободная реализация, о которой пойдет речь в этой статье — система X2Go. Она отпочковалась от проекта с открытым исходным кодом FreeNX, когда NoMachine прекратила его поддерживать и отпустила в свободное плавание.
Читать дальше →

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04

Reading time5 min
Views58K

Некоторые пользователи арендуют относительно недорогие VPS с Windows для запуска сервиса удаленных рабочих столов. То же самое можно сделать и на Linux без размещения в датацентре собственного железа или аренды выделенного сервера. Кому-то нужна привычная графическая среда для тестов и разработки или удаленный десктоп с широким каналом для работы с мобильных устройств. Есть масса вариантов применения основанной на протоколе Remote FrameBuffer (RFB) системы Virtual Network Computing (VNC). В небольшой статье мы расскажем, как настроить ее на виртуальной машине с любым гипервизором…
Читать дальше →

Правильно [c]читаем параллельные планы PostgreSQL

Reading time4 min
Views5.9K
Исторически, модель работы сервера PostgreSQL выглядит как множество независимых процессов с частично разделяемой памятью. Каждый из них обслуживает только одно клиентское подключение и один запрос в любой момент времени — и никакой многопоточности.

Поэтому внутри каждого отдельного процесса нет никаких традиционных «странных» проблем с параллельным выполнением кода, блокировками, race condition,… А разработка самой СУБД приятна и проста.

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

В наш век закончившейся «гонки мегагерцев» и победивших многоядерных и многопроцессорных систем такое поведение является непозволительной роскошью и расточительностью. Поэтому, начиная с версии PostgreSQL 9.6, при отработке запроса часть операций может выполняться несколькими процессами одновременно.


Со схемами работы некоторых параллельных узлов можно ознакомиться в статье «Parallelism in PostgreSQL» by Ibrar Ahmed, откуда взято и это изображение.
Правда, читать планы в этом случае становится… нетривиально.
Читать дальше →

Анализ результатов нагрузочного тестирования

Reading time11 min
Views58K
С каждым днем в мире становится все больше и больше инструментов для проведения нагрузочного тестирования. Собственно, и сам интерес к этой теме начинает возрастать.
Основная задача инструмента нагрузочного тестирования — подать заданную нагрузку на систему. Но кроме этого есть еще одна, не менее важная задача — предоставить отчет о результатах подачи этой нагрузки. Иначе мы проведем тестирование, но ничего не сможем сказать о его результате и не сможем достаточно точно определить, с какого момента началась деградация системы.

В настоящий момент наиболее популярными инструментами тестирования являются Gatling, MF LoadRunner, Apache JMeter. Все они обладают возможностями как генерации готовых отчетов по проведенному тестированию, так и отдельных графиков или сырых данных, на основе которых строится уже сам отчет.


Читать дальше →

Использование таймеров systemd вместо заданий cron

Reading time20 min
Views92K
Сейчас я занимаюсь заменой моих cron-заданий на таймеры systemd. Я пользовался таймерами несколько лет, но обычно в тонкости их применения особо не углублялся, разбираясь лишь с тем, что нужно было для выполнения интересующей меня задачи. Недавно я работал над серией материалов про systemd и узнал о том, что systemd-таймеры обладают некоторыми очень интересными возможностями.



Эти таймеры, как и задания cron, могут, в заданное время, вызывать выполнение различных действий в системе. Например — запуск скриптов командной оболочки или программ. Таймеры могут срабатывать, например, раз в день, причём — только по понедельникам. Ещё один пример — срабатывание таймера каждые 15 минут в рабочее время (с 8 утра до 6 вечера). Но таймеры systemd могут кое-что такое, что недоступно заданиям cron. Например, таймер может вызвать скрипт или программу через заданное время после некоего события. Таким событием может быть загрузка системы или запуск systemd, завершение предыдущей задачи или даже завершение работы сервиса, вызванного ранее по таймеру.
Читать дальше →

Советы руководителю от руководителя

Reading time11 min
Views120K
Привет, Хабр! Я управляю командами разработки уже 10 лет.

Недавно меня попросили поделиться на внутренней конференции «секретами управления» с другими руководителями. Поводом стала низкая текучка в моём подразделении и здоровый дух внутри команды — так было на всех моих работах. Я отказался, сославшись на то, что не делаю для этого ничего особенного. Сработала внутренняя установка «не будь выскочкой».

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

Поэтому выключаю тумблер «не будь выскочкой» и делюсь «секретами».



Тут не будет стандартных «делегируй», «налаживай процесс», «стой в правильной позе на стендапе» — об этом написано уже достаточно. Будет о другом.
Читать дальше →

Группировки и оконные функции в Oracle

Reading time6 min
Views132K
Привет, Хабр! В компании, где я работаю, часто проходят (за мат извините) митапы. На одном из них выступал мой коллега с докладом об оконных функциях и группировках Oracle. Эта тема показалась мне стоящей того, чтобы сделать о ней пост.



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

Всю необходимую информацию я постараюсь кратко и доступно объяснить в двух частях. Пост скорее будет полезен начинающим разработчикам. Кому интересно — добро пожаловать под кат.
Читать дальше →

Гражданство за инвестиции: как купить паспорт? (часть 3 из 3)

Reading time9 min
Views5.5K
Быстро и легально создать коллекцию паспортов не так сложно, как может показаться. При наличии финансовых ресурсов можно оформить экономическое гражданство сразу нескольких стран. Тем не менее, одних денег недостаточно. Нужно учесть массу тонкостей. Поможет в этом данное руководство.



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

Что такое экономическое гражданство?

  • Как определить, что страна предлагает гражданство за инвестиции?
  • Что дает второй паспорт инвестору?
  • Гражданство за инвестиции не следует путать с этим…
  • Где можно получить гражданство за деньги?
  • Где можно получить гражданство за деньги?
  • Как получить право на экономическое гражданство?

Заключительная часть руководства даст ответы на следующие вопросы:

  • Как работает гражданство за инвестиции с точки зрения бюрократа?
  • Кому следует получить гражданство за деньги?
  • Как выбрать лучшее экономическое гражданство?

Как работает гражданство за инвестиции с точки зрения бюрократа (процедуры и процессы)?


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

Управляем сетевыми подключениями в Linux с помощью консольной утилиты nmcli

Reading time7 min
Views137K
Используйте все возможности инструмента управления сетевыми подключениями NetworkManager в командной строке Linux c помощью утилиты nmcli.



Утилита nmcli напрямую обращается к API для доступа к функциям NetworkManager.

Она появилась в 2010 году и для многих стала альтернативным способом настройки сетевых интерфейсов и соединений. Хотя кто-то до сих пор использует ifconfig. Так как nmcli — это инструмент интерфейса командной строки (CLI), предназначенный для использования в окнах терминалов и скриптах, он идеально подходит для системных администраторов, работающих без GUI.
Читать дальше →

Как одна недоработка в IT-системе привела к раскрытию банковской тайны в Сбербанке

Reading time11 min
Views59K
Разбираем факты раскрытия банковской тайны в Сбербанке в связи с допущенными ошибками проектирования системы информационной безопасности.

Сбербанк на сегодняшний день является одним из самых упоминаемых брендов в связи с новомодной «трансформацией»: цифровой, банковской, всеобщей. Я помню, как лет 10 назад эта компания начала переманивать в свой штат огромное количество высококвалифицированных IT-специалистов. С тех пор многое изменилось, айтишники стали разборчивее в выборе работодателя. Новые сервисы выходят из лабораторий Сбербанка один за одним. И в погоне за «удобством» пользователя очень часто скрываются не просто подводные камни, а айсберги, которые в определенный момент могут юридически потопить любую компанию. Особенно если она хранит ваши деньги.
Читать дальше →

Ты добавил всего две строчки. Почему на это ушло два дня?

Reading time3 min
Views64K
На первый взгляд вопрос кажется разумным, но он делает некоторые ужасные предположения:

  • строки кода = усилие
  • строки кода = значение
  • все строки кода равны

Ничто из этого не является истинным.

Почему исправление, которое кажется таким простым, заняло два дня?
Читать дальше →

От Oracle до Tarantool и Hazelcast – современный BSS/OSS для телекома

Reading time6 min
Views2.9K
Эту статью можно рассматривать как один из частных случаев нашего способа принимать решения о разработке и развития продуктов. Если вам интересна тема выбора, какие фичи и в каком приоритете нужно реализовать в своем продукте, то рекомендуем к прочтению «Как мы выбираем идеи для развития своих продуктов: вендор должен уметь слышать…».
Читать дальше →

Массивы bash

Reading time3 min
Views110K
Предлагаю вашему вниманию перевод статьи Митча Фрейзера (Mitch Frazier) "Bash Arrays" с сайта linuxjournal.com.

Если вы используете «стандартную» оболочку *NIX-системы, возможно, вы не знакомы с такой полезной особенностью bash как массивы. Хотя массивы в bash не так круты, как в P-языках (Perl, Python и PHP) и других языках программирования, они часто бывают полезны.
Bash-массивы имеют только численные индексы, но они не обязательны к использованию, то есть вы не должны определять значения всех индексов в явном виде. Массив целиком может быть определен путем заключения записей в круглые скобки:

  arr=(Hello World)

Отдельные записи могут быть определены с помощью знакомого всем синтаксиса (от Бейсика (да простит меня Дейкстра — прим. переводчика) до Фортрана):

  arr[0]=Hello
  arr[1]=World

Читать дальше →

Эх, айти, куда ж ты котишься? 

Reading time20 min
Views72K
Ну что, Хабр, прошло полгода какого-то очень неприятного 2020, до конца десятилетия ещё чуть-чуть — и уже сегодня я могу сказать: это десятилетие прежде всего стало золотым веком IT-сферы. Накопленный опыт, новые эксперименты и крутое железо сделали своё дело. Казалось, что айти стало новым рок-н-роллом, но как-то быстро оно приблизилось к тому, чтобы стать новой попсой. Все хотят в айти, неважно кем: менеджерами всего и по всему, переводчиками, деврелами, пиарщиками, копирайтерами, ну и собственно программистами, тестировщиками, инженерами. А отрасль тем временем сильно видоизменяется. Предлагаю вам поговорить о нас, о нашем айти и о том, куда всё катится. 

Читать дальше →

Битва key-value хранилищ

Reading time2 min
Views57K

Какие key-value хранилища вы используете в бою?


Позаимствовал список с сайта db-engines.com (кстати, очень любопытный сайт, рекомендую), включил все базы с ненулевой «популярностью» оттуда. Не отмечайте базы которые просто пробовали/интересно, а только те, что крутятся и приносят деньги вашей компании прямо сейчас.

Обратите внимание: MongoDB это НЕ key-value хранилище, однако за нее можно проголосовать, см. пункт «Хранилище документов в качестве key-value».

Пишите, если забыл какую-то популярную базу (т. е. забыли авторы сайта db-engines.com), добавлю в опрос.

Какие свойства key-value хранилища вам важны?

Читать дальше →

Что, если выкинуть все лишнее из базы в распределенный кэш – наш опыт использования Hazelcast

Reading time12 min
Views58K


Так как базы данных Яндекс.Денег вынуждены хранить массу второстепенной и временной информации, однажды такое решение перестало быть оптимальным. Поэтому в инфраструктуре появился распределенный Data Grid с функциями in-memory базы данных на базе Hazelcast.


В обмен на стабильно высокую производительность и отказоустойчивость мы получили любопытный опыт внедрения, который не во всем повторяет документацию. Под катом вы найдете рассказ о решении проблем Hazelcast при работе под высокой нагрузкой, борьбе со Split Brain, а также впечатления от работы с распределенным хранилищем данных в большой инфраструктуре.

Читать дальше →

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity