Как стать автором
Обновить
57
0.1
Dmitry Oganezov @DmitryO

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

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

Как я правил контраст и базовую палитру в дизайн-системе

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

Меня зовут Игорь Пешков, я дизайнер в KODE — IT-компании, которая занимается коммерческой разработкой. Хочу рассказать вам, как исправлял проблемы с контрастом в дизайн-системе одной крупнейшей в своей области экосистемы IT-продуктов (сами понимаете — NDA). 

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

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

История одного pet-проекта

Время на прочтение19 мин
Количество просмотров10K
Если помните, в детстве были такие книжки, где ты читаешь, а в конце есть вариант развилки — пойти направо или налево, убить кого-то или помиловать. В зависимости от вашего выбора в книжке было написано: «Перейдите на такую-то страницу и на такую-то строчку». У Александра Зимина появилась идея для pet-проекта – сделать маркетплейс с дизайном Netflix или онлайн-кинотеатров и где было бы много таких игр.

Александр учился в Высшей Школе Экономики на факультете ФКН и руководил встречами CocoaHeads, пока не уехал из России. Участвовал в разных европейских и американских стартапах, но в то же время успел поработать и full-time в лондонском Badoo. Сейчас Александр участвует в проектах в доле. В своем докладе на конференции App Live 2019 Александр рассказал о том, что помогло ему сделать проект прибыльным, и какой путь он прошёл для этого. Его рассказ — от идеи до результата, — мы расшифровали и публикуем сегодня.


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

Разработка мобильных приложений на заказ недорого: реальность или иллюзия

Время на прочтение9 мин
Количество просмотров10K
Когда вы приходите к решению о создании мобильного приложения, не имея в разработке опыта, неизбежно возникает вопрос найма разработчиков. Сам по себе вопрос не дает ответа, поэтому приходится анализировать плюсы и минусы услуг аутстаффинга или аутсорсинга различных исполнителей. Первый показатель, который приходится учитывать при анализе – цена. Хочется дешевле, но обойдется ли в итоге дешево? Этой статьей мы в Omega-R хотим показать подводные камни, которые могут скрываться за часто встречающимися низкими ценами.


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

Лучшие вопросы средней сложности по SQL на собеседовании аналитика данных

Время на прочтение14 мин
Количество просмотров89K
Первые 70% курса по SQL кажутся довольно простыми. Сложности начинаются на остальных 30%.

С 2015 по 2019 годы я прошёл четыре цикла собеседований на должность аналитика данных и специалиста по анализу данных в более чем десятке компаний. После очередного неудачного интервью в 2017 году — когда я запутался в сложных вопросах по SQL — я начал составлять задачник с вопросами по SQL средней и высокой сложности, чтобы лучше готовиться к собеседованиям. Этот справочник очень пригодился в последнем цикле собеседований 2019 года. За последний год я поделился этим руководством с парой друзей, а благодаря дополнительному свободному времени из-за пандемии отшлифовал его — и составил этот документ.

Есть множество отличных руководств по SQL для начинающих. Мои любимые — это интерактивные курсы Codecademy по SQL и Select Star SQL от Цзы Чон Као. Но в реальности первые 70% из курса SQL довольно просты, а настоящие сложности начинаются в остальных 30%, которые не освещаются в руководствах для начинающих. Так вот, на собеседованиях для аналитиков данных и специалистов по анализу данных в технологических компаниях часто задают вопросы именно по этим 30%.

Удивительно, но я не нашёл исчерпывающего источника по таким вопросам среднего уровня сложности, поэтому составил данное руководство.
Читать дальше →
Всего голосов 23: ↑21 и ↓2+25
Комментарии17

32 отличия дизайна мобильного приложения под iOS и Android

Время на прочтение12 мин
Количество просмотров62K
image

Железный дизайнер из Redmadrobot Design Lab Артур Абраров делится наблюдениями.

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

Чтобы адаптировать дизайн правильно, нужно соблюдать гайдлайны платформ: Human Interface Guidelines (HIG) у iOS и Material Design у Android. И общаться с разработчиками, в идеале подключать их к дизайну как можно раньше, чтобы они могли сразу задать технические ограничения.

