Обновить
12
0
Александр Шатилов@alexbraun

AI CPTO

Отправить сообщение

Единая точка входа с Keycloak и Яндекс в условиях большого переезда

Время на прочтение20 мин
Охват и читатели25K

Так же, как и многие другие компании, мы долго и счастливо использовали целый стек популярных облачных сервисов (Github, Slack, Jira, Confluence и т.д.) и связывал это все Google Workspace, который выступал в том числе и как SSO для всех используемых сервисов.

В связи с последними событиями нам пришлось достаточно быстро искать и реализовывать альтернативу из отечественных сервисов и open source продуктов. При этом одним из требований стало использование общей с «офисными»
и почтовыми сервисами точки аутентификации.

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

Читать далее

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

Время на прочтение18 мин
Охват и читатели115K

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

О чем речь?

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

Читать далее

KeyCloak и микро-сервисы. Как облегчить жизнь программисту

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

Привет! Если ты так же как и я решил использовать keycloak для аутентификации и авторизации в своей микро‑сервисной архитектуре, то я расскажу вам как правильно настроить сам keycloak, его рабочую среду а в конце мы подключим Active Directory к нашему приложению.

Читать далее

Анонсы конференции OpenAI Dev Day: быстрее, дешевле, умнее

Время на прочтение7 мин
Охват и читатели4.6K

Не так давно все с нетерпением ждали новинок от Apple, однако сегодня внимание мира приковано к другому событию – OpenAI Dev Day, презентации последних разработок ChatGPT. Несмотря на скромную подачу, в стиле “от разработчиков к разработчикам” ее влияние на будущее технологий стало масштабным с первого дня.

В соцсетях царили предположения о релизах API для новых моделей и снижении стоимости GPT-4, о чем Сэм Альтман, CEO OpenAI, говорил еще летом. И предвкушение оправдалось – результаты превысили ожидания кратно.

Начнём с того, что не было на конференции: GPT-5 не анонсировали, так что завтра Скайнет нас ещё не захватит — можно вздохнуть свободнее. А теперь — к тому, что было представлено и что это значит для нас всех?

GPT-4-turbo c большим контекстом
Старые модели стали еще доступней
Обновление знаний до апреля 2023 года
Whisper v3 и синтез речи
Ассистенты, маркетплейс

Под КАТом больше деталей и новостей.

Читать далее

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

Время на прочтение12 мин
Охват и читатели57K
image

Мы с командой вернулись тут с Хайлоада, и там даже CTO крупных компаний задают много вопросов про разработку с LLM. Наша компания занимается прикладной разработкой всего того, что касается GPT/LLM.

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

Самый частый вопрос: можно ли подключать свою базу документов и можно ли по ней нормально работать?

Можно. Для этого нужно две вещи:

  1. OpenAI может работать с вашей базой, например, вики техподдержки, но её надо векторизовать. Получится, что модель только ищет по ней и может отвечать фрагментом исходника, но может его обрабатывать как текст (то есть сравнивать, анализировать и тому подобное).
  2. Дальше можно использовать подход QA Retrieval Chain для работы с векторной базой. Работает это так: задаём вопрос, LLM формируют запрос к векторной базе, мы вынимаем из неё данные, подкладываем их в вопрос как контекст и передаём в LLM, а они формируют ответ.

Но давайте начнём сначала. Основное:

  1. Какого размера промпты могут быть, сколько, какие лимиты, как их частично обходить.
  2. Как подключается база, как закидывать реально большие документы, как эмбеддится вектор, на каких языках это происходит и тому подобное.
  3. Разные API.
  4. Агентная модель GPT Engineer и АutoGPT.
  5. Фреймворк лангчейн (построение цепочек запросов и разбиение макрозапроса на сотни).

Поехали!
Читать дальше →

Реализация моделей seq2seq в Tensorflow

Время на прочтение20 мин
Охват и читатели13K

Порождение данных с помощью рекурентной нейронной сети становится все более популярным методом и находит свое применение во многих областях компьютерной науки. С начала рождения концепции seq2seq в 2014 году прошло всего пять лет, но мир увидел множество применений, начиная с классических моделей перевода и распознавания речи, и заканчивая генерацией описаний объектов на фотографиях.


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

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

Работа с геолокациями в режиме highload

Время на прочтение6 мин
Охват и читатели62K
При разработке ПО часто возникают интересные задачи. Одна из таких: работа с гео-координатами пользователей. Если вашим сервисом пользуются миллионы пользователей и запросы к РСУБД происходят часто, то выбор алгоритма играет важную роль. О том как оптимально обрабатывать большое количество запросов и искать ближайшие гео-позиции рассказано под катом.

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

Ломаем и чиним etcd-кластер

Время на прочтение7 мин
Охват и читатели75K

etcd — это быстрая, надёжная и устойчивая к сбоям key-value база данных. Она лежит в основе Kubernetes и является неотъемлемой частью control-plane, именно поэтому критически важно уметь бэкапить и восстанавливать работоспособность как отдельных нод, так и всего etcd-кластера.

В предыдущей статье мы подробно рассмотрели перегенерацию SSL-сертификатов и static-манифестов для Kubernetes, а также вопросы связанные c восстановлением работоспособности Kubernetes-кластера. Эта статья будет посвящена целиком и полностью восстановлению etcd.

Поехали! ┬─┬ ノ( ゜-゜ノ)

Как работает ViewEncapsulation и ng-deep в Angular

Время на прочтение6 мин
Охват и читатели20K

Перевод (а точнее оригинал) моей статьи опубликованной здесь

Многие Angular разработчики и верстальщики, пишущие CSS/SCSS код в Angular-приложениях сталкивались с ситуацией, когда надо применить стили к компоненту вложенному в текущий и не до конца разобравшись как это работает, выключали инкапсуляцию стилей или добавляли ng-deep, при этом не учитывая некоторых нюансов, что в последствии приводит к проблемам. В данной статье я попытаюсь максимально просто и сжато изложить все детали.

Когда у компонента включена инкапсуляция стилей (по умолчанию она включена и в большинстве случаев стоит оставить ее включенной), стили содержащиеся в файле\файлах стилей компонента будут применяться только к элементам этого компонента. Это очень удобно, вам не нужно следить за уникальностью селекторов, не нужно использовать БЭМ или придумывать длинные имена классов и следить за их уникальностью, хотя вы по-прежнему можете это делать, если хотите. Во время компиляции проекта Angular сам добавит к каждому элементу уникальный атрибут, например, _ngcontent-ool-c142 и заменит ваш класс .my-class на .my-class[_ngcontent-ool-c142] (это в случае ViewEncapsulation.Emulated, которая включена по умолчанию, если вы укажете `ViewEncapsulation.ShadowDom`, поведение будет другое, но результат тот же).

Теперь давайте представим, что у нас есть компонент ComponentA

Читать далее

Приходите к нам на завод, у нас тяжело

Время на прочтение10 мин
Охват и читатели144K
Короче, ИТ на заводе — это вам не романтика, особенно в нашем цифровом направлении.

Между «давайте этим займёмся» и «о, смотрите, какая гламурная ML-модель» лежит очень много того, про что не рассказывают. Сейчас расскажу.

Вначале у нас была банда энтузиастов из разных подразделений: несколько человек из ИТ, АСУТП, технологи со знанием статистики — чтобы смотреть с разных углов и видеть всё в целом, насколько это возможно. Начали с оценки перспектив. Они были необъятные — наше производство размером с небольшой город. Стали формироваться подразделения и направления: кто-то пошёл собирать роботов, кто-то в видеоаналитику, кто-то в лайтовый анализ данных, кто-то в самый хардкор — в дата-сатанизм. Работы у нас всегда больше, чем рук.

И на каждой из этих дорожек нас поджидали свои чудеса и сюрпризы.

Вот, к примеру, видеоаналитика:

  • Мы поняли, что ML в 50% задач не нужны. Нужна, например, камера, которая по цвету определяет, где есть железка, и смотрит её геометрию в реальности. Всё. Или другая камера, которая следит, чтобы в нужной зоне ничего не шевелилось.
  • Всё это прекрасно до первого солнечного зайчика. ML отлично показывают себя там, где вам лень строить крышу или ставить прожектор над конвейером.
  • У нас была идея, что мы можем сами в нейросети. Чуть не написали свой сервис для распознавания номеров вагонов. Казалось, делов-то на 20 минут, а у подрядчика это стоит 25 копеек за фото. Сделали свой, сферические вагоны в вакууме он определял хорошо. Потом приехало вот это:

image

А потом внезапно пошёл дождь. Знаете что? Вагоны под дождём становятся мокрыми. Это было неожиданно. Ещё они бывают после снега, битые, немытые, обновлённые криворукими малярами и ПРОЧИЕ. И в солнечных зайчиках тоже.

Мы накалывались на получении данных (кто сказал, что прошивка станка без костылей?), на роботизации, инфраструктуре, связи, на всём. Мы облазили весь завод, испачкались в солидоле, мазуте и масле. Но стали делать то, что должны, — оптимизировать мир.
Читать дальше →

Попытка получения исходников ядра от производителей, и последующее хамство от них

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

Нарушение лицензии и отказ технической поддержки предоставить исходники — одни из множества неприятностей. Особенно если речь идёт о довольно крупных компаниях, в моём случае — Digma. В этой статье рассказываю, как я пытался получить исходный код ядра Linux, который используется в планшете Digma Plane 4G 1538E.

Читать далее

8 книг по PostgreSQL: от баз данных с «нуля» для самоучек до руководства про БД в облаках

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

В целом, эта объектно-реляционная СУБД в дополнительном представлении не нуждается. Разработанная более 20 лет назад, она предназначена для создания и поддержки баз данных серверных приложений, в том числе ресурсоемких аналитических БД. Одна из особенностей PostgreSQL — открытый исходный код. Мы любим ее за развитое комьюнити и возможность развернуть «постгрю» самостоятельно и бесплатно.

Подготовили подборку полезных книг для тех, кто только начал или собирается работать с PostgreSQL. В нее вошли актуальные руководства на русском и английском языках. Если знаете еще одну-две отличных книги, смело рекомендуйте в комментариях.
Читать дальше →

Лучшие книги и статьи по Kubernetes для системного аналитика с noob-level в DevOps

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

Всё началось с того, что команде, с которой я работаю, предложили заказ на миграцию приложений из Docker Compose «во что‑нибудь более масштабируемое, отказоустойчивое и гибкое». Например, Ansible или Kubernetes. И всё это прекрасно, но у меня возникли проблемы. Как системному аналитику и по совместительству PM проекта, с минимальным опытом в DevOps, пришлось изрядно попотеть с пониманием многих вещей, касающихся Kubernetes. Под катом подробно о статьях и книгах, которые помогли мне разобраться с оркестратором, понять, чего хочет заказчик, сформировать требования к работе системы в целом, отказоустойчивости, масштабированию и безопасности.

Читать далее

Linux tuning to improve PostgreSQL performance. Илья Космодемьянский

Время на прочтение19 мин
Охват и читатели21K

Расшифровка доклада 2015 года Ильи Космодемьянского "Linux tuning to improve PostgreSQL performance"


Disclaimer: Замечу что доклад этот датирован ноябрем 2015 года — прошло больше 4 лет и прошло много времени. Рассматриваемая в докладе версия 9.4 уже не поддерживается. За прошедшие 4 года вышло 5 новых релизов PostgreSQL вышло и 15 версий ядра Linux. Если переписывать эти места, то получится в итоге другой доклад. Но здесь рассмотрен фундаментальный тюнинг Linux для PostgreSQL, который актуален и сейчас.


Angular. Работа с template-driven формами

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

Разработчики angular, как правило знают, что для работы с формами существует два подхода: reactive forms и template driven forms. Также, хорошо известно, что для работы с формами разработан такой функционал как валидация, однако исчерпывающе описано его применения для подхода reactive forms. Давайте рассмотрим как можно получить те же преимущества для template driven подхода.

Читать далее

RabbitMQ против Kafka: два разных подхода к обмену сообщениями

Время на прочтение18 мин
Охват и читатели400K

В прошлых двух статьях мы рассказывали об IIoT — индустриальном интернете вещей — строили архитектуру, чтобы принимать данные от сенсоров, паяли сами сенсоры. Краеугольным камнем архитектур IIoT да и вообще любых архитектур работающих с BigData является потоковая обработка данных. В ее основе лежит концепция передачи сообщений и очередей. Стандартом работы с рассылкой сообщений сейчас стала Apache Kafka. Однако, для того, чтобы разобраться в ее преимуществах (и понять ее недостатки) было бы хорошо разобраться в основах работы систем очередей в целом, механизмах их работы, шаблонах использования и основной функциональности.



Мы нашли отличную серию статей, которая сравнивает функциональность Apache Kafka и другого (незаслуженно игнорируемого) гиганта среди систем очередей — RabbitMQ. Эту серию статей мы перевели, снабдили своими комментариями и дополнили. Хотя серия и написана в декабре 2017 года, мир систем обмена сообщениями (и особенно Apache Kafka) меняется так быстро, что уже к лету 2018-го года некоторые вещи изменились.

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

NBomber как альтернатива JMeter для .NET разработчика

Время на прочтение11 мин
Охват и читатели15K

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

В этой статье мы рассмотрим NBomber как легкую для освоения альтернативу JMeter, а также постараемся ответить на вопрос "Почему я должен проводить нагрузочное тестирование именно с NBomber ?".

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

Читать далее

jsPDF + canvas: экспорт в PDF многостраничной таблицы на русском языке

Время на прочтение4 мин
Охват и читатели31K
Генерация PDF… Эта тема не нова, однако порой можно столкнуться с некоторыми тонкостями, в итоге став на тернистый путь велосипедостроения. Сегодня я расскажу, как разрабатывал один такой велосипед.

Мне понадобилось сделать генерацию отчетов в PDF. По ряду причин я решил сделать это на стороне клиента. Беглый поиск предоставил мне выбор между jsPDF и pdfmake. Остановился на первом. А теперь подробнее…

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

Как поместить ваше Next.js/React приложение в Docker

Время на прочтение4 мин
Охват и читатели23K

Привет, в переводе данного руководства вы сможете узнать как поместить ваше приложение в докер.

Докер – это открытая платформа для разработки, запуска и управления контейнерами на сервере и в облаке.

Для примера приложения в этом руководстве мы будем использовать Next.js.

Читать далее

Конфигурируем веб-сервер для Next.js

Время на прочтение3 мин
Охват и читатели32K

Казалось бы, что развёртывание приложений на Next.js не влечёт за собой трудностей - установил зависимости, сделал "npm run build && npm run start" и проксируешь запросы на 3000-ый порт, но для оптимальной работы предстоит сделать кое-что ещё.

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность