Провел в мае учебный курс для студентов ИТМО по Robot Operating System. Экзаменационным заданием было соревнование AutoRace, Visual SLAM и алгоритм походки четвероногого робота. Под катом подробности о курсе и видео с роботом собачкой.
Новости
Как вырастить рекрутёра с нуля и зачем брать в команду новичков
Всем привет! Меня зовут Василиса, и я — тимлид рекрутёров в агентстве Geekfactor. Мы начали работу весной 2021 года, а к этому моменту я стала первым тимлидом в компании — и сейчас руковожу командой из 6 рекрутёров. Обычно стартапы предпочитают брать людей с опытом, мы же решили пойти в другую сторону — и набрать людей без опыта в HR, чтобы вырастить команду с нуля. Как всё прошло, я расскажу в этой статье.
Книга «Spring Boot по-быстрому»
Система распознавания шрифта Брайля. Читаем написанное белым по белому
В 2018 году мы взяли из детдома в семью слепую девочку Анжелу. Тогда я думал, что это чисто семейное обстоятельство, никак не связанное с моей профессией разработчика систем компьютерного зрения. Но благодаря дочери через два года появилась программа и интернет-сервис для распознавания текстов, написанных шрифтом Брайля - Angelina Braille Reader.
Сейчас этот сервис используют сотни людей и в России, и за ее пределами. Тема оказалась хайповой, сюжет о программе даже показали в федеральных новостях на ТВ. Но что важнее - за свою многолетнюю карьеру в ИТ ни в одном проекте я не получал столько искренних благодарностей от пользователей.
Ниже расскажу о том, как делалась эта разработка и с какими трудностями пришлось столкнуться. Более развернутое описание приведено в публикациях [1,2].
Возможно, кто-то захочет внести в проект свой вклад.
Экспортируем модули из Go-сервиса: сотворение директории pkg
Чтобы поделиться кодом, нужно создать библиотеку и разместить её в самостоятельном репозитории. Но иногда возникает необходимость хранить библиотеку вместе с сервисом, который её использует, — это может быть полезно при разработке в open source, в процессе дробления монолита на микросервисы и при шеринге своим API. Go-разработчики договорились использовать для этого директорию pkg.
Как оказалось, при экспорте библиотеки из сервиса может возникнуть множество нюансов. В этой статье мы разберём, как сделать внешнюю библиотеку максимально удобной как для сервиса, который её экспортирует, так и для импортёров.
АДСМ6. Интерфейсы взаимодействия с сетевыми устройствами
Это вторая статья - техническо-практический разбор протоколов и интерфейсов автоматизации сети.
Если хочется исторической справки, я отсылаю читателя к статье-спутнику, в которой мы двигаемся от начала времён в будущее человечества. Какую роль сыграли в нашем настоящем IETF, ISO, олдовые и современные вендоры и даже просто люди.
В этой же мы раскрываем дерево XML, пробуем на вкус капабилити NETCONF, шлём первые RPC и наконец уже расставим в правильном порядке буквы YANG, OpenConfig, gNMI.
Практическую пользу вам принесут только обе прочитанные статьи. Вторая без первой будет непонятна. Первая без второй - беллетристика.
АДСМ5. История сетевой автоматизации
Это первая статья - историческая ретроспектива технологий и интерфейсов автоматизации сети. Если хочется более практического разбора, я отсылаю читателя к статье-спутнику!!!, в которой мы собираем лабу, дёргаем апишки, настраиваем коробки. В этой же разбираемся, как мы оказались в том месте, где мы находимся, и куда ведёт нас этот путь. Практическую пользу вам принесут только обе прочитанные статьи. Вторая без первой будет непонятна. Первая без второй - беллетристика.
Как определить подходящую меру центральной тенденции?
Но сам по себе термин “центр” может подразумевать немного разные значения в зависимости от конкретной ситуации. Вы можете считать “центром” среднее арифметическое. Вы также можете назвать “центром” данные, которые просто находятся в середине вашей выборки. А еще вы можете рассматривать в качестве “центра” данные, которые повторяются чаще всего. Все эти центры по-своему характеризуют ваши данные.
PHD11 – ВЗГЛЯД ИЗНУТРИ, ОПЫТ КОМАНДЫ GIS CYBERTEAM
С 16 по 19 мая команда сотрудников «Газинформсервис» принимала участие в кибербитве The Standoff, на стороне защиты. О том, как это было, рассказал участник проекта, Никита Платов инженер-проектировщик группы защиты АРМ и серверов «Газинформсервис».
Полигон
Киберполигон The Standoff – это виртуальная копия города, имитирующая его инфраструктуру – в нем есть банковская система, энергетический сектор, заводы, вокзалы, аэропорты и многое другое. Информационные системы города развернуты на серверах, виртуальных машинах и ПЛК, состояние инфраструктуры в реальном времени отражается на рабочем макете города, расположенном на площадке киберполигона в Москве. На нем можно увидеть некоторые последствия от действий хакеров, например, пожар на макете электростанции.
Скрестить социальную сеть с википедией
Вы когда-нибудь писали что-то в википедию? Я – да. Но все это сносилось в течении суток. И, заметьте, речь не шла о политике. Я все публиковал по правилам, и с ссылками. Но, оказывается, любое мое дополнение всеобщей типа открытой ноосферы принципиально конфликтует с чьими-то интересами. Будь то малюсенькое дополнение о методах борьбы с потеплением климата, или новый концепт в антропологии североамериканских индейцев. И если про климат я еще могу понять (хотя странно), то про концепты понять не могу. Кому они мешают, даже если недостаточно соотносятся с классической наукой? Ну да ладно, их сайт (кстати, чей, кто там главный то?), что хотят, то и творят.
Вы общаетесь в социальных сетях? Именно для души, а не по работе. Я – нет, ибо не вижу смысла. Хвастаться перед своим ближним и дальним кругом покупкой нового авто? Чтоб они все «от зависти сдохли»? Собачиться на политические темы? А оно мне надо? Лайкать и перепощивать интересные посты? А смысл? Не, если ты звезда или хотя бы звездулька, тогда социальные сети рулят, но опять таки для работы. А обычного человека посты в соцсетях увидят только несколько человек. Даже если там будет детально описана концепция телепорта или лекарство от рака.
Как IT-шник, вижу я продуктовую нишу. Вики давит жестким диктатом от не пойми кого. Соцсети сильно ограничивают аудиторию общения, как бы ни странно это не звучало. Социальная психология учит нас, что у каждого человека в реале своя картина мира. Так может уже пришло время создания IT-системы именно для картин мира самых разных людей. Без диктата единственно правильной точки зрения от вики?
USB over IP для личного использования: организовываем клиент-серверный комплекс на Linux и Windows
Привет, Хабр! В прошлой статье мы рассмотрели историю и принцип работы технологии USB over IP, узнали, как ее применяют на базе готового аппаратного решения.
Для личного использования, однако, аппаратное решение скорее не подойдет: нужно приобретать дорогостоящее оборудование, что нецелесообразно. Поэтому под катом рассказываю, как организовать клиент-серверный комплекс USB over IP на современных ОС и автоматизировать этот процесс.
Снять с ручного тормоза: как новый сайт меняет бизнес-процесс
Привет! Я Алексей Василенко, руководитель направления PHP в AGIMA. Четыре года назад работал с компанией, которая занималась b2b-продажами. В основном продавали товары для активного отдыха. Палатки, лодки, моторы, спальные мешки — всё, что пригодится туристу в походе. Ребята позвали меня поработать над их сайтом. Он казался им неудобным и малоэффективным. Но в итоге оказалось, что неудобным и малоэффективным был весь бизнес-процесс в компании. За 3 года мы не просто переделали сайт. Мы полностью поменяли подход к работе, увеличили количество заказов в 2 раза, а эффективность бизнеса — в 3. И всё это силами IT-отдела. Текст о том, как технологические решения влияют на доходы и клиентский сервиc.
Tarantool: от коммита до прода за 20 минут
Привет, Хабр! Меня зовут Проскин Роман, я четыре года работаю с Tarantool — разрабатываю и эксплуатирую высоконагруженные и высоконадёжные приложения. Хочу рассказать о своем опыте в этой сфере, поделиться советами и подсветить ошибки, которые допускал в работе.
[Личный опыт] Как я жил и работал в Европе и Америке: где строить карьеру, а где комфортнее жить
Когда мы рассказываем о релокейте, то обычно пишем про одну, максимум две-три страны. Сегодня у нас более необычная история — герой этой статьи Андрюс пришел в IT еще в конце 80-х, в 2009 уехал из Литвы в Швецию, и с тех пор успел поработать и подолгу пожить в половине европейских стран. Для нас он расскажет, чего примерно ждать от релокейта в ту или иную страну, и куда стоит переезжать, если ищешь карьерного роста, спокойной жизни или быстрой интеграции в общество. Передаем ему слово.
Как работают безопасники: обследование промышленной инфраструктуры
Защита критической инфраструктуры — скучная бумажная безопасность, офисная работа. Это распространенный стереотип, который верен лишь отчасти. Перед подготовкой документов инфраструктуру обследуют. И все бы ничего, но иногда предприятие находится где-нибудь между Сургутом и Нижневартовском.
Бастион специализируется на безопасности АСУ ТП, так что за свою карьеру я побывал на многих промышленных производствах. Сегодня расскажу, как проводятся такие обследования, с какими сложностями связаны, и какие проблемы обнаруживаются на объектах.
Создание демки специально для HABR — Часть 1
Многие из нас любят интеллектуальные игры, всякие головоломки, квесты, стратегии и многое другое. Но что, если игрой является само железо, а сценарий создаёте вы сами? В результате этого рождается невероятно интересная головоломка, которая невероятно меня увлекла на несколько месяцев.
Здесь я хочу поделиться «прохождением» этой «игры», под названием Демка для ПЭВМ «Микроша». В процессе чтения статьи может показаться, что всё просто и очевидно. Это всё так, когда есть документация и описание всех подводных камней. Когда каждый подводный камень ищешь сам, то это всё превращается в невероятно сложный квест.
Искусственный пинг для турнира по League of Legends
В последнее время Riot Esports Tech Team работала над решением серии технических проблем, связанных с инструментом, который мы используем для выравнивания значений пинга между локальными и удалёнными соперниками в турнире Mid-Season Invitational 2022 (MSI).
Первая проблема — это баг, найденный нами в ПО под названием Latency Service, которое должно было подстраивать задержку (пинг) на 35 мс для всех участвующих в турнире игроков. Баг проявлялся как избыточный пинг у игроков из Пусана (Южная Корея): их реальный пинг был выше, чем отображаемые на экране 35 мс. По сути, когда игроки из Китая играли с пингом 35 мс, пинг у игроков из Пусана был выше. К сожалению, проблема была выявлена лишь после начала турнира. Мы не нашли её раньше потому, что причиной проблемы был баг в коде, неверно рассчитывающий задержку, то есть значения в наших логах тоже были ошибочными. Поэтому онлайн-мониторинг и тестирование перед турниром показывали, что всё работает правильно, хотя на самом деле это было не так.
Dependency Injection и Full state сервер
Сразу же сообщу, что в данной публикации не сравниваются Fullstate и Stateless парадигмы построения серверов. Также отсутствует какая-либо агитация в пользу Fullstate. Мы исходим из ситуации, в которой мы приняли решение, что для конкретного проекта сервер ASP.NET должен между запросами не только хранить какие-то статические данные, но и возможно выполнять какую-то полезную работу.
При этом мы, разумеется, хотим использовать всю мощь DI-контейнера .NET!
История о бесконечном регрессионном тестировании
На протяжении 5 лет работы инженером-тестировщиком я всегда старалась найти ходы и выходы, чтобы упростить и оптимизировать процесс тестирования (рутина и монотонность – это не мое). Спойлер: у меня не получилось. В этой статье я хочу вам рассказать историю регрессионного тестирования на проекте, и о том, как у меня не получилось его оптимизировать ручным и авто-тестированием.
Развертывание React-приложения
Когда мы имеем дело с большим проектом, в репозитории которого накопились десятки тысяч строк кода, иногда единственным здравым решением кажется все переписать с нуля, а не оптимизировать. С точки зрения бизнеса может возникнуть вопрос: а почему вообще нужно оптимизировать или даже переписывать приложение, если оно работает? Дело в том, что по мере роста кодовой базы есть вероятность увеличения дублирующихся компонентов/фрагментов кода, появления устаревших участков, которые тормозят сборку, но полезной нагрузки уже не несут. Это негативно влияет на скорость работы приложения и увеличивает срок разработки.
В этом кейсе мы покажем, как улучшить имеющееся решение с точки зрения архитектуры, а также рассмотрим библиотеки и их особенности, которые помогут сделать приложение быстрее.
В данном примере мы имеем дело с довольно объемной кодовой базой, UI которой обрабатывает большие массивы данных и выводит их на экран в виде списков, таблиц, графиков. Поэтому нам важно обеспечить гибкость нашего приложения как в плане сборки бандла, так и для развертывания в разных средах. И, конечно, иметь в рукаве самые последние фичи, позволяющие делать наш код красивым, понятным и читаемым.
Статья будет полезна тимлидам и техлидам проектов, а также разработчикам, которые столкнулись с развертыванием крупных неоптимизированных React-приложений.