4 мая 2013 г.

Об узких шрифтах в интерфейсе


Площадь экрана любого смартфона значительно меньше экрана ноутбука или настольного компьютера. А значит и информации помещается намного меньше. Рассмотрим пример приложения типа "лента новостей" ниже:


Здесь используется стандартный шрифт Helvetica. Видно, что в заголовок новости целиком умещается всего-лишь 2-3 слова, что явно слишком мало, чтобы понять о чем новость. Как можно улучшить ситуацию? Один из вариантов — это уменьшить размер шрифта. Но я в работе использую другой подход: размер шрифта остается тот же самый, но используется другая гарнитура, которая имеет зауженное начертание букв. На рисунке ниже показана та же самая программа, которая использует шрифт PT Sans Narrow Bold:


Таким образом, с сохранением размера шрифта, в заголовок новости уже умещается 3-4 слова.

Я предпочитаю использовать шрифты Paratype, потому что они включают кириллические буквы. На рисунке ниже показано что произойдет, если в программу загрузить шрифт, в котором авторы позаботились только о латинице:


Здесь только слово Windows узкое, все же остальные символы взяты из стандартного шрифта Helvetica.

Выигрыш в количестве информации на экране становится заметным тогда, когда загловок выводится в две строки:



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

Пример включения узкого шрифта в iOS-проект можно глянуть на гитхабе: https://github.com/obrizan/NarrowFontTable

О ситуации с русскоязычным Stack Overflow

Стаковерфлоу — это сайт, на котором люди из кожи вон лезут, чтобы помочь другим людям найти ответы на вопросы по программированию. Коллеги не дадут соврать, что большую половину вопросов можно решить поиском по этому сайту. Идея создания такого сайта оказалась настолько успешной, что авторами была запущена платформа Stack Exchange c многочисленными сайтами по другим темам. Например, об английском языке и его использовании, для сисадминов, о фотографии, христианстве и многих других, в общем количестве 101 штук. Но Стаковерфлоу остается самым популярным: 5 млн вопросов, 10 млн ответов, 6 млн визитов в сутки.

Существует специальный сайт Area 51 (названный по аналогии с американской военной базой в штате Невада, где происходит испытание секретных технологий). На этом сайте обсуждаются и культивируются новые сайты, которые можно было бы запустить на платформе Stack Exchange. Среди прочих сайтов любителей пива и специалистов по пикапу, обсуждается заявка создания сайта Stack Overflow на русском языке

Было уже много сказано "за" и "против" создания подобного сайта на русском языке. Мол, программисты должны все поголовно знать английский язык. Или что согласно старой русской традиции, на сайте вместо конкретных ответов будут убеждать топикстартера в том, какой он мудак.

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

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

Но вернемся к заявке. Чтобы запустили подобный сайт нужно собрать минимум 200 желающих задавать вопросы или на них отвечать, при этом из этих 200 желающих должно найтись 100 пользователей, у которых есть рейтинг 200 или более очков на любом другом сайте на платформе Stack Exchange. Понятно, что речь идет про англоязычный Stack Overflow. На момент написания этих строк под заявкой подписалось 145 пользователей, из которых 41 имеют существенный рейтинг. Т. е. заявка подписана на 41 %. Нужно еще 59 пользователей с рейтингом 200+. 

Stack Exchange Q&A site proposal: Stack Overflow (in Russian)

Казалось бы, какое благое дело: поддержать сайт, где твои же сограждане, коллеги, могли бы быстро решать текущие профессиональные вопросы на родном для них языке. Тем не менее, некоторые мои знакомые отказались (хоть и аргументированно) подписаться под этой заявкой.

Кроме этого есть еще другой вопрос: будет ли запущен сайт, если завяка все-таки наберет все необходимые показатели по пользователям? Давайте посмотрим на опыт других стран. На картинке ниже показаны заявки турков, китайцев, потругальцев и бразильцев, испанцев (эта заявка еще не набрала всех показателей, но уже скоро). 



Если мы зайдем в эти заявки, то увидим следующее сообщение:

Вольный перевод: "Временно сайты не могут быть запущены, потому что теги не поддерживают буквы национального алфавита. О запуске сайта будет сообщено отдельно". Так вот, например, сайт на китайском мог бы быть запущен уже 16 декабря, когда собралось необоходимое количество пользователей. Прошло уже больше четырех месяцев, а сайт так запущен и не был. Как и не были запущены ни турецкий, ни португальские сайты. 

Но это не является причиной не пойти и не подписаться под заявкой на русскоязычный Стаковерфлоу.

2 апр. 2013 г.

О PHP-фреймворках

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

8 янв. 2013 г.

Я взял фотографию



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

В этом и скрывается весь великий смысл "Я взял фотографию" в Instagram'е.

6 янв. 2013 г.

Я вспоминаю те дни



Я вспоминаю те дни, когда мы с другом детства в середине девяностых писали компьютерную игру-бродилку для компьютера ZX Spectrum.

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

Первым разочарованием было то, что оперативной памяти на Спектруме достаточно мало: всегод 48 КБ. А если еще вычесть видеопамять (около 6 КБ), системные переменные (около 2 КБ) и знакогенератор (около 1 КБ), то остается и того меньше 40 КБ. Программа хранилась в памяти в виде определенного байт-кода, имеется в виду, что одна команда кодировалась одним или двумя байтами. Отчетливо помню, когда я сидел и вбивал уровни, после очередной строчки кода у меня слетел знакогенератор: объем программы достиг того уровня, что байт-код начал затирать знакогенератор. Тогда мы поняли, что что-то серьезное мы на Бейсике не напишем. Мы знали, что существует язык ассемблера микропроцессора Z80, но у нас совершенно не было представления, как это работает. Я напомню, что это середина 90-х, никакого интернета с Википедией еще не было. Т. е. интернета ни у кого не было, а вообще он конечно где-то был. А Википедии точно не было нигде.

И вот мы с другом узнали, что есть специальная книга Как написать игру на ассемблере для ZX Spectrum. Денег ни у кого тогда не было, и мой друг попросил у мамы денег на то, чтобы купить футболку, и мы тайно поехали и купили на эти деньги книжку по программированию. Времена были суровые, демократия уже вовсю шагала по Украине, поэтому признаться, что ты потратил деньги не на еду, ни на одежду, а на книжку — было делом опасным.

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

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

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

Я бы попрограммировал сейчас на Спектруме, да не вернешь годы.

24 нояб. 2012 г.

О дизайне графиков

Недавно обратил внимание на один график в программном обеспечении Google Analytics.

График

Здесь мы видим сравнение двух показателей: синей линией показано количество посещений (Visits), а голубой — количество уникальных пользователей (Unique Visitors). Еще раз посмотрите на график и дайте ответ на вопрос, чего больше: посещений или уникальных пользователей? Может показаться, что правильный ответ — "уникальных пользователей", но этот ответ неверный. Во-первых, он нелогичен, потому что пользователей всегда меньше, чем посещений. Во-вторых, если мы наведем мышкой на линии графика, то нам покажут подсказку:


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

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

14 окт. 2012 г.

Самый главный гайдлайн

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

Рассмотрим пример ниже. Есть реализация класса на языке Objective-C. Методы отбиты всего-лишь одной строкой. Также отбивка одной строкой встречается не только между методами, но и между логическими блоками кода внутри методов. Длинна названия метода не может служить хорошим ориентиром начала нового метода. Например, название метод stopProgressAnimating короче любой строки предыдущего метода loadCommentsFailure. Глазу не за что зацепиться.

image

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

image

15 сент. 2012 г.

Харьковскому «Эхостару» — пять лет

Тут на днях харьковскому офису «Эхостара» стукнуло пять лет. Тогда, в 2007 году, коллектив компании был сформирован большей частью из студентов, аспирантов и сотрудников факультета компьютерной инженерии и управления Харьковского национального университета радиоэлектроники. С кем-то работали вместе, с кем-то учились, с кем-то сходились в ожесточенных баталиях на футбольных полях.

Ребята, больших успехов вам! С праздником!

Темы

2012 (2) амазон (1) анпакинг (1) артемий лебедев (4) атн (1) аудио (1) аэропорт (1) безопасность (3) бизнес (1) билайн (1) блог (2) будущее (2) видео (11) википедия (5) вымысел (16) гагарин (1) герман (1) гитхаб (1) гугл (3) дед мороз (1) декабрь (1) демотиватор (2) дети (2) дизайн (13) диссертация (2) документация (1) друзья (5) евпатория (1) евро-2012 (1) жадность (1) заяц (1) идея (1) имейл (1) инстаграм (1) интервью (5) интересное (20) интерфейс (13) история (7) как_выжить (4) календарь (1) капитализм (1) картина (1) кмб (6) книга (6) коллекция (4) компилятор (2) конкурс (5) космос (1) лаборатория (1) либералы (1) лингво (1) лузер (6) макаренко (2) макдональдс (2) математика (1) медиапорт (1) ментор (1) металлика (1) металлист (2) метро (7) микрософт (6) миргород (1) москва (2) музыка (3) наркомания (1) новости (17) образование (3) оптимизация (5) основы (14) открытки (3) ошибка (11) памятник (1) патриотизм (3) плагиат (1) плата (1) погода (3) поиск (1) политика (2) полтава (2) праздник (1) программирование (15) прошлое (2) путешествия (8) рейтинг (1) рендер (1) рисунок (2) русские (1) русский язык (1) сайт (4) санкт-петербург (1) сапр (7) сеть (1) си++ (1) синтез (1) системси (1) скриншот (40) социализм (1) соцопрос (3) спектрум (2) спорт (2) срач (2) статистика (1) такси (1) тбб (3) твитер (9) тимошенко (1) украина (5) униан (1) фан (30) фокус (1) фото (39) фотошоп (1) фурсенко (1) футбол (2) хабр (1) харьков (21) хнурэ (19) хобби (4) цитата (2) чехия (1) школа (1) эпл (1) эхостар (1) юмор (1) яндекс (1) clang (2) doxygen (1) english (3) ios (1) llvm (1) msdn (1) outlook (1) PHP (1) stackoverflow (1)

Блгъ

Поиск

Читатели