Мы привыкли учиться от простого к сложному, от аксиом к теоремам, от базовых понятий — к сложным концепциям, от «Hello, world!» — к многомодульным приложениям. Но библиотеке Kotlin Coroutines в этом смысле не повезло. И документация, и немногочисленные (особенно на русском языке) учебные материалы с первых страниц оглушают читателя потоком понятий, которые объясняются друг через друга. Приблизительно так: Job — это часть контекста, а контекст — это контейнер, содержащий Job. Раскрутить этот клубок бывает непросто.
Поэтому я пытаюсь рассказать о корутинах по традиционным схемам обучения, начиная от самых простых понятий и постепенно усложняя рассказ. Мне кажется, что все понятия нужно объяснять на примерах — так теория лучше укладывается в голове.
Читать далееВсем привет! На связи Николай Едомский, руководитель группы сетевых инженеров в ЕДИНОМ ЦУПИС.
Представляю вашему вниманию третью статью из цикла "IPsecHub+".
В предыдущей статье мы пришли к выводу, что желательно максимально сократить количество сущностей, которые участвуют в процессе добавления или удаления нового филиала.
Прежде всего, это нужно для максимального упрощения автоматизации процесса. Я думаю, вы согласитесь, что делать автоматизацию для Linux-машин - это одно, а для Linux-машин и какого-нибудь NGFW типа Fortigate - это совсем другое. Особенно если учесть, что этот NGFW обслуживает не только сервис стыковки по IPsec, а вообще всю компанию, и последствие ошибки в скриптах автоматизации - это не только падение IPsec-сегмента, но и других сервисов.
Читать далееКогда Грубер со Шварцем выкатили маркдаун, он был как глоток свежего воздуха. Минимум разметки, читаемый текст даже до обработки, достаточный для рядового средней руки блогера набор красивостей.
Спустя пару лет мне стало мучительно недоставать возможности тонкой настройки. Я никогда не использовал маркдаун для разметки научных статей и документов с вложенными в нумерованные списки таблицами, а CommonMark двигался, почему-то, именно в этом направлении. Не, серьёзно, цитата с вложенной таблицей, в одной из ячеек которой — список? Кому вообще может прийти в голову реализовывать это на маркдауне?
Я сделал полностью настраиваиваемый парсерПривет, меня зовут Владимир Феофилактов, я занимаюсь Android‑разработкой мобильного приложения СберБизнес. Я хотел бы поделиться с вами историей поиска ответа на вечный вопрос: «когда и как чистить граф зависимостей?».
У нас было приложение‑монолит с главным ComponentManager, где строился весь граф зависимостей. Файл был немаленький. Также во всех фрагментах необходимо было вручную создавать DI‑компонент и следить за его чисткой, а разработчики то и дело забывали про это или чистили неправильно.
Потом началась кампания по выносу фичёвого кода в отдельные модули. С каждым новым модулем всё чаще выстреливала циклическая зависимость, и приходилось писать обвязку (прокси‑класс). Главный ComponentManager оставался связующим звеном между фичёвыми модулями, через которое происходил переброс зависимостей, так что он всё ещё был большим и сложным. Иногда рефакторинг, связанный с перемещением кода из одного модуля в другой, вызывал многочасовую борьбу за нахождение пути решения проблемы «почему сборка никак не соберётся?». Иногда, чтобы доставить зависимость из одного модуля в другой, нужно было строить сложные конструкции, как при игре в «Твистер».
Вся эта увлекательная и мучительная игра продолжалась довольно долго, пока на помощь, как бы странно это ни звучало, не пришёл новомодный Compose. Тогда мы только начинали его осваивать, и я решил сделать небольшой pet‑проект, состоящий из двух экранов, с применением Compose для его изучения. Естественно, в этот проект подключил всё самое современное из библиотек, включая Dagger 2. Как обычно, немного повозившись с настройкой DI, в голове всплыла вся та боль, которую мы испытываем в нашем проекте.
Читать далееЦифровизированному бизнесу — такие же угрозы. Просчитывая риски, вроде банкротства или подосланных недобросовестным конкурентом головорезов в балаклавах, компании забывают о кибербезопасности. Тем временем неприметный гик, возможно, уже разрабатывает новую вредоносную программу, которая лишит бизнеса терабайтов данных и триллионов совсем не рублей.
Читать далееВ последние годы только ленивый не написал, что рынок виртуальной реальности не оправдал ожиданий, «потерял драйв» и, возможно, никогда не станет очередным технологическим дисраптором, как это нафантазировали визионеры. Действительно, реальность оказалась сложнее виртуальности, но не все так плохо: VR-рынок встретил трудности в игровом сегменте, почти сошел там на нет. И в то же время продолжает развиваться в промышленности, образовании и ряде других сфер.
Этот тренд хорошо заметен в России, где индустриальные и образовательные VR-проекты демонстрируют устойчивый рост, в то время как высокобюджетные игры с продвинутой графикой, сложной механикой, большим открытым миром (т. н. ААА-проекты) потеряли актуальность. В чем причины такой ситуации и каковы перспективы бизнеса, где и как он сейчас развивается? Разбираемся в настоящем и будущем мира метавселенной на кейсе российской компании VR Concept. И вместе с ее директором Денисом Захаркиным.
Как складывался рынок VR и почему просел гейминг
Читать далееИнтернет меняется.
В мире, который всё больше определяется технологическими гигантами и монополиями, пользователи просыпаются. Они выбирают приватность вместо профилирования, суверенитет вместо слежки, независимость вместо инерции.
И в основе этого сдвига лежат инструменты, которые уважают пользователей, а не эксплуатируют их. Поэтому мы представляем новую версию Vivaldi со встроенным Proton VPN.
Читать далееПривет, Хабр! Я — Александр Горный. В прошлом — директор по стратегии в Mail.ru, сейчас сооснователь проекта AiAcademy и приложения Мо: Медитация и Сон, член Консультативного Совета Яндекса и Программного комитета конференции TechFounders. Веду популярный у российских стартаперов Telegram-канал — «Стартап дня».
Предлагаю войти в стартаперское настроение, потому что это весело и энергично, и поговорить о том, как запустить свой стартап на супертехнологиях LLM, причём в реальной жизни, а не где-то в фантастической Силиконовой долине.
Прежде чем говорить о том, как заработать много денег, определимся с терминами. Есть много теоретических рассуждений, подходов, определений, доказательств эквивалентности этих определений, теоретических споров, но в этой статье я буду называть стартапом получение больших инвестиций за маленькую долю в капитале.
Дали Uber миллиард долларов за 5% — это стартап. Цветочному ларьку ничего не дали, а взяли 51% — цветочный ларёк не стартап.
Читать далееВ этой статье я немного расскажу о том, как в Java осуществляется вызов команд уровня операционной системы. Также поговорим про OS Command и Argument Injections и про то, как мы делали диагностики, которые могут помочь в их обнаружении.
Читать далееНовые данные, полученные с помощью Атакамского космологического телескопа, дают беспрецедентные изображения Вселенной возрастом 380 000 лет, с исключительной чёткостью показывая движение и поляризацию космического света.
Эти находки не только углубляют наше понимание космического микроволнового фонового излучения, но и подтверждают фундаментальные теории космической структуры и расширения, устанавливая новые стандарты наблюдательной космологии.
Читать далееВ компаниях разработчиках одной из ключевых фигур является CPO (Chief Product Officer). Это топ-менеджер, возглавляющий работу над продуктом в компании. Основная цель CPO — создание и развитие продукта, который будет успешен на рынке и удовлетворит потребности клиентов. В этой статье мы поговорим о том, кто такой CPO и какие основные обязанности возложены на данного руководителя.
Читать далееСфера корпоративной телефонии претерпела значительные изменения после 2022 года. Уход ряда зарубежных поставщиков, новые требования к безопасности данных и активное развитие российских решений привели к революции в отрасли.
В этой статье мы разберем, что изменилось в телефонии за последние годы, какие технологии стали востребованы и какие решения предлагают российские разработчики.
Читать далееВсем привет! Я Ксюша, веду блог «IT для детей» и рассказываю об онлайн-курсах и школах программирования для современных ребят и их родителей, интересующихся темой дополнительного образования и подыскивающих направления, подходящие для школьников. Стараюсь говорить просто о сложном и предлагать доступные варианты обучения.
Сегодня хочу затронуть такую тему, как занятия на курсах, но не в типичном варианте, а в сравнении с самостоятельными уроками: оба условных образовательных маршрута могут дать сопоставимые результаты, но с рядом оговорок. О чем именно речь? Поможет разобраться материал публикации.
Начну с курсов и выделю их особенности, а также плюсы.
Читать далееПривет, с вами снова Егор, Tech Lead компании ИдаПроджект. Я все еще занимаюсь стратегией, процессами и командами в направлении backend-разработки :)
Когда-то давно (по меркам IT), шесть лет назад, мы сходили на конференцию и послушали про poetry, преисполнились и внедрили его у себя на проектах. Но ничто не стоит на месте: вот уже два года мир знает о uv, а недавно появился еще и rye. Поэтому я посвятил пару выходных тестированию этих инструментов, чтобы использовать на наших типичных проектах.
В статье сравним poetry, uv и rye: кто быстрее управляет зависимостями, как использовать их в Docker, и какой из них выбрать в 2025 году. Заодно пробежимся по философии инструментов и посмотрим пару новых PEP стандартов, которые могут улучшить работу с зависимостями.
Читать далееВсем привет! я долго искал статью на эту тему, но так как очень много кто использует GNU компилятор или линукс вариант написания, то мне это не подходит, эта статья призвана кратко разобрать основы inline ассемблера для С в MSVC x86 вариации, также стоит отметить, что я буду разбирать все организационные моменты с расчетом на то, что вы уже несколько лет пользуйтесь Visual Studio и C/C++ в частности, хотя бы на уровне джуна-самоучки, коим я и являюсь, поэтому новичкам стоит гуглить некоторые моменты, всем продуктивного изучения!
В первой части статьи мы с вами рассмотрели, как должны платить налог на прибыль компании, занимающиеся майнингом и трейдингом. В этой части статьи разберем, как правильно рассчитать и платить НДФЛ при майнинге и трейдинге.
Читать далееТелевизионные 1990-е — это не только «Дисней по пятницам» или «Денди — Новая реальность», это еще и «Подводная одиссея команды Кусто». Влекомые волшебными звуками океана от бродвейского композитора с уютной фамилией Шарф, мы спешили к экрану, чтобы провести час, исследуя глубины и втайне мечтая, чтобы между пальцами выросли перепонки, а горло украсили кружевные жабры.
Только спустя много лет мы узнали, что строгий, но справедливый старик в красной шапочке — на самом деле такой себе гуманист, калечащий морских обитателей ради хорошего кадра, неверный муж, отец-тиран, судившийся с собственными детьми, ярый антисемит, et cetera, et cetera — обо всем этом нам любезно сообщат СМИ. С грохотом и улюлюканьем свергая кумира с пьедестала, медиа, кажется, совсем обойдут вниманием тот факт, что, помимо киносъемки и абьюза, Кусто занимался строительством первых в мире подводных поселений.
Именно Кусто осуществил то, о чем мечтали многие до него, — воплотил в реальность подводные жилища, доказал, что в них можно жить и работать, и исследовал, что происходит при этом в организме. Интересно, что тем самым он воплотил в жизнь разработки американской военки — на минуточку, раньше самой этой американской военки (станция Sealab I открылась в 1964-м, когда два проекта Кусто уже состоялись).
Постарались заполнить досадный информационный пробел. А заодно попытались разобраться, почему подводные деревни сегодня лежат в руинах и есть ли надежда на их воскрешение.
Читать далееКоманда Spring АйО перевела статью о том, как и когда использовать SpringRunner, SpringExtension и @SpringBootTest, когда их целесообразно комбинировать и как правильное понимание этих компонентов может помочь сделать тесты проще, быстрее и более узконаправленными.
Читать далее