Как стать автором
Обновить
21
0
Игорь Выдренков @IgorV

Пользователь

Отправить сообщение

Obsidian: синхронизация без боли

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров22K

Легкий и простой способ настроить бесплатную синхронизацию Obsidian между всеми своими устройствами.

Читать далее
Всего голосов 24: ↑23 и ↓1+27
Комментарии61

Бесплатный курс по Roblox для детей 9 лет и старше: 20 уроков с нуля

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.3K

Подготовили подборку видеоуроков по Roblox для новичков. За 20 уроков ребенок сможет познакомиться с интерфейсом программы, изучить основные функции, научиться писать небольшие скрипты на языке Lua. А также создаст несколько игр и проектов по инструкциям.

Roblox – это игровая онлайн-платформа, популярная среди детей и подростков. На ней можно создавать простые игры с помощью языка Lua: здесь ребята не только развлекаются, но и прокачивают навык разработки, а также получают умения, ценные с точки зрения написания кода.

Программировать и делать первые собственные игры на платформе «Роблокс» могут даже начинающие школьники. Курсы или самообучение? Выбор за юными геймерами и их родителями, а мы хотим рассказать об уроках Roblox для детей в формате видео: они помогут сделать первые шаги и лучше понять возможности онлайн-платформы. 

Читать далее
Всего голосов 12: ↑6 и ↓6+4
Комментарии9

Как Выигрывать в Игре Быки и Коровы

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров2K

Существует старинная народная логическая игра. Называется быки и коровы. Её ещё называют mastermind.

В этом тексте я представил мой алгоритм для поиска решения в этой игре. Я назвал этот метод: Матрица возможных решений.

Суть алгоритма покажу в частном виде, то есть на примере.

Читать далее
Всего голосов 7: ↑5 и ↓2+6
Комментарии10

Подключаем GigaCode к мобильной разработке

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.4K


Всем привет! С вами Анна Жаркова, руководитель группы разработки в компании Usetech. Сегодня я вам принесла необычный материал. 27 июня 2024 года для сторонних разработчиков открыли и презентовали российскую среду разработки Giga IDE со встроенным ИИ-ассистентом от «Сбера» и «СберТеха». Заявлено, что встроенный в среду ИИ-ассистент GigaCode анализирует контекст, предлагает полные конструкции функций, циклов и других элементов, что позволяет писать код в среднем на 25% быстрее. Ассистент поддерживает как автокомплит кода, так и интеллектуальные подсказки для ввода, генерацию кода для поддерживаемых язык. Также его можно использовать для выполнения разных команд.

Мы посмотрим, как подключить, настроить и применить GigaCode AI к мобильной разработке.
Для начала нам потребуется скачать специальную IDE GigaCode . Нам предложит перейти на ресурс GitVerse (аналоги GitHub, полностью совместим с Git), где потребуется создать аккаунт и авторизоваться через СберID:


Читать дальше →
Всего голосов 16: ↑12 и ↓4+10
Комментарии21

Советы по программированию, которые бы я дал себе 15 лет назад

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров31K


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

▍ Если ты (или твоя команда) постоянно стреляешь себе в ногу, то почини ружьё


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

Когда я занимался разработкой для iOS, то использовал CoreData и подписывался на изменения нескольких view. Обратный вызов подписки поступал в тот же поток, из которого было запущено изменение. Иногда это был основной поток, а иногда — фоновый. В разработке для iOS важно то, что вносить изменения в UI можно только в основном потоке, иначе приложение вылетит. Поэтому подписка могла работать нормально, но потом ломалась, когда кто-то запускал изменение из фонового потока или вы позже добавляли обновление UI.

Все без раздумий воспринимали это как что-то само собой разумеющееся, и об этом часто говорили в ревью для новичков в команде. Время от времени кто-нибудь ошибался, и мы добавляли DispatchQueue.main.async, когда видели отчёт о сбое.

