Как стать автором
Обновить

Разработка

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Kotlin Multiplatform. Работаем с асинхронностью на стороне iOS. Publishers, async/await

Разработка под iOS *Kotlin *
Tutorial

Всем доброго времени суток! С вами Анна Жаркова, ведущий разработчик компании Usetech. Продолжаем говорить про Kotlin Multiplatform и работу с асинхронными функциями. В этой статье мы будем рассматривать, как можно удобно подключать Kotlin общий код на стороне iOS, используя возможности Swift. А именно, как работать с Combine Publishers и новым async/await.

* Примеры кода доступны в полной версии статьи, и к сожалению, не доступны в предпросмотре

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

Если на стороне common, мы оперируем корутинами и suspend функциями, то на стороне iOS проекта нативного благодаря поддержке interop Kotlin/Obj-C с версии Kotlin 1.4 suspend функции преобразуются в функции с completion handler.

Далее мы можем в этом блоке либо вызвать вывод данных, либо выполнение какого-то следующего метода. Все стандартно и просто.

Однако, не все любят простой синтаксис completion handler. А еще мы прекрасно знаем, что если ими злоупотреблять, можно легко попасть в ситуацию callback hell и потерять читабельность и чистоту кода.

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

Попробуем сделать наш Kotlin код совместимым с Combine Publishers. Для этого превратим вызов нашей suspend функции в AnyPublisher с использованием Future Deferred и Promise.

Читать далее
Рейтинг 0
Просмотры 196
Комментарии 0

Новости

Делаем Telegram бота с Админ-панелью и многими другими плюшками. Часть 2

Python *
Recovery mode
Tutorial

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

Давайте продолжим?
Всего голосов 9: ↑3 и ↓6 -3
Просмотры 1.3K
Комментарии 3

ЧПУ, Arduino Uno и CoreXZ: как я собрал плоттер-головоломку

Блог компании SkillFactory Читальный зал Разработка под Arduino *DIY или Сделай сам Электроника для начинающих
Перевод
Tutorial

Умелец собирает плоттер с ЧПУ из труб и показывает читателям, как он работает. А мы делимся этим материалом к старту курса по Data Science: проекты в науке о данных можно собирать подобным образом. Подробности о плоттере читайте под катом.

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

5 ошибок новичка при создании первых приложений для Android и что с ними делать

Разработка мобильных приложений *Разработка под Android *
Из песочницы

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

Владимир Анисимов — практикующий Android-разработчик с более чем 4-летним опытом в нативной и мультиплатформенной разработке — разобрал 5 типичных ошибок новичков из своего опыта и дал лайфхаки, которые помогут их решить.

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

Читать далее →
Всего голосов 15: ↑4 и ↓11 -7
Просмотры 1.6K
Комментарии 5

Как я проходил отбор на стажировку бекэнд — разработчиком (C++) в Яндекс по программе Deep Dive (в формате буткемпа)

Программирование *C++ *Карьера в IT-индустрии
Из песочницы

Расскажу небольшую историю о том, как я проходил отбор в буткемп от Яндекса.

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

Мобильный звук — от чего зависит качество

Разработка под Android *Звук
Из песочницы

Как только речь заходит о качественном портативном аудио, на ум сразу приходят Hi-Fi аудиоплееры. Надпись "Hi-Fi" на звуковоспроизводящей аппаратуре означает, что она соответствует одному из данных стандартов: DIN 45500 или IEC 60581, т.е. такое устройство может воспроизводить аудио с высокой точностью. Но лишь немногие обращают внимание на то, что их смартфоны тоже умеют воспроизводить аудио в Hi-Fi качестве.

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

7099 человеческих языков и 8945 языков программирования

Блог компании Timeweb Cloud Программирование *Научно-популярное
image

На Земле живет 7,5 миллиардов человек и 30 миллионов программистов. Человеческих языков около 7099, сколько компьютерных — никто не знает. CodeLani насчитал около 4248 языков, HOPL — 8945.

Хочу поделиться самыми интересными находками по языкам программирования. Никто не знает как дать определение, что такое «язык программирования». Первый язык высокого уровня — Plankalkül, созданный Конрадом Цузе в 1942-45 году. Первый коммерческий язык — FORTRAN (1956).

Есть интересный проект CodeLani — цель которого помогать тем, кто хочет создать свой язык программирования или улучшить существующий. Создатель проекта собирает обширную базу данных компьютерных языков и их общих шаблонов проектирования. Проект ориентирован на языки программирования, но эта база включает в себя другие компьютерные языки и объекты — от популярных текстовых форматов высокого уровня до двоичных спецификаций.

Кто считал и продолжает считать языки программирования:

  • TIOBE index — один из самых известных каталогов, он содержит около 250 языков программирования, критерии такие: 1) про него есть страница в Википедии 2) язык Тьюринг-полный 3) Гугл выдает более 5000 результатов
  • Википедия говорит нам о 700 языках.
  • Олдфаг из 90-х FOLDOC насчитывает 1000 языков.
  • The Language List насчитывает ~2,500 языков
  • Коллекция HOPL насчитывает 8945 языков
  • J.E. Sammet помогала разрабатывать COBOL и одной из первых задалась вопросом отслеживания языков программирования в 1971 году, она насчитала тогда 167 языков

Читать дальше →
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 3.4K
Комментарии 15

Как IQ влияет на успех? Математика пытается ответить

Математика *Исследования и прогнозы в IT Бизнес-модели Статистика в IT Биология
Из песочницы

Тест IQ - всего лишь один из многочисленных психометрических тестов, и насколько точно он может оценить интеллектуальные способности человека, является предметом многочисленных дискуссий. А как сильно IQ коррелирует с достижением социального и экономического успеха?.. Тоже не совсем ясно... Тем не менее IQ один из самых используемых методов для определения интеллекта, так как может быть измерен при помощи довольно простого теста, и кроме того, статистическое распределение этого показателя хорошо исследовано. В статье предлагается математическая модель, которая при помощи статистических симуляций оценивает  влияние IQ на достижение успеха. Предсказательная мощность данной модели испытывается на основе статистических данных.

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

Делаем работу с Koin проще

Разработка под Android *Kotlin *
Из песочницы

Всем привет! Меня зовут Базикалов Илья, я являюсь Андроид разработчиком в компании Broniboy. В нашем клиентском приложении мы используем библиотеку Koin для внедрения зависимостей. В своей статье я хочу вам показать, с какими проблемами мы столкнулись при работе с данной библиотекой и каким образом их решили (хоть и не полностью).

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

Использование социальной инженерии в комплексных атаках на автоматизированные системы

Информационная безопасность *
Из песочницы

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

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

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

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №500 (27 декабря 2021 — 2 января 2022)

Разработка веб-сайтов *CSS *JavaScript *HTML *
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

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

makesure — make с человеческим лицом

Программирование *Проектирование и рефакторинг *Разработка под Linux *Системы сборки *DevOps *
Tutorial

Многие ли из вас используют всевозможные вспомогательные shell-скрипты в своих проектах? Это также могут быть Python или Perl скрипты. Обычно такие скрипты используются на этапе сборки или для других задач автоматизации проекта.


Примерами таких задач могут служить:


  • вспомогательные скрипты для Git,
  • запуск тестов/линтеров,
  • запуск необходимых докер контейнеров,
  • запуск БД-миграций,
  • собственно, сборка проекта,
  • генерация документации,
  • автоматизация публикации релизов,
  • развертывание и т.д.

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


Make — пожалуй, наиболее известный из подобных инструментов.


Похожий функционал известен разработчикам nodejs и любим ими в виде скриптов в package.json (npm run-scripts). Ветераны Java вспомнят Ant.


Но nodejs/Ant требуют установки, make хоть и способен выполнять функции task runner довольно неудобен в этой роли, будучи на самом деле очень олдскульным build tool со многими вытекающими "особенностями".


А shell-скрипты требуют некоторой системы и неизбежной рутины в написании (обработка аргументов, help-сообщения и т.д.).


Хотя, например, Taskfile представляет прекрасный шаблон для подобных скриптов.


Так и родился makesure.

Что это?
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 3.5K
Комментарии 22

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

Блог компании Selectel IT-инфраструктура *Исследования и прогнозы в IT Производство и разработка электроники *IT-компании

В начале декабря мы писали о том, что китайская компания Huawei, похоже, постепенно решает все проблемы, которые связаны с санкциями, наложенными правительством США. Торговая война, которую развязали Китай и Америка, сильнее всего ударила именно по этой компании.

Правительство Соединенных Штатов ввело целый список жестких санкций в отношении этой корпорации. Но практически каждый месяц компания удивляет новыми продуктами и планами на будущее. Так, она разработала собственный чип, ноутбук с ним, ОС для ноутбука. А теперь вот планирует построить фабрику по производству процессоров.
Читать дальше →
Всего голосов 34: ↑30 и ↓4 +26
Просмотры 14K
Комментарии 77

Как я научился делать мобильные приложения на Ionic/Angular за 42 часа

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

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

Читать далее
Всего голосов 11: ↑9 и ↓2 +7
Просмотры 6.3K
Комментарии 27

Задачи с Международной математической олимпиады 2021 (решаем в комментах)

Блог компании Timeweb Cloud Занимательные задачки Математика *Учебный процесс в IT Научно-популярное
image

Предлагаю поразмять мозги и как в прошлом году, порешать задачки с математической олимпиады в комментариях к этой статье. Задачек 6 штук, и на них отводилось 2 дня по 4,5 часа. (Чур, в ответы не подглядывать!)

Этим летом в Питере прошла 62-я Международная математическая олимпиада с вот какими итогами:

  • Первое место заняла команда Китая, завоевавшая шесть золотых медалей (208 баллов).
  • Российские школьники заняли второе место с пятью золотыми и одной серебряной медалью (183 балла)
  • На третьем месте южнокорейская команда с пятью золотыми и одной серебряной медалью (172 балла)

Первая такая олимпиада прошла в 1959 году в Румынии, и тогда в ней принимали участие представители всего семи стран. В 2021 году в олимпиаде участвовали более 619 школьников из 107 стран.

