Как стать автором
Обновить
90.52
Рейтинг
KTS
Помогаем бизнесу создавать it-продукты
Сначала показывать

Structured concurrency в Swift

Блог компании KTS Разработка под iOS *Разработка мобильных приложений *Swift *
Перевод

Примечание переводчиков: В Swift 5.5 появилась новая концепция языка async/await. Мы решили опубликовать перевод статьи, чтобы разобраться с structured concurrency.

За время подготовки перевода оригинал успели переписать, и в статье ниже мы совместили обе версии: сначала идет развернутая версия, а в конце — краткие чек-листы с избранной информацией.

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 1.5K
Комментарии 4

Новости

Websocket-сервер для геолокации на asyncio

Блог компании KTS Python *Учебный процесс в IT
Tutorial

Привет!

Меня зовут Артем, я занимаюсь бэкенд-разработкой в KTS и веду курс по асинхронному программированию в школе Metaclass. 

11-го апреля у нас стартует 3-й поток курса. Чтобы показать, чему учатся наши студенты, мы провели live-code-вебинар по вебсокетам, на котором написали сервис, в котором пользователи могут делиться своей геопозицией в режиме реального времени. Хотите узнать, как создавать такие сервисы?

Хочу
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 3.8K
Комментарии 4

OAuth в мобильных приложениях

Блог компании KTS Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Kotlin *

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

Ни один сервис не обходится без логина. Часто в мобильных приложениях требуется интегрировать вход через сторонние соцсети — например, зайти через Google или VK. А при обучении мобильной разработке используются открытые API, где для авторизации используется OAuth.

Поэтому разработчикам мобильных приложений приходится работать с OAuth. В сети по этой теме есть разрозненные материалы. 

Этой статьей я попробую закрыть нюансы OAuth в мобильных приложениях: на какие моменты стоит обратить внимание, какие способы реализации выбрать. А также поделюсь опытом настройки OAuth в Android-приложении с использованием библиотеки AppAuth.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 5.9K
Комментарии 0

Пишем асинхронного Телеграм-бота

Блог компании KTS Python *
Tutorial

Сегодня я покажу, как написать своего Телеграм-бота на основе asyncio и aiohttp.

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

Статья предназначена для начинающих асинхронных программистов.

Читать далее
Всего голосов 33: ↑31 и ↓2 +29
Просмотры 14K
Комментарии 10

Подробно о том, как работают React Server Components

Блог компании KTS JavaScript *ReactJS *
Перевод

React Server Components (RSC) — интересная новая фича в React.

Есть вероятность, что в ближайшем будущем она сильно повлияет на скорость загрузки страниц, размер бандлов и то, как мы будем писать приложения на React. Мы в Plasmic (место работы автора) делаем визуальный конструктор для React и очень заботимся о производительности. Многие из наших клиентов используют Plasmic для создания маркетинговых сайтов и сайтов электронной коммерции, и производительность там критически важна. Так что хотя RSC — пока что ранняя экспериментальная функция React 18, мы разобрались, как она работает под капотом. Об этом и расскажем в статье.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Просмотры 2.8K
Комментарии 1

React Drag & Drop: «Игра в бутылки»

Блог компании KTS JavaScript *Разработка игр *ReactJS *
Tutorial

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

Помните, как в 1-й книге о Гарри Поттере Гермиона разгадывала логическую загадку с бутылочаками волшебных зелий? Сегодня расскажу, как мы создавали именно такую игру. 

У нас есть 5 бутылок и 2 полки. При старте игры на одной полке произвольно устанавливаются бутылки и их необходимо установить в правильном порядке на второй полке.

Мы воспользуемся react-dndstyled-componentsmobx и createPortal.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 4.7K
Комментарии 8

Автоматический подсчет показателей бизнес-юнитов

Блог компании KTS Управление проектами *Финансы в IT IT-компании

В нашей компании есть несколько юнитов, которые занимаются разными направлениями.

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

Читать
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 748
Комментарии 0

Удаление GIL из Python: заметки со встречи Python Core и Сэма Гросса

