Как стать автором
Обновить

Как стать автором

Кривая дорожка или приставными шагами в DevOps

Уровень сложностиПростой
Время на прочтение8 мин

Несмотря на то, что в нынешнее время так называемая профессия DevOps‑инженер стала типовой, а не чем‑то уникальным, всё равно ежедневно многие специалисты пытаются «перейти в DevOps», будь то инженеры технической поддержки, системные администраторы, разработчики, тестировщики и многие другие.

Данная статья рассчитана прежде всего на только «входящих в ИТ» или начинающих ИТ‑специалистов, которые стремятся к получению роли DevOps в будущем или просто хотят расширить багаж собственных знаний, но не знают с чего начать. Опытным специалистам указанные источники могут показаться недостаточно полными в силу того, что они собраны мной субъективно и без нацеленности на узконаправленное изучение одного из направлений, чего должно быть достаточно для начинающих специалистов, но при этом не должно негативно сказаться на желании изучения новых материалов.

Почему в названии статьи фигурирует «кривая дорожка» и «приставные шаги»?
Дорожка кривая, потому что придётся пробовать разные направления и не зацикливаться на чём‑то одном. Приставные шаги — так как Ваш путь в DevOps будет состоять из ряда направлений, в каждом из которых потребуется изучение теории и практики, следующей за ней. Не удастся обойтись чем‑то одним.

Читать далее
Всего голосов 16: ↑7 и ↓9+2
Комментарии8

Почему «Идеальный программист» Роберта Мартина далёк от реальности: критический взгляд

Уровень сложностиПростой
Время на прочтение4 мин

Недавно я прочитал книгу Роберта Мартина «Идеальный программист». Книга, несмотря на свою популярность, оставила у меня много вопросов, касающихся того, насколько её советы применимы в реальной жизни разработчиков. В этой статье я предлагаю обратить внимание на некоторые из них

Читать далее
Всего голосов 38: ↑34 и ↓4+40
Комментарии50

Путь к правильному IT-партнерству: личный опыт

Уровень сложностиПростой
Время на прочтение6 мин

Или «О чем молчат IT‑интеграторы». Расскажу о подводных камнях индустрии, основываясь на многолетнем опыте работы в ней, и поделюсь видением того, что ее разрушает, а какой подход может спасти и вывести на новый уровень развития.

Читать далее
Всего голосов 5: ↑3 и ↓2+5
Комментарии0

Как я год искал работу мечты в этом вашем IT

Уровень сложностиПростой
Время на прочтение8 мин

Привет, дамы и господа, которые кликнули на эту статью с горячим заголовком! Давайте знакомиться: меня зовут Артем Соловьев, и в данный момент я Middle iOS‑разработчик в крупной лизинговой компании, где мы с командой занимаемся разработкой и поддержкой внутренних CRM‑систем.

Все, кто так или иначе связаны с миром IT — уже работают на каких‑либо позициях или только «вкатываются» — все время задаются вопросами: «Как мне получить оффер мечты?», «Как найти свою первую работу?», «Что вообще происходит за кулисами собеседований и как это все устроено?». В этой пилотной статье я расскажу о своем личном опыте поиска работы на позицию iOS‑разработчика.

Читать далее
Всего голосов 21: ↑15 и ↓6+13
Комментарии39

HybrydCLR. Как обновлять код Unity игры без загрузки обновлений в стор

Уровень сложностиСредний
Время на прочтение9 мин

Как обновлять код игры, написанный на Unity без загрузки свежего билда в стор. Как делать это без колхоза и всякого рода адаптеров. Zero learning cost, zero usage cost.

Читать далее
Всего голосов 14: ↑13 и ↓1+15
Комментарии2

Предшественники ПЛК — К1-20, МС2102 — история создания первых отечественных АРМов

Время на прочтение5 мин

Уважаемые коллеги, позвольте поделиться экскурсом в прошлое отечественной автоматизации, а именно в историю создания одних из первых отечественных аппаратных и программных средств АСУ ТП. Меня зовут Михаил Непомнин, ранее я был начальником КБ автоматизации ЭПО «Сигнал» и, как говорится из первых уст, готов рассказать о разработке первых автоматизированных рабочих мест.

