Как стать автором
Обновить
246.31
KTS
Создаем цифровые продукты для бизнеса
Сначала показывать

Этапы работы Jetpack Compose

Время на прочтение9 мин
Количество просмотров14K

Как и большинство UI-фреймворков, Compose рендерит кадр в несколько различных этапов. В системе Android View есть 3 этапа: Measure, Layout и Drawing. Compose очень похож, но имеет важный дополнительный этап Composition в начале.

1. Composition: какой UI показывать. Compose запускает composable-функции и создает описание вашего UI 

2. Layout: где размещать UI. Этот шаг состоит из двух: измерение и размещение (measurement и placement). Элементы верстки измеряют и помещают самих себя и все дочерние элементы в 2D-координатах.

3. Drawing: как рендерить. UI-элементы отрисовываются в Canvas, обычно на экране устройства.

Читать далее

Деплоим приложение на Django в Kubernetes с нуля

Время на прочтение19 мин
Количество просмотров24K

Привет! Меня зовут Игорь, я управляющий партнер в KTS.

Нашей компании уже 6 лет, и 4 из них мы живем с Kubernetes. До этого мы испытали все варианты деплоя приложений на серверах: начиная от простого git pull до ci/cd на нескольких серверах.

Сегодня мы на практике разберем, что нужно делать, чтобы ваше приложение оказалось в Интернете. Какие-то моменты я опущу, чтобы на забираться слишком глубоко.

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

Читать далее

Запускаем HAProxy Kubernetes Ingress Controller вне Kubernetes-кластера

Время на прочтение11 мин
Количество просмотров14K

Обычно вы можете запустить HAProxy Kubernetes Ingress Controller как pod внутри Kubernetes-кластера. Как pod, он имеет доступ к другим pod, потому что они используют внутреннюю сеть Kubernetes-кластера. Это дает возможность управлять маршрутизацией и балансировать трафик к приложениям, запущенным в кластере. Но возникает проблема, как передать внешний трафик во внутренний Ingress Controller.

В статье мы установим Calico в качестве сетевого плагина в Kubernetes и настроим маршрутизацию с помощью протокола BGP. В продакшне BGP будет работать на третьем уровне сети, но для демонстрации этого мы используем в качестве роутера демона BIRD, установленного на той же VM, что Ingress Controller.

Мы пошагово разберем, как запустить внешний HAProxy Kubernetes Ingress Controller и как установить Kubernetes-кластер с Calico.

Читать далее

Kubernetes и другие оркестраторы

Время на прочтение13 мин
Количество просмотров62K

Привет! Меня зовут Леонид, я DevOps-инженер в компании KTS. 

В этой статье я рассмотрю различные оркестраторы и объясню, почему Kubernetes — лучший выбор.

Нашей компании уже 6 лет, и 4 из них мы живем с Kubernetes. До этого мы испытали все варианты деплоя приложений на серверах: начиная от простого git pull до ci/cd на нескольких серверах. 

За небольшой срок в 4 года мы набрали много опыта. Начинали с вопроса, который, возможно, стоит сейчас перед вами: «Какой оркестратор выбрать?» Мы рассмотрели разные варианты, и в итоге остановились на Kubernetes. В статье расскажу, почему.

Читать далее

Мой опыт проведения курса по Android

Время на прочтение10 мин
Количество просмотров3.2K

Привет! Меня зовут Мялкин Максим, я занимаюсь мобильной разработкой в KTS

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

В статье расскажу подробно, сколько я потратил времени, какие были проблемы, какие выводы я сделал.

Читать далее

Как не стать жертвой IT корпораций?

Время на прочтение10 мин
Количество просмотров21K

Практически каждый день на просторах Интернета появляется очередной привлекательные сервис, призванный сделать жизнь комфортнее или привнести в нее новый пользовательский опыт: вроде сервисов доставки еды в автомобиль, VR-чатов и метавселенной Facebook.

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

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

Например: NewPipe и FreeTube вместо YouTube, Matrix вместо WhatsApp и Telegram, DuckDuckGo вместо Google.

Читать далее

Сохраняем кластеры Kubernetes в чистоте и порядке

Время на прочтение9 мин
Количество просмотров16K

Одновременно с ростом кластера растет количество ресурсов, volume и других API-объектов. Рано или поздно вы упретесь в потолок, будь то etcd, память или процессор. Зачем подвергать себя ненужной боли и проблемам, если можно установить простые — хотя и довольно изощренные — правила? Вы можете настроить автоматизацию и мониторинг, которые будут содержать кластер в аккуратном состоянии. В статье разберемся, как избавиться от лишних нагрузок, через которые утекают ресурсы, и устаревших накопившихся объектов.

Читать далее

Как разработчикам начать вести Телеграм-канал

Время на прочтение5 мин
Количество просмотров4.6K


Меня зовут Александр, я руковожу backend-разработкой в КТS. Мы разрабатываем сложные высоконагруженные сервисы для крупных корпораций и рекламные спецпроекты.

У нас есть Телеграм-канал «Программисты делают бизнес». Мы ведем его недавно — первый пост вышел в декабре 2020 года.

В статье рассказал о том, зачем мы начали вести канал, как придумывали темы, начали делать посты и оптимизировали процессы. Тут обо всем, от начала до результата, что есть сейчас.

Читать далее

Как проводить собеседования объективно и с пользой

Время на прочтение10 мин
Количество просмотров19K

Всем привет! Меня зовут Виталий, я ведущий фронтенд-разработчик в KTS.

Полтора года назад я начал участвовать в найме новых сотрудников: проводить собеседования и оценивать навыки кандидатов.

В статье поделюсь выводами за это время. Расскажу, как сделать результат собеседования объективным, а процесс — более комфортным для кандидата и интервьюера.

Читать далее

Пишем свой Google, или асинхронный краулер с rate limits на Python

Время на прочтение11 мин
Количество просмотров14K

Меня зовут Александр, я руковожу backend-разработкой в КТS. Сегодня расскажу, как написать асинхронный краулер.

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

Статья написана по мотивам вебинара, который мы провели в рамках нового курса «Асинхронное программирование на Python для начинающих». Курс стартует 18 октября, поэтому, если вам интересно — загляните посмотреть.

Что будет в статье:

1. Цель
2. Исходный код
3. Планировщик
4. Задача для краулера
5. Пробный запуск
6. Промежуточный итог
7. Функции put и join
8. Semaphore
9. Остановка фонового планировщика
10. Работа краулера на примере обкачки нашего блога на Хабре
11. Заключение

Читать далее

От тестов до IDE в браузере: как мы разрабатывали систему проверки студентов для онлайн-школы

Время на прочтение9 мин
Количество просмотров2.5K

С 2018 года компания KTS проводит курсы для разработчиков и менеджеров. И в этом году мы решили запустить наши курсы на своей собственной платформе для онлайн-обучения (LMS).

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

Читать далее

Создание мини-игры «Шкатулка» с помощью JS + CSS

Время на прочтение10 мин
Количество просмотров6.9K

Привет!

Меня зовут Сергей, я фронтенд-разработчик отдела спецпроектов KTS. Наш отдел занимается разработкой веб-приложений для промокампаний.

Год назад перед нами встала задача: сделать игру-квест с диалогами, 360-панорамой, drag-n-drop, звуками и мини-играми.

В этой статье расскажу про последнюю часть: как сделать мини-игру со звуками с помощью react, styled-components, mobx и howler.

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

Читать далее

Первые шаги в aiohttp, часть 3: публикуем приложение в Интернете

Время на прочтение8 мин
Количество просмотров7.6K

Сегодня разберем заключительную часть цикла «Первые шаги в aiohttp». В первой статье мы создали и настроили проект, а во второй подключили базу данных.

В этой части статьи мы рассмотрим размещение нашего веб-сервиса в Интернете, используя платформу Heroku.

Асинхронное программирование — большая тема. Если хотите разобраться в ней подробнее, приходите к нам на курс. 

Читать далее

Первые шаги в aiohttp, часть 2: подключаем базу данных к приложению

Время на прочтение16 мин
Количество просмотров25K

Привет!

В прошлой статье мы познакомились с aiohttp и написали на нем свое первое веб-приложение: стену с отзывами.

В этой статье мы продолжим изучение и подключим к нашему приложению базу данных PostgreSQL, используя для этого Gino, SQLAlchemy и Aiopg, а также автоматически сгенерируем и применим миграции с помощью Alembic.

Если вам интересно асинхронное программирование, приходите к нам на курс в KTS, где мы гораздо подробнее разберем эту тему.

Читать далее

Игра с голосовым управлением на React и Phaser

Время на прочтение10 мин
Количество просмотров5.5K

В апреле 2020 года перед отделом рекламных спецпроектов KTS встала непростая задача: разработать игру-раннер с управлением голосом в браузере.

В этой статье я расскажу, как мы делали этот проект, какие технические решения принимали, какие технологии использовали и с какими проблемами сталкивались.
При разработке мы использовали TS + React + MobX и Phaser в качестве игрового движка.

Читать далее

Создаем текстовый редактор на React.js

Время на прочтение17 мин
Количество просмотров44K

Привет! Меня зовут Данила, и я фронтенд-разработчик в KTS.

Однажды в одном из своих проектов мне потребовалось реализовать кастомный текстовый редактор на React.js. Задача показалась мне довольно интересной, и я решил рассказать о своем опыте. В статье я поэтапно покажу, как можно создать текстовый редактор с базовыми функциями.

Надеюсь, информация будет полезной и сэкономит кому-то время и силы.

Читать далее

selectel-exporter — экспортер для manage-баз данных

Время на прочтение4 мин
Количество просмотров2.4K

Мы в KTS на многих проектах пользуемся услугами managed database от selectel. За этими кластерами нужно следить, и делать это хотелось бы из одной точки. Этой точкой у нас является prometheus, alertmanager и grafana. 

Из коробки у selectel нет prometheus exporter для manage-баз данных. Есть внутренние графики и мониторинг, но использовать их затруднительно. Поэтому мы написали свой selectel-exporter, который использует selectel API.

В статье расскажем, почему решили его написать и расскажем, что он умеет.

Читать далее

Метакласс — школа от KTS

Время на прочтение8 мин
Количество просмотров3.1K

Привет!

В KTS мы уделяем особое внимание наставничеству и росту разработчиков. С самого создания компании старшие разработчики преподавали в ВУЗах — МГТУ им. Баумана, Московский политех — и в 2018 году мы решили сделать собственную школу разработки.

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

Читать далее

Пятёрочка — Интегрируй меня полностью

Время на прочтение23 мин
Количество просмотров11K

Мы в KTS делаем проект для Пятерочки – новый личный кабинет сотрудника. Продукт объединяет уже существующие сервисы и автоматизирует бизнес-процессы, которые раньше выполнялись вручную.

Над личным кабинетом работает много команд, поэтому нужен удобный механизм параллельной разработки модулей-микрофронтендов. Мы попробовали три способа встраивания: iframe, NPM-пакеты и Webpack Module Federation. В статье анализируем преимущества и недостатки каждого из них и рассказываем, почему переходили от одной технологии к другой.

Поехали!

Собираем свою библиотеку для SSR на React

Время на прочтение14 мин
Количество просмотров7.9K

Привет, меня зовут Сергей и я фронтендер в KTS.

Server Side Rendering часто применяется в разных проектах. Существуют крутые фреймворки для React – NextJS и Gatsby. Но в то же время любой фреймворк диктует архитектуру приложения, а это приводит к проблемам в больших приложениях. Поэтому часто можно встретить собственные сборки для SSR.

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

Читать далее

Информация

Сайт
kts.tech
Дата регистрации
Дата основания
Численность
101–200 человек
Местоположение
Россия