Обновил текстовый редактор
Обновил текстовый редактор для своего мобильника. Исправил баг из-за которого при сохранении файла меньшего размера поверх файла большего размера, новый файл переписывал только часть исходного файла, т. е. от старого файла оставался кусок старого текста. Похоже это особенность платформы JavaME. Ну и нарисовал новую иконку.
Полезное применение static переменных
Иногда бывает необходимо в какой либо функции находить какую либо информацию, сохраненную в MySQL табличке по её ID. При этом количество элементов в табличке может быть небольшим, а вот количество вызовов такой функции, наоборот большим. Каждый раз вызывать "select ... from" будет расточительно, вставить справочную табличку через JOIN не всегда возможно. Было бы логично сохранить где-либо все значения справочной таблички а потом брать по ключу (табличка как я уже сказал небольшая). Самое лучшее решение, которое я придумал на сегодня — это воспользоваться static переменным (их можно применять не в только для синглитонов)
static function getDocumentTypeName($type_id){ static $cache; if (!isset($cache)){ $cache = Db::selectAssoc("select type_id, type_name from doc_types"); } return $cache[$type_id]; }
При этом переменныя $cache остается в области видимости самой функции, что очень удобно, заполняется она один единственный раз при первом вызове функции.
Семантический CSS
Если вы когда либо занимались HTML версткой, то вам наверняка доводилось слышать от клиентов фразы типа: "сделай эту надпись больше", "этот заголовок должен быть красным", все синие заголовки сделать светлее" и т. п...
Подобные задачи наиболее часто приходится решать HTML верстальщику при работе с текстом. Само собой разумеется, все эти задачи должны рещаться использованием стилей — хороший верстальщик будет использовать внешние стили прописанные в CSS файле, плохой - нагородит кучу inline стилей.
Когда-то, когда я был студентом, я подрабатывал версткой газет. При верстке печатных изданий у тебя есть фиксированный набор стилей, которые ты и можешь использовать. Что характерно, именно строгость стиля и делает внешний вид издания стильным и профессиональным. Кроме этого, профессиональные издания сделаны так, чтобы было проще сначала создать стиль a потом многократно его использовать, это гораздо удобнее, чем постоянно задавать, размер, цвет, выравнивание, кернинг, трекинг, гарнитуру и еще десятки параметров, которые могут изменяться у текста.
Кстати, в Microsoft Word, почему-то, используется прямо противоположный подход — там проще изменить атрибуты самого текста, чем стиля на котором этот текст основан. С каждой новой версией панель инструментов в этой программе увеличивается и увеличивается, вынуждая разработчиков придумывать все новые способы, чтобы уместить на экране все больше и больше кнопочек форматирования. Они даже изобрели новый вид меню, которое назвали "Меда-Лента" (правильно да?). Но с введением нового интерфейса дело еще более ухудшилось. Поэтому, редактирование документов в этом редакторе частенько вызывает приступ острой зубной боли у людей которым довелось поработать в профессиональных программах.
В это же самое время, профессиональные программы верстки часто вообще не имеют панелей инструментов освобождая освободившееся место под собственно документ. Например, интерфейс известного пакета QuarkXpress спроектирован таким образом, чтобы в нем практически невозможно было НЕ пользоваться стилями, тоесть нельзя было работать так как многие привыкли работать в Microsoft Word.
Каскадные таблицы стилей еще более удобны для форматирования текста чем стили текстовых редакторов, в них одному куску текста можно назначать одновременно несколько разных стилей. Одно время я так увлекся бестабличной версткой, что почти позабыл о основном назначении каскадных таблиц - форматировать текст.
На деле, для форматирования текстов нужно совсем немного стилей:
- стили для заголовков h1, h2, h3, h4
- стили для тегов форматирования: b, i, em
- стили для выделения теста цветом: .red, .blue, .gray, .green
- стили для эффектов форматирования: .bold, .italic, .higlight
- стили для выделения размером: .small, .big, .bigger, .smaller
- вспомогательные стили для форматирования: .left, .right, .center, .middle
Речь идет именно о стилях форматирования, стили текста по умолчанию для элеметов body table ul td и других я в этом посте не рассматриваю.
В принципе, этого набора стилей хватает чтобы получить большое количество различных текстовых стилей. Остальные эффекты можно получить комбинируя эти стили между собой.
Допустим, нам нужно сделать слово в тексте красным и полужирным:
Это <b class="red">слово</b> будет полужирным.
Или нам потребовался нестандартный заголовок H2 выровненный по правому краю и зеленого цвета:
<h2 class="right green">Заголовок H2</h2>
Конечно, указанный список стилей является неполным, каждый может дополнить его как желает нужным, но практика показывает — в большинстве случаев такого набора достаточно для решения большинства задач возникающих во время верстки.
У этого метода верстки есть один нюанс. Его можно применять только, если вы редактируете текст вручную, пользуясь текстовым редактором. К сожалению, я не видел еще не одного wysiwyg редактора, способного одновременно присвоить тексту несколько стилей. Если вы такие знаете подскажите.
Еще раз про электронную книгу ONEXT
Забавно, я уже писал, что электронная читалка ONEXT - гаджет на редкость неудачный. Учитывая, как сильно он рекламируется - много людей его купят, и вскоре, пойдут сдавать его обратно в магазин. Я подумал, что будет правильно написать немного подробнее о своих впечатлениях об этом устройстве.
Покупать его я НАСТОЯТЕЛЬНО НЕ РЕКОМЕНДУЮ. Вот краткий перечень косяков данного устройства:
— из за ошибки в прошивке книга зависает если в корень положить файл в FB2 который она не может прочитать. Если файл лежит на флешке — то проблема решится выниманием флешки, вот только флешка в комплекте не идет, поэтому большинство пользователей будут использовать внутреннюю память устройства — после этого книгу останется только выкинуть или сдать обратно в магазин (если получится). Если вы купили такую книжку — купите еще и флешку - не пользуйтесь встроенной памятью! Кстати, кнопка выключения в книжке не предусмотрена а аккумулятор не съемный — если книжка зависла — лучше сразу нести ее в магазин — иначе аккумулятор или вздуется от постоянного большого разрядного тока или полностью разрядится и зарядить его будет уже трудно, ибо чтобы зарядить книжку, нужно сначала ее включить — а это невозможно. При работе в таком режиме книжка почему то разряжается гораздо сильнее, задняя панель сильно нагревается, через несколько часов я заметил, что еще и вздувается, возможно это вздувается сам аккумулятор.
— пользоваться встроенным браузером с WiFi невозможно - можно использовать только их собственный интернет магазин и покупать там книжки за деньги - интерфейс сайта разработан так, что хорошо работает со встроенным браузером - ссылки крупные, и то они не всегда срабатывают, обычные же сайты использовать невозможно в принципе - палец не попадает по маленьким ссылкам, а если и попадает, то ссылки почему-то не нажимаются. Закладки не предусмотрены. Пользоваться экранной клавиатурой трудно (клавиши срабатывают не всегда). Пробовал использовать разные предметы вместо стилуса, который не предусмотрен для ёмкостного экрана. Лучше всего себя показал в качестве стилуса хром-ванадиевый гаечный ключ на 16! Правда пользоваться им все равно невозможно ибо браузер воспринимает переход по ссылке в одном случае из десяти.
— экран серый — технология электронных чернил, в этом устройстве используется технология SiPix другие производители электронных ридеров используют другие виды электронной бумаги дающие лучшую контрастность, возможно поэтому и более низкая цена на устройство с WiFi и сенсорным экраном - я купился именно на это — вы не покупайтесь, главное здесь — экран, а он — кака. Кстати, на сайте производителя на изображении экран абсолютно белый — это прямая ложь! Не покупайтесь.
— перелистывание происходит о-о-о-о-ч-ч-ч-ч-ч-е-нь медленно. О комфорном чтении можно забыть.
Поисковые запросы со словом onext, по которым люди попадают на мой сайт наиболее красноречиво говорят о качестве работы этого ридера:
onext резет
onext электронная книга неисправности
зависла электронная книга onext
не загружаются страницы браузера в onext
Возможно, в будущем данные неполадки будут устранены - большинство из них — программные, но все равно, будет жалко выбросить деньги за бесполезное устройство.