Pull to refresh
-1
0

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

Send message

7 правил создания красивых интерфейсов. Часть 2

Reading time 9 min
Views 104K


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Сегодня мы публикуем вторую часть перевода. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Мы говорили о правилах создания чистых и красивых интерфейсов.

Вот эти правила:
  1. Свет падает сверху (Часть 1)
  2. Сначала черное и белое (Часть 1)
  3. Увеличьте белое пространство (Часть 1)
  4. Научитесь накладывать текст на изображения
  5. Научитесь выделять и утапливать текст
  6. Используйте только хорошие шрифты
  7. Крадите как художник

Читать дальше →
Total votes 46: ↑44 and ↓2 +42
Comments 15

7 правил создания красивых интерфейсов

Reading time 8 min
Views 180K


Недавно мы в «Я люблю ИП» закончили курсы по дизайну от trydesignlab.com. И это одна из самых важных статей, которую нам посоветовал ментор в процессе обучения. Именно поэтому мы решили её перевести. Посмотреть все наши работы с курсов можно в ВКонтакте по тэгу #design101@iloveip.

Вступление


Сначала о главном. Это руководство не для всех. Это руководство прежде всего для:
  • разработчиков, которые хотят уметь делать хорошие интерфейсы для себя, если вдруг прижмёт;
  • UX-дизайнеров, которые знают, что хороший UX-дизайн продаётся лучше в красивой UI-упаковке.

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

А пока давайте я расскажу, что вы найдёте в этой статье.

Читать дальше →
Total votes 86: ↑81 and ↓5 +76
Comments 34

Что почитать на выходных НЕлюбителю фантастики

Reading time 4 min
Views 20K
Выходные — лучшие дни, когда можно посвятить себе немного времени. Например, завалившись с книгой на диван. Так получилось, что вся редакция блога любит читать фантастику. Но мы слышали, что есть и такие люди, которым этот жанр почему-то не близок. Но им можно помочь, познакомив с некоторыми книгами, способными поменять отношение к фантастике. Да и заядлому любителю они будут не менее интересны.

«Воробей», Мэри Расселл




В этой книге есть путешествие на другую планету, есть инопланетяне. Здесь описаны странные профессии будущего, в терминах, которые пока не существуют. Но суть книги в другом — она скорее не о конкретных событиях, а о персонажах. Автор аккуратно избегает научных и технических подробностей, если только это не требует описания того, о чём думает тот или иной персонаж. Вот как это объясняет сама автор: «В «Воробье» София Мендес просто проверяет полученные сообщения. Если бы я написала книгу в 1991, то героиня проверяла бы автоответчик. Сейчас она проверяла бы iPhone. Но человек не проверяет технологию, он проверяет сообщения!». В общем, это книга о людях, но о людях на другой планете.
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Comments 6

Модули JavaScript

Reading time 12 min
Views 55K


Это третья публикация по материалам нашей внутренней конференции Sync.NET. Первая публикация была посвящена многопоточности в .NET, вторая — реактивным расширениям.

При разработке front-end части приложения на языке JavaScript, мы можем столкнуться с рядом традиционных проблем. Все они решаются при помощи модульных подходов. Ниже мы рассмотрим самые популярные подходы для описания модулей в JavaScript, которые существуют на сегодняшний день.
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Comments 19

История Transformice: инди-игра с 60 миллионами пользователей

Reading time 17 min
Views 42K
В мае 2010 года появилась игра Transformice, которую создали всего лишь два разработчика ради собственного удовольствия и в свое свободное время. Эта игра принадлежит к классу многопользовательских платформеров. Своим же успехом Transformice обязана публикациям на таких платформах, как 4chan и Something Awful.



После 4 лет и множества обновлений в игре зарегистрировано уже 60 миллионов учетных записей.

Нельзя сказать, что разработка игры Transformice уже завершена. Наоборот, эта игра находится в стадии активного развития. И сегодня я бы хотела рассказать о том, что мы делали эти четыре года как для развития игры, так и для ее монетизации, ведь сделать игру – непросто, но еще сложнее – заработать на этом деньги. Итак, цифры!
Читать дальше →
Total votes 63: ↑57 and ↓6 +51
Comments 25

Установка свойства объекта с использованием лямбда-выражений

Reading time 2 min
Views 4.2K
Если возникает необходимость одинаковой обработки присвоения значения свойству объекта, то можно воспользоваться лямбда выражениями. Такая задача может возникнуть при проверке или обработке значений, логгировании присвоения и т.д.
Читать дальше →
Total votes 19: ↑7 and ↓12 -5
Comments 7

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

Reading time 2 min
Views 43K


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

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

Мы обычно пытаемся объяснить себе этот раздражающий факт тем, что наши мысли были заняты чем-то другим, или то, что мы хотели сделать, было не слишком для нас важным, или же мы просто на что-то отвлеклись. Но исследователи решили изучить этот вопрос с научным подходом.
Читать дальше →
Total votes 37: ↑27 and ↓10 +17
Comments 41

Вы неправильно пишете животных

Reading time 5 min
Views 357K
Животные – это платформы с очень ограниченной памятью, вычислительными способностями и возможностями модификаций. Разработчикам энимал-сцены приходится выдавать практически гениальные низкоуровневые алгоритмы. Правда, большое количество хардкода вызывает характерные проблемы с отсутствием проверки в экзотических условиях. Та же фильтрация входных данных делается очень и очень криво.


Уязвимость рекурсивных алгоритмов навигации муравья: спираль смерти

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

Но пойдём далее. Я не знаю, кто разрабатывал архитектуру ящериц, но они бегают в одном процессе, а дышат в другом. При этом платформа не поддерживает многозадачность, поэтому костыль с максимальной длиной бега в 4-6 секунд просто эпичен.
Читать дальше →
Total votes 442: ↑438 and ↓4 +434
Comments 350

Lock-free структуры данных. Очередной трактат

Reading time 16 min
Views 51K

Как вы, наверное, догадались, эта статья посвящена lock-free очередям.

Очереди бывают разные. Они могут различаться по числу писателей (producer) и читателей (consumer) – single/multi producer — single/multi consumer, 4 варианта, — они могут быть ограниченными (bounded, на основе предраспределенного буфера) и неограниченными, на основе списка (unbounded), с поддержкой приоритетов или без, lock-free, wait-free или lock-based, со строгим соблюдением FIFO (fair) и не очень (unfair) и т.д. Подробно типы очередей описаны в этой и этой статьях Дмитрия Вьюкова. Чем более специализированы требования к очереди, тем, как правило, более эффективным оказывается её алгоритм. В данной статье я рассмотрю самый общий вариант очередей — multi-producer/multi-consumer unbounded concurrent queue без поддержки приоритетов.
Читать дальше →
Total votes 74: ↑71 and ↓3 +68
Comments 8

Skyforge: технологии рендеринга

Reading time 16 min
Views 103K


Всем привет! Меня зовут Сергей Макеев, и я технический директор в проекте Skyforge в команде Allods Team, игровой студии Mail.Ru Group. Мне хотелось бы рассказать про технологии рендеринга, которые мы используем для создания графики в Skyforge. Расскажу немного о задачах, которые стояли перед нами при разработке Skyforge с точки зрения программиста. У нас свой собственный движок. Разрабатывать свою технологию дорого и сложно, но дело в том, что на момент запуска игры (три года назад) не было технологии, которая могла бы удовлетворить всем нашим запросам. И нам пришлось самим создать движок с нуля.
Читать дальше →
Total votes 139: ↑132 and ↓7 +125
Comments 51

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

Reading time 2 min
Views 101K
Привет, Хабр!
Ничего не писал со времен своей первой статьи, решил, что пора это исправить.

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

Ниже я даю рецензии на книжки, которые считаю очень полезными в различных разделах computer science, которые используются в геймдеве. Я намеренно опускаю книги по C++ и алгоритмам: мне кажется, эта тема уже настолько изучена и освещена, что больше про нее не стоит рассказывать.

Я старался покрыть максимальное количество разных топиков, особенно тех, что спрашивают на собеседованиях. Я старался воздерживаться от domain-specific литературы: профессионалы и так знают. Все картинки содержат ссылки на амазон.

А какие книжки нравятся вам?
Также в комментах можете писать, на какие темы вам были бы интересны посты.

Читать дальше →
Total votes 67: ↑62 and ↓5 +57
Comments 12

Подглядываем за метаниями нейронной сети

Reading time 8 min
Views 32K


В комментариях к моей предыдущей статье о происходящем в нейронной сети проскользнула фраза, что, к сожалению, визуализация процессов обучения редко бывает возможна на реальных задачах с большими данными. Действительно очень жаль. Давайте же попытаемся это исправить. Под катом я предлагаю простую и, как ни удивительно, информативную визуализацию процесса обучения нейронной сети, не зависящую ни от характера задачи, ни от свойств самой сети, то есть доступную для сколь угодно сложной задачи.
Читать дальше, с картинками
Total votes 42: ↑40 and ↓2 +38
Comments 17

Управленческие инструменты: Как невольно затроллить собеседника и получить минус в карму

Reading time 2 min
Views 49K
В предыдущей статье по управленческим инструментам мы разбирали алгоритм, как конструктивно решать проблемы с людьми. Настала очередь поговорить о неконструктивных приемах. И начну с истории.

В 2004 году наш коллектив, мирно делающий проекты для Sun Microsystems, решила приобрести корпорация, мировой лидер по производству микропроцессоров. Прилетел вице-президент корпорации и начал раздавать оферы.

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

И вот иду я по коридору со счастливой улыбкой на лице. Навстречу — директор одного из Sun'овских подразделений, назовем его Сергей. У нас были такие приятельские отношения, поэтому ничто не предвещало беды.

Что было дальше?
Total votes 67: ↑43 and ↓24 +19
Comments 60

Алгоритм Улучшенной Самоорганизующейся Растущей Нейронной Сети (ESOINN)

Reading time 6 min
Views 33K

Введение


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

В этой статье будет рассмотрен алгоритм An Enhanced Self-Organizing Incremental Neural Network, являющийся расширением базовой модели SOINN и частично решающий озвученные проблемы.
Читать дальше →
Total votes 38: ↑36 and ↓2 +34
Comments 10

О гипотезе Пуанкаре. Лекция в Яндексе

Reading time 6 min
Views 103K
Еще в XIX веке было известно, что если любую замкнутую петлю, лежащую на двумерной поверхности, можно стянуть в одну точку, то такую поверхность легко превратить в сферу. Так, поверхность воздушного шарика удастся трансформировать в сферу, а поверхность бублика – нет (легко вообразить себе петлю, которая в случае с бубликом не стянется в одну точку). Гипотеза, высказанная французским математиком Анри Пуанкаре в 1904 году, гласит, что аналогичное утверждение верно и для трехмерных многообразий.

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



Читают лекцию доценты механико-математического факультета МГУ к. ф-м. н. Александр Жеглов и к. ф.-м. н. Федор Попеленский.
Конспект лекции
Total votes 139: ↑131 and ↓8 +123
Comments 14

Параллельные и распределенные вычисления. Лекции от Яндекса для тех, кто хочет провести праздники с пользой

Reading time 3 min
Views 78K
Праздничная неделя подходит к концу, но мы продолжаем публиковать лекции от Школы анализа данных Яндекса для тех, кто хочет провести время с пользой. Сегодня очередь курса, важность которого в наше время сложно переоценить – «Параллельные и распределенные вычисления».

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



Лекции читает Олег Викторович Сухорослов, старший научный сотрудник Центра грид-технологий и распределенных вычислений ИСА РАН. Доцент кафедры распределенных вычислений ФИВТ МФТИ. Кандидат технических наук.
Содержание и тезисы лекций
Total votes 106: ↑98 and ↓8 +90
Comments 31

Machine Learning. Курс от Яндекса для тех, кто хочет провести новогодние каникулы с пользой

Reading time 8 min
Views 264K
Новогодние каникулы – хорошее время не только для отдыха, но и для самообразования. Можно отвлечься от повседневных задач и посвятить несколько дней тому, чтобы научиться чему-нибудь новому, что будет помогать вам весь год (а может и не один). Поэтому мы решили в эти выходные опубликовать серию постов с лекциями курсов первого семестра Школы анализа данных.

Сегодня — о самом важном. Современный анализ данных без него представить невозможно. В рамках курса рассматриваются основные задачи обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на глубокое понимание математических основ, взаимосвязей, достоинств и ограничений рассматриваемых методов. Отдельные теоремы приводятся с доказательствами.



Читает курс лекций Константин Вячеславович Воронцов, старший научный сотрудник Вычислительного центра РАН. Заместитель директора по науке ЗАО «Форексис». Заместитель заведующего кафедрой «Интеллектуальные системы» ФУПМ МФТИ. Доцент кафедры «Математические методы прогнозирования» ВМиК МГУ. Эксперт компании «Яндекс». Доктор физико-математических наук.
Содержание и видео всех лекций курса
Total votes 172: ↑166 and ↓6 +160
Comments 47

Изобретаем JPEG

Reading time 28 min
Views 172K

Вы правильно поняли из названия, что это не совсем обычное описание алгоритма JPEG (формат файла я подробно описывал в статье «Декодирование JPEG для чайников»). В первую очередь, выбранный способ подачи материала предполагает, что мы ничего не знаем не только о JPEG, но и о преобразовании Фурье, и кодировании Хаффмана. И вообще, мало что помним из лекций. Просто взяли картинку и стали думать как же ее можно сжать. Поэтому я попытался доступно выразить только суть, но при которой у читателя будет выработано достаточно глубокое и, главное, интуитивное понимание алгоритма. Формулы и математические выкладки — по самому минимуму, только те, которые важны для понимания происходящего.

Знание алгоритма JPEG очень полезно не только для сжатия изображений. В нем используется теория из цифровой обработки сигналов, математического анализа, линейной алгебры, теории информации, в частности, преобразование Фурье, кодирование без потерь и др. Поэтому полученные знания могут пригодиться где угодно.

Если есть желание, то предлагаю пройти те же этапы самостоятельно параллельно со статьей. Проверить, насколько приведенные рассуждения подходят для разных изображений, попытаться внести свои модификации в алгоритм. Это очень интересно. В качестве инструмента могу порекомендовать замечательную связку Python + NumPy + Matplotlib + PIL(Pillow). Почти вся моя работа (в т. ч. графики и анимация), была произведена с помощью них.

Внимание, трафик! Много иллюстраций, графиков и анимаций (~ 10Мб). По иронии судьбы, в статье про JPEG всего 2 изображения с этим форматом из полусотни.
Читать дальше →
Total votes 356: ↑354 and ↓2 +352
Comments 70

Lock-free структуры данных. Основы: Модель памяти

Reading time 18 min
Views 93K

В предыдущей статье мы заглянули внутрь процессора, пусть и гипотетического. Мы выяснили, что для корректного выполнения параллельного кода процессору необходимо подсказывать, до каких пределов ему разрешено проводить свои внутренние оптимизации чтения/записи. Эти подсказки – барьеры памяти. Барьеры памяти позволяют в той или иной мере упорядочить обращения к памяти (точнее, кэшу, — процессор взаимодействует с внешним миром только через кэш). “Тяжесть” такого упорядочения может быть разной, — каждая архитектура может предоставлять целый набор барьеров “на выбор”. Используя те или иные барьеры памяти, мы можем построить разные модели памяти — набор гарантий, которые будут выполняться для наших программ.

В этой статье мы рассмотрим модель памяти C++11.
Читать дальше →
Total votes 72: ↑69 and ↓3 +66
Comments 8

Lock-free структуры данных. Извне: введение в libcds

Reading time 14 min
Views 30K

В этой статье я даю краткий обзор того, как применять библиотеку lock-free структур данных libcds. В реализацию я углубляться здесь не буду, — это просто взгляд извне, взгляд со стороны пользователя библиотеки.

Библиотека libcds имеет свою точку зрения на многие известные структуры данных. Отчасти это объясняется целевой областью – lock-free структуры данных довольно минималистичны по набору предоставляемых методов, — отчасти желанием выйти за ограничения и решения стандартной библиотеки STL. Что из этого получилось – решать пользователям libcds.

Кому интересно – добро пожаловать под кат
Читать дальше →
Total votes 49: ↑49 and ↓0 +49
Comments 5

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity