Pull to refresh

Technotext

Technical Governance для IDP на 7000 разработчиков

Reading time14 min
Views5.7K

Всем привет, меня зовут Дмитрий Гаевский, я руковожу созданием внутренней платформы для разработчиков в Тинькофф. Последние два года стали знаковыми для российской ИТ-отрасли с точки зрения «распаковки» тем о таких платформах. Крупные технологические компании начали делиться опытом, и сегодня я расскажу о нашем кейсе. 

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments4

Полдюжины правил для статического анализатора Detekt

Reading time4 min
Views3K

Техлид Android-команды KODE Дмитрий Суздалев выпустил полноценный опенсорс-проект: набор улучшений для статического анализатора Kotlin-кода Detekt, которые обучают его проверять соблюдение различных правил при использовании библиотеки Jetpack Compose.

Набор правил попал в еженедельный Compose Newsletter, так что теперь самое время поделиться им с сообществом Хабра.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments0

Кто такой data-инженер в Тинькофф и как им стать

Reading time7 min
Views14K

Привет! Меня зовут Михаил Иванов, я работаю архитектором DWH в Тинькофф и занимаюсь развитием Batch ETL направления платформы обработки данных. Я расскажу о направлении data engineering в Тинькофф, о том, чем занимаются data-инженеры и как попасть к нам в команду.

Читать далее
Total votes 16: ↑12 and ↓4+13
Comments14

Core Data в современном интерьере SwftUI. Взаимосвязь объектов. Динамический @FetchRequest. часть 2

Reading time18 min
Views2.5K
В первой части этой статьи мы рассмотрели основы работы с Core Data в SwiftUI на примере шаблонного приложения, предложенное Apple. Это было тривиальное приложение, в котором всего лишь один объект Core Data с одним единственным атрибутом, и тем не менее было показано, что давая объектам Core Data дополнительную функциональность с помощью „синтаксического сахара“ в расширении extension их классов class, автоматически генерируемых Xcode, можно добиться комфортной работы с Core Data в SwiftUI. Эти классы являются миниатюрными ViewModels для наших SwiftUI Views, так как они реализуют протоколы ObservableObject и Identifiable. И Apple научила их прекрасно «играть» на поле реактивности SwiftUI.

Во второй части статьи я хочу показать, что роль автоматически генерируемых Xcode классов class для объектов Core Data существенно возрастает при работе с реальными взаимосвязанными объектами — рейсами Flights, аэропортами Airports и авиакомпаниями AirLines, которые мы получаем в интернете на сайте компании FlightAware и размещаем в локальной базе данных Core Data.

Создаваемое в этой части статьи приложение с именем CoreDataSwiftUIFlights является сильно упрощенной модификацией реального приложения Enroute из стэнфордских курсов CS193P 2020, которое оперативно подкачивает данные с сервера FlightAware и требует от вас платной подписки на сервис FlightAware .

Однако, просто зарегистрировавшись на сайте компании FlightAware, вы можете бесплатно получить временной срез любой интересующей вас информации о рейсах Flights, аэропортах Airports и авиакомпаниях Airlines в JSON формате. Эти данные размещаются в Core Data с учетом взаимосвязей этих объектов, и вы можете не просто видеть всю информацию о рейсах, но и делать различные запросы к ней с помощью фильтров и сортировать ее нужным вам способом.



Код находится на Github.
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments0

Делаем видеозвонки с помощью Angular, WebRTC и Openvidu

Reading time6 min
Views7.4K

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

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

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments2

Лабиринты из линий: превращаем сложный сценарий в понятную схему на языке ДРАКОН

Reading time7 min
Views5.1K

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

Меня зовут Кирилл Богатов, я дизайнер разговорных продуктов в KODE. Я нашёл способ упрощать сложные схемы при помощи языка ДРАКОН. В статье расскажу о том, как я к нему пришёл, чем он так хорош и как с его помощью мы стали тратить на проектирование почти вдвое меньше времени.

Читать далее
Total votes 9: ↑7 and ↓2+7
Comments71

Как ускорить Python с помощью C-расширений. Часть 2

Reading time10 min
Views5.6K

Привет, Хабр! Меня зовут Игорь Алимов, я ведущий разработчик группы Python в МТС Digital, и это вторая часть статьи, посвященной тому, как писать быстрый код на Python с использованием C-расширений. Я расскажу о всех нюансах и приведу конкретный пример применения этого метода.

Первую часть статьи читайте здесь, чтобы увидеть продолжение – переходите под кат!

Читать далее
Total votes 9: ↑9 and ↓0+9
Comments4

И мы улетели…но