Читать далее
Всего голосов 20: ↑17 и ↓3+23
Комментарии42

Типы или интерфейсы в TypeScript: что и когда использовать?

Уровень сложностиПростой
Время на прочтение5 мин

Работая с TypeScript, рано или поздно сталкиваешься с вопросом: что выбрать — типы или интерфейсы? В статье я хотел бы поделиться особенностями работы с типами и интерфейсами, которые могут быть полезны в вашей практике.

Читать далее
Всего голосов 16: ↑16 и ↓0+22
Комментарии31

Инструмент django-command

Уровень сложностиСредний
Время на прочтение4 мин

Django-command - инструмент командной строки, который позволяет выполнять часто используемые команды при разработке проектов на фреймворке Django. Данный инструмент помогает повысить эффективность разработки и упростить рабочие процессы, связанные с веб-приложениями на Django.

Читать далее
Всего голосов 6: ↑6 и ↓0+11
Комментарии10

Гипермедийные системы на ASP.NET MVC 5. Часть первая — начало

Уровень сложностиСредний
Время на прочтение25 мин

Начало статьи по быстрой разработке гипермедиа‑ориентированного веб‑приложения с HTMX 2.0.

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

В статье будет использоваться библиотека Htmx.js вместе с устаревшей серверной платформой ASP.NET MVC 5.

Читать дальше
Всего голосов 8: ↑4 и ↓4+4
Комментарии20

Compute — волшебная пилюля?

Уровень сложностиСредний
Время на прочтение6 мин

При разработке flutter‑приложения может возникнуть задача, в рамках которой придется выполнять какую‑то «тяжелую» операцию над большим объемом данных. Если потратить на нее больше 16 миллисекунд (или 8, если говорим о 120 fps), то пользователи могут заметить небольшое подлагивание при скролле или анимациях. Во фреймворке подготовлена удобная функция compute, которая выполнит нужную операцию в отдельном изоляте в фоновом режиме.

Казалось бы, вот оно идеальное решение — как только начинаются проблемы, оборачиваем вызов в compute и продолжаем жить без проблем дальше. В большинстве случаев — да, но иногда этого может быть недостаточно.

Читать далее
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Основные проблемы автоматизации процессов лаборатории

Уровень сложностиПростой
Время на прочтение10 мин

Хотелось бы немного осветить тему про ЛИМС на Хабре. В мире существует огромное множество лабораторий, которые занимаются измерениями, испытаниями, анализом каких-то объектов окружающей среды, продукции, биологических образцов и т.д.

Поговорим про внедрение ЛИМС в лаборатории.

Читать далее
Всего голосов 6: ↑5 и ↓1+10
Комментарии0

One more ПК для Machine Learning по цене RTX4090

Уровень сложностиПростой
Время на прочтение7 мин

Сборка ПК для машинного обучения: выбор между производительностью и бюджетом

Как собрать мощный компьютер для машинного обучения и не разориться? В этой статье я рассказываю о своем опыте выбора комплектующих, включая сравнение RTX 3090 Ti и RTX 4090, баланс между производительностью и стоимостью.

Читать далее
Всего голосов 12: ↑8 и ↓4+9
Комментарии13

Превращение роутера Интеркросс ICxETH5670NE в Asus RT-N12XL

Уровень сложностиПростой
Время на прочтение5 мин

Привет, Хабр!

Достался мне бесплатно вот такой аппарат под названием Интеркросс ICxETH5670NE 2013-го года выпуска в родной коробке с проводами и инструкциями и даже в защитной плёнке.

Захотелось прошить на него какую-нибудь альтернативную прошивку.

Читать далее
Всего голосов 27: ↑27 и ↓0+39
Комментарии14

Объективная оценка кандидатов: ключ к эффективному рекрутингу и успешной команде

Уровень сложностиПростой
Время на прочтение8 мин

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

Читать далее
Всего голосов 8: ↑4 и ↓4+4
Комментарии4

Схематично, простыми словами о внутреннем устройстве PHP (Zend Engine, OPCache, JIT)

Уровень сложностиПростой
Время на прочтение5 мин

