Archive for July, 2007

oledata.mso

Friday, July 27th, 2007

Сегодня разбирался с файлами oledata.mso и editdata.mso

Эти файлы это Word OLE Web Page Storage Stream. Т.е. служат для “описания” объекта, встраиваемого в другой объект через OLE2.

Например, из Outlook вызывается MS Word (как редактор для html-писем) и в тело письма вставляется таблица MS Excel и презенташка PowerPoint.

При этом в письмо будет сохранены такие объекты (для примера выше):
- thumbnail с картинкой-изображением листа таблицы MS Excel (в gif или png формате)
- то же самое для презенташки PowerPoint
- файл с разрешением .wmz, который является банальным zip-архивом, содержащим полноразмерную картинку-изображение листа из MS Excel (в само письмо оно же может быть вставлено с измеренными размерами – типа уменьшено)
- то же самое для презенташки PowerPoint
- файл oledata.mso

Если достать данные из .WMZ-файла не проблема, то расковырять oledata.mso оказалось не так просто. Целый день угробил;-)

Итак:
- файл хранит сжатые (deflate compression) данные
- читаем первые 4 байта. Там хранится длина несжатых данных
- далее до конца файла лежат именно сами сжатые данные.
- раскодируем их с помощью банального ZLib
- получаем несжатый файл, который представляет собой compound storage из нескольких streams
- перебираем их все и каждый из них раскодируем по такому алгоритму, как мы делали с oledata.mso (т.е. читаем 4 байта длины и декодируем через ZLib)

В нашем примере с письмом, мы получим два streams. Один будет содержать таблицу MS Excel, а второй – презенташку.
Открывай их хоть в MS Excel/MS PowerPoint, хоть в другом вьюере, и наслаждайся.

Пару комментариев:
- имя stream-а в раскодированном oledata.mso это ID-объекта, который используется для ссылки. Т.е. в html-коде письма будет ссылка на встраиваемый ole-объект и там будет прописан его ID.
- все это верно не только для писем (.msg). Например, xml-файл из новых .docx/.xlsx (Office 12) использует тот же самый алгоритм для встраивания объектов
- иногда передается не только oledata.mso, но и editdata.mso
У него такая же структура, но в принципе его можно не парсить – там только данные, необходимые для редактирования. Для просмотра данных это не нужно

опять про недвижимость

Tuesday, July 24th, 2007

В нормальных стабильных странах есть норма – квартира доступна если семья приобретает ее за 5 годовых доходов.
При этом арендная плата рассчитывается для такой квартиры из разчета окупаемости за 10 лет.

Берем пример:
- квартира стоит 300 тыс. Значит семья должна зарабатывать около 5 тыс в месяц
- аренда такой же квартиры должна стоить 2.5 тыс

Пример2:
- квартира ценой 110тыс -> доход семьи 1800 в месяц
- арендовать такое будет возможно за 900

Для столицы цена будет чуть выше из-за постоянного притока перифирии и централизации финансов в столице.

1. Т.е. получается, что семья платит около половины дохода за аренду жилья. В случае если плата больше половины, то выгодней купить жилье, а если меньше – то выгодней снимать.
2. у нас сейчас аренда жилья недооценена в 1.5-2 раза по отношению к стоимости квартир (но наверное соотносится с зарплатами).
3. в долгосрочной перспективе недвижимость не может дешеветь. Исключением может быть какая-то природная катастрофа, уничтожившая недвижимость. Растет недвижка в среднем на инфляционный процент. Т.е. она ни дешевеет, ни дорожает – остается в своей цене.
4. имея лишние деньги стоит прикупать (не смотря на высокие цены), т.к. аренда недооценена, а деньги лишние.
5. не завидую тем, у кого нет недвижимости – цены на покупку на пике, а аренда будет расти. Единственная надежда на уменьшение ставок кредитов. Хотя меньше инфляционных они не будут. По крайней мере у нас в стране.

мне билетик

Wednesday, July 18th, 2007

Подойти к кассе на вокзале, протянуть весь кошелек и буркнуть:
“Мне билет в 1971″
и в ответ на неудомевающий взгляд, покраснеть и капризно – “я хочу обратно в детство”

закрытие окна по-православному

Wednesday, July 18th, 2007

Интересно, а у православных не дрожит рука во время закрытия окошек в MS Windows?
Все-таки жамкать по кресту это почти как кража и возлежание с женой ближнего:-)

Кстати интересно – а чем руководствовался дизайнер, придумавший крест для закрытия-удаления? Может он был араб? :-)

Все-таки это сейчас (в эру всеобщей компьютеризации) крест для удаления-закрытия воспринимается нормально. А в принципе для человека, незнакомого с компом, прямой очевидной связи нет…

spam достал

Wednesday, July 18th, 2007

Спамеров нужно отстреливать и их трупы возить по городам и весям в назидание.

Сегодня ночью опять какое-то российское мурло с aha.ru разослало кучу спама (“футболки по дешевке в Москве”) и проставило мой адрес. С утра отгреб 350 отлупов (returned message) про неверные адреса и они еще продолжают приходить.

Повбивав бы… В последний год уже считаю хорошей ситуацией если на десяток левых писем находится одно нормальное.

Roman numerals

Monday, July 16th, 2007

Оказывается раньше писали IIII, а не IV (как сейчас)?

http://en.wikipedia.org/wiki/Roman_numerals#IIII_or_IV.3F

нестандартное мышление

Monday, July 16th, 2007

У Эдуарда Тополя в романе “Любожид” некто Раппопорт вывез из СССР миллион долларов. Причем вывез, находясь под пристальным надзором КГБ. Для этого ему пришлось… сжечь доллары. Правда, сжечь на глазах трех американских и двух австралийских дипломатов. До этого каждый из дипломатов получил от героя микропленки с фотографиями десяти тысяч стодолларовых купюр, а также перечень их номерных знаков. Дипломаты сверили этот перечень с оригиналом. Затем, когда деньги были сожжены, они составили акт об их уничтожении. В США на основе фотографий, перечня номерных знаков и акта об уничтожении банкнот, заверенного представителями двух посольств, американский федеральный банк обязан выдать предъявителю новые банкноты на сумму уничтоженных.

В аэропорту Шереметьево таможенники долго трясли и резали чемоданы Раппопорта, обыскивали и просвечивали рентгеном его самого. Все напрасно. Миллиона, о котором они доподлинно знали, не было

подвал

Thursday, July 12th, 2007

Если у меня когда-нибудь будет свой дом, то в подвале будет не прачечная, не мастерская и не биллиард.

Там будет аналог бомбоубежища. С запасом жратвы, воды, генераторами электроэнергии и воздуха и т.п.

людской антивирус

Wednesday, July 11th, 2007

Для компьютеров практически сразу же стали создавать всякие антивирусы. Сейчас их уже такая толпа, что ходишь, как в супермаркете.

А вот для людей почему-то комплексного решения нет. Созадются конкретные вакцины против кори или краснухи.
Но нет встроеного монитора, который бы просто сообщал и блокировал вирус.

Едешь ты в метро, а у тебя в ухе пищит и сообщает – “справа от тебя стоит мурло по фамилии Эпштей-Барр и тебе лучше отойти от него влево”.

Или в магазине берешь сдачу, а тебя слегка бьет током и в мозгу красный плакатик – “На монете в 5 копеек сидит активный сифилис, который разносит касирша (подрабатывая вечерами на Окружной)”

куда мир катится

Tuesday, July 10th, 2007

Сейчас видел сайт с шароварой – программа для выключения компа по шедулеру.

Автор умудрился выделить два editions – Prof+Lite и при этом Prof продает в трех лицензиях – Personal/Business/Site

Я понимаю, что прога может быть полезна кому-то, но таких бесплатных валяется тьма. Любой же студент напишет за минуту.

Если раньше хитом был CDEject, то теперь похоже пальма первенства у этого автора.