Pull to refresh
45
15
Сергей Цыпанов @tsypanov

Разработчик

Send message

Работа с асинхронными операциями с помощью Kotlin Coroutines

Level of difficultyMedium
Reading time20 min
Views41K

Всем привет! Меня зовут Сергей, я Android-разработчик Студии Олега Чулакова на проектах Сбера. Недавно я написал статью Многопоточность в мобильной разработке. В ней был затронут один из наиболее популярных инструментов для работы с асинхронными операциями — Kotlin Coroutines. 

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

Моя цель — помочь вам овладеть Kotlin Coroutines и научиться использовать их для упрощения и оптимизации вашего кода, обеспечения более гладкого пользовательского опыта и более эффективного управления асинхронными операциями. Приятного прочтения, мы начинаем!

Читать далее

Возвращаем 2007 год, или делаем Интернет без блокировок

Level of difficultyMedium
Reading time5 min
Views71K

Как известно, в 2007 году кроме того, что деревья были выше, а трава зеленей, еще и в Интернете не было особых ограничений - можно было открыть почти любой сайт и наслаждаться им. До ковровых блокировок Telegram оставалось ещё 10 лет... К сожалению, в наше время такой возможности уже нет. Причины тут всем известны, в частности, некоторые компании уже не предоставляют своих услуг в России.

Хорошо, что существует возможность в рамках домашней сети восстановить свободный Интернет таким, каким он был в 2007-м. Именно этим мы и займемся. Стоит отметить, что в 2007 году довольно часто можно было встретить подключения на скорости 64-128 Кб/с, а то и вовсе dial-up; Wi-Fi был редкостью, а мобильная связь - довольно дорогим удовольствием. Однако, эти особенности того времени мы постараемся не воспроизводить.

Представляю вашему вниманию Freeroute - простой маршрутизатор, который позволяет направлять трафик на разные шлюзы в зависимости от домена назначения. Free в названии, как водится, означает свободный, а не бесплатный.

Читать далее

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

Reading time37 min
Views114K

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

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

В этой статье вы увидите пошаговое создание 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 с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее

8-битный денди-ноутбук за 400 рублей из начала нулевых. Какой «компьютер» смогли сделать китайцы на базе железа «Денди»?

Level of difficultyEasy
Reading time10 min
Views14K
image

Друзья! А вы заметили, что NES, которая более известна у нас как Dendy, наряду с сегой стала консолью на много поколений вперёд? Даже спустя практически 40 лет после выхода, она не теряет актуальности и до сих пор взращивает все новые и новые поколения геймеров. 80-ые (Famicom/NES), 90-ые (тайваньские клоны NES, известные у нас как Dendy и Сюбор), 2000-ые («денди на капле» или новоделы), десятые и даже двадцатые (сейчас железные клоны уже не делают, но делают довольно мощные стики с эмуляторами и встроенными ромами). Для многих из нас NES/SMD стали первыми игровыми платформами, за которыми мы проводили часами на пузатых и изрядно уставших ЭЛТ-телевизорах. Недавно, листая онлайн-барахолки, я нашёл очень интересную вариацию денди: в виде эдакого «ноутбука», с настоящей рабочей клавиатурой, мышкой и двумя геймпадами. Сегодня мы с вами: осмотрим интересную покупку, узнаем, что у такого «ноутбука» под капотом, посмотрим на местный закос под Windows с настоящим бэйсиком и DOS. Интересно? Тогда жду вас под катом!
Читать дальше →

Гасить ипотеку досрочно или инвестировать? Разбираемся, как не оказаться без денег и без квартиры

Reading time7 min
Views46K

Кто‑то говорит, что ипотека — это жуткая переплата банку, и ее нужно закрывать всеми силами как можно скорее. А кто‑то, наоборот — что это дешевый кредит, который лучше не гасить, а направить эти деньги на инвестиции (в STONKS). В этой статье мы попробуем понять, каким образом лучше подходить к гашению ипотеки, и что там может пойти не так.

Читать далее

Импортозамещение, которое мы потеряли (ч.2): АСУ ТП по телеграфному кабелю, нейронные сети и РСУБД в 60-х

Reading time8 min
Views9.7K

Пилотная статья понравилась комьюнити, а значит продолжаем рассказывать о ранних советских разработках, предвосхитивших современные достижения отрасли, а порой, опередивших своё время. Наш рассказ будет не полным без упоминания проектов АН УССР, наиболее важная часть которых была реализована в процессе разработки и использования ЭВМ “Киев”. Под катом речь пойдет о проектах управления технологическими процессами на расстоянии 500 км, разработке и применении прообраза современных реляционных систем управления базами данных, а также первых советских опытах по машинному обучению и созданию искусственного интеллекта в 1950-х - 1960-х.

Читать далее

Impress me или как решить задачу на интервью

Reading time2 min
Views7.2K

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

Поясню. Джуниор разработчик проходит собеседование. Ему дали следующее задание:

Одна из задач, которую мы даём соискателям: написать код, который выводит числа от 0 до 1000, которые делятся на 3, но не делятся на 5, и сумма цифр в которых меньше десяти.

Читать далее

РЕД ОС: первые впечатления от импортозамещенной операционки

Reading time6 min
Views165K

Разработчики РЕД ОС избавились от одной болезни Linux, но ничего не смогли сделать с другой...

Читать далее

Про оптимизацию кода

Reading time2 min
Views1.1K
Кодер Один мой знакомый получил работу в очень престижной конторе по разработке устройств связи уоки-токи, мобильные и так далее. Контора надо сказать очень большая и входит в ТОП-50 по этой сфере индустрии.

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

Достаточно ли вы умны для того, чтобы работать на Илона Маска?

Reading time3 min
Views61K
image

Задачка на логическое мышление, которую Илон Маск любил задавать на интервью в ранние дни руководства компанией SpaceX, а также несколько производных от неё задач.

Вы стоите на поверхности Земли. Затем вы начинаете идти: проходите один километр на юг, один на запад и один на север. В итоге вы оказываетесь в начальной точке. Где вы стоите?

Чаще всего кандидаты отвечают «на Северном полюсе», и это правильный ответ. Эта задачка очень старая – самое раннее её упоминание датируется аж 1821 годом. Однако, как утверждает Эшли Вэнс, биограф Маска, тот, получив такой ответ, задавал следующий вопрос: «Хорошо, а есть ли ещё такие точки?»
Читать дальше →

Есть ли в вашей IT команде саботажник?

Reading time8 min
Views65K

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

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

Читать далее

«Спроси почему, %&@$#?», или как саботажники захватывают власть в коллективе

Reading time7 min
Views33K

Предыдущая статья про саботажников набрала более 55 тысяч читателей, став одной из самых читаемых на «Хабре». И понятно, почему. Саботажники есть везде – как дырки в сыре, они пронизывают практически любой профессиональный коллектив. Сегодня мы разберём, как саботажники захватывают власть.

Читать далее

Сюрпризы конкатенации

Reading time5 min
Views8.4K

Вопрос в стиле головоломок с offline-конференций: Что выведет этот код при запуске?


import java.util.concurrent.atomic.AtomicInteger;

public class Disturbed {

    public static void main(String... args) {
        AtomicInteger counter = new AtomicInteger(1);
        System.out.println(
            "First two positive numbers: " +
            counter + 
            ", " +
            counter.incrementAndGet()
        );
    }

}

Помедитируйте немного над кодом и приходите за ответом под кат.

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

Процессор Эльбрус — почему статья о тупике несостоятельна

Reading time9 min
Views74K

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

Читать далее

Пишем тысячи лог файлов одновременно

Reading time2 min
Views6.4K

Привет, Товарищи!


Что будет, если в приложении Spring Boot выставить logging.level.root=TRACE?


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

Здоровье индексов в 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. И понеслось… Копнув поглубже, я обнаружил целый ворох проблем в конфигурации БД и, засучив рукава, с блеском в глазах принялся их чинить.

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

Как восстановить светодиодную лампу за 2 минуты при минимальных навыках работы с паяльником и знаниях об электронике

Reading time4 min
Views488K

image


Исторически так сложилось, что в моем загородном доме все освещение сделано с помощью светодиодных ламп мощностью 10-11, а в последнее время и 12-13 вт с цоколем Е27. Лампы накаливания на площадь 200 м2 тратили бы слишком много электроэнергии, что не вписывалось бы в концепцию моего энергоэффективного дома с приличным утеплением, твердотопливным дровяным котлом, бесперебойником на автомобильных аккумуляторах и рекуператором. Люминесцентные "энергосберегайки" я невзлюбил с первого взгляда — они часто перегорают, не имеют той энергоэффективности что светодиодные, хрупкие, токсичные при случайном разбивании, мерцают и имеют неприятный спектр.

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

Ускоренная разработка с помощью Spring Boot DevTools

Reading time8 min
Views40K
Как ускорить разработку на Spring Boot с DevTools и сделать этот процесс более приятным и продуктивным?

Настройка


Как обычно при разработке на Spring Boot, настройка достаточно проста. Все, что вам нужно сделать, это добавить правильную зависимость, и готово. Spring Boot находит ее и автоматически настраивает DevTools соответственно.
Читать дальше →

Сергей Зонов: «Первый „Спектрум“ я сделал потому, что мне было интересно»

Reading time12 min
Views48K


Музей DataArt существует 10 лет, некоторые экспонаты мы уже представляли в виде постеров. Коллекция продолжает расширяться, но теперь мы решили дополнить ее интервью с людьми, повлиявшими на историю ИТ. Это первый из серии исторических материалов, которые будут выходить в нашем блоге регулярно.

В первой половине 1980-х популярным компьютером в Европе был ZX Spectrum. Когда он пришел в СССР, местные умельцы начали его копировать, перерабатывать и улучшать. Одним из тех, кто сделал свой вариант «Спектрума», был Сергей Зонов. По его схемам собраны десятки тысяч компьютеров.
Читать дальше →

Интервью с Владимиром Лихачевым, отцом Николая Лихачева, более известного как Крис Касперски

Reading time17 min
Views36K
Привет, Хабравчане!

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

Отец Николая Лихачева, более известного как Крис Касперски, рассказывает о том, каким был его неординарный и знаменитый сын

– Планируете ли вы написать книгу о сыне? Если да, то о чем она будет и какие годы жизни сына вы бы хотели описать?

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

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

– Правда. Отношение в школе к Николаю было неоднозначное: кто-то относился к нему ревниво, с завистью. Одноклассники его часто не понимали, старшеклассники стеснялись признавать, что он в чем-то умнее их. Будучи девятиклассником, сын объяснял некоторым десятиклассникам сложные вопросы по химии, причем проще и понятнее, чем написано в учебнике и чем объясняли учителя.

Со многими учителями у него также были непростые отношения. С большим уважением сын относился к учителю физики, который вел еще и программирование, к учителю труда и к физруку. Однако из-за конфликта с некоторыми учителями в аттестате Николая появилось два прочерка – по физкультуре и ОБЖ. Поэтому он не пошел на выпускной вечер, объяснив так матери свой отказ: «Мама, я школу ненавижу».
Читать дальше →

Information

Rating
860-th
Registered
Activity