Pull to refresh

Technotext

Потрошим golang: как устроена память

Reading time18 min
Views36K


Привет, меня зовут Стас Иванкевич, и я работаю в VK Cloud над разработкой облачных сервисов в команде Data Masters. Сервисы, запрошенные клиентами, так или иначе должны развернуться в том виде, в котором клиенты их запросили, в адекватные сроки и без ошибок. Существует множество механизмов, позволяющих этого достичь, и еще больше существует ошибок и проблем, которые мешают в достижении этих целей.

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

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

Ищем Арнольда Шварценеггера среди мужчин, женщин и детей с помощью нейросети на С++

Level of difficultyMedium
Reading time24 min
Views10K

Привет, Хабр! Меня зовут Кирилл Колодяжный, я ведущий инженер-программист в YADRO. Помимо основных рабочих задач, включающих исследование проблем производительности СХД, я увлекаюсь машинным обучением. Участвовал в коммерческих проектах, связанных с техническим зрением, 3D-сканерами и обработкой фотографий. В задачах часто использовал С++, хотя машинное обучение традиционно ассоциируется с Python. Этот язык программирования буквально захватил сферу, его используют повсюду — от обучающих курсов до серьезных ML-проектов.

Однако Python — не единственный язык, на котором можно решать задачи машинного обучения. Так, альтернативой может стать С++. Если последний вам ближе, вам будет интересен и полезен этот текст.

Под катом разберемся:

как организовать работу с данными и загрузку обучающего датасета, 

как описать структуру нейронной сети, 

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

как организовать конвейер обучения сети, 

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

Читать далее

Создание системы документирования, или как в Cloud.ru от «ворда» к docs as code за месяц переходили. Часть 2

Reading time13 min
Views6.2K

Привет, Хабр! На связи снова Юрий Никулин. В первой части статьи я рассказывал, почему в Cloud.ru решили перейти на doc as code и какой технологический стек мы выбрали. В этой части поделюсь самим процессом — расскажу, как настраивали, тестировали и внедряли новую систему и что из этого вышло.

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

Как мы новую производственную линию запускали

Reading time19 min
Views4.3K

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

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

Читать далее

Дашборд управления бизнесом (P&L) в Metabase за 5 дней

Level of difficultyMedium
Reading time7 min
Views6.6K

Один из важнейших инструментов в моей работе — дашборд с данными о прибылях и убытках компании P&L (он же БДР, он же отчет о финансовых результатах). Он помогает контролировать рентабельность бизнеса, эффективность отделов компании, прогнозировать прибыль и строить гипотезы для развития. В этой статье расскажу, как его настроить и использовать при помощи Open-Source BI-системы Metabase.

Читать далее

Интеграция Grist и Metabase

Level of difficultyMedium
Reading time11 min
Views4.1K

Привет! Меня зовут Александр Ежков, я Backend-разработчик в AGIMA. Занимаюсь созданием и поддержкой внутренних сервисов для компании. А конкретно сейчас — нашей DWH-системой. Мы построили ее из Open-source продуктов. В этой статье расскажу, какие продукты мы используем, какие хитрости придумали для работы с ними как вся система работает вместе.

Читать далее

Как много языков может влезть в одного программиста?

Level of difficultyEasy
Reading time10 min
Views28K

Всем привет, я Серёжа, технический лидер iOS-разработки. Сегодня хочу поговорить о многогранности мира программирования, а именно о количестве языков, причинах, по которым они нам нужны, и о том, зачем одному программисту несколько языков.

Если с каких-то рассуждений прямо сильно подгорит, приходи в комментарии, будет классно пообщаться!

В целом с языками программирования так же, как и со знаниями: лишними точно не будут. Какие языки изучал я сам, тонкости работы со скриптами, CI/CD и советы, что из языков ещё поизучать разработчику, найдёте под катом.

Читать далее

Блеск и нищета паттерна «Спецификация» в С#. Оцениваем планы запросов

Level of difficultyHard
Reading time24 min
Views16K

О паттерне «Спецификация», который позволяет улучшить структуру приложения, и, следовательно, увеличить гибкость, уменьшив при этом объем кода, а значит — сократить количество ошибок, но это не точно. Почему? - читаем ниже. 

Читать далее

Удалёнка в ИТ-2023: золотая пуля или преграда для карьеры?

Level of difficultyEasy
Reading time11 min
Views21K

В чём хранить деньги, в рублях, твёрдой валюте или золоте? Кто круче, Александр Овечкин или Уэйн Гретцки? Что лучше, удалённая работа, гибрид или офис?

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

Из статьи руководители смогут узнать, как лучше организовать удалённую работу, с какими сложностями придётся столкнуться и какие подводные камни могут быть. Разработчики определятся, что им ближе: гибрид, или полная удалёнка. А может, и вовсе – снова в офис?

Читать далее

Сканер отпечатков кошачьих носиков

Level of difficultyEasy
Reading time5 min
Views26K
Расширение сферы применения биометрической системы контроля доступа на других существ, открывает поистине потрясающие возможности.


Так сложилось, что на территории мануфактуры, где я располагаюсь, живёт достаточно большое семейство иссиня-чёрных котов, все братья от одной матери, но из разных помётов. Весь этот прайд мы именуем просто Бандиты, по соответствующему характеру и поведению. Из всей этой стаи один кошак полюбился мне больше всего: самый адекватный и интеллигентный; и именно его я иногда пускаю в свои кабинеты.
И возжелал я пускать того прекрасного кошака, а остальных отсеивать, дабы не хулиганили в моё отсутствие. И пришла в мою голову мысль о пропускной системе, именуемой КотСКУД — кошачья система контроля доступа.
Читать дальше →

Старикам тут не место: есть ли эйджизм в ИТ

Level of difficultyEasy
Reading time5 min
Views34K

Привет! Это Лена, ответственная за HR Tech в Альфа-Банке. Сегодня поговорим об эйджизме. Подумаем, как не бояться отказов по причине «ищем до 35».

Да, дискриминация по возрасту запрещена Трудовым кодексом, но отсеивать резюме всё ещё можно. Также поищем примеры, когда бумерам и зумерам хорошо работается вместе.

Читать далее

Чего боятся стажеры? {Спойлер: всех отвлекать, все поломать, чего-то не знать, на код-ревью завалиться…}

Level of difficultyEasy
Reading time8 min
Views10K

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

В этом посте – шесть совершенно разных историй экс-стажеров “Лаборатории Касперского”. У каждого был какой-либо страх (а как еще, когда ты стажер без опыта, и это твоя первая работа!), но все герои смогли совладать с ними и вырасти до специалистов, тимлидов и даже руководителей целых функций.

А в дополнении – опрос, который покажет, чья позиция ближе Хабру.

Если вы сами – интерн или еще только ищете стажировку в IT-индустрии, этот пост будет для вас особенно актуален. Но даже если вы уже преодолели первую ступень профессионального пути, вам наверняка будет интересно сравнить свой опыт с опытом коллег.

Читать далее

Ретро-компьютер уровня «Радио-86РК» с RISC-V процессором на плате OMDAZZ

Level of difficultyEasy
Reading time7 min
Views12K

Статья про то, как из недорогой отладочной платы OMDAZZ c ПЛИС  CycloneIV EP4CE6 получить ретро-компьютер с монитором, клавиатурой и тетрисом, но с современным процессором на базе RSIC-V и компилятором GCC.

Как же это сделать

Разработка цифровой аппаратуры нетрадиционным методом: Yosys, SpinalHDL, VexRiscv (ч.1)

Level of difficultyHard
Reading time127 min
Views17K

Основная прелесть использования ПЛИС, на мой взгляд, состоит в том, что разработка аппаратуры превращается в программирование со всеми его свойствами: написание и отладка кода как текста на специализированных языках описания аппаратуры (HDL); код распространяется в виде параметризованных модулей (IP-блоков), что позволяет его легко переиспользовать в других проектах; распределенная разработка обширным коллективом разработчиков с системой контроля версий, такой же, как у программистов (Git); и, как и в программировании, ничтожно низкая стоимость ошибки.

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

В этой статье я хочу поделиться своим небольшим опытом «программирования» микросхем ПЛИС и тем, как я постепенно погружался в тему ПЛИСоводства. Изначально я собирался написать небольшую заметку про открытый тулчейн для синтеза Yosys. Потом — про язык SpinalHDL и синтезируемое микропроцессорное ядро VexRiscv, на нём написанное. Потом — про замену микроконтроллеров микросхемами ПЛИС на примере моей отладочной платы «Карно». Но в процессе я погрузился в историю появления Hardware Description Languages (HDL), и когда я начал писать, Остапа, как это часто бывает, понесло... В общем, получилось то, что получилось.

А еще эту статью можно рассматривать как глубокое погружение в то, что происходит вот на этом новогоднем видео.

Погрузиться сполна

Варим кашу из нечеткой логики и вариационных автоэнкодеров

Level of difficultyHard
Reading time13 min
Views3.6K

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

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

Читать далее

ChatGPT и отзывы на приложение: Анализ тональности для улучшения пользовательского опыта

Reading time10 min
Views2K

Привет, дорогие читатели Хабра!

Сегодня я хочу поделиться с вами своими знаниями и опытом в области анализа данных и машинного обучения, освещая увлекательную и актуальную тему – анализ отзывов на приложения с использованием модели ChatGPT. Этот подход открывает новые горизонты для понимания тональности отзывов, что является ключевым аспектом в изучении общественного мнения.

В этой статье я расскажу о том, как можно использовать возможности Natural Language Processing (NLP) для анализа отзывов, собранных из приложения AppStore. Я исследую, как каждый отзыв, содержащий дату, заголовок, текст и оценку пользователя, может быть преобразован в ценные данные для обучения модели анализа тональности. Эта модель будет способна классифицировать отзывы как положительные, негативные или нейтральные, предоставляя нам глубокое понимание эмоциональной окраски пользовательских мнений.

Читать далее

Методы балансировки в А/Б тестировании

Reading time14 min
Views7.6K

Привет, Хабр! Как часто вы думаете о балансе? Балансе вселенной, личной жизни и работы, балансе БЖУ в своем рационе или балансе в банке. Мы в команде ad-hoc X5 Tech не только думаем о балансе, но и сталкиваемся с ним в работе. Сегодня поговорим о балансировке при анализе причинности. Это важный инструмент статистики, который помогает нам выяснить, как одни величины влияют на другие. Балансировка здесь — это способ убрать ошибки, которые могут возникнуть из-за разных распределений переменных в разных группах. Расскажем о различных методах балансировки, об их работе, преимуществах и недостатках каждого. Также затронем проблемы и ограничения, связанные с балансировкой. Запасайтесь чаем, мы начинаем!

Читать далее

Хроники вещества: симметрия, кристаллы и дальний порядок

Level of difficultyMedium
Reading time12 min
Views2.9K

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

Читать далее

Внедряем Gitleaks для анализа pull request на наличие секретов в Azure DevOps Server

Level of difficultyMedium
Reading time17 min
Views2.9K

Cтатья будет полезна разработчикам и инженерам по ИБ, желающим повысить уровень безопасности приложений за счет внедрения проверок, запрещающих вносить секреты в открытом виде в исходный код.

В случае утечки исходного кода либо ознакомления с ним неуполномоченными лицами компания понесет ущерб.

В статье рассмотрим внедрение Gitleaks применительно к Azure DevOps Server в процесс анализа запросов на вытягивание (pull requests) при слиянии ветвей. Система управления исходным кодом Azure Repos является частью Azure DevOps Server.

Читать далее