Обзор самых популярных материалов на AdMe. На тот
случай, если вы пропустили что-то интересное этим летом.
Этот материал будет полезен тем, кто на нашем сайте
совсем недавно, или не заглядывал в нашу Библию креатива
, или хочет освежить в памяти все самое интересное,
что у нас было. Щедрая порция отборнейшего креатива,
рекламного закулисья, современного арта и полезнейшего чтива
для приятного пятничного времяпровождения.
Согласно исследованию Net Applications, к середине 2012 г.
доля Internet Explorer снизиться до 50% рынка, в то время как Chrome
выйдет на второе место, оттеснив Firefox в арьергард...
Говорят, что обычная QWERTY-клавиатура
была изобретена с целью уменьшить скорость набора, потому что у слишком
быстрых машинистов первые машинки клинили. Не знаю, сколько в этом
утверждении правды, но то, что раскладка далеко не идеальна
— факт. Факт также то, что разрабатывалась она для
печати десятью пальцами на больших клавишах размещенных в три ряда.
В неизменном виде она перекочевала на электрические пишущие машинки, а
затем и на компьютерные клавиатуры, где все стало ещё удобнее
— теперь клавиши срабатывали от легкого нажимания, и по ним
не приходилось лупить со всей дури.
Все было бы просто отлично, если бы не страсть к минимизации.
Ноутбуки,
нетбуки, классические смартфоны (не «тачфоны»)
— QWERTY-клавиатура стремительно уменьшалась в
размерах, сохраняя при том свою сущность. Для некоторых таких творений
впору вести набор спичками. Были и неплохие инженерные решения
— например на Sony-Ericsson M600i клавиши-качели
содержали по две-четыре символа, и они выбирались в зависимости от
способа нажима.
Но когда это добро перекочевало на экраны… возьмем
в
качестве образца айфон(да, исторически первым [массовым] тачфоном
все-таки было яблоко): три с половиной дюйма диагонали, отношение
сторон — 2:3. Кто помнит теорему Пифагора, какова
ширина экрана? x^2 + (3x/2)^2 = 3.5^2 => x^2 = 49/13 => x
≈1.9414" ≈ 49,3мм.
Итак, ширина экрана — меньше 5 сантиметров. В ряду
— 10 клавиш. Получается — меньше
5 мм на клавишу, и это включая промежутки между ними. Не знаю как у
вас, а меня пальцы ощутимо шире, да и печатать на приборе таких
размеров я могу только одним, ну максимум двумя большими пальцами
одновременно. Ну не могу я печатать на ЭТОМ, при всей его умности!
Хватит обратной совместимости! Я печатать вслепую научился за неделю,
так дайте мне клавиатуру, где не придется целится в клавиши! Я
её изучу! Я хочу комфортно и быстро печатать!
Видно, не у меня одного пальцы толще, чем спички, и не
перевелись
смелые программисты, которые готовы обрубить обратную совместимость,
ведь в маркете можно найти несколько клавиатур, которые не имеют с
QWERTY ничего общего.
Фото–версия
сказки от фотографа Елены Калис (Elena Kalis). Елена ведет
съмку в бассейне и в океане на Багамских островах, для съемки
использует Canon 5D Mark2 и водонепроницаемый чехол от Ikelite.
"Чем старше я становлюсь, тем менее важной становится
запятая. Пусть читатель сам решает, где ему ставить паузы." —
Elizabeth Clarkson Zwart
Примерно так я комментировал свой код двадцать лет назад (внимание,
чуток драмы):
/*
* Когда мы дойдем сюда, наша структура уже будет готова.
* К тому же, мы создали достаточно большой буфер, в который
* можно засунуть все входные данные, плюс есть немного места
* про запас. Я не уверен, понадобится ли оно, но хуже не будет.
* Теперь нам надо обновить счетчик, предполагая, что клиент
* уже прочитал значение, но еще не использовал его. Сначала
* я хотел переложить обязанность инкремента на плечи вызывающего
* кода. С другой стороны, это означает, что инкремент нужно делать
всем,
* поэтому я решил, что будет лучше перенести его сюда. Но мы можем
* пересмотреть это решение позже, если вдруг кому-то из внешних функций
* захочется делать инкремент самому.
*/
counter++; // инкрементировать счетчик для потребляемого значения
/*
* Теперь нужно просмотреть весь буфер с данными. Для этой
* операции нам понадобится еще один индекс, иначе перед
* выходом из функции мы потеряем начальное значение.
* Я хотел назвать эту переменную ‘ref’, потому что
в некотором
* смысле мы будем обращаться с ней как со ссылкой на данные.
* В конце концов я пришел к выводу, что самым лучшим
* названием для нее будет ‘pos’. Если что, я не
против обсудить
* это решение.
*/
char* pos = buffer; // начинаем наш обход данных
/*
Теперь, мы...
*/
Ну что, узнаете? А должны! Если быть предельно невежливым,
весь код выше написал нуб. (Между прочим, если вы не знаете, кто такой
нуб, значит вы — нуб).