Pull to refresh
-7
0

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

Send message

Сложное в очевидном: как мы делали интерфейс звонка в Яндекс.Shell

Reading time7 min
Views40K
imageСегодня мы хотим рассказать о том, как создавали такую, как иногда кажется, очевидную вещь, как интерфейс звонка в Яндекс.Shell. К нашему удивлению, за время работы мы поняли, как давно никто всерьёз не думал над тем, что в большинстве телефонов он функционально не улучшался уже много лет. А мир за это время ушёл вперёд. Настало время бросить ретроспективный взгляд на то, как он создавался, с какими задачами мы столкнулись и к каким решениям пришли.

Короткому и понятному английскому слову «dialer» еще только предстоит обзавестись гармоничным, не режущим слух русским эквивалентом. Если вы заглянете в словарь, то в качестве перевода вам будет предложен зубодробительный «номеронабиратель». Однако в живом языке больше прижились слова «звонилка», «дозвонщик» и «дайлер». В рамках своей внутренней кухни мы привыкли использовать именно последний вариант, его мы и будем придерживаться в этом посте.

К идее о том, что для нашей оболочки нужно создать собственный дайлер, мы пришли, отталкиваясь от того, что в этом сегменте ничего по-настоящему нового не появлялось уже достаточно давно. Существовавшие на тот момент в айфонах и андроидах родные и сторонние дайлеры были весьма убедительны и красивы. Но по функциональности все они недалеко ушли от того, что мы уже видели в обычных мобильниках досмартфонной эры. Необходимо было не просто наделить наш дайлер полным набором привычных ожидаемых функций, вроде списка избранных, журнала звонков или T9, но и пойти существенно дальше, а именно – внедрить в него разработки, до сих пор не встречавшиеся на рынке.

Нашим преимуществом в достижении поставленной цели стало то, что, в отличие от аналогов, Яндекс.Дайлер создавался изначально заточенным под Россию и другие страны присутствия Яндекса, что дало нам возможность учитывать интересы и особенности поведения именно «наших» пользователей. Кроме того, давно разработанные пользовательские сервисы — сильная сторона Яндекса, и именно с их помощью мы рассчитывали улучшить функциональность нашего дайлера.

Но обо всем по порядку.
Читать дальше →
Total votes 117: ↑98 and ↓19+79
Comments86

Интересные аспекты развития JavaScript и веб-технологий 2013-го года

Reading time8 min
Views39K
Всем доброго дня!

Проанализировав множество блогов, докладов, презентаций, посетив пару конференций и пообщавшись на них с веб-разработчиками разного профиля, я выделил для себя основные направления в области JavaScript-разработки, которые активно развиваются или только начинают развиваться (и, по моему мнению, им стоит уделить внимание в целях ознакомления). Цель статьи – осветить их, и дать пищу для размышлений, как именно полученные знания можно было бы применить на практике.

Читать дальше →
Total votes 105: ↑80 and ↓25+55
Comments49

8 вещей, которых не должен бояться разработчик

Reading time4 min
Views54K
Изменять код
В процессе разработки программного обеспечения нет такого понятия, как «стагнация». Все, что вы разрабатываете сейчас — просто очередная версия компонента, который вероятно будет меняться в будущем. Изменение является самым распространенным явлением в мире разработки программного обеспечения и вам лучше принять это как факт. Рассчитывайте на возможные изменения всего, что вы разрабатываете и поэтому проектируйте ваш код более модульным. Это упрощает изменения и в тоже время увеличивает качество кода. Старайтесь придерживаться концепций DRY и YAGNI. Вы часто будете в ситуации, когда вы смотрите на ваш код и представляете, что вы могли бы сделать это лучше. Так пусть эта мысль не мешает вам спать. Садитесь сразу за дело и рефакторинг! Если не сделаете это сейчас, вы возможно никогда этого не сделаете. Чем дольше ждете, тем сложнее и дороже это будет. И это может вырасти в лишнюю головную боль, с которой не захочется связываться.
«Хороший код — это код, который легко изменять. Код стремится измениться до момента, когда его уже не легко изменять. Весь код становится плохим кодом». Неизвестный автор.
Читать дальше →
Total votes 101: ↑88 and ↓13+75
Comments35

Разбираем «Противостояние — Военная хроника» (1996-1997гг, Дока)

Reading time6 min
Views31K

Вступление


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

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

image
Читать дальше →
Total votes 55: ↑53 and ↓2+51
Comments10

Новый API HeadHunter и прекращение поддержки API 1.0

Reading time2 min
Views9.8K
Некоторые знают, что у нас есть API, программный интерфейс, позволяющий «общаться» с платформой hh.ru мобильным и десктопным приложениям, другим сайтам и просто виджетам, включая тот, что расположен справа от этой статьи на странице нашего блога.