Я решил это исправить. У меня ушло десять минут на внесение изменений в слое подписки, теперь подписчики вызывались в основном потоке, что позволило избавиться от целого класса сбоев и сняло с нас часть умственной нагрузки.
Читать дальше →
Всего голосов 45: ↑43 и ↓2+59
Комментарии15

Kotlin Coroutines. От А до Я

Уровень сложностиПростой
Время на прочтение28 мин
Количество просмотров16K

Полный разбор корутинного мира с нуля, который может послужить отличной шпаргалкой на собеседовании!
Разберем разницу между многопоточностью и асинхронностью; раскроем все основные понятия корутин, параллельно ссылаясь на исходники kotlinx.coroutines; посмотрим их применение на практике и в конце напишем свой собственный CoroutineScope.

Let's go
Всего голосов 25: ↑25 и ↓0+29
Комментарии12

Рассказ о моей системе личной продуктивности (и о софте, который я создал, чтобы её практиковать)

Время на прочтение16 мин
Количество просмотров13K

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

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

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

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

Читать далее
Всего голосов 12: ↑11 и ↓1+12
Комментарии14

Регенеративная медицина. Хрящ с «танцующими молекулами» и «резиновой жижей»

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.6K

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

Читать далее
Всего голосов 7: ↑5 и ↓2+5
Комментарии2

Проклятие знания. Как когнитивные искажения влияют на разработку?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров3.6K

Все сталкивались с ситуацией, когда нужно было объяснять что-то другому человеку — будь то коллега, ребенок, друг или родственник. Иногда это происходит легко и непринужденно, а иногда… превращается в настоящую пытку. Особенно когда человек, которому мы объясняем, никак не может «включиться» и понять. 

 В такие моменты мы начинаем думать: «Как это можно не понять? Это же элементарно!» или «Он просто прикидывается, чтобы я сделал его работу!». Но, скорее всего, истина лежит гораздо глубже. Мы забываем, что когда-то и сами этого не знали. И в этом замешано проклятие знания.

Проклятие знания — ошибка мышления, из-за которой мы предполагаем, что другие люди обладают теми же знаниями, что и мы.

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

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

Читать далее
Всего голосов 14: ↑12 и ↓2+15
Комментарии3

Git, Gitflow и ветка develop. Продолжаем разбираться в основах программирования

Время на прочтение5 мин
Количество просмотров9.5K

Привет, Хабр! В блоге beeline cloud я делюсь личным опытом разработки. Ранее рассказывал, как инжектить в статические поля, как упростить себе жизнь при написании тестов, подсвечивал особенности пагинации. А сегодня продолжу знакомить вас с Git, Gitflow и веткой develop. Если вы пропустили первую статью из цикла — рекомендую прочитать тут.

Читать далее
Всего голосов 14: ↑12 и ↓2+16
Комментарии9

Задача трёх тел (не китайская нефантастика)

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров42K

Однажды, выполнив в Гугле запрос "Three body problem" ("Задача трёх тел"), я был просто поражен - первая страница результатов состояла только из ссылок на роман китайского писателя-фантаста Лю Цысиня с соответствующим названием, а также на телесериал, снятый по этому роману, т.е. ссылок на собственно задачу трёх тел не было вообще! Мне это показалось удивительным и несправедливым, поскольку сама по себе задача трёх тел тоже может выглядеть увлекательной в популярном изложении. В этой публикации я постарался привести некоторые доказательства этого утверждения.

Читать далее
Всего голосов 184: ↑182 и ↓2+234
Комментарии150

Чтение на выходные: «Квант» Джима Аль-Халили

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.6K

Принесли рекомендацию для любителей научпопа.

Джим Аль-Халили — профессор физики и популяризатор науки. Многие знают его как ведущего передач на ВВС. Готовит статьи для прессы, выступает на радио, пишет книги. Сегодня мы поговорим о той, которая о квантовой механике.

На старте хочется выразить вот какой восторг: текст воспринимается легко и в повествовании как будто бы нет лишних слов. От этого название придает книге еще больше смысла: вместо длинного заголовка с дескриптором — только самое главное.

Постараемся и мы придерживаться аналогичного формата и по традиции приведем несколько аргументов в пользу этого чтения.  

 

Читать далее
Всего голосов 10: ↑8 и ↓2+10
Комментарии1

Dagger 2. Часть вторая. Custom scopes, Component dependencies, Subcomponents

Время на прочтение8 мин
Количество просмотров120K

Всем привет!
Продолжаем наш цикл статей о Dagger 2. Если вы еще не ознакомились с первой частью, немедленно сделайте это :)
Большое спасибо за отзывы и комментарии по первой части.
В данной статье мы поговорим о custom scopes, о связывании компонентов через component dependencies и subcomponents. А также затронем такой немаловажный вопрос, как архитектура мобильного приложения, и как Dagger 2 помогает нам выстраивать более правильную, модульнонезависимую архитектуру.
Всем заинтересовавшихся прошу под кат!

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии26

Где мне это пригодится в жизни или применение Nothing в Kotlin на примере

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров5.7K

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

Читать далее
Всего голосов 25: ↑25 и ↓0+29
Комментарии10

Git. Скачем между ветками как древесные лягушки

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров26K

Статей на тему много, но, видимо, недостаточно: время от времени слышу от коллег (последние 10 лет, в 4-х разных компаниях):

«Не могу пошарить экран с кодом, у меня другая ветка сейчас».

«Не хочу переключать ветку, придется запускать кодогенерацию, у меня сбросятся build-файлы, потом это опять пересобирать!»

«Стаскивать ветку для просмотра ПР? Это же неудобно, надо "стэшить" изменения, ветку переключать».

Читать далее
Всего голосов 85: ↑85 и ↓0+101
Комментарии71

Kotlin Coroutines под капотом

Время на прочтение36 мин
Количество просмотров18K

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

Читать далее
Всего голосов 30: ↑30 и ↓0+36
Комментарии5

Как я перестал волноваться и полюбил ошибки в корутинах: поймай меня если сможешь

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.6K

Если опираться на предыдущую статью (ссылка), то по отношению к корутине можно сказать что на андроиде она вызовет краш приложения, если не был переопределен Thread.UncaughtExceptionHandler потока.

Но во всех ли случаях такое будет? Или можно ли не изменяя корутину и не изменяя Thread.UncaughtExceptionHandler потока помешать данной корутине закрыть приложение с крашем?

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

Kotlin Coroutines. Часть 2

Время на прочтение10 мин
Количество просмотров3.6K

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

Итак, начинаем. Сначала кратко расскажу о материале в этой статье. Для разогрева поговорим о скоупе и о том, для чего он вообще нужен, далее перейдем к контексту, там я попробую объяснить сложное на пальцах, и, наконец, затронем к Continuation.

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

systemD с 0 до 1: библия сисадмина

Уровень сложностиСредний
Время на прочтение27 мин
Количество просмотров25K


Что бы кто не говорил, systemD становится стандартом систем инициализацией в линуксе. И с 80% вероятностью все сервера будут с systemD. Не факт, конечно, есть и личные сервера, на которых может стоять хоть Gentoo, хоть Devuan, хоть NixOS.

Некоторые дистрибутивы хотят даже перейти с загрузчика Grub на systemd-boot! Потому знать, как работать с данной системой инициализации, должен каждый сисадмин и просто программист, ибо сейчас он практически везде.

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

А также напишем небольшой скрипт на Python для автомизации некоторых задач. Приятного чтения, господа линуксоиды и просто пользователи!
Читать дальше →
Всего голосов 51: ↑46 и ↓5+53
Комментарии11

Приложение для заметок Obsidian Note, или как держать всё и сразу, и при этом — ничего не потерять

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров18K

Приложение Obsidian представляет из себя огромную базу ваших заметок. Одним из её плюсов является поддержка Markdown (.md).

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

Читать далее
Всего голосов 10: ↑7 и ↓3+8
Комментарии28
1

Информация

В рейтинге
Не участвует
Откуда
Калуга, Калужская обл., Россия
Дата рождения
Зарегистрирован
Активность