Pull to refresh
-1
1.8
Send message

Telegram Боты на Aiogram 3.x: Первые Шаги

Level of difficultyEasy
Reading time14 min
Views95K

Привет, друзья!

За свою практику программирования я успел написать множество малых, средних и крупных проектов, преимущественно в формате Telegram-ботов. Моя история началась с популярной на то время версии aiogram 2.24 (тех, кто в теме, поймут), а сейчас я полностью перешел на версию 3.x, о чем нисколько не жалею.

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

Сегодня мы научимся:

Читать далее

iOS-разработчики в 2024 году: какие нужны скилы и как проходит процесс найма

Level of difficultyEasy
Reading time7 min
Views3.9K

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

Читать далее

Нейропиксели для небогатых

Level of difficultyEasy
Reading time22 min
Views14K

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

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

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

Планирование и организация рабочего и личного времени

Reading time4 min
Views19K

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

За моими плечами 6 лет в enterprise разработке и и еще много лет другой работы, которую я совмещал с фрилансом по разработке, а через месяц мне будет 32 года. Это не только короткая справка обо мне, но и важный контекст для моих размышлений. Дело в том, что не только разные подходы к организации времени подходят разным людям, но одному человеку в разные этапы его жизни также будут подходить разные подходы относительно организации его времени. Кто-то моложе и имеет больше сил, кто-то старше и может иметь меньше сил, а бывает и наоборот. Но цель организации времени для разных людей в разные моменты жизни одна. И эта цель - не успеть все или как можно больше, как мне казалось совсем недавно, а определить подходящий тебе темп, чтобы ты чувствовал себя хорошо, чтобы ты был на пике своей формы постоянно, чтобы ты жил для себя, а не для работы или своих дел.

Читать далее

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

Level of difficultyMedium
Reading time5 min
Views1.9K

Раньше я был вовлечён в создание приложений со стороны банка, а теперь занимаюсь ими со стороны компании-разработчика. Делюсь: вот что думает бизнес, когда решается на новое приложение.

Читать далее

Написание тестов для асинхронного кода с помощью XCTest

Reading time6 min
Views1K


Если вы когда-нибудь думали о проведении юнит-тестирования в Xcode, вы наверняка обращали внимание на XCTest. Это довольно простой фреймворк на Objective-C и Swift. Однако тестирование асинхронного кода всегда было немного сложным из-за таких конструкций, как делегаты и коллбэки (функции обратного вызова).

В этой статье мы начнём с рассмотрения классического способа тестирования асинхронного кода, чтобы убедиться, что мы все на одной волне относительно плюсов и минусов классического асинхронного теста. После этого мы рассмотрим, как async / await кардинально меняет способ написания юнит-тестов для асинхронного кода, и как он может повлиять на то, что тесты оказываются успешными и неудачными.
Читать далее

AVPlayer seek(to:… vs seek(…tolerance

Level of difficultyEasy
Reading time4 min
Views1.3K

Привет всем! Это моя внеочередная статья, о том что нагорело. У меня за последний год накопилось много интересного (и не очень :) ) материала. Но эту статью хочу написать вне очереди. Не так давно я столкнулся с интересным поведением метода seek(to: CMTime). Об этом и хочу написать.

Но начнем по порядку.

AVPlayer известен нам с iOS 4. Он содержит AVPlayerItem, AVAsset.

Читать далее

Почему вы себя обесцениваете: какую выгоду это дает и что делать с ощущением своей несостоятельности?

Level of difficultyEasy
Reading time6 min
Views9.8K

«Я ничего собой не представляю. Все вокруг компетентнее, умнее, опытнее меня. Я не заслуживаю своего места под солнцем», — так думают люди, которые себя обесценивают. Эти переживания не только мучительны, но вдобавок мешают построить карьеру, отношения, самореализоваться и хорошо себя чувствовать. Из-за чего возникает желание себя обесценить и что с ним делать?

Читать далее

SwiftUI: наконец-то пора? Опыт разработки на SwiftUI в контексте UIKit приложения

Reading time16 min
Views3.8K

Привет, Хабр! Меня зовут Алексей Непомнящих и я мобильный разработчик «Леруа Мерлен». В этой статье я бы хотел поделиться своим опытом внедрения первой большой фичи на SwiftUI в приложение, целиком состоящее из UIKit с минимальной требуемой версией iOS 14.

Читать далее

SwiftUI уроки (часть 11)

Reading time12 min
Views2.8K

Ссылка на 10-ю часть

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

Читать далее

Мамихлапинатапай

Reading time11 min
Views1.8K

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

– Дорогой, тебе пора расслабиться… – промурлыкала роботесса медовым голоском.

Рука её метнулась к паху Ариса.

– Не сегодня, Элиза! – отшатнулся Арис. – Отстань!

– Ты проявляешь признаки стресса и нестабильного гормонального фона, – ответила служанка.

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

– Будь хорошей девочкой, – несколько смягчившись, бросил Арис. – Папа занят важными размышлениями!

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

Арис выскочил на балкон. Безликая панорама вечернего мегаполиса, кристаллы небоскрёбов с золотыми ячейками – клетками, в которых заточены злые угрюмые люди, не умеющие общаться. Каждый из них обществу себе подобных предпочитал лишённых человеческих недостатков подключенных к глобальной нейросети роботов… И непроходящий образ перед взором: неизвестно откуда взявшееся в победившем пластмассовом мире слово «мамихлапинатапай», начертанное у подъезда многоэтажки краской густого цвета индиго, с  белыми, лимонными и нежно-розовыми блёстками, будто планктон флюоресцирует в пенных океанических волнах в час заката, чего, должно быть, не бывает на свете. В тот день, «погуглив» прямо на месте, Арис узнал, что имеет дело со словом из языка племени яганов, населявших Огненную Землю, означающее «смотреть друг на друга в надежде, чтобы другой человек начал делать то, что обоим нужно, но что никто не желает делать». Слово включено в книгу рекордов Гиннесса, как «наиболее ёмкое». Вряд ли автору граффити требовалось много ума, чтобы узнать о его существовании… Ариса взволновало другое: роботам ни к чему нарушать безупречную геометрию алгоритмов, дерзко вклиниваясь в искусственную гармонию бетонных джунглей. Однако, эта история случилась давно…

Читать далее

REST API на котиках

Level of difficultyEasy
Reading time7 min
Views31K

Привет любителям котиков! Меня зовут Юля, я backend‑разработчик компании CDEK. Я сама не так давно изучала все эти сложные понятия в программировании, поэтому решила помочь и вам разобраться с одним из них.

С какой стороны IT вы бы не пытались войти — в какой‑то момент столкнётесь с понятием REST API. Эта статья создана, чтобы смягчить данное столкновение. Новые темы всегда легче воспринимаются на простых примерах, ну а если это примеры с котиками, то варианта не разобраться просто нет. Хочется обойтись без сложных научных определений, а рассказать самым простым языком. Поэтому, если вы любите сухие и точные формулировки, то вам нужна другая статья :)

