Если вы читаете по-английски, я рекомедую всё же Сполского, у него понятнее и последовательнее. Главное, что Джоел обращает внимание на разницу между таблицей символов (то есть тем, какому номеру соответствует какой символ) и кодировкой (то есть тем, как именно эти номера упаковываются в байты). Это позволяет сразу понять, что не бывает кодировки «Уникод», что это как «Эйч-ди» — просто маркетинговый термин, значение которого нужно выяснять в каждом случае заново.
Кстати, слова байт и бит в родительном (не счётном) падеже множественного числа будут: байтов, битов. Ещё Болк ошибается, говоря, что в одном байте можно уложить числа до 256 (на самом деле до 255); в двух — до 65536 (на самом деле до 65535); что информации меньше бита не бывает (на самом деле бывает).
Добавлено в 15:41: Ну вот, щас Болк все косяки исправит и моя заметка потеряет смысл.
В Айтюнс-сторе можно найти просто невероятное количество халявного полезного видеоматериала. Оказывается, куча университетов выкладывают туда свои лекции. В частности, можно смотреть настоящих преподавателей, читающих у доски лекции по сотне предметов в Стенфордском университете. Где-то неделю назад я подписался на пару курсов по программированию как на подкаст, но вообще можно смотреть про всё — хоть про философию, хоть про биологию.
С 1 апреля начат новый курс CS193P — разработка приложений для Айфона. Курс читают разработчики из Эпла. Уже прошло три лекции длительностью чуть больше часа каждая, их можно скачать. Я посмотрел только первую, и, как оказалось, то, что показывается в ней, я уже умею и так. Но дальше, думаю, будет веселее. Курс находится по запросу «CS193P».
Бесплатное образование — это невероятно круто. Независимо от круга ваших интересов вы наверняка подыщете себе что-нибудь по вкусу. Системные требование — знание английского и более-менее свободный трафик.
В комментариях предлагаю делиться своими находками.
Кстати, галочка «Я дома один» должна быть не частью формы, а частью настройки браузера. Точнее, там обратная галочка должна быть. Где-нибудь в дебрях параметров безопасности (куда никто не смотрит) чекбокс «Я жуткий параноик» (по умолчанию выключенный) пусть врубает звёздочки в полях типа password. При этом скриптам на странице доступна информация о включенности этого чекбокса, и поэтому они могут, если очень захотят, показать поле подтверждения пароля.
Кто не видел, на Вебораме регистрация не насилует мозг человека двойным зазвёдоченным паролем.
О том, что модальность сосёт, давно известно. Одна из вещей, к которой за более чем полгода использования Мака я так и не смог привыкнуть — уже упоминавшаяся мною тупость диалогов открытия и сохранения файлов, заключающаяся в том, что файлы в них нельзя ни переименовать, ни удалить.
Как я ни пытался поверить сторонникам точки зрения, что «в этом что-то есть», всё равно, фрустрация, которую я испытываю, когда вижу файл в таком диалоге, и понимаю, что совершенно бессилен перед его нежеланием реагировать на драг-н-дроп или правый клик, никуда не исчезает. Ну вот же он, передо мной, ну почему я не могу его переименовать?!
Некоторые ребята говорят, что зато круто, что если в сам диалог открытия перетащить файл, то он не скопируется в ту папку, которая там открыта, а выберется, чтобы его можно было открыть. Что в таком противоестественном и непоследовательном поведении крутого я не знаю. Если я захочу открыть какой-то файл драг-н-дропом, я буду его перетаскивать в иконку приложения, а не в диалог открытия файла.
Другая хрень диалогов открытия-сохранения — это то, что табуляцией невозможно дошагать до самого списка файлов, приходится хвататься за мышку.
Вместе со «Смэшинг-магазином» мы выпустили Английскую типографскую раскладку, в которой, например, есть французские одинарные ёлочки. А вот пост в самом журнале на эту тему; меня там называют «a Russian designer with passion for typography». И ведь это правда: я, наконец-то, смог дочитать Брингхерста до конца.
Добавлено в 20:22: Для русской аудитории последней как была, так и остаётся версия 2.0.4, доступная в русской части моего сайта.
Холодная вода должна быть слева, а горячая — справа. Этот принцип может быть нарушен, в случае, если в конкретных условиях очевиден источник горячей воды. Например, если слева от умывальника висит водогрейка, горячая вода может быть слева. В одной квартире все смесители должны работать одинаково. Этот принцип уже не может быть нарушен.
Выключатель должен включать вверх, а выключать — вниз. Этот принцип не может быть нарушен, и, как следствие, «проходные» выключатели запрещены.
Левая дверь должна открываться поворотом ключа против часовой стрелки; правая — по.
Туалетная бумага должна висеть в сторону человека, а не стены. Этот принцип не может быть нарушен. Даже в гостях можно перевесить туалетную бумагу, стена не обидится.
Некоторые люди боятся стоматолога, а некоторые отважно делают там какой-нибудь обезболивающий укол. Ещё, оказывается, многие женщины приводят за руку своих боящихся мужей.
Зачем мне предлагали сегодня укол я так и не врубился: подумаешь, посверлили чуть-чуть. Самым болезненным было то, что мне пришлось вставать в 8 утра.
Печально было, когда на кассе передо мной несчастной пенсионерке сказали, что её сумма составляет 12600 р., и что 6600 ей придётся доплатить. Выяснилось, что она бывшая железнодорожница, и пришла лечить зубы в рамках какой-то акции щедрости, устроенной железной дорогой, когда своим пенсионерам они предлагают лечить зубы бесплатно; при этом бесплатность ограничивается шестью тысячами рублей.
В выходные опять немного поигрался с Какао. Научился делать пункты меню, в которых нарисовано то, что я хочу. Получил поверхностное представление об использовании «имплисит анимейшенс» в Кор-анимейшене. Сделал экспериментальный билд Эмси, в котором реализовал пару вещей.
Во-первых, я сделал шрифт мельче. Когда пунктом меню выступал просто текст в виде NSString, он рисовался стандартным шрифтом для пунктов меню. Я думал, что изменить его я смогу только, если буду использовать кустомный вью (сейчас-то я уже думаю, что, наверное, можно было просто NSAttributedString использовать в качестве тайтла). Короче, теперь у меня используется более мелкий шрифт — из стандартных вещей такой применяется, например, в индикаторе уровня заряда батарейки на ноутбуках.
Во-вторых, у меня теперь видно, какая часть трека уже проигралась. Я хочу сделать так, чтобы в эту штуку можно было тыкать, чтобы сразу прыгать в нужное место песни. Ещё есть гипотеза, что круче будет показывать, наоборот, сколько осталось до конца. Эта хрень использует Кор-анимейшен и плавненько переезжает в нужное место, если в Айтюнсе перемотать что-нибудь куда-нибудь резко.
Во время паузы вся эта штука красиво зачёрнобеливается.
Кстати, синий градиент — это просто синий прямоугольник высотой в несколько пикселей, которому с помощью Кор-имиджа был сделан вертикальный моушен-блюр ещё на несколько пикселей.
К сожалению, чтобы показывать прогресс мне приходится снова по таймеру каждую секунду спрашивать Айтюнс о ситуации, что заметно грузит процессор. Само по себе время идёт со вполне предсказуемой скоростью, поэтому мне было бы достаточно знать только о моментах, когда пользователь перематывает что-то, а всё остальное время просто пририсовывать раз в секунду по секунде. Но, к сожалению, Айтюнс не уведомляет систему о перемотке, только о паузе, воспроизведении или смене песни. Если у вас есть идеи относительно того, как отлавливать момент перемотки, я был бы очень рад совету — можно было бы реализовать всё намного чище.
Если кому интересно — пишите, пришлю последний билд посмотреть. Он глючит, иногда вдруг перестаёт рисовать синюю фигню, приходится перезапускать.