![](https://webcf.waybackmachine.org/web/20231103091412im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/0ac/f7a/092/0acf7a092fbf598eb0586a5fbf9a0ed9.png)
Павел Агалецкий, ведущий инженер в Авито, рассказал, как запустить один и тот же образ на разных платформах, почему мультиплатформенные образы удобнее, и как собирать их в режиме кросс-компиляции.
Павел Агалецкий, ведущий инженер в Авито, рассказал, как запустить один и тот же образ на разных платформах, почему мультиплатформенные образы удобнее, и как собирать их в режиме кросс-компиляции.
Запуск своего Linux-сервера многие до сих пор видят как работу для владельцев свитера, бороды и толстого тома с инструкциями по Unix/Linux и набором команд в bash/sh-консоли. Возможно вы также считаете работу с командной строкой в терминале чем-то архаичным и неудобным, и вам сложно подключаться, поскольку вы нередко забываете команды и их параметры. Если да — то все нижеперечисленное вам будет интересно. В любом случае вы можете поделиться своим опытом и замечаниями в комментариях.
Мы расскажем, как с нуля развернуть полноценный Linux-сервер на базе Ubuntu 20.04, не вписывая ни единой строчки кода в терминале. Весь процесс будет выполнен исключительно через веб-интерфейс панели управления ispmanager.
Данная инструкция подойдет для виртуальных и обычных выделенных серверов с предустановленной панелью управления ispmanager.
Алгоритм Шора
В заключительной части попробуем разобраться в этом замечательном алгоритме, который в скором будущем погубит нашу цивилизацию, лишь только появятся мощности с достаточным количеством кубит для практической реализации алгоритма. Я попытаюсь упростить изложение и опустить некоторые выкладки, но сама суть алгоритма должна сохраниться через эти упрощения. Разобьем изложение на несколько этапов. Ну, начнем.
Вносить изменения в код приложения и тут же автоматически получать задеплоенные изменения, чтобы быстро тестировать его, — мечта разработчика. В этой статье мы посмотрим, как реализовать такой подход для небольшого приложения с фронтендом и бэкендом: организуем два варианта локального стенда на базе minikube или Docker с автоматическим развертыванием всех изменений или только закоммиченых в Git.
Бэкенд приложения напишем на Go, а фронтенд — на Vue.js. Все это позволит быстро запускать проект для тестирования прямо во время разработки, что, несомненно, повысит удобство работы с приложением.
О чем пойдет речь
В данной статье я хочу рассказать вам как я стал iOS разработчиком в 32 года не имея профильного образования, не оканчивая курсы, без знания английского языка и без друзей/знакомых в сфере IT.
Понеслась.
Первые мысли об IT
Впервые я задумался об IT когда посмотрел видео Дудя «Как устроена IT‑столица мира». Данное видео меня сильно вдохновило, но не мотивировало к изучению. В то «ковидное» время я сменил работу и стал работать в крупной компании подключая корпоративным клиентам интернет. Моя работа никак не была связана с программированием. После прохождения испытательного срока в 3 месяца и ровно за 3 недели до моего тридцатилетия я с ужасом осознал, что не хочу всю жизнь бродить по пыльным и загаженным подвалам/чердакам, чтобы протянуть кусок кабеля. Расти в компании мне не хотелось, работа не приносила удовольствие, а наоборот только угнетала. Каждый мой день был крайне непростым, да и денег это приносила ежемесячно от 35 до 80к. А ведь мне почти 30 лет.. жена, ребенок.. в отпуске последний раз был 5 лет назад. Осознав всю печальность ситуации я начал действовать.
Выбор языка программирования
Начал с того, что пересмотрел все видео на Youtube начального уровня (на русском языке) с названиями типа «Как стать разработчиком/программистом», «Как выбрать язык программирования», «Сколько зарабатывают программисты» и т. д. Приступив к выбору языка я знал лишь 2 вещи: мне нравятся игры и техника Apple. Встал выбор: Objective‑C или Swift. После долгих раздумий я выбрал Swift, как более перспективный.
Недавно в своих ежедневных чтениях я наткнулся на явление, о котором думал уже много лет: феномен утечки информации людей, использующих SSH. Этот тип утечки информации не является новым явлением. Я давно предупреждал об этой опасности своих друзей, использующих SSH, но мой голос услышали лишь несколько человек. Поэтому я решил дать пояснения по этому поводу, потому что я считаю, что необходимо понимать этот риск в ИТ-сообществе, особенно в нынешней ситуации. Я буду исходить из предположения, что у вас, дорогой читатель, есть опыт работы с SSH.
Изящное завершение работы (Graceful Shutdown) важно для любого длительного процесса, особенно для того, который обрабатывает состояние. Например, что если вы хотите завершить работу базы данных, поддерживающей ваше приложение, а процесс db не сбрасывает текущее состояние на диск, или что если вы хотите завершить работу веб-сервера с тысячами соединений, но не дожидаетесь окончания запросов. Изящное завершение работы не только положительно сказывается на пользовательском опыте, но и облегчает внутренние операции, что приводит к более счастливым инженерам и менее напряженным SRE.
В этой заметке вы найдете ряд анти-паттернов и узнаете, как сделать выход из процесса изящнее с помощью нескольких различных подходов. Также я приведу несколько примеров для распространенных библиотек и некоторые продвинутые паттерны. Давайте погрузимся в тему.
В статье расскажу о новой функции Stable Diffusion, которая позволяет генерировать изображения в любом стиле без прописывая промта. Речь пойдет про IP-адаптер — это новая модель ControlNet, которая преобразует референсное изображение в материал для генерации. В отличие от похожих функций в Midjourney и Stable Diffusion, этот алгоритм работает невероятно точно. Он снимает стиль с заданной картинки и смешивает его с другим изображением, промтом или картой глубины. С его помощью можно создавать стилизованные портреты, пейзажи и композиции, подбирая их внешний вид простым переключением картинки-референса.
Интересные, практичные и не очень проекты на базе Raspberry Pi появляются практически каждый день. Сегодня предлагаем вашему вниманию несколько классных разработок, которые могут быть полезны в быту или просто радовать глаз гика. Среди них — управление вертикальными фермами, робот TARS из «Интерстеллара», клавиатура и другие проекты. Если DIY вам по душе, то самое время отправиться под кат.
Специалисты технической поддержки компании каждый день берут в работу десятки заявок: компьютер не включается, программа не загружается, браузер не открывается (вдруг), принтер не печатает. В общем, все как обычно.
В такой рутине важно не только закрыть заявку и решить проблему сотрудника, но и уложиться в определенное время, то есть держать SLA на нужном уровне и не давать ему стремительно падать вниз.
Все это привычные условия, но скоро появится и новая проблема ― ускоренное и для многих компаний обязательное импортозамещение софта.
Просто представьте: сотрудники десятилетия работали в родных Windows и Microsoft Office, а тут надо перейти на непривычный российский софт, офисные пакеты и даже операционные системы. Процесс адаптации обещает быть нелегким: кнопки непонятные, программы лагают, весь шаблон рутинных операций ломается. В результате поддержку засыпят тикетами.
Эта статья для всех, кто работает с заявками сотрудников, утопает в рутине и отвечает за сорванные дедлайны. Разберем несколько уровней организации работы с заявками и рассмотрим решения, как закрывать тикеты быстрее, чтобы выполнять SLA.
Эта статья посвящена реально работающей информационной системе (ИС), основанной на иерархической модели данных. Скажу точнее - это не просто ИС - это инструмент разработки ИС любого уровня сложности, включая ERP, CRM, PPM и т.д., обладающий полным набором средств разработки (инструментом описания структуры данных, встроенным процедурным языком и языком запросов, инструментом разработки экранных форм, инструментом написания программного кода и т.д).
В статье я расскажу не только как это выглядит, но и как это все устроено. Статья будет большая, и поэтому мне придется разбить ее на несколько частей.
Через абилки в X-COM реализована большая часть взаимодействия оперативников с окружением во время миссий. Стрельба, перезарядка, навыки, активация предметов, важных для цели миссии, и даже открытие дверей сделано через абилки.
Важно при дизайне вашей игры учесть и реализовать только то, что вам нужно для интересного геймплея, и не гнаться за всей возможной сложностью комбинации механик. В этой статье я затрону разные аспекты дизайна данных для абилок и возможные пути реализации этих аспектов в коде.
Описанный опыт является субъективным, и путей дизайна и реализации одной и той же механики больше, чем один. Одна из целей этого дизайна — сделать насколько можно гибкую систему абилок, которая потребует минимум дополнительной разработки от программистов и даст гейм-дизайнерам возможность самостоятельно реализовать интересные игровые механики.
Рассказав в предшествующей статье о труде, предлагаю перейти к отдельной его части – к описанию интеллектуального труда. Ведь блог посвящен именно, интеллектуальному (умственному) труду и его производительности[1].
Поэтому, сейчас я отвечу вопрос: что подразумевается под интеллектуальным трудом?
В сегодняшнем постиндустриальном, информационном обществе основную ценность конечным продуктам добавляет не физический труд, а интеллектуальный[2].
Кто-то употребляет определение «умственный» или «нефизический». В целях настоящего блога я считаю это одним и тем же, тождественным. Поэтому, когда использую определение «интеллектуальный», то подразумеваю и «умственный», и «нефизический» и наоборот.
Учитывая, что интеллект – это способность создавать новое качество из стандартных элементов, используя знания и эрудицию, а труд – это выполнение задач[3], то интеллектуальным трудом будет выполнение задач, требующих использования интеллекта.
Таким образом, интеллектуальный труд — это выполнение различных аналитических, мыслительных, т. е. интеллектуальных задач, связанных с переработкой большого объема разнообразной информации, с использованием интеллекта и, как следствие этого, — с мобилизацией работы мозга: памяти и внимания. Кратко, интеллектуальный труд – это выполнение интеллектуальных задач.
По сути, к интеллектуальному труду относится всё, что не относится к физическому труду. При этом физический труд – это выполнение задач, связанных с напряжением мышечной (мускульной) силы человека. То есть, в физическом труде основной, но не единственный, рабочий орган – это мышцы, а в интеллектуальном – мозг.
В .NET приложениях часто приходится обращаться к внешним HTTP-сервисам. Для этого можно воспользоваться стандартным HttpClient, или какой-нибудь сторонней библиотекой. Мне приходилось сталкиваться с Refit и RestSharp. Но никогда мне не приходилось принимать решение о том, что именно применять. Всегда я уже приходил в проект, который использовал ту или иную библиотеку. И мне пришло в голову как-то сравнить эти библиотеки, чтобы в случае необходимости осмысленно принимать решение об их использовании. Этим я и займусь в данной статье.
Но как конкретно сравнивать эти библиотеки? Я нисколько не сомневаюсь в том, что все они способны совершать HTTP-запросы и получать ответы. В конце концов, вряд ли они стали бы настолько популярны, если бы не могли делать это. Меня больше интересуют дополнительные возможности, которые бывают весьма полезны в крупных корпоративных приложениях.
Давайте приступим.
Раз в месяц я и команда QA Studio вручную собираем статистику по вакансиям и резюме тестировщиков с нескольких ресурсов. Сегодня — статистика за октябрь. Мы не делаем выводы, а оставляем сухие цифры. Много или мало открытых вакансий и что с рынком — каждый может интерпретировать по-своему.
Всем привет! Этим летом мы запустили курс «Разработчик 1С». Этот язык отличается относительно невысоким порогом вхождения, но используется во многих даже больших компаниях — осенью 2023 года на hh.ru мы нашли больше 11 000 вакансий для разработчиков 1С.
В этом материале мы расскажем о пяти книгах, с которых можно начать знакомство с языком, — некоторые из них рассчитаны на тех, кто далёк от программирования, а другие могут стать справочным материалом и для опытных разработчиков.
Как часто вам приходилось стилизовать текст в jetpack Compose, хайлайтить ссылки, обрабатывать клики по ним? Скорее всего вы использовали только AnnotatedString, но что, если чуть-чуть добавить магии старого доброго Spannable?
Ваш аккаунт