Как стать автором
Обновить
16
0
Анна @xbitstream

Программистка, архитекторка, ахахахка

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

Как создавать анимации в Jetpack Compose

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

Анимации в Jetpack Compose довольно легко понять, применить и кастомизировать под требования дизайна. Но я ещё не видел ни одного туториала по анимациям в Compose на русском языке, поэтому подготовил на эту тему доклад для майского Mobius. А для тех, кто больше любит читать, чем слушать, подготовил статью. В материале мы обсудим  виды анимаций, а также пройдём все шаги по способам их создания и кастомизации.

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

Как россиянину получить ВНЖ в Армении в 2024 году?

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

Продолжение рассказов из Армении. Для начала какой смысл вообще получать ВНЖ в Армении, ведь гражданин РФ может находиться там в течение 180 дней без необходимости пересечения границы? Однако все не так просто, смысл есть. Начиная с 24 февраля 2022 года, довольно внушительное количество западных банков перестали открывать счета россиянам или приостановили сотрудничество по текущем счетам. К санкциям против граждан РФ также присоединились всевозможные платежные системы, брокеры, крипто-биржи, фриланс площадки и так далее. В большинстве случаев от россиянина требуют сменить место жительства, и в качестве подтверждения требуют вид на жительства иностранного государства.

Если в истории с банками Армении из предыдущего поста, возникают все большие сложности при открытии счета, то процесс получения ВНЖ в Армении и его варианты можно смело назвать доступными. Это, конечно же не история, когда можно сделать ВНЖ дистанционно, не вылезая из дома, но в сравнении с той-же Грузией, Сербией, Турцией и Кипром, мне показалось проще и по процедуре и по шансам на одобрение.

В Армении существует два вида ВНЖ: на основании открытия ИП в Армении и дополнительная форма временного ВНЖ на основании трудоустройства в армянской фирме. Эта форма обладает почти теми же возможностями, что и условный бизнес-ВНЖ

Читать далее
Всего голосов 40: ↑37 и ↓3+45
Комментарии25

Как получить гражданство Армении (армянский паспорт) россиянину в 2024 году?

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

В Российской Федерации существует стереотип со времен СССР, который можно выразить известным изречением: «Курица не птица, Болгария не заграница». Этим выражением россияне ошибочно оценивают уровень развития стран бывшего соцлагеря и бывшего СССР. Однако время идет вперед, в условиях конкуренции и независимости многие страны значительно преуспели в стабильном развитии при сохранении хороших отношений со всем миром. Многие столицы бывших советских республик Ереван, Тбилиси, Баку превратились в современные мегаполисы органично сочетающие последние достижения урбанизации с первозданной природной.

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

[Личный опыт] Жизнь в Швеции: полное благополучие, тесты на IQ и тысячи вакансий в IT

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

В 2021 Швеция заняла седьмое место в рейтинге самых счастливых стран всего мира. Считается, что жить тут очень здорово, все очень хорошо с экономикой — а значит, и с IT. Мы поговорили с героиней, которая переехала в Швецию в 2019 году и расскажет, почему так сильно любит эту страну, какие здесь есть интересные особенности и почему Швеция так ждет инженеров из-за рубежа.

Читать далее
Всего голосов 54: ↑43 и ↓11+44
Комментарии253

Крепостное право в ИТ

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

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

Крепостными становятся, обычно, ИТ-специалисты, работающие в штате клиентов. Соответственно, это ИТ-директора, программисты (обычно 1С) и сисадмины. Есть ли такое в ИТ-компаниях – не знаю, тут интересно вас послушать.

Кратко напишу, что это за дичь.

Читать далее
Всего голосов 190: ↑154 и ↓36+154
Комментарии319

Культ сокобана

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

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

Читать далее
Всего голосов 38: ↑37 и ↓1+48
Комментарии34

Чествуем игривое волшебство Джона Хортона Конвея

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

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

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

Кодогенерация DTO: зачем она нужна и как её настроить

Время на прочтение12 мин
Количество просмотров23K
Data Transfer Object — модель данных, которые мы передаём из одного слоя приложения в другой. В Яндекс Go мы активно используем DTO. Предположим, нужно отобразить в UI приложения для вызова такси экспериментальную кнопку с двумя свойствами — надписью на кнопке и ориентировочным временем ожидания такси. Тогда в сетевом слое надо написать примерно такую DTO-модель:

struct OrderButtonExperimentDTO: Decodable {
   let buttonTitle: String
   let estimationMinute: Int
}

Правильно написанная модель позволяет разрабатывать разные слои приложения независимо — но нужно следить за актуальностью самой модели на каждом слое. Например, если в коде выше ожидалось не estimationMinute, а estimationMinutes, то клиент не сможет декодировать полученные из сети данные и пользователь не увидит время ожидания. Такую ошибку легко совершить, в n-й раз перепечатывая названия переменных под каждый слой — а разработчики и правда должны рутинно это делать при любом изменении (или расширении) исходного формата данных. Ещё сложнее заметить ошибку на код-ревью.

Поэтому мы решили добавить механизм, который сам бы составлял и переписывал код моделей DTO в зависимости от исходного формата.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+22
Комментарии6

Лучшие оптические иллюзии 2021 года

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

В сериале «Доктор Хаус» (Сезон 6, серия 3) есть эпизод, где он лечит соседа Уилсона, вредного ветерана, от фантомных болей в ампутированной руке при помощи картонной коробки и зеркала. Есть даже специальный вид терапии: Mirror therapy, изобретенная Вилейануром Рамачандраном (тут реальное видео из реальной терапии).

Японские экспериментаторы Yutaro Sato, Kento Imai и Kenri Kodaka из Nagoya City University пошли дальше. Эксперимент очень прост и каждый может повторить его дома. Теперь у вас есть возможность обмануть свой мозг и испытать на своей шкуре, каково быть человеком-резиной.

Испытуемый кладет руку так, что она закрывается зеркалом и глаза видят только «лизуна» (резиновую слизь). То есть как бы мы подменяем реальную руку другим объектом, а потом подключаем сенсорные ощущения. Экспериментатор пощипывает реальную руку и одновременно пощипывает слизь в том месте, где глаза видят эту слизь вместо настоящей руки. Потом он немного оттягивает реальную кожу на реальной руке, а резиновую слизь тянет и тянет далего за пределы тянучести реальной руки и мозг верещит от необычности происходящего, но потом привыкает.

Оптическая иллюзия «Slime Hand» заняла 7-е место на всемирном конкурсе оптических иллюзий Best Illusion of The Year Contest. Под катом — остальные призёры.

Канал в телеграм Cognitive Illusions, от которого зависнет не только ваш комп/смартфон, но и разум.
Читать дальше →
Всего голосов 59: ↑53 и ↓6+61
Комментарии50

Какой контент поможет быстро протестировать объемный звук — обсуждаем сцены из широко известных фильмов

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

Звук в кино — неотъемлемая часть повествования. В полней мере задумку режиссера помогают раскрыть системы объемного звучания. Сегодня мы подготовили компактную подборку фильмов, сцены которых помогут оценить возможности аудиосистемы домашнего кинотеатра [например, в шоуруме перед покупкой].

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

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

Как определить C и C++-программистов по коду, который они пишут

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

Так уж случилось, что я пишу код для разных IoT-железок, связанных с электричеством, типа зарядных станций автомобилей. Поскольку аппаратных ресурсов, как правило, вполне достаточно, то основным фокусом является не экономия каждого байта и такта процессора, а понятный и надежный код. Поэтому в проекте разрабатывают под Embedded Linux и в качестве основного языка используют C++ в его современном варианте - C++17, активно поглядывая на фичи из стандарта 20-го года и новее.

Иногда запускаются новые проекты на той же платформе, с теми же процессами и с переиспользованием многих уже существующих компонентов, и тогда в эти проекты мы ищем программистов, с учетом вышесказанного - программистов на C++. В embedded, тем не менее, чистый C все еще очень популярен, и нередко собеседоваться на вакансию C++ Developer'а приходят именно сишники. Логика у человека простая: языки, на первый взгляд, довольно близкие, базовый синтаксис одинаков, про ООП кандидат что-то слышал, и значит, основная база уже есть и он сможет легко освоить C++ за 21 день в процессе работы, поэтому можно наплести про "с C++ тоже работал", начать писать на "Си с классами" и все получится.

Но нет, не получится.
Всего голосов 89: ↑65 и ↓24+62
Комментарии404

Где сядешь — там и слезешь. Тенденциозные вопросы программистам и их последствия

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

Когда будут устранены все проблемы в программе?

Как нам удалось это сделать?

Когда ты уже сделаешь задачу?

Вы будете на нас тренироваться?

Почему программа постоянно тормозит?

Когда вы начнёте нормально работать?

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

Но важно не содержание ответов, а само их наличие. Вопросы, как вы поняли, весьма тенденциозные.

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

Tuist: Xcode-проект на стероидах

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


Стандартное представление Xcode-проекта сложно назвать комфортным для командной работы. Даже в небольших проектах часто возникают merge-конфликты после изменения состава исходников в разных ветках.


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


Да, ограничения Xcode можно победить, но решением в основном является "винегрет" из сторонних инструментов, заправленный собственными Shell или Ruby скриптами, в которых мало кто разбирается.


Но есть куда более изящное и комплексное решение — Tuist. С ним мы и познакомимся в этой статье.

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

10 топовых плагинов для IntelliJ IDEA, которые ты не должен пропустить

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

Хотя IntelliJ IDEA является полноценной IDE (Интегрированная среда разработки), вы наверняка захотите ее персонализировать. В JetBrains Marketplace есть множество плагинов с полезными функциями, которые могут удовлетворить ваши личные или деловые потребности.

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

Напоминаем, что все плагины можно установить через Настройки/Параметры | Плагины или на вкладке Плагины на экране приветствия.

Погнали!
Всего голосов 21: ↑16 и ↓5+13
Комментарии5

Память в Swift от 0 до 1

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

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

Читать далее
Всего голосов 21: ↑20 и ↓1+23
Комментарии16

Миграция с LiveData на Kotlin’s Flow

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

LiveData была нужна нам еще в 2017 году. Паттерн наблюдателя облегчил нам жизнь, но такие опции, как RxJava, в то время были слишком сложными для новичков. Команда Architecture Components создала LiveData: очень авторитетный класс наблюдаемых хранилищ данных, разработанный для Android. Он был простым, чтобы облегчить начало работы, а для более сложных случаев реактивных потоков рекомендовалось использовать RxJava, используя преимущества интеграции между ними.

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

Причины массового обжорства SSD на Macbook с процессорами M1

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

Мир сошел с ума. Где только не писали о проблеме повышенного аппетита на ресурс SSD-накопителей у новых моделей Macbook Air и Macbook Pro с процессорами M1. Тема обсуждалась на всех популярных технических форумах. И несмотря на массовость проблемы, все обсуждения сводились к тому, что Apple не считает это проблемой. А значит и проблемы нет. И в какую дичь люди готовы поверить для самоуспокоения вместо того, чтобы взглянуть в лицо фактам и выяснить причины стремительного выработки ресурса несъёмного SSD-накопителя.

Читать далее
Всего голосов 75: ↑64 и ↓11+71
Комментарии73

Все английские времена в одной простой схеме

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

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

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

Первоначальная идея. Сначала разъяснить все английские времена за один присест удавалось, надёргав различных идей из интернета: обрывки чьих-то схем, начинали склеиваться в свою схему и обрастать собственными легендами, а применение времён почти всегда было проще пояснить, используя хрестоматийную «систему английских времен с точки зрения употребления глагола “to vodka”». С каждой новой импровизированной лекцией, схема и нарратив продолжали меняться. «Ученики» попадались с различным базовым уровнем, что позволило понять, откуда нужно начинать плясать, чтобы урок был понятен всем, кто хоть раз слышал что-то про глаголы have и be. Когда счёт обученных уже пошёл на десятки, я решил оформить идею в более стройную лекцию. От первых попыток преподавания английских времён, до этого момента прошло пять лет. За это время было обучено ещё пару сотен человек. Обучено — по приколу. Денег за эти уроки я не брал.

Читать далее
Всего голосов 58: ↑55 и ↓3+63
Комментарии130

Практическое использование автогенерации музыки

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

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

В данной статье описывается реализация авто-аккомпанимента для аккордовых прогрессий.

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

Расширение редактора Unity через Editor Window, Scriptable Object и Custom Editor

Время на прочтение8 мин
Количество просмотров24K
Всем привет! Меня зовут Гриша, и я основатель CGDevs. Сегодня хочется поговорить про расширения редактора и рассказать про один из моих проектов, который я решил выложить в OpenSource.

Юнити — прекрасный инструмент, но в нём есть небольшая проблема. Новичку, чтобы сделать простую комнату (коробку с окнами), необходимо либо осваивать 3д моделирование, либо пытаться что-то собрать из квадов. Недавно стал полностью бесплатным ProBuilder, но это так же упрощённый пакет 3д моделирования. Хотелось простой инструмент, который позволит быстро создавать окружения вроде комнат со окнами и правильными UV при этом. Достаточно давно я разработал один плагин для Unity, который позволяет быстро прототипировать окружения вроде квартир и комнат с помощью 2д чертежа, и сейчас решил выложить его в OpenSource. На его примере мы разберём, каким образом можно расширять редактор и какие инструменты для этого существуют. Если вам интересно – добро пожаловать под кат. Ссылка на проект в конце, как всегда, прилагается.


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

Информация

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

Специализация

Mobile Application Developer, Software Architect
Lead
От 6 000 $
SWIFT
Kotlin
Designing application architecture
Development management