Month: July 2007

  • oledata.mso

    Сегодня разбирался с файлами 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
    У него такая же структура, но в принципе его можно не парсить – там только данные, необходимые для редактирования. Для просмотра данных это не нужно

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

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

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

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

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

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

  • мне билетик

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

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

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

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

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

  • spam достал

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

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

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

  • Roman numerals

    Оказывается раньше писали IIII, а не IV (как сейчас)?
    http://en.wikipedia.org/wiki/Roman_numerals#IIII_or_IV.3F

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

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

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

  • подвал

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

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

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

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

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

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

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

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

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

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

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

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