RavenDB, dynamic и Excel

Интро

Уже давно хотелось пощупать главное нововведение .NET 4 – DLR, да и RavenDB выглядит очень аппетитным, а собранные вместе в одном месте дают возможность реализовать очень интересные штуки. Да и на чём потренироваться у меня есть – мой список дисков, который я веду в Excel. Давно уже хочется отказаться от таблиц и использовать что-то более гибкое.

Итак, далее последует примерный конспект моих мытарств в освоении всего нового, а именно – как работать с приложениями MS Office напрямую, основы использования динамических объектов и работа с RavenDB. На всякий случай, я использовал MS Office 2010 RTM x64, Visual Studio 2010 RTM и RavenDB build 101 (начал я с 100, но там был баг с загрузкой индексов).

Читать далее

Firefox 4

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

Про все новые поддерживаемые стандарты и технологии писали уже неоднократно, да и мне сейчас гораздо важнее совсем другое – нововведения, делающие жизнь конечного пользователя комфортней.

Итак, первое, что бросается в глаза – скорость. Скорость загрузки, отрисовки страниц (в т.ч. при прокручивании), сложных веб-приложений, использующих JavaScript. Несмотря на то, что код только-только дорос до более-менее стабильного состояния, уже сейчас заметна разница в старте приложения по сравнению с текущей стабильной веткой. Конечно, до Chrome ещё далеко, но по крайней мере, уже не возникает раздражения при постоянном пользовании программы (и это с учётом того, что у меня стоит множество расширений для Firefox).

Второе – то, что я ждал больше всего – новый интерфейс.

Его сильно переработали и теперь он очень хорошо вписывается в окружение Windows 7. Aero Galss, Aero Peek (хотя всё ещё используется один процесс :(), закладки сверку, аппаратное ускорение отрисовки примитивов, использование DirectWrite для типографики… Это просто сказка какая-то 🙂

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

Ещё не все нововведения, анонсированные для 4й версии реализованы, что несколько расстраивает. Так, главная кнопка приложения попала в транк лишь пару недель назад (а переехала на положенное место и того позже). Кнопки Обновить/Отменить всё ещё отдельные, как в прототипах для 3.7 (а не интегрированы в адресную строку). Закладки для веб-приложений тоже ещё не реализованы (а я уже так привык к ним, когда пользовался прототипом на предыдущих версиях). Менеджер аккаунтов тоже ещё не готов (сейчас он ничем не отличается от предыдущих версий). Новый менеджер расширений готов лишь на половину (совсем нет страницы поиска, процесс установки/обновления никак не показывается). Ну и т.д. и т.п.

Но лично для меня – стабильная работа (пока ещё ни одного вылета), DirectWrite и новый интерфейс вполне достаточны, чтобы пребывать в восторге и пользоваться сырым продуктом на постоянной основе.

Чудо, что зовётся AdBlock

Думается, что все более-менее “продвинутые” пользователи знают, что одним из первых расширений для Firefox стоит ставить AdBlock Plus. Все знают, что парой щелчков мыши (добавлением подписки) можно избавить себя от подавляющего большинства рекламы в сети. Причём, в любом её проявлении.

Естественно, нельзя сделать абсолютно универсальный инструмент, поэтому иногда придётся дотачивать его под себя. Обычно, это сводится к добавлению простеньких правил для блокирования URL определённого вида, но иногда этого недостаточно.

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

Зачем это надо? Например, иногда бывает проще скрыть элемент, в котором показывается реклама, чем блокировать сотню ссылок, откуда она подтягивается. Или чтобы подправить вид сайта после отсекания некоторых элементов дизайна xD

Для примера, возьмём всеми [не]любимый bash.org.ru. Вот как он выглядит в девственном виде, как его задумали создатели:

Вот так сайт видят пользователи IE

А вот так после включения AdBlock со стандартными правилами:

А так видят сайт большинство пользователей Firefox

Не очень эстетично, правда? А если мы нажмём [Ctrl]+[Shift]+[E] и добавим новое правило скрытия элементов вида bash.org.ru##div.q>div:first-child:not(.vote), то в результате увидим вот это:

А вот так видят этот сайт... педанты

Вот ещё несколько полезных примеров:

icanhascheezburger.com##div#toprightad
icanhascheezburger.com##div#rightskyad
icanhascheezburger.com##div#leftcolumnad

mail.ru##div.rb_body
mail.ru##div.mf_smsTop

iphones.ru##div.rc10
iphones.ru##div#sidebar>noindex:last-of-type
iphones.ru##div#sidebar>noindex:nth-of-type(2)

rutracker.org##div[id^="bn-"]
rutracker.org##div.tCenter

urod.ru##a[href^="http://loadpartners.com"]
r.radikal.ru##embed#id_flbaner
exler.ru##td#Counter
exler.ru##div[id^="Banner"]

membrana.ru##body>table>tbody>tr>td>table+table
umap.ru##td.column-right>div:nth-of-type(3)

##div.item-body>div>a[href*="d.techcrunch.com/ck.php"]>img

Особенно радует, что использовать можно практически все возможности, предоставляемые CSS3. Подробности – в документации по AdBlock.

Office Live

Ура, товарищи! Чудо свершилось и буквально только что Office Live стал доступен для использования.

К сожалению, все мои опасения по поводу ограниченности функционала для работы с японскими текстами (из того, что мне больше всего нужно) подтвердились. 🙁

Просмотр - хорош; редактирование - так себе

Как видно, просмотр всё так же хорош, как и раньше, а вот создавать новые (или редактировать уже существующие) документы – нельзя 🙁

Категории словаря Google Japanese IME

Google 日本語入力 (aka Google Japanese IME) – новый игрок на рынке японских средств ввода, появившийся около полугода назад.

Его основная особенность – словарь, построенный на основе лингвистической статистической модели, полученной Google на основе всей индексированной на данный момент информации в Интернете. На практике это означает более высокий процент “угадывания” ввода пользователя при конвертировании. Более того, подсказки с вариантами появляются непосредственно при вводе и иногда предлагают готовое предложение уже после ввода всего пары символов. Ещё из плюсов – поправка на небольшие опечатки и типичные ошибки при вводе.

Пример подсказки
Более экстримальный пример

Из минусов – редко встречаемые чтения / кандзи / сочетания слов попросту отсутствуют. Но это можно исправить, воспользовавшись встроенным редактором пользовательских словарей, который не в пример удобнее аналога из стандартной поставки в Windows.

Пример реального пользовательского словаря Как ни странно, этих слов действительно нет в словаре, поставляемом вместе с IME.

Самое замечательное – это возможность указания категории добавляемого слова. Проблема в том, что не все термины в этом списке понятны (по крайней мере, лично мне).

Поэтому, вооружившись словарями и википедией, я сделал небольшую шпаргалку:

Категория Перевод
名詞 существительное
固有名詞 имя собственное
人名 имя (полное?)
фамилия
имя
組織 организация
地名 название места
名詞サ変 отглагольное существительное?
名詞形動 существительное, употребляемое в качестве прилагательного (noun adjectival)
число / числительное?
アルファベット алфавит
記号 символ / знак
顔文字 смайл (aka 絵文字)
副詞 наречие
連体詞 pre-noun adjectival
接続詞 союз
感動詞 междометие
接頭詞 приставка
助数詞 счётный суффикс
接尾一般 суффикс (другое)
接尾人名 суффикс (к имени человека)
接尾地名 суффикс (к названию места)
動詞ワ行五段 глагол на у (笑う, 問う)
動詞カ行五段 глагол на ку (書く, 行く)
動詞サ行五段 глагол на су (探す)
動詞タ行五段 глагол на цу (勝つ)
動詞ナ行五段 глагол на ну (死ぬ)
動詞マ行五段 глагол на му (読む)
動詞ラ行五段 глагол на ру (切る)
動詞ガ行五段 глагол на гу (泳ぐ)
動詞バ行五段 глагол на бу (遊ぶ)
動詞ハ行五段 глагол на фу? — википедия говорит, что нет таких
動詞一段 глагол (другое)
動詞カ変 неправильные глаголы на ку (来る, 来)
動詞サ変 неправильные глаголы на су (する, 発する, 愛する, す)
動詞ザ変 неправильные глаголы на зу (案ずる)
動詞ラ変 неправильные глаголы на ру (有り)
形容詞 прилагательное (“настоящие”, на и)
終助詞 частица, заканчивающая приложение (よ, ね, かし, わ)
句続点 символ-разделитель (、。)?
括弧開 открывающая скобка
括弧閉 закрывающая скобка
独立語 отдельное слово

То, что помечено знаком вопроса – в этом я не уверен, так что, если кто поправит – буду очень признателен.