Мы рады объявить, что на смену текущей реализации приходит новая, полностью переработанная версия API.
Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments8

Хороший пользовательский интерфейс

Reading time7 min
Views120K

Вольный перевод статьи Якуба Линовски — «A Good User Interface».

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

16 практических идей
Total votes 165: ↑150 and ↓15+135
Comments63

QIWI Plastic для вас — на специальных условиях

Reading time2 min
Views107K
Уважаемые жители Хабра, спасибо, что зашли в наш блог за подробностями специальной акции. Мы разработали ее для вас, потому что хотим представить вам нашу карту QIWI Plastic (с июля она распространяется в новом черном дизайне). Вы можете оформить карту совершенно бесплатно. Для этого зайдите на страницу акции (ссылка выше) и получите там промо-код.

А теперь мы хотим на простых жизненных примерах рассказать вам, где и как вам может пригодиться QIWI Plastic.


Читать дальше →
Total votes 94: ↑70 and ↓24+46
Comments306

Карта на Canvas

Reading time5 min
Views15K
Не так давно, для одного проекта потребовалось написать карту, которая будет отвечать следующим требованиям:
  • Плавная прокрутка
  • Подгрузка областей карты


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

В новой версии я учел все ошибки, и в итоге мне удалось добиться того, что карта соответсвовала заявленным требования.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments10

Тренды в веб-дизайне: плоский интерфейс и длинные тени

Reading time2 min
Views25K
Буквально за несколько недель, с момента показа новой iOS 7, произошел легкий сдвиг в сознании не только у дизайнеров, но и у пользователей, имя ему — плоский дизайн. Этот прием, да, назовем его так, получил шквал критики и восхищения, у него появились сторонники и лютые ненавистники, но сегодня, я постараюсь рассмотреть новый, современный, набирающий огромную популярность подход при проектировании — long shadows (длинные тени).

(P.S. — Все картинки кликабельны).

Что такое длинные тени в дизайне, и как это понимать?

fox icon

iPad Mini

Long Shadows

Читать дальше →
Total votes 95: ↑65 and ↓30+35
Comments73

ASP.NET MVC Урок E. Тестирование

Reading time32 min
Views52K
Цель урока. Научиться создавать тесты для кода. NUnit. Принцип применения TDD. Mock. Юнит-тесты. Интегрированное тестирование. Генерация данных.

Тестирование, принцип TDD, юнит-тестирование и прочее.

Тестирование для меня лично – это тема многих размышлений. Нужны или не нужны тесты? Но никто не будет спорить, что для написания тестов нужны ресурсы.
Рассмотрим два случая:
  1. Мы делаем сайт, показываем заказчику, он высылает список неточностей и дополнительных пожеланий, мы их бодро правим и сайт отдаем заказчику, т.е. выкладываем на его сервер. На его сервер никто не ходит, заказчик понимает, что чуда не произошло и перестает платить за хостинг/домен. Сайт умирает. Нужны ли там тесты?
  2. Мы делаем сайт, показываем заказчику, он высылает список правок, мы их бодро правим, запускаем сайт. Через полгода на сайте 300 уников в день и эта цифра растет изо дня в день. Заказчик постоянно просит новые фичи, старый код начинает разрастаться, и со временем его всё сложнее поддерживать.


Читать дальше →
Total votes 125: ↑86 and ↓39+47
Comments0

Сооснователь Пиратской Бухты создаёт мобильный мессенджер, защищённый от прослушки

Reading time2 min
Views27K
Петер Сунде — один из основателей трекера The Pirate Bay, вместе со своими коллегами по Flattr.com Линусом Оллсоном и Лейфом Хёгбергом намерены создать мобильное приложение для обмена мгновенными сообщениями, которые не смогут читать спецслужбы и корпорации. Приложение называется Hemlis («секрет» по-шведски). Оно будет основано на проверенных технологиях, таких как XMPP и PGP, и совершенно бесплатно в базовом варианте. Продвинутые возможности, например, обмен фотографиями или, в перспективе, голосовой и видео-чат, будут доступны за деньги. В приложении не будет рекламы, а продажа персональных данных и прослушка будут невозможны технически — утверждает Петер Сунде. Единственный способ прочитать частную переписку — получить контроль над телефоном одного из собеседников.


Читать дальше →
Total votes 55: ↑50 and ↓5+45
Comments63

Внимание, конкурс!

Reading time1 min
Views5K

На открытии DevCon 2013 (видеозапись открытия на русском и на английском) мы рассказали о том, что не только мы проводим конкурсы мобильных приложений, наши партнёры тоже это делают. И я рад рассказать чуть подробнее о конкурсе, который объявил Банк Тинькофф Кредитные Системы.
Подробнее о конкурсе
Total votes 29: ↑16 and ↓13+3
Comments4

Ещё немного автоматической генерации музыки

Reading time3 min
Views26K

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

Итак, мы хотим написать нечто достаточно музыкальное.
С чего начать?
Total votes 37: ↑35 and ↓2+33
Comments42

Самодельная эргономичная клавиатура CatBoard ][

Reading time16 min
Views146K


CatBoard — это самодельная эргономичная компактная клавиатура с открытым исходным кодом, имеет множество нестандартных решений, таких как: нестандартная аппаратная раскладка со стандартными клавиатурными сочетаниями; быстрый автоповтор нажатой клавиши; Fn слой с клавишами управления курсором, цифровым блоком, функциональными клавишами; отдельные клавиши переключения раскладок; более удобное расположение Ctrl и Shift; отдельную кнопку AltTab; режим совместимости с Macintosh, позволяющий работать на нём точно так же, как и на PC; возможность прошивки без дополнительного оборудования; возможность устанавливать поверх ноутбучной клавиатуры. Благодаря открытому коду, с клавиатурой можно делать что угодно, новая прошивка заливается в считанные секунды, поэтому экспериментировать можно прямо на ходу.
Читать дальше →
Total votes 111: ↑102 and ↓9+93
Comments127

Реалистичный дым на Canvas

Reading time4 min
Views16K

Введение


На просторах интернета есть несколько статей о том как сделать эффект дыма, но скрипты слишком «тяжелые», и лично для меня не совсем понятные. Вот я и решил упростить задачу тем, кому интересно воплотить такой эффект в своих проектах.
Писать много не буду, в основном код с подробными комментариями.
Читать дальше →
Total votes 61: ↑56 and ↓5+51
Comments41

Обзор квадрокоптера DJI Phantom для использования с GoPro

Reading time2 min
Views92K


Привет, жители Хабра. Несколько дней назад я выкладывал обзор GoPro Hero 3 Black Edition и историю компании Woodman Lans. Как оказалось, многим эта статья и этот ролик пришлись по душе, поэтому я решил не останавливаться. Мы взяли на тест квадрокоптер для GoPro под названием DJI Phantom, обзор которого в русскоязычном рунете я, пожалуй, еще не встречал.
Читать дальше →
Total votes 42: ↑33 and ↓9+24
Comments55

Масяня: торжество краудфандинга

Reading time2 min
Views52K
Сегодня, 2 июля 2013 года, в 10:20 по Москве, Олег Куваев, «Папа Масяни» предложил народу скинуться на выпуск очередной серии досрочно: в последние несколько серий её спонсировал МедиаМаркт, а тут — аж до сентября отложили новый выпуск!
Сумма была заявлена в 100 тысяч рублей.
image

Читать дальше →
Total votes 122: ↑99 and ↓23+76
Comments81

ConcurrentDictionary в роли кэша

Reading time6 min
Views23K
Многие разработчики нередко встают перед дилеммой – получать данные только из базы или же держать кэш для ряда таблиц. В основном, это некоторые справочники, которые содержат мало записей и постоянно нужны под рукой. Вопрос этот холиварный и затрагиваться в данной статье не будет.

Такая же проблема встала и передо мной при проектировании высоконагруженного сервера системы мониторинга транспорта на .NET. В итоге, было принято решение, что кэшам – быть. Кэши словарей стали храниться в обёртках над ConcurrentDictionary. Этот вариант был взят без особых исследований, поскольку является стандартным средством .NET для потокобезопасных словарей. Теперь настало время проверить производительность данного решения. Об этом, собственно, статья. Также в конце статьи будет небольшое исследование того, как устроен внутри ConcurrentDictionary.

Читать дальше →
Total votes 38: ↑29 and ↓9+20
Comments44

2ГИС для Android: хорошие новости

Reading time3 min
Views40K
У нас две хорошие новости.

Во-первых, 2ГИС для Android был скачан из Google Play уже больше 4 млн. раз. Спасибо!

Во-вторых, скоро выходит обновление с аппаратным ускорением графики (OpenGL). Оно призвано добавить нашему приложению ещё больше плавности. И избавить от лишних тормозов, чего уж.

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



Читать дальше →
Total votes 79: ↑63 and ↓16+47
Comments134

Дайджест предстоящих IT-событий на июль 2013 года

Reading time4 min
Views9.2K
Не смотря на всеобщие летние каникулы мы подготовили и представляем вашему вниманию 6-й выпуск (мы это портал Айти-событие.рф) «Дайджеста предстоящих IT-событий» на июль 2013 года.

Для удобства навигации все события разделены на 5 категорий:
  • I. Девелоперские
  • II. Джуниорские
  • III. Стартаперские
  • IV. Маркетинговые
  • V. Разное



Читать дальше →
Total votes 34: ↑25 and ↓9+16
Comments8

Information

Rating
Does not participate
Registered
Activity