Но в чём именно отличается дизайн под iOS от дизайна под Android? В этой статье я разберу 32 конкретных отличия дизайна под iOS и Android. Они поделены на четыре группы:

  1. Базовые отличия.
  2. Отличия в навигации и паттернах (UX).
  3. Отличия в компонентах (UI).
  4. Прочие отличия.

Особенности iOS будут слева, а Android — справа или сверху/снизу.

Базовые отличия


Human Interface Guidelines vs Material Design


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

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

image

image
Всего голосов 29: ↑29 и ↓0+29
Комментарии14

Анимируем RecyclerView легко без перехода на ViewPager2

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


Когда мы работаем с коллекциями и их отображением, перед многими из нас часто
встает выбор между ViewPager (теперь ещё и ViewPager2) и RecyclerView. Эти
компоненты похожи друг на друга по области применения, но серьезно отличаются
интерфейсом и реализацией. Начиная с support library 24.2.0 границы между
данными компонентами стали ещё более размытыми, т.к. появился вспомогательный
класс SnapHelper для автоматического доведения сhildView до
определенного положения на экране, и без устаревшего ViewPager стало проще
обходиться. С недавним релизом ViewPager2, казалось бы, о старом ViewPager и о
практиках его имитации вообще можно забыть (ViewPager2 — это по сути
RecyclerView с дополнительными вспомогательными классами, он позволяет
практически идентично повторить поведение ViewPager и сохраняет совместимость со
старым api).


Так ли это на самом деле? Лично для меня всё оказалось не так просто. Во-первых,
в классическом RecyclerView отсутствует интерфейс PageTransformer для
анимирования сhildView в зависимости от позиции (далее по тексту используется
понятие «позиционная анимация»). Во-вторых, неприятными сюрпризами долгожданного
ViewPager2 оказались модификатор класса final, который ставит крест на
переопределении метода onInterceptTouchEvent (компонент мало пригоден для
вложения горизонтальных списков в вертикальные), и приватность поля
recyclerView.


Итак, столкнувшись в очередной раз с трудностями позиционной анимации при
отображении коллекций с помощью RecyclerView и поковырявшись в ViewPager2 и
MotionLayout, я подумал, что позаимствовать принцип работы
ViewPager.PageTransformer для классической реализации RecyclerView а-ля
ViewPager2 не самая плохая идея.

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

Обзор светодиодных ламп Remez E27 и E14 на корейских светодиодах нового поколения

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


Качество современных источников света постепенно улучшается и уже стало сравнимо с обычным солнечным светом. Такой источник появился благодаря корейским светодиодам Sunlike, имеющих спектр как у дневного света. Недостатком обычных светодиодов является избыток синего света в излучаемом спектре.
Читать дальше →
Всего голосов 15: ↑10 и ↓5+10
Комментарии49

DartUP 2019: итоги и видеозаписи докладов

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


23 ноября в питерских Ткачах прошел DartUP — единственная в России конференция по Dart и Flutter. Это уже третье большое событие, организованное Wrike при поддержке Google. Все началось три года назад, когда Wrike создал русскоязычное сообщество DartRu, которое было официально признано Google. За это время мы провели несколько тематических митапов и конференций, и вот в 2019-м нам едва ли хватило мест на DartUP для всех желающих.

Мы хотим поблагодарить всех участников, спикеров, ведущих и организаторов! Без вас DartUP бы не удался. За целый день мы успели послушать доклады в двух залах, посоревноваться в CodeBattle, узнать про Dart и Flutter из первых уст, выиграть призы, задать вопросы в специальном приложении и, конечно, пообщаться на неформальной нетворкинг-сессии, запивая все специально сваренным Dart-пивом.

Несколько цифр про DartUP 2019:

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

Справочник начинающего подкастера

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

Эта статья — краткое руководство для тех, кто хочет запустить свой собственный подкаст. Когда я вместе с моим нынешним соведущим год назад запускал подкаст “В бесконечность и далее”, я не смог найти ни одной по-настоящему всеобъемлющей статьи. Поэтому я решил попытаться заполнить этот пробел и написать руководство для себя из прошлого.


Немного о структуре — это руководство содержит 4 статьи:


  1. Общая философия
    1.1. Зачем делать подкаст?
    1.2. Целевая аудитория
    1.3. Выбор жанра
    1.4. Формат
  2. Технический базис
    2.1. Что такое подкаст с технической точки зрения
    2.2. Аудио-формат
    2.3. Про динамики, наушники и ламповый звук
    2.4. Про тихое помещение
  3. Делаем покупки
    3.1. Покупаем микрофон
    3.2. Выбираем аудиоредактор
    3.3. Выбираем программу для записи звука
    3.4. Выбираем хостинг подкаста
    3.5. Сайт-визитка
  4. Записываем и выпускаем
    4.1. Запись выпуска
    4.2. Редактирование выпуска
    4.3. Про джинглы и звуковые схемы
    4.4. Про фоновый шум
    4.5. Про фильтры
    4.6. Про Show Notes, а также про то, зачем слушать свой подкаст
    4.7. Публикация подкаста
    4.8. Монетизация
    4.9. Темы, которые есть, но о которых мы не говорили

Каждый раздел статьи содержит три блока


  • Суть раздела — основная мысль, изложенная тезисно
  • Детальное описание “что, зачем и почему”. Обычно — много букв, которые поясняют основную мысль, и находятся они в скрытой секции “Дополнительная информация”
  • Ответ, который нашли мы

Интересно — читайте все. Нет времени — читайте первый и последний абзац.



1. Общая философия


1.1. Зачем делать подкаст?


Ответ может быть любым, но только не “потом посмотрим”, ”ещё не думал” или “не знаю”. Если ответа нет, весьма высока вероятность что

Читать дальше →
Всего голосов 95: ↑91 и ↓4+87
Комментарии33

MotionLayout: анимации лучше, кода — меньше

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

Google продолжает улучшать нашу жизнь, выпуская новые удобные библиотеки и API. Среди которых оказался и новый MotionLayout. Учитывая обилие анимаций в наших приложениях, мой коллега Cedric Holtz сразу же реализовал важнейшую анимацию нашего приложения — голосование в знакомствах — с использованием нового API, сэкономив при этом огромное количество кода. Делюсь переводом его статьи. 

Недавно закончилась конференция Google I/O 2019, на которой анонсировали обновления и самые свежие улучшения нашего любимого SDK. Лично мне особенно интересна была презентация Николаса Роарда и Джона Хофорда о будущей функциональности ConstraintLayout. А точнее, о его расширении в виде MotionLayout. 

После выпуска бета-версии мне захотелось реализовать анимацию знакомств на основе этой библиотеки.
Читать дальше →
Всего голосов 37: ↑32 и ↓5+27
Комментарии6

Реальные сроки изучения слепой печати при низкой мотивации

Время на прочтение4 мин
Количество просмотров75K
В статье я опишу свой сугубо субъективный пример того, сколько времени занимает обучение методу комфортной слепой печати. Это с учётом того, что мне данный навык не был критически важен, но иметь его давно хотелось.


Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии198

Мы написали самый полезный код в своей жизни, но его выкинули на помойку. Вместе с нами

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


Я повесил у себя в подвале боксерскую грушу, приклеил на нее стоковое фото типичного менеджера и запихал внутрь динамик, чтобы он проигрывал фразы, которые меня злят. Например, груша говорит: «Бизнесу не нужен твой идеальный код. Ему нужно решить проблему так, чтобы прибыль покрыла затраты. Если для этого нужен говнокод, значит будет говнокод». И начинаю дубасить.

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

Мой друг Антоха попросил меня помочь с решением для одной большой-большой корпорации. Я согласился, и мы влезли в бездонную пучину корпоративного абсурда, кранча, войны с ничего не понимающими коллегами и всеми видами несправедливости. Нам ничего нельзя говорить, поэтому мы будем говорить про типы, чтобы такая фигня никогда ни у кого не повторялась.
Читать дальше →
Всего голосов 164: ↑101 и ↓63+38
Комментарии259

Подборка: 5 полезных сервисов для написания статей на английском

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


Всем привет! Меня зовут Марго, я профессиональный маркетолог и редактор, в последние пару лет фокусируюсь на продвижении за рубежом и много пишу на английском. Я решила поделиться ссылками на приложения и сайты, которые помогают мне в ежедневной работе при создании контента. Надеюсь, список поможет изучающим английский и тем, кто публикует англоязычные материалы на Хабре.
Читать дальше →
Всего голосов 51: ↑48 и ↓3+45
Комментарии29

Контент-маркетинг в США, Латинской Америке и Азии: полезные советы, ссылки и инструменты для бюджетного продвижения

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


Изображение: Unsplash

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

Задача охватить даже минимальную аудиторию в разных концах света без огромных затрат кажется невыполнимой. На самом же деле с помощью инструментов контент-маркетинга решить ее можно без особых затрат. Сегодня я расскажу о том, как лучше действовать в различных ситуациях, и какими инструментами пользоваться. Поехали!
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии12

Почему я отказался от Disqus и вам тоже пора

Время на прочтение2 мин
Количество просмотров52K
Замена Disqus на Commento снизила размер страниц в 10 раз

Когда я завёл блог, то установил Disqus для комментариев. Это был естественный выбор: сайты по всему интернету ставили Disqus, его легко настроить, и есть бесплатный вариант использования. Я спокойно интегрировал движок комментариев и двинулся дальше.

Но вот в чём дело: я всегда знал, что Disqus немного раздувает страницы. Я ведь писал о веб-производительности и обычно старался оптимизировать страницы. Но я просто предположил, что Disqus прибавляет немного лишних килобайт. Логика: если он сильно раздувает страницы, все бы уже давно отказались от него. Очевидно, Disqus старается не увеличивать трафик, верно?

Я ошибался.
Читать дальше →
Всего голосов 146: ↑145 и ↓1+144
Комментарии48

Кодирование речи на 1600 бит/с нейронным вокодером LPCNet

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


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

Впервые нейронный вокодер работает в реальном времени на одном процессорном ядре телефона, а не на высокоскоростном GPU. Итоговый битрейт 1600 бит/с примерно в десять раз меньше, чем выдают обычные широкополосные кодеки. Качество намного лучше, чем у существующих вокодеров с очень низким битрейтом и сопоставимо с более традиционными кодеками, использующими более высокий битрейт.
Читать дальше →
Всего голосов 57: ↑56 и ↓1+55
Комментарии31

Покупки в Android приложении — Play Billing Library

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

И как это до сих пор на Хабре нет статьи об этом? Не дело, надо исправлять.

Есть 2 способа добавить In-App покупки в Android-приложение — старый и новый. До 2017 года все пользовались библиотекой от anjlab, но с июня 2017 года ситуация изменилась, Google выпустила собственную библиотеку для внутренних покупок и подписок — Play Billing Library. Сейчас последний считается стандартом.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии24

Исчерпывающий список различий между VB.NET и C#. Часть 1

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

Согласно рейтингу TIOBE в 2018 году VB.NET обогнал по популярности C#. Совпадение или нет, но в феврале Эрик Липперт, один из создателей C#, призвал читателей обратить внимание на блог его друга, бывшего коллеги по команде компилятора Roslyn и, по совместительству, ярого фаната VB.NET, Энтони Грина. «Подобные ресурсы — это глубинные детали от экспертов, которые не так легко найти, читая документацию», пишет Эрик. Представляем вашему вниманию первую часть перевода статьи Энтони Грина «Исчерпывающий список различий между VB.NET и C#». Возможно, именно в этих различиях кроется секрет динамики рейтинга этих языков.
Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии20

Простой парсер для youtube в гугл таблицах

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

Предыстория


Появилась задача собрать данные по 2000+ youtube видео, из которых необходимо было извлечь название видео, канала и язык.

Функция IMPORTXML, с помощью которой можно выполнять парсинг с сайтов, — не помогла, поскольку, как оказалось в дальнейшем, youtube хранит данные в JSON файлах. Перебирать руками такое количество видео не хотелось и я начал искать способы как автоматизировать или хотя бы упростить эту задачу.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии3

Красивые точные часы из старого смартфона

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


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

Я расскажу о некоторых выясненных особенностях сихронизации времени в ОС Андроид, а также о разных электрических хитростях в системе питания смартфона. Опишу пример схемы на несложных аналоговых компонентах, которая осуществляет автоматическое резервное питание. И конечно речь будет о программной части андроид – как и с помощью чего можно самому сделать из смартфона красивые часы на любой вкус.
Читать дальше →
Всего голосов 150: ↑147 и ↓3+144
Комментарии137
1
23 ...

Информация

В рейтинге
2 913-й
Откуда
Portland, Oregon, США
Дата рождения
Зарегистрирован
Активность