Данный пост нацелен на неопытных PHP-специалистов. От этой информации лучше программировать вы не станете. Ожидаемая польза:

Мне когнитивно и морально легче, когда уменьшается «магия» того, с чем работаешь. Может тебе тоже

Возможно чуть-чуть реже статьи на хабре будут тебя отпугивать

Объясню на 4 примерах — каждый лишь немного сложнее предыдущего.

Пример 1: запуск программы, написанном на компилируемом языке (Go): в полной статье

Пример 2: Запуск скрипта PHP без OPCache и JIT

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

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

Вот схематично представил всю последовательность работы PHP скрипта без включенных OPCache и JIT (каждый из них по отдельности рассмотрим в следующих двух примерах).

У нас привычный «исходный код» PHP (файл hello-world.php):

<?php echo "Hello world";

Опять идем по порядку, рассмотрим какие процессы происходят запустив команду:

php hello-world.php

Процесс №1 — Компиляция в байт-код
Сначала исходный код обрабатывается Zend Compiler — это PHP компилятор. Первый из двух основных компонентов Zend Virtual Machine.

В отличие от рассмотренного выше компилятора Go:

задача PHP компилятора — преобразовать исходный код не в машинный код, а в код-посредник - байт-код;

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

В случае PHP этот байт-код назвали PHP OPCode.

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

Чтобы посмотреть результат работы компилятора — сам байт-код — выполним команду:

php -d opcache.opt_debug_level=0x20000 -d opcache.enable_cli=1 hello-world.php

Получим:

$_main: ; (lines=3, args=0, vars=0, tmps=1) ; (after optimizer) ; /hello-world.php:1-2 0000 EXT_STMT 0001 ECHO string("Hello World") 0002 RETURN int(1)

Вначале видим $_main: — обозначает, что следующие строки относятся к функции main. Появление такой функции в байт-коде для глобальной области видимости PHP — занятная историческая особенность, дошедшая из других языков;

Следующие 3 строки начинаются на ; — так обозначаются комментарии. Одна из целей — для дебаг-информации;

Последние 3 строки — непосредственно код нашего приложения, который будет выполняться виртуальной машиной в следующем шаге.

Процесс №2 — Выполнение байт-кода

Читать далее
Всего голосов 33: ↑32 и ↓1+38
Комментарии12

Какие инструменты ИИ нужны офисным сотрудникам?

Уровень сложностиПростой
Время на прочтение4 мин

На вебинаре «Каким инструментам ИИ нужно обучать сотрудников?» поговорили о том, как развивается ИИ, и каким сервисам можно передать рутинную работу в офисе.

Читать далее
Всего голосов 6: ↑3 и ↓3+6
Комментарии0

Разработка архитектуры хранения данных для сайта на «Битрикс»

Уровень сложностиСредний
Время на прочтение12 мин

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

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

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

Читать далее
Всего голосов 10: ↑9 и ↓1+16
Комментарии6

Как мы автоматизировали управление проектными требованиями с помощью AI и ML

Уровень сложностиПростой
Время на прочтение4 мин

Мы команда департамента разработки. Наш отдел разрабатывает ПО для управления проектами при создании и проектировании сложных инженерных объектов.

В этой статье мы хотим поделиться историей, как мы разработали продукт c использованием современных технологий AI, ML, NLP и применили этот продукт для оптимизации собственных процессов в области управления требованиями.

Читать далее
Всего голосов 6: ↑5 и ↓1+11
Комментарии2

Что такое AndroidManifest.xml, его структура и важность

Уровень сложностиСредний
Время на прочтение2 мин

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

В данной статье мы подробно рассмотрим структуру и значение AndroidManifest.xml, а также его значимость. Информация взята у преподавателя по Android-разработке из онлайн-университета Urban.

Структура AndroidManifest.xml

Давайте начнем с анализа структуры AndroidManifest.xml:

Читать далее
Всего голосов 10: ↑3 и ↓70
Комментарии4

Как GPT-4o помог мне создать плагин для After Effects: экономим часы на нейминге слоев

Уровень сложностиПростой
Время на прочтение7 мин

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

Читать далее
Всего голосов 14: ↑13 и ↓1+19
Комментарии8