Reading time8 min
Views46K

В 2013 году я уволился из одной большой «зеленой» компании (не банк) и уехал на далекий «зеленый континент» с целью «на людей посмотреть, себя показать». В мыслях было, при удачном стечении обстоятельств, не только выучить английский язык, но и остаться на ПМЖ. Было все это задолго до того, как подобное стало мейнстримом.

Спустя полгода я вернулся обратно на Родину. У меня не было тогда «взгляда побитой собаки», ощущения, что я неудачник, который не смог ассимилироваться и все в этом роде. Было стойкое понимание, что я не готов жить и работать разнорабочим в чужой стране за 5 долларов час…

Поговорил с коллегами по М.Видео-Эльдорадо и друзьями из других компаний о том, как сложился или не сложился опыт их эмиграции и почему. Под катом несколько реальных историй ребят, принявших решение уехать или оставаться в стране в феврале-марте 2022 года. Кто-то уехал и остался, кто-то вернулся. Кто-то ни на миллиметр не сдвинулся с места. Все-таки эмиграция и туризм, или «зимовка» (как хотите) разные вещи.

Далее по тексту вообще нет цели топить «за» или «против». Лично мне было интересно узнать об опыте разных людей и сравнить со своим 10-летней давности. Многое совпало. Go под кат! А потом в комментарии.

Читать далее
Total votes 71: ↑51 and ↓20+45
Comments392

Такие «джуны» нам не нужны

Reading time5 min
Views168K

Не так давно наткнулся на статью в журнале Forbes. Основной ее посыл - молодым ИТ-специалистам все сложнее найти работу. Если раньше на это требовалось один-три месяца, то сейчас полгода и больше. Что тут скажешь, джун джуну рознь.

Читать далее
Total votes 126: ↑107 and ↓19+109
Comments347

Сделай так, чтобы оно больше не падало

Reading time8 min
Views7.5K

Привет, меня зовут Ярослав Иссинский, я руководитель Технической платформы в группе «М.Видео-Эльдорадо». Сегодня я хочу рассказать про переход в публичное облако на примере крупной ритейл-компании.

Читать далее
Total votes 27: ↑27 and ↓0+27
Comments11

Магазин в 60-мерном пространстве или как сделать A/B-тесты точнее и надёжнее

Reading time14 min
Views3.9K

Всем привет! Меня зовут Костя Гусев @nevoy, и в М.Видео-Эльдорадо моя команда развивает внутренние и партнёрские продукты. Перед тем, как поменять ассортимент или цены на полках 1 300 розничных магазинов, мы должны убедиться, что новое товарное предложение, как минимум, не приведёт к оттоку текущих покупателей, а еще лучше – привлечет новых. Для проведения подобных экспериментов мы пересмотрели подход к A/B-тестированию с учетом нашей офлайн-специфики, о чем и хотим рассказать в этой статье. 

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments3

Как мы распознавали птиц при помощи камер и искусственного интеллекта

Reading time11 min
Views3.4K

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

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

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments1

Когда лучше делегировать, а когда оставить задачу себе? Инструкция для начинающих руководителей

Reading time7 min
Views13K

Представьте айсберг. На его верхушке знание о том, что руководителю нужно уметь делегировать задачи. А вот как именно это делать и почему бывает очень больно — скрыто в темных водах. Под катом разбираем барьеры, приводим примеры из практики тимлидов Selectel и даем советы. А еще принимаем ваши советы по делегированию — делитесь ими в комментариях.
Читать дальше →
Total votes 33: ↑31 and ↓2+38
Comments14

DIY. Книги для всех, даром

Reading time7 min
Views35K

Lingtrain cover


⚡ Градиент обреченный


Upd. 11.06.2022 Многие заинтересовались генерацией изображений нейросетями. Вот Colab (интерактивная среда для запуска кода) для рисования картинок в стиле pixel art по текстовому описанию. Просто запускайте, ближе к концу увидете ячейку для ввода текста. Примеры картинок из Colab'а в комментариях.


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


Сегодня же я расскажу как при помощи него создать полноценную параллельную книгу на разных языках. Книга будет красиво сверстана в PDF, иметь содержание, обложку и две выровненные по смыслу колонки текста. Такие книги служат отличным подспорьем при изучении иностранного языка. Найти их, однако, не так просто, и скорее всего это будут книги для детей или избранная классика. Полный пример готовой книги можно посмотреть здесь. Под капотом у приложения NLP модели, поддерживаемых языков более ста.


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

Сделать книжку
Total votes 76: ↑76 and ↓0+76
Comments50

Шахматы и вопрос разумности больших языковых моделей

Reading time23 min
Views11K


Масштабирование больших языковых моделей (LLM) является захватывающей темой, поскольку рассматривается как один из лучших кандидатов на пути к ИИ человеческого уровня. Уже сейчас LLM могут отвечать на вопросы, генерировать реалистичные статьи и поддерживать, казалось бы, осмысленный разговор на широкий круг тем. Некоторые исследователи ИИ даже утверждают, что LLM возможно уже могут «слегка обладать сознанием», а журналисты выпускают статьи вроде «роботы захватят весь мир» с картинками терминаторов. Однако, скептики возражают, что большинство таких моделей — это просто большая ассоциативная память, без истинного понимания реальности и неспособная к определенным типам задач. Одна из таких задач, которая привлекла мое внимание — игра в шахматы. В то время как специализированные шахматные движки давно обыгрывают чемпионов мира, даже очень большие языковые модели, такие как GPT-3 с сотнями миллиардов параметров едва справляются с такой простой задачей как мат в один ход. А с такими способностями к стратегии, эти модели едва ли справятся с завоеванием мира. Поэтому как шахматист со стажем и по совместительству разработчик нейросетей я решила попробовать устранить этот недостаток.
Читать дальше →
Total votes 70: ↑68 and ↓2+90
Comments50

Что мы действительно (не)знаем о наличии сознания у сверхбольших нейросетей?

Reading time28 min
Views53K
image

В последнее время чаще стали появляется новости о том, что тот или иной эксперт в области ИИ заявил про появление у машины сознания. То Илья Суцкевер, директор по науке в OpenAI напишет о том, что «может быть, сегодняшние большие нейронные сети немножко обладают сознанием». А то и вовсе инженер Гугла Леймон Блейк найдет у искусственного интеллекта LaMDA разум и сознание и выложит в доказательство диалоги с ним. Резонанс последнего эпизода вообще большой — после объявления о том, что Блека отстранили от работы, а он в свою очередь собирается нанять для ИИ адвоката, разные конспирологические версии появились даже в комментариях на Хабре. Ну и чего бы им не появиться, если реально серьезный разбор вопроса о «сознании» нейросети с технической точки зрения найти трудно. Кроме того, что «комиссия по этике Гугл рассмотрела вопрос и решила, что ИИ не обладает сознанием», да еще ряда давно известных общефилософских размышлений ничего особо и нет. Поэтому, как человек потративший по роду работы более сотни часов своей жизни на общение с моделями такого рода и поиску в них проблем, я решил, что будет полезно восполнить пробел более подробным обзором вопроса. Завесу мистической тайны сознания нейросетей приподнимаем под катом )
Читать дальше →
Total votes 106: ↑103 and ↓3+131
Comments230

Как создать свою СУБД с нуля и не сойти с ума. Практическое пособие начинающему некроманту. Часть первая

Reading time43 min
Views30K

Наступил Апокалипсис.

Нет, не стоит бежать запасаться банками с консервами и крышками отечественной бай-колы! Апокалипсис произошёл только в нашей фантазии и с определённой целью — чтобы проверить, а может ли человек, обладающий только книгами по теме и стандартной библиотекой языка, воссоздать инструмент, который будет служить ему верой и правдой?

Так родился учебный проект SicQL, реляционная СУБД, чей символ — сова — это олицетворение силы знаний и мудрости. Олицетворение тех знаний и той мудрости, которые мы получим, создав с нуля то, чем мы пользуемся каждый день, может, не осознавая всей сложности таких инструментов.

Приглашаю присоединиться к увлекательному путешествию!

Принять приглашение на борт
Total votes 54: ↑53 and ↓1+64
Comments62

Разработка источника питания со входным напряжением 1000В на основе карбид-кремниевых транзисторов

Reading time5 min
Views11K

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



Рассказываю про эту разработку.

Читать дальше →
Total votes 43: ↑43 and ↓0+43
Comments41

Составляем документацию разработчика пошагово без диет и тренировок

Reading time8 min
Views18K

Недостаточно просто написать инструкции — важно, как, в каком порядке и где вы их разместите. 

Привет! Это Теодора — технический писатель Платформы, жизненно важного департамента Ozon. Документация для нас имеет большое значение, потому что вся компания пользуется нашими разработками: инфраструктурой as a service; фреймворками и библиотеками; инструментами для работы с базами данных и аналитикой и прочим. Сотни инженеров ежедневно обращаются к нашим сервисам и нуждаются в их описании.

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

Читать далее
Total votes 47: ↑45 and ↓2+51
Comments6

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Reading time37 min
Views92K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Total votes 66: ↑65 and ↓1+83
Comments27