Category: Soft/Programming

  • Excel: check if a workbook has been changed

    The Wokbook interface have the boolean Saved property:

    if xls.Workbooks.Item[i].Saved then 
        ...
  • WD1001FALS

    Вчера заказал и забрал в Соколе жесткий диск WD Caviar Black (WD1001FALS)

    Выбирал между ним и WD10EADS из “зеленой” серии. С одной стороны зеленая серия потише и не так греется. Да и скорость не так важна – диск больше под хранилище архивов будет использоваться.

    С другой стороны из-за бага с постоянной парковкой головок (и как следствие щелканье диска и износ SMART’а) отказался от него.

    В принципе месяц назад WD выпустил новый зеленый терабайтник WD10EARS и у него даже объем кеша 64Mb вместо 32, но он же не поддерживается в Windows XP, т.е. можно будет поставить на него только Vista/Windows7 из-за размера физического сектора в 4Kb вместо стандарных 512байт. Хотя вроде бы каким-то джампером можно добиться работы в XP. В любом случае скорость 5200rpm+кеш 64Mb даст такую же скорость как 7200rpm+кеш 32Mb у WD1001FALS

    На выходных попробую поставить его на старый комп через переходник IDE<->SATA. Вчера с мороза он был очень холодным и я не рискнул сразу его подключать… Надеюсь, что в старом системном блоке он будет работать. Иначе придется еще искать-покупать нормальный контроллер для SATA, т.к. сейчас там только IDE

  • domain renewal

    Today I paid for domain in GoDaddy.

    I used the ‘gda111x’ coupon with 30% discount. So I paid the $15.32 for 2 years

  • C#: convert the byte array to string

    byte[] arrData = new byte[myLength];
    Stream.Read(arrData, 0, myLength);
    
    String s = System.Text.ASCIIEncoding.ASCII.GetString(arrData);
    
  • C#: read the number from buffer

    1. read from stream:

      byte[] arrData = {0, 0, 0, 0, 0, 0, 0xF0, 0xBF}; 
      Double dbl; 
      MemoryStream ms = new MemoryStream(); 
      ms.Write(arrData, 0, 8); 
      ms.Position = 0; 
      BinaryReader br = new BinaryReader(ms); 
      dbl = br.ReadDouble();

    2. copy/convert from buffer:

      dbl = BitConverter.ToDouble(arrData, 0);
  • Convert from Double to DateTime

    In Delphi we can cast the double value as datetime:

    var
      dbl: Double;
      dt: TDateTime;
    begin
      dbl := 65985.3333;
      dt := dbl;
    end;

    But in .NET we need call the  FromOADate method for DateTime class:

      Double dbl = 65985.3333;
      DateTime dt = DateTime.FromOADate(dbl)
  • 1-Year Domain Name Registration $1

    GoDaddy is offering Domain Name Registration for $0.99 for 1 year with code BUYCOM99.
    This offer is for new domains only, not for renew

  • FireFox update

    Я довольно редко обновляю установленный софт. Ну не фанат я лазить по сайтам в ожидании выхода версии 0.0.1.599 вместо моей текущей 0.0.1.598 В конце-то концов если я его поставил и он меня устраивает, то я даже не хочу знать про выход новой версии. В частности FireFox у меня стоял без обновлений уже года два и я все время игнорировал нотификации про новые версии.

    Не знаю почему, но вчера на свою голову решил проапдейтиться. Он довольно долго качал несчастные 8Мб, что-то устанавливал и попросил перезагрузиться. Ну надо, так надо. Но во время загрузки Windows, вылазит chkdsk, о существовании которого я уже забыл и начинает ругаться(+исправлять indexes) на кучу файлов и каталогов. Разумеется в 90% там присутствует злосчастный FireFox

    В этом момент остатки моих волос чуть не поседели. Через 10 минут все загрузилось и я запустил browser. Вылезло окно о том, что сейчас будем наконец-то обновляться и где-то на 50% прогрессбара я получаю дивный prompt в духе “У тебя запущен еще один FireFox, мы его сейчас выгрузим и начнем заново”. После чего это все повторяется раз пять. При все при этом в памяти еще одного запущенного FireFox нет и в помине (судя по Task Manager)

    Когда мне это надоело, снес к чертям этот updater.exe и скачал с сайта mozilla дистрибутив еще раз руками. Запустил инсталляху и все заработало.

    Судя по всему встроенный updater выкачивает какой-то другой набор файлов и как-то “ручками” их копирует на диск (раз слетели индексы у Windows).

    В общем не скоро я его еще раз буду обновлять:-)

  • Прием платежей PayPal

    Инструкции как прикрутить прием платежей в PayPal на своем сайте:
    http://www.askdev.ru/question/946/%D0%9F%D1%80%D0%B8%D0%B5%D0%BC-PayPal-%D0%BD%D0%B0-%D1%81%D0%B0%D0%B9%D1%82%D0%B5/

  • ePUB

    Нужно будет написать новый парсер для этого формата в свой SMWord suite

    http://fantaseour.livejournal.com/141276.html
    **************************************************************

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

    Это EPUB (electronic publication) (also sometimes ePub, EPub, or epub) — открытый стандарт для электронных книг.


    В основе решения все те же xhtml+css. Правда в стандарте набор тегов и возможностей ограничен, но это скорее для того, чтобы читалки можно было совместимые делать.

    Итак внутри xhtml+css+media, плюс xml-файлы с мета-информацией, шрифт можно тоже положить и указать потом в css. Все это пакуется в несколько специфичный зип: Метаинформация идет в начале зип-файла и она не сжимается, дальше остальной контент, уже пожатый. Делается двумя командами:

    zip -X0 “full path to new epub file” mimetype
    zip -rDX9 “full path to new epub file” * -x mimetype

    Читается практически всеми читалками, кроме Kindle, но легко переводится в совместимый формат, и скорее всего будет читаться в будущем. Свободных конвертилок из chm в epub я не нашел, ну не велика беда — понятно, что это можно и самому написать.

    На десктопе есть несколько читалок разной степени паршивости, плагин для Mozilla, виджет для Оперы, и читалка в онлайне (см. далее).
    Для Сафари плагина не нашел, но в айфоне Сафари читает книжки из веба по протоколу epub://, значит скоро и на десктопе будет поддержан.

    DRM тоже как-то предусмотрен, но я в подробности не вдавался.

    Книжки в таком формате уже довольно популярны. На epubBooks.com, можно взять бесплатных книг и поиграть с ними. O’Reilly широко использует этот формат для своих книжек. У Гугла есть поиск по книгам, где также ищутся книги в этом формате.

    Книжку можно собрать, как руками из нужных файлов (т.е. своей программой:), так и с помощью бесплатного кросс-платформенного редактора Sigil. Кроме того Adobe Indesign, также поддерживает этот формат, а из документов офиса можно получить epub через конвертор Callibre.

    Звучит неплохо.

    Теперь про читалки для десктопа.
    Adobe Digital Editions
    Ридер бесплатный.
    Я его сейчас ставить не стал, т.к. я им немного пользовался. Он на флеше, по ощущениям неуклюж, по отзывам верстка там едет (хотя редеринг сделан на WebKit).
    Вот описание его глюков от конкурирующей фирмы:
    Adobe Digital Editions Quirk

    Calibre
    www.calibre-ebook.com
    Open Source, Кросс-платформенный.
    Читалка и конвертилка практически из любого формата в любой. CHM не умеет.
    Рендеринг — WebKit. На вид приятен и опрятен.
    Может сделать epub из архива с html, но перепутает порядок файов и вложенность, т.к. нет xml-файла с оглавлением.
    Показывает хорошо, но на больших длинных файлах fb2 тормозит безбожно. И вообще немного задумчив.
    Позволяет закачивать выкачивать книги из мобильных девайсов (не проверял).

    Lexcycle Stanza
    www.lexcycle.com
    Куплен Амазоном
    Использует уже знакомый нам рендеринг WebKit. Работает на айфоне и десктопе. Умеет конвертить epub в формат Kindle.
    Мне не понравился, тем, что не отображает слева разделов содержания, этот момент мне очень нравится в CHM.

    Mobipocket
    www.mobipocket.com
    Еще один купленный Амазоном проект. Умеет читать EPUB, поддерживает свой формат, также представляющий собой архив с html+дополнительная информация. Свободно конвертирует между этими двумя форматами.
    Работает на очень большом количестве карманных читалок.
    Не работает на Линукс и Мак.
    Формат mobipoket читается упомянутыми Stanza и Calibre, а также Okular
    На десктопе также не показывает оглавление, что для меня является приговором.

    Okular
    http://okular.kde.org/
    KDE-универсальная читалка. Читает буквально все — DJvu, CHM, PS, PDF, EPUB, FB2
    болшой скриншот

    bookworm
    http://bookworm.oreilly.com/

    Онлайновая читалка от O’Reilly. Регистрируешься и можешь закачивать книги. Потом можно читать. Выглядит красиво.
    OpenSource, написана на С и Python, живет на googlecode.

    EPUBReader
    https://addons.mozilla.org/en-US/firefox/addon/45281

    Плагин для Огнелиса. В замен устаревшего OpenBerg Lector.
    Выглядит также весьма опрятно.

    Opera Ebook reader
    http://widgets.opera.com/widget/10312/

    Виджет для Оперы. Читает вроде норомально, но оглавление показывает пулапрозрачно с заездом на текст, так, что после выбора главы, его надо отключать.


    **************************************************************