image

Российская сборная
Тренировали сборную России учитель математики Президентского физико-математического лицея № 239 Санкт-Петербурга Кирилл Сухов, педагоги Центра педагогического мастерства Москвы Владимир Брагин и Андрей Кушнир. Россию на олимпиаде представляли:

  • Иван Бахарев (10 класс, Санкт-Петербург) — золотая медаль;
  • Айдар Ибрагимов (11 класс, Казань / Москва) — золотая медаль;
  • Матвей Исупов (11 класс, Ижевск) — золотая медаль;
  • Андрей Шевцов (11 класс, Москва) — серебряная медаль;
  • Данил Сибгатуллин (11 класс, Казань / Москва) — золотая медаль;
  • Максим Туревский (10 класс, Санкт-Петербург) — золотая медаль, абсолютное второе место в общем рейтинге.

Читать дальше →
Всего голосов 22: ↑16 и ↓6 +10
Просмотры 42K
Комментарии 32

Я фронтенд разработчик, а не обезьянка

API *Управление разработкой *Управление проектами *
Из песочницы

2 дня унижения в чатах, пачка Ново-Пассита, но я выдержал это испытание и узнал, что до сих пор думают о фронтенд разработчиках «другие» разработчики. Будет интересно.

Читать далее
Всего голосов 53: ↑34 и ↓19 +15
Просмотры 17K
Комментарии 105

Делаем Telegram бота с Админ-панелью и многими другими плюшками

Python *
Из песочницы

Всем привет! Так как это моя первая статья и я не знаю что да как делать, буду писать как знаю.

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

Написать своего бота
Всего голосов 45: ↑9 и ↓36 -27
Просмотры 8.8K
Комментарии 12

Обходим файловый кэш Google Drive в Colab

Python **nix *Облачные вычисления *Big Data *Google Cloud Platform *

Про colab знают, наверное, все. Этот инструмент позволяет независимым исследователям использовать облачную инфраструктуру с GPU и TPU бесплатно или почти бесплатно.

Как всегда, проблемы возникают на больших данных. Если ваш датасэт лежит в google drive (он же Диск), то вы можете обращаться к нему напрямую из colab. Однако, если файл велик, например, 70+ GiB, то процесс обучения будет существенно медленнее, чем если бы этот же файл лежал в локальном хранилище, которое выделяется при создании инстанса.

Выход - скопировать файл с Диска в локальное хранилище (обучение станет быстрее в несколько раз!). Но дело в том, что colab и вся инфраструктура очень умная, файлы с Диска кэшируются каким то неуправляемым вами алгоритмом. И если у вашего инстанса, допустим, доступно ~120 GiB, то 70 GiB с Диска вы не скопируете, у вас закончится свободное место как раз из-за системы кэширования. То есть, команда cp не отработает корректно. И rsync то же. И tar. Кэширование работает на уровне драйвера. По сути файл копируется в локальное хранилище дважды. Шах и мат!

Так что вот вам небольшой костылёк:

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

Книга «System Design. Подготовка к сложному интервью»

Блог компании Издательский дом «Питер» Анализ и проектирование систем *Профессиональная литература
image Привет, Хаброжители! Мы решили начинать продавать элетронные книги до выхода бумажной книги. Начали с интервью по System Design (проектированию ИТ-систем), которые очень популярны у работодателей, на них легко проверить ваши навыки общения и оценить умение решать реальные задачи. Пройти такое собеседование непросто, поскольку в проектировании ИТ-систем не существует единственно правильных решений. Речь идет о самых разнообразных реальных системах, обладающих множеством особенностей. Вам могут предложить выбрать общую архитектуру, а потом пройтись по всем компонентам или, наоборот, сосредоточиться на каком-то одном аспекте. Но в любом случае вы должны продемонстрировать понимание и знание системных требований, ограничений и узких мест. Правильная стратегия и знания являются ключевыми факторами успешного прохождения интервью! Что внутри? — Инсайдерская информация: что на самом деле нужно интервьюерам — 4-х шаговый подход к решению любой задачи system design — 16 вопросов из реальных интервью с подробными решениями. — 188 диаграмм, наглядно объясняющих, как работают реальные системы.
Читать дальше →
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 5.9K
Комментарии 14

7 вопросов о компьютерной томографии

Реверс-инжиниринг *Производство и разработка электроники *Научно-популярное
Из песочницы

Привет, Хабр! Спустя много лет режима ReadOnly, решила зарегистрироваться, чтобы рассказать о своем опыте работы с промышленным томографом. Когда люди узнают, что я занимаюсь компьютерной томографией, то обычно задают два вопроса: первый - «Это неопасно? Там же излучение и всё такое….», а второй - «Можно у тебя флюорографию сделать?». Дальше я объясняю, что для меня это точно безопасно, а вот для вас – вряд ли. Флюорографию, конечно, сделать можно, но только один раз. Потому что я работаю не с медицинским томографом, а с промышленным. После этого обычно следует еще целый ряд вопросов…

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