Читать далее

Импортирование картинок и звуков в Swift Package

Level of difficultyEasy
Reading time2 min
Views694

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

Читать далее

О, вы из Англии? Локализация Ozon Seller на iOS

Reading time10 min
Views4.9K

Всем привет! Меня зовут Андрей, и я делаю iOS-приложение для продавцов Ozon Seller. Наша команда поставляет фичи, красит кнопки, работает над перформансом и  всячески улучшает пользовательский опыт работы продавцов на Ozon.

Нашим приложением активно пользуются юзеры из разных стран, и поэтому день Х, когда мы решим добавить поддержку разных языков, был неизбежен. В этой статье я расскажу про стандартный процесс локализации iOS-приложения, про то, с какими трудностями мы столкнулись и как их решили. Разберём системный алгоритм определения языка и объясню, почему он нам не подошёл. Сделаем перевод приложения «на лету», а также посмотрим, как изменился наш флоу работы со строками.

Читать далее

Как передавать данные между вью контроллерами в Swift

Level of difficultyMedium
Reading time14 min
Views1.4K

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

Читать далее

Ты — это то, как ты пишешь. Как расти через качество кода

Level of difficultyMedium
Reading time10 min
Views13K

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

Я Юрий Митус, фронтенд-разработчик в Сбере. Предлагаю поговорить о коде, который мы пишем, и практиках его улучшения. Расскажу, на что обращать внимание, покажу типичные ошибки, которые «портят» код и как их избегать. Научу писать код так, чтобы вас хотели нанять и перенять ваши практики.

Читать далее

Открываем YandexART API и рассказываем, как мы учили нейросеть создавать картинки, которые понравятся людям

Reading time16 min
Views20K

В Yandex Cloud с сегодняшнего дня открыт доступ к тестированию API YandexART — нейросети для генерации изображений и анимаций, которая лежит в основе приложения Шедеврум. Протестировать API можно в сервисе Foundation Models, в котором доступно несколько моделей машинного обучения, включая YandexGPT для генерации текстов и эмбеддинги для задач семантического поиска. 

Читать далее

TechTrain 2024: что расскажут на бесплатном онлайн-фестивале

Reading time7 min
Views759

Наше мероприятие TechTrain порой меняет тематику — например, в прошлом году оно было посвящено AI/ML. Но сложился понятный формат:

— Каждые полгода, помимо «больших» конференций, мы проводим «небольшой» TechTrain.
— В отличие от конференций, он проходит только в онлайне и длится только один день.
— Зато, в отличие от конференций, участие в нём бесплатное.

В этот раз TechTrain будет о построении карьерного трека в IT: про варианты развития, источники опыта, взгляды экспертов, перспективы и цели.

Всё это наиболее актуально для молодых специалистов, и сеньорам больше подходят остальные наши конференции. Но помимо сугубо карьерных докладов, здесь будут и технические, так что узнать что-то полезное смогут все (сеньоры, вы уверены, что уже всё знаете про индексы в базах данных?)

Зарегистрироваться для участия можно на сайте, а здесь приведём описания всех докладов:

Читать далее

SwiftUI уроки (часть 6)

Reading time6 min
Views3.6K

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

Читать далее

Information

Rating
2,253-rd
Registered
Activity