Блог компании KTS Python *
Перевод

Во время ежегодного спринта разработчиков ядра Python мы встретились с Сэмом Гроссом, автором nogil — fork в Python 3.9, который удаляет GIL. В статье — итоги встречи.

Среди вопросов, на которые ответил Сэм:

— Какова вероятность того, что nogil в итоге окажется нежизнеспособным для включения в CPython?
— Как вы планируете синхронизировать свою работу с main? Есть ли какие-то советы по порядку коммитов?
— Включение nogil во время запуска — это долгосрочная опция, или только на переходное время?
— В финале предполагается исключительно nogil, без вариантов вернуть GIL обратно?
— Что вы думаете о параллельном запуске нескольких интерпретаторов Python с одним GIL для каждого?

И многие другие. Полный список приведен в начале статьи.

Посмотреть полное содержание встречи
Всего голосов 26: ↑25 и ↓1 +24
Просмотры 10K
Комментарии 22

Курс начинающего бэкендера в Metaclass: интервью со студентом

Блог компании KTS Python *Учебный процесс в IT

Привет!

31-го января начинается новый поток нашей школы Метакласс по курсам начинающего бэкендера и фронтендера.

Мы поймали одного из наших стажеров, который проходил курс «Начинающий Backend-разработчик» и подробно расспросили: с какими знаниями пришел на курс, что было сложно, и какая главная польза была от обучения?

Приглашаем ознакомиться всех, кому интересны наши курсы

Читать
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 2.1K
Комментарии 1

«Галера»

Блог компании KTS Карьера в IT-индустрии Читальный зал IT-компании

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

Читать
Всего голосов 69: ↑38 и ↓31 +7
Просмотры 31K
Комментарии 120

Что нового в react-router v6

Блог компании KTS JavaScript *ReactJS *

Совсем недавно состоялся релиз 6-ой версии react-router. Вообще создатели react-router часто меняют подходы, используемые в библиотеке, но в этот раз они объединили лучшее, что было в прошлых версиях.

В статье приведен краткий обзор того, что поменялось.

Читать далее
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 28K
Комментарии 5

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

Блог компании KTS JavaScript *ReactJS *

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

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

Читать далее
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 2K
Комментарии 0

Remix: руководство по новому open source React-фреймворку

Блог компании KTS JavaScript *ReactJS *
Перевод

Последнее время кажется, что React-фреймворки выходят каждый день. Хотя каждому из них есть, что предложить, Remix особенно выделяется.

Remix — React-фреймворк для SSR (server-side rendering) от создателей react-router, который заопенсорсили совсем недавно.

В этой статье мы поговорим про некоторые удобные особенности Remix и создадим с его помощью приложение с погодой на SSR.

Читать далее
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 8.3K
Комментарии 5

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

Блог компании KTS Разработка мобильных приложений *Разработка под Android *Kotlin *
Перевод

Как и большинство 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, обычно на экране устройства.

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 3.9K
Комментарии 0

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

Блог компании KTS Системное администрирование *Python *DevOps *Kubernetes *
Tutorial

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

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

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

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 8.1K
Комментарии 9

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

Блог компании KTS Системное администрирование *DevOps *Kubernetes *
Перевод
Tutorial

Обычно вы можете запустить 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.

Читать далее
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 3.6K
Комментарии 10

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

Блог компании KTS Системное администрирование *DevOps *Kubernetes *

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

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

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

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

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Просмотры 8.9K
Комментарии 5

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

Блог компании KTS Разработка под Android *Учебный процесс в IT

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

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

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

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 2.3K
Комментарии 3

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

Блог компании KTS Децентрализованные сети Информационная безопасность *Лайфхаки для гиков

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

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

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

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

Читать далее
Всего голосов 40: ↑36 и ↓4 +32
Просмотры 17K
Комментарии 64

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

Блог компании KTS Системное администрирование *DevOps *Kubernetes *
Перевод

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 6.5K
Комментарии 10
1

Информация

Дата основания
Местоположение
Россия
Сайт
kts.studio
Численность
51–100 человек
Дата регистрации
Представитель