Search
Write a publication
Pull to refresh
170
4

java / open source

Send message

Выбор фидера OpenPnP

Level of difficultyMedium
Reading time4 min
Views5.8K

Выбор типа питателя для OpenPnP станка

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

Читать далее

Intel i740 — Чёрная страница в истории графики

Level of difficultyEasy
Reading time8 min
Views24K

Intel всегда мечтала покорить графический рынок. Выпускать передовые ускорители, встать во главе бурно растущего рынка графических технологий, было идеей-фикс полупроводникового гиганта еще с начала 80-х годов. Давайте посмотрим на то, что за графическое решение получилось у Intel в 90-е, и почему вся её история – это показательный пример некомпетентности и незнания рынка.

Читать далее

Цикл постов про Keycloak. Часть первая: Внедрение

Reading time18 min
Views85K

Цикл постов про Keycloak (часть 1): Внедрение.

О чем речь?

Это первая часть серии статей о переходе на Keycloak в качестве SSO в условиях кровавого enterprise.

Читать далее

Иронии автоматизации

Level of difficultyEasy
Reading time6 min
Views11K

Вероятно, один из главных в мире текстов об автоматизации — статья «Ironies of Automation» когнитивного психолога Лизанны Бейнбридж, опубликованная в 1983 году в журнале Automatica. На неё ссылаются более 1800 других академических работ, про неё есть страница в Википедии, её продолжают вспоминать спустя сорок лет после публикации. Думаю, что сейчас, когда ChatGPT и беспилотные автомобили порождают новый виток замены людей машинами, этот текст по-прежнему очень актуален.

Но вот на Хабре об этой статье вроде бы никогда не писали. Я и сам узнал о ней почти случайно: мы проводим Java-конференции, где её упомянул один из спикеров. И ощутил, что она была бы полезна здесь на русском. Но поскольку исходная публикация академическая, она не вполне в стилистике Хабра. Поэтому я решил не переводить её дословно, а пересказать ряд тезисов оттуда своими словами и добавить немного от себя. Для тех, кому хочется полной точности, даю ссылку на оригинал.

Читать далее

Сегрегация общества: модель Шеллинга и распределение этнических групп в городах Израиля

Level of difficultyHard
Reading time27 min
Views4.3K

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

В модели каждый агент принадлежит к одной из двух групп и стремится жить в районе, где доля "друзей" достаточно высока: выше определенного порогового значения F. В зависимости от F, для групп равного размера, модель проживания по Шеллингу сходится либо к полной интеграции (случайное распределение), либо к сегрегации. Изучение этнических жилых моделей израильских городов с высоким разрешением показывает, что реальность сложнее, чем эта простая дихотомия интеграции-сегрегации.

?

Найти и уничтожить: как Clickhouse удаляет собственный код из памяти и переключается на использование Huge Pages

Reading time8 min
Views9.3K

В Clickhouse есть интересный код: при вызове одной функции происходит перевод области памяти исполняемого кода программы на использование Huge Pages. В процессе весь код программы копируется на новое место, память, использовавшаяся изначально для кода программы возвращается ОС, а потом запрашивается снова. Эта статья основана на соответствующей части доклада с Я.Субботника.

Сначала мы посмотрим, что такое виртуальная память и TLB, потом перейдём собственно к Clickhouse, посмотрим, почему там пришла идея делать такие махинации с бинарником в памяти, а в конце посмотрим, как это всё реализовано.

Читать далее

Как я клонировал Томми Версетти, или запускаем GUI/GPU приложения в Kubernetes

Level of difficultyHard
Reading time16 min
Views8.5K

Привет! Меня зовут Сергей Ермейкин, я Junior DevOps engineer в центре разработки IT-компании Lad. В моей первой статье на Хабре я расскажу про сборку своих GUI/GPU образов и покажу, как настроить хостовую и Kubernetes системы на примере игры GTA:VC.

В детстве мне очень нравилось играть в неё: рассекать на PCJ-600, вновь и вновь повторять "миссию с вертолетиком", "летать" на Panzer. Сейчас я выступаю всего лишь в роли зрителя, наблюдая за скоростными прохождениями игры. В один из таких просмотров я задался вопросом: можно ли автоматизировать процесс прохождения и направить искусственный интеллект на игру для выполнения этой задачи? Или как запустить в кластере графическое приложение, которое использует ресурсы видеокарты? Поэтому в данной статье я подготовлю среду для обучения искусственному интеллекту.

Запускаем Томми в Kubernetes?

Что будет, если от разработчиков не отстать: умирающая команда

Reading time11 min
Views61K
Мне досталась команда, которая болела. Все понимали, что происходит, никому не нравилось, что творится в команде, и традиционно менеджеры такие команды сильно режут. Но здесь были шансы вылечить и без ампутаций.


Источник

15 человек, из них — один руководитель проекта, три фронта, два бэка, три аналитика, девопс. Симптомы обычные: процессы всем не нравятся, соседи — козлы, потому что не то и не так делают, а как нужно — не знают, ответственности ни на ком толком нет ни за что.

Вроде бы когда-то это был настроенный конвейер, но теперь его куски — как будто в разных зданиях. Особо не заботятся о том, что было «до» и что будет «после». А если всё падает, то люди поднимают руки: «Я не виноват. Я не знаю, как поднять».

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

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

Datafaker: альтернатива использованию производственных данных

Reading time7 min
Views7.3K

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

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

Datafaker — это библиотека для JVM, предназначенная для генерации фиктивных данных, похожих на производственные данные. 

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

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

Читать далее

Автоматический подбор параметров для Spark-приложений

Reading time8 min
Views4.7K

Всем привет! Меня зовут Валерия Дымбицкая, я технический руководитель команды дата-инженеров в OneFactor. В этой статье я расскажу о том, как мы научились автоматически подбирать параметры для Spark-приложений на основе логов.

Проблема, которую мы решали, может встретиться при регулярном, предсказуемом, интенсивном использовании Hadoop-кластера. Я расскажу, как мы простыми средствами сделали рабочую автономную систему тюнинга, сэкономив в итоге 15-16% ресурсов кластера. Вас ждут детали с примерами кода.

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

Зачем нам вообще понадобился автоматический тюнинг?

Начнём с инфраструктуры. Сетап у нас "классический": ограниченный Hadoop-кластер из купленных серверов. В нём на тот момент, когда мы начали всё это делать, было около 30Тб RAM и 5к CPU. В этом кластере запускается множество разноплановых приложений на Apache Spark и в какой-то момент им стало тесновато. Всё больше приложений висели в PENDING значительное время, потребление памяти утроилось за последние 4 месяца. Сохранять такую тенденцию не хотелось.

Довольно много приложений были от продукта Лидогенерация. Базово он устроен так: есть список номеров телефонов (база) и есть Spark ML Pipeline, который каким-то образом отбирает из этой базы лидов абонентов для некоего целевого действия – например, для предложения продукта клиенту. База может меняться от раза к разу. Вот такую пару из

Читать далее

Управление данными с помощью CI/CD

Reading time9 min
Views6.8K

Я вспоминаю свой первый день разработчиком-джуном, он свеж в моей памяти, как будто это было вчера. Я ужасно нервничал и понятия не имел, что делаю. Наверно, мой стресс был заметен, потому что одна добрая душа решила взять меня под свою защиту. В тот день я научился писать SQL в коде на PHP, чтобы делать интересные вещи с базой данных.

Однако прежде чем начать, я должен был попросить администратора базы данных (database administrator, DBA) создать несколько таблиц. Я быстро понял, что для того, чтобы сделать любое действие, нужно сразу обращаться к DBA. Нужен новый столбец? Свяжись с DBA. Необходимо отредактировать хранимую процедуру? Это работа для DBA. Я смотрел на него снизу вверх, он был такой суперзвездой, что в итоге позже я сам стал администратором.

Разумеется, я понимаю, что зависимость от кого-либо неизбежно создаёт ограничения. Это безрассудно, трудно и, что хуже всего, впустую тратит навыки DBA.
Читать дальше →

Мониторинг ML-систем. «6 лет назад vs сегодня»

Reading time10 min
Views3.9K

Шесть лет назад я занимался стартапом FscoreLab, мы разрабатывали ML-системы для кредитного скоринга. Тогда я ещё слыхом не слыхивал о термине MLOps, да я и не уверен, что он вообще существовал. Однако, необходимость определённых практик и процессов, которые сейчас относят к MLOps, стала быстро понятна уже тогда. Один из самых важных уроков того времени - если модель обучить, задеплоить и отправить в свободное плавание, то рано или поздно, постепенно или внезапно, но случится что-то не очень хорошее. Да, сейчас от этого "откровения" хочется зевать - написана тонна книг и статей, запилена куча полезных инструментов, но в то время пришлось собирать систему ML-мониторинга опытным путём из подручных материалов. Состояла она из следующих компонентов:

Читать далее

Пожалуйста, не используйте Python для инструментария

Reading time6 min
Views52K

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

Читать далее

Обзор операторов PostgreSQL для Kubernetes. Часть 3: CloudNativePG

Reading time9 min
Views10K

Статья продолжает наш обзорный цикл о PostgreSQL-операторах для Kubernetes. В первой части мы рассматривали операторы Stolon, Crunchy Data и Zalando. Во второй — KubeDB и StackGres, а также объединили все пять операторов в сравнительную таблицу. В этот раз разбираем решение CloudNativePG, его возможности и особенности, а заодно актуализируем таблицу.

Читать далее

Кем вы видите себя через 5 лет? Почему вы пришли к нам на собеседование?

Reading time3 min
Views53K

Как Рекрутер и основатель небольшого международного агентства, также как человек, который вырос в США, я имею неплохое представление не только о рынке труда в мире, но и о манере проведения собеседований в разных странах. Я часто общаюсь с разработчиками как из России, также из США и Европы. И какого было моё удивление узнать, что их до сих пор спрашивают: “Кем вы видите себя через 5 лет?”. Что?! Это шутка?

На данный момент IT сектор - это рынок кандидата. Они диктуют условия, а не Рекрутеры или работодатели.

Читать далее

Здоровье индексов в PostgreSQL глазами Java-разработчика

Level of difficultyMedium
Reading time5 min
Views22K

Привет.


Меня зовут Ваня, и я Java-разработчик. Так получилось, что я много работаю с PostgreSQL – занимаюсь настройкой БД, оптимизацией структуры, производительностью и немного играю в DBA по выходным.


За последнее время я привёл в порядок несколько баз данных в наших микросервисах и написал java-библиотеку pg-index-health, которая облегчает эту работу, экономит моё время и помогает избежать некоторых типовых ошибок, допускаемых разработчиками. Именно об этой библиотеке сегодня и пойдёт речь.



Disclaimer


Основная версия PostgreSQL, с которой я работаю, это 10-ка. Все используемые мною SQL-запросы также проверены на 11-й версии. Минимальная поддерживаемая версия — это 9.6.


Предыстория


Началось всё почти год назад со странной для меня ситуации: конкурентное создание индекса на ровном месте завершилось с ошибкой. Сам индекс, как водится, в невалидном состоянии остался в базе. Анализ логов показал нехватку temp_file_limit. И понеслось… Копнув поглубже, я обнаружил целый ворох проблем в конфигурации БД и, засучив рукава, с блеском в глазах принялся их чинить.

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

Концепция Data Mesh. Принципы, идеи, применение на практике

Reading time5 min
Views15K

С чего началась наша компания? В первую очередь, конечно, с людей и с идеи. Как это обычно бывает, правильные люди абсолютно случайно познакомились друг с другом, и вот я здесь, сижу и пишу этот пост =) Была, однако, и ещё одна очень важная составляющая - данные...

Любой ML-проект начинается с анализа ландшафта доступных данных - что мы можем скачать, выгрузить, разметить, купить. За четыре года наша культура работы с данными, инструментарий, подходы, процесс разметки претерпели очень большие изменения. Сейчас у нас накоплено почти 100 терабайт медицинских исследований, но количество данных абсолютно не важно, если они плохого качества, и их неудобно изучать, понимать и использовать. Недавно я делал обзорный доклад про разные аспекты качества медицинских данных, а вот наше выступление про технические аспекты пути к качеству. Сегодня же я хочу поговорить об очень интересной концепции (или даже философии), которая в последнее время на слуху, но, судя по разным постам в интернете, её суть понятна далеко не всем. Это Data Mesh.

Впервые я столкнулся с этим понятием в докладе Леруа Мерлен на митапе LeanDS. Доклад любопытный, но суть дата меш мне из него была понятна не до конца, так что недавно я взялся за чтение книги от авторки этой концепции и термина - Data Mesh: Devlivering Data-Driven Value at Scale.

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

Читать далее

Самопишущийся код

Reading time28 min
Views11K

Когда речь идёт о технологиях, позволяющих компьютеру написать часть кода за человека, разговор вечно соскальзывает в гадания на кофейной гуще. Уволят через десять лет всех программистов или нет?


Но вообще-то тут есть о чём поговорить помимо этих спекуляций, причём разговор может быть куда предметнее. Как все эти разнообразные «copilot» вообще работают (вот сейчас, а не через десять лет)? Какие сложности возникают при их создании? Где эти сложности можно преодолеть, а где есть принципиальные ограничения формата?


На конференции Joker об этом рассказывали Никита Поваров allfather и Роман Поборчий p0b0rchy. На момент доклада оба работали в JetBrains, так что получилось не просто абстрактное описание вопроса, а «взгляд изнутри» со стороны тех, кто делает инструменты для разработчиков.



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

Вот такой ширины, вот такой ужины: какие ИТ-специалисты нужны рынку

Reading time7 min
Views24K

В ДОМ.РФ мы активно развиваем программы стажировок и развития молодых кадров. Эта деятельность дает нам обширный опыт и массу информации к размышлению. В этот раз мы решили проанализировать, какие тренды есть в студенческой среде, и куда стремятся молодые специалисты.

Читать далее

Information

Rating
484-th
Location
Россия
Registered
Activity