23 окт. 2015 г.
Блог переехал
http://obrizan.livejournal.com
Блог переехал навсегда.
4 мая 2013 г.
Об узких шрифтах в интерфейсе
Я предпочитаю использовать шрифты Paratype, потому что они включают кириллические буквы. На рисунке ниже показано что произойдет, если в программу загрузить шрифт, в котором авторы позаботились только о латинице:
Выигрыш в количестве информации на экране становится заметным тогда, когда загловок выводится в две строки:
Пример включения узкого шрифта в iOS-проект можно глянуть на гитхабе: https://github.com/obrizan/NarrowFontTable
О ситуации с русскоязычным Stack Overflow
Казалось бы, какое благое дело: поддержать сайт, где твои же сограждане, коллеги, могли бы быстро решать текущие профессиональные вопросы на родном для них языке. Тем не менее, некоторые мои знакомые отказались (хоть и аргументированно) подписаться под этой заявкой.
Кроме этого есть еще другой вопрос: будет ли запущен сайт, если завяка все-таки наберет все необходимые показатели по пользователям? Давайте посмотрим на опыт других стран. На картинке ниже показаны заявки турков, китайцев, потругальцев и бразильцев, испанцев (эта заявка еще не набрала всех показателей, но уже скоро).
Но это не является причиной не пойти и не подписаться под заявкой на русскоязычный Стаковерфлоу.
2 апр. 2013 г.
О PHP-фреймворках
8 янв. 2013 г.
Я взял фотографию
Для дизайнеров, которые подписываются под таким интерфейсом, все не англоязычные пользователи — это пигмеи. Они думают, что нам можно подсунуть суррогат, подделку и мы ей обрадуемся и удовлетворимся.
В этом и скрывается весь великий смысл "Я взял фотографию" в Instagram'е.
6 янв. 2013 г.
Я вспоминаю те дни
Я вспоминаю те дни, когда мы с другом детства в середине девяностых писали компьютерную игру-бродилку для компьютера ZX Spectrum.
Среда разработки — это тетрадка и ручка. Левелы рисовали на бумаге, спрайты сначала рисовали в тетрадке в клеточку, а потом в виде битовых масок вводили в компьютер. На Спектруме не было никакой операционной системы, при включении компьютер сразу входил в режим интерпретации команд языка Бейсик, где можно было построчно вводить программу.
Первым разочарованием было то, что оперативной памяти на Спектруме достаточно мало: всегод 48 КБ. А если еще вычесть видеопамять (около 6 КБ), системные переменные (около 2 КБ) и знакогенератор (около 1 КБ), то остается и того меньше 40 КБ. Программа хранилась в памяти в виде определенного байт-кода, имеется в виду, что одна команда кодировалась одним или двумя байтами. Отчетливо помню, когда я сидел и вбивал уровни, после очередной строчки кода у меня слетел знакогенератор: объем программы достиг того уровня, что байт-код начал затирать знакогенератор. Тогда мы поняли, что что-то серьезное мы на Бейсике не напишем. Мы знали, что существует язык ассемблера микропроцессора Z80, но у нас совершенно не было представления, как это работает. Я напомню, что это середина 90-х, никакого интернета с Википедией еще не было. Т. е. интернета ни у кого не было, а вообще он конечно где-то был. А Википедии точно не было нигде.
И вот мы с другом узнали, что есть специальная книга Как написать игру на ассемблере для ZX Spectrum. Денег ни у кого тогда не было, и мой друг попросил у мамы денег на то, чтобы купить футболку, и мы тайно поехали и купили на эти деньги книжку по программированию. Времена были суровые, демократия уже вовсю шагала по Украине, поэтому признаться, что ты потратил деньги не на еду, ни на одежду, а на книжку — было делом опасным.
Повторюсь, что интернета не было, да и книг тоже было не очень много. Поэтому в таком состоянии информационного голода книги прочитывались неоднократно.
Одно из первых ощущений написания игры на ассемблере по сравнению с Бейсиком — это то, что все работало намного быстрее и естественно занимало меньше памяти. К сожалению, программирование на ассемблере требует больших знаний и усидчивости, не все моменты были до конца понятны, и из-за этого разработка шла медленно. А потом компьютер вообще сломался, и на этом моя карьера спектрум-программиста окончилась. Игра так и осталась незавершенной.
Тогда мы выжимали максимум из тех немногочисленных источников информации, что имели. А вот сейчас смотрю и компьютеры с интернетом у всех есть, и книг много, и форумов, где быстро ответят на нужные вопросы, тоже много, а молодежь все равно в каком-то ступоре. Интернет для инженера — это как экскаватор для землекопа. За эти десятки лет информатизация нашей страны вырасла на порядки. Уже все есть. Препятствия к успеху остались только внутренние.
Я бы попрограммировал сейчас на Спектруме, да не вернешь годы.
24 нояб. 2012 г.
О дизайне графиков
Здесь мы видим сравнение двух показателей: синей линией показано количество посещений (Visits), а голубой — количество уникальных пользователей (Unique Visitors). Еще раз посмотрите на график и дайте ответ на вопрос, чего больше: посещений или уникальных пользователей? Может показаться, что правильный ответ — "уникальных пользователей", но этот ответ неверный. Во-первых, он нелогичен, потому что пользователей всегда меньше, чем посещений. Во-вторых, если мы наведем мышкой на линии графика, то нам покажут подсказку:
Оказывается, эти два графика показаны в разных масштабах. Один для посещений, другой для пользователей. И на самом деле посещений больше, чем уникальных пользователей.
Мы с детства привыкли, что в системе Декартовых координат чем выше находится точка, тем больше она в абсолютном значении. Но, видимо, в США в школах детей учат как-то по другому. Дети вырастают, становятся программистами и делают вот такие вот графики.
14 окт. 2012 г.
Самый главный гайдлайн
Самый главный гайдлайн при написании кода это отбивать реализации методов несколькими пустыми строчками и строкой-комментарием. Несмотря на возможности современных IDE по поиску и структуризации исходного кода, визуальное ориентирование все еще играет важную роль.
Рассмотрим пример ниже. Есть реализация класса на языке Objective-C. Методы отбиты всего-лишь одной строкой. Также отбивка одной строкой встречается не только между методами, но и между логическими блоками кода внутри методов. Длинна названия метода не может служить хорошим ориентиром начала нового метода. Например, название метод stopProgressAnimating короче любой строки предыдущего метода loadCommentsFailure. Глазу не за что зацепиться.
Тот же самый код, но методы отбиты пустыми строками и комментарием. Теперь место между концом одного метода и началом следующего образует однородный узор, который постоянно повторяется. Такой узор легко обнаружить даже при быстром скролировании.
15 сент. 2012 г.
Харьковскому «Эхостару» — пять лет
Тут на днях харьковскому офису «Эхостара» стукнуло пять лет. Тогда, в 2007 году, коллектив компании был сформирован большей частью из студентов, аспирантов и сотрудников факультета компьютерной инженерии и управления Харьковского национального университета радиоэлектроники. С кем-то работали вместе, с кем-то учились, с кем-то сходились в ожесточенных баталиях на футбольных полях.
Ребята, больших успехов вам! С праздником!