Показаны сообщения с ярлыком hints. Показать все сообщения
Показаны сообщения с ярлыком hints. Показать все сообщения

среда, 9 сентября 2009 г.

Канцелярские скрепки против рака

Те, кто периодически использует для тех или иных целей китайские ароматические раковые палочки, думаю, не раз сетовали на отсутствие в них таймера и выключателя. Действительно — стоит отвлечься, уснуть или просто забыть потушить её — и сингапурский китай в масштабах одной квартиры обеспечен.

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

Обжимать её или производить какие-то дополнительные действия не требуется: теплоемкости стали вполне хватит для того, чтобы остановить процесс горения.

Creative Commons License

воскресенье, 22 марта 2009 г.

Дави его!

Помните Arj? Это архиватор был такой в стародавние времена :-) Если помните, то помните наверняка и про интересную особенность тогдашних архиваторов: если файл сжать сначала одним (например, arj), а потом другим (скажем, zip), то итоговый размер получался меньше, чем при использовании каждого из этих архиваторов по отдельности (или одного и того же два раза). Причина этого заключалась в несовершенстве алгоритмов сжатия. Принцип работы любого архиватора заключается в устранении избыточности информации: как правило в любом файле некоторые байты (или даже группы байтов) повторяются чаще, нежели остальные. Архиватор заменяет их более короткими блоками, в результате чего размер файла становится меньше, а вместо, например, осмысленного текста он теперь представляет псевдослучайную последовательность непонятных символов. Так вот, когда развитие алгоритмов сжатия только начиналось, архиваторы устраняли избыточность не полностью (хотя сами «считали», что уже как бы всё), при этом другой алгоритм мог «дожать» файл ещё чуть-чуть.

В настоящий момент все современные архиваторы используют возможности своих алгоритмов по максимуму, и вышеописанный способ не работает (по этой же причине не сжимаются картинки в jpeg или фильмы: сжатые картинки и фильмы по сути своей являются архивами, а с точки зрения другого архиватора — случайной последовательностью). Однако, в некоторых случаях архивация файлов в два этапа позволяет уменьшить размер архива в несколько (!) раз. Об этом и пойдет речь в статье.

Самым популярным сейчас является архиватор (точнее, формат) Zip. Самым популярным, но далеко не самым лучшим, однако, если вы хотите, чтобы файл можно было распаковать всегда и везде, лучше использовать именно его. Во всех хороших архиваторах присутствует возможность создания «непрерывного архива», когда несколько упаковываемых файлов обрабатываются как единый поток. При упаковке однотипных файлов это позволяет уменьшить размер архива за счет того, что степень избыточности у них похожая и повторяющиеся фрагменты одинаковые. В Zip такой возможности нет, все файлы он сжимает по отдельности. Поэтому, если вам нужно упаковать несколько файлов, есть смысл предварительно записать их последовательно друг за другом. Логичнее и проще всего сделать это средствами самого архиватора: просто упакуйте файлы с настройкой «Без сжатия», содержимое их при этом не изменится, но вместо нескольких файлов получится один. После этого полученный архив упакуйте с максимальными настройками. Если файлов много и они похожи (html-страницы, например), разница между обычной упаковкой и описанным способом может быть очень существенной.

Но это ещё не всё :-) Если вы пользуетесь, например, пакетом OpenOffice.org, то, возможно, знаете, что документы в нём представляют собой несколько xml-файлов, упакованных в обычный zip-архив с измененным расширением. Однако, степень сжатия у встроенного в OpenOffice алгоритма меньше, чем у отдельных архиваторов, кроме того, zip-архивы имеют описанный выше недостаток, а сжать документ OpenOffice другим архиватором не получится (потому что это уже архив). В этом случае, если вдруг очень нужно сжать документ «по максимуму», можно пойти на хитрость.

  • Переименовываем, например, .odt файл в.zip.
  • Распаковываем его содержимое, запаковываем обратно с настройкой «Без сжатия» и переименовываем обратно в .odt: размер файла увеличится, но он будет продолжать нормально открываться, потому что это всё-таки zip-архив.
  • Если теперь запаковать его хорошим архиватором (например, 7-zip*), то размер полученного файла будет существенно меньше, чем был изначально.

Конечно, описанные здесь хитрости не рассчитаны для ежедневного использования, но в случае, когда, например, файл «не полазит» в почту — кое-что вполне может пригодиться.

__________
* 7-zip не имеет (почти) ничего общего с обычным zip-ом, это архиватор, который сжимает лучше, чем любимый в народе Rar, но при этом он бесплатный, открытый и кросс-платформенный, а кроме того, умеет (очень хорошо) сжимать в zip и распаковывает большинство популярных форматов. Настоятельно рекомендуется к использованию.

Creative Commons License This work is licensed under a Creative Commons Attribution-Noncommercial 3.0 Unported License.

среда, 18 марта 2009 г.

Особенности сжатия JPEG в продуктах Adobe

Тем, кто использует Adobe Photoshop при подготовке графики для веба (а именно — диалог «Save for web and devices»), наверное, будет интересно узнать о том, что линейная шкала степени сжатия (и потери качества) на самом деле вовсе не линейна. Посмотрите на скриншот: степень сжатия отличается всего на один пункт, но разница в размере и качестве весьма ощутима.

Таким образом, есть определенный смысл в том, чтобы использовать при сохранении картинки именно одну из этих четырех степенией сжатия, в зависимости от того, нужен ли вам результат «лучший из худших» (19), хотите ли вы добиться максимального сжатия с минимальными потерями (51), или вам нужен компромиссный вариант (20 при приоритете сжатия или 50 для большего качества).

Эта особенность присутствует и в других программах Adobe, использующих диалог «Save for web and devices», например, в Illustrator.

вторник, 2 сентября 2008 г.

Я.Онлайн по пунктам: я оффлайн в результате

Наверняка те, кто интересуется развитием технологии Jabber и всего что с этим связано, уже слышали о том, что компания Яндекс выпустила наконец-таки официальный клиент для своего Jabber-сервера, неофициально функционирующего уже чуть менее чем год. Для тех же, кто не в курсе событий, поясню: компания Яндекс выпустила наконец-таки официальный клиент для своего Jabber-сервера, неофициально функционирующего уже чуть менее чем год.

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

  1. Зайти на http://online.yandex.ru и скачать программу-клиент. 7,5 Мб, и она не кроссплатформенная. Отдельный превед тем, кто оплачивает трафик помегабайтно.
  2. Запустить установку, и прочитать сообщение о том, что необходим Adobe Flash 8-й версии.
  3. ...Хотя в системе установлен Flash 9.
  4. Зайти на сайт Adobe и скачать свежую версию Flash.
  5. Установить ее.
  6. Запустить установку Я.Онлайн, и прочитать сообщение о том, что необходим Adobe Flash 8-й версии.
  7. Заподозрить, что что-то тут не так.
  8. Догадаться, что Adobe Flash для Internet Explorer невозможно скачать с их сайта другим браузером.
  9. ...Хотя Flash 9 установлен и работает.
  10. Запустить Internet Explorer и попытаться закачать Adobe Flash.
  11. После пяти минут ожидания заподозрить, что что-то здесь не так.
  12. Отключить фаерволл, и попытаться закачать его еще раз.
  13. Включить обратно фаерволл.
  14. Установить Я.Онлайн.
  15. Запустить его, и с удивлением обнаружить, что программа, представляющаяся Jabber-клиентом, пытается ломиться на кучу разных адерсов и портов, не имеющих к Джабберу ни малейшего отношения.
  16. Посмотреть, какую красивую фигню программисты Яндекса слабали на Flash 8-й версии.
  17. ...И она умеет показывать почту, погоду и пробки.
  18. ...Но занимет 30 метров оперативки.
  19. ...И несмотря на это позволяет установить всего два (!) статуса: «доступен» и «занят».
  20. ...Хотя работает, как заявляют авторы, по протоколу XMPP.
  21. ...Ломясь при этом на кучу других адресов и портов.
  22. Посмотреть повнимательнее опции, и убедиться, что кроме однопользовательского чата, двух статусов, и настройки цвета окна эта хреновина больше ничего не умеет*.
  23. ...Хотя работает, как заявляют авторы, по протоколу XMPP.
  24. СНЕСТИ НАФИГ сие глючное поделие.

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

___________

* Да, я помню, что есть еще погода, пробки и показ входящей почты но ни одна из этих функций не имеет приямого отношения к XMPP/Jabber.

понедельник, 1 сентября 2008 г.

Автосмена настроек прокси в Miranda IM

Эта статья является переводом записи, опубликованной в блоге Василича. В ней описывается способ запуска Miranda IM с USB флеш-драйва на нескольких компьютерах, имеющих различные настройки подключения к сети.

Сегодня я опишу особенности своего ежедневного использования Miranda IM:
Прежде всего — я запускаю Miranda IM с флеш-драйва — это дает мне возможность использовать ее на любом ПК с Windows, без необходимости синхронизировать историю чата. Я общаюсь на нескольких языках, и поэтому использую Unicode-версию Miranda IM. Кроме того за последние 4 года я не видел ни одного ПК с Windows 9x, так что у меня нет никаких причин использовать ANSI-версию

Запуск Миранды с флеш-диска имеет один (как минимум) недостаток — время запуска резко возрастает. Мой профиль занимает примерно 50 мегабайт, и Миранде требуется около 15 секунд для запуска (хотя простое копирование файла профиля в Explorer-е занимает около 4-х секунд); и хотя я использую драйвер dbx_mmap, это никак не помогает уменьшить время запуска.

Одна из вещей, которая раздражаетм меня каждый раз, когда я запускаю Миранду — это необходимость настройки соединения с интернетом. Дома у меня прямое подключение (через DSL роутер с uPnP), а на работе — через корпоративный прокси. К сожалению, Миранда не умеет читать настройки из IE или Windows, так что мне приходилось открывать диалог настройки и включать/выключать прокси для каждого протокола. Тогда я решил как-то это автоматизировать. После нескольких экспериментов я добился того, чего хотел: простого запуска Миранды вне зависимости от того, домашний ли это ПК или рабочий. Вот способ, которым я воспользовался:

  1. Миранда должна запускаться из командного файла, потому что настройки прокси считываются только при запуске Миранды, и если мы изменим их после подключения всех протоколов, нам придется перезапускать ее. В этом командном файле мы проверяем, где мы находимся — на работе, или дома. Я сделал это путем проверки некоторых папок, о которых мне известно, что они существуют только дома, или только на работе. И далее, в зависимости от расположения, я копирую соответствующий *.ini файл в Autoexex*.ini в папке Миранды. Вот пример моего командного файла:

    if exist "b:\Programs\MirandaIM\miranda32.exe" goto Home
    if exist "c:\Dokumente und Einstellungen\abakumov.BFE\" goto Work
    echo unknown PC. Trying to start Miranda without proxy.
    pause
    goto Home

    :Work
    rem work proxy settings
    copy work.ini autoexec_proxy.ini
    start miranda32.exe
    goto End

    :Home
    rem No proxy settings
    copy home.ini autoexec_proxy.ini
    start miranda32.exe
    goto End

    :End

    Я надеюсь, что здесь всё понятно, поэтому перейдем к рассмотрению *.ini-файлов.

  2. В файле Work.ini я активирую прокси для всех протоколов, и выполняю несколько дополнительных настроек вроде отключения звуков, поп-апов, отключения прямой передачи файлов в Jabber, установки только одной иконки в трее для контакт-листа и т.д.

    SETTINGS:


    [Netlib]
    NLEnableUPnP=b0
    NLUseProxy=b1[ICQ]
    NLUseProxy=b1

    [ICQP2P]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [ICQJ]
    NLUseProxy=b1

    [ICQJP2P]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [JABBER]
    NLUseProxy=b1
    NLEnableUPnP=b0
    BsDirect=b0
    Resource=uWork
    ManualConnect=b1

    [MSN]
    NLUseProxy=b1
    UseGateway=b1
    NLEnableUPnP=b0

    [MSN_HTTPS]
    NLUseProxy=b1

    [MSN2]
    NLUseProxy=b1
    UseGateway=b1
    NLEnableUPnP=b0

    [MSN2_HTTPS]
    NLUseProxy=b1

    [IRC]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [IRC DCC]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [IRC_Freenode]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [IRC_Freenode DCC]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [IRC2]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [IRC2 DCC]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [MRA]
    NLUseProxy=b1
    NLEnableUPnP=b0

    [MRA Avatars]
    NLUseProxy=b1

    [Updater]
    NLUseProxy=b1

    [UpdateNotify]
    NLUseProxy=b1

    [PopUp]
    ModuleIsEnabled=b0

    [Skin]
    UseSound=b0

    [CList]
    TrayIcon=b1
  3. В Home.ini делаем всё наоборот (настройки очень похожи, поэтому приведу здесь только небольшую часть):

    SETTINGS:

    [Netlib]
    NLUseProxy=b0
    NLEnableUPnP=b1

    [ICQ]
    NLUseProxy=b0

    [ICQP2P]
    NLUseProxy=b0
    NLEnableUPnP=b1

    [ICQJ]
    NLUseProxy=b0

    [ICQJP2P]
    NLUseProxy=b0
    NLEnableUPnP=b1

    [JABBER]
    NLUseProxy=b0
    NLEnableUPnP=b1
    BsDirect=b1
    Resource=uHome
    ManualConnect=b0

    [MSN]
    NLUseProxy=b0
    NLEnableUPnP=b1
    UseGateway=b0

    [MSN_HTTPS]
    NLUseProxy=b0
    ……………

    Чтобы всё это начало работать, нужно отредактировать файл MirandaBoot.ini. Я опишу необходимые изменения и прокомментирую некоторые из них.

    [Database]
    ProfileDir=.
    ;Эта опция позволяет нам использовать профиль из папки Миранды, а не из папки пользователя в Windows.


    [AutoExec]
    Use=yes
    Glob=autoexec_*.ini
    Safe=CLC Icons CLUI CList SkinSounds
    Unsafe=AIM ICQ MSN Jabber
    OverrideSecurityFilename=autoexec_proxy.ini
    ;Эта строчка отключает вывод сообщения об импорте файла autoexec_proxy.ini, но для других файлов autoexec_*.ini предупреждения сохраняются в целях безопасности.
    Warn=onlyunsafe
    OnCompletion=recycle
    RenamePrefix=done_
  4. После всех приготовлений нам надо выставить нужные настройки прокси для всех протоколов в Миранде, и на этом всё.

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

  • добавить в командный файл распознавание третьего ПК и копирование соответствующего *.ini файла;
  • создать третий *.ini файл для третьег ПК;
  • добавить во все ini файлы необходимые настройки прокси. Необходимые опции для каждого протокола выглядят так (значения даны в качестве примера):NLUseProxy=b0
    NLProxyType=b4
    NLProxyPort=w3128
    NLUseProxyAuth=b0
    NLProxyAuthUser=s
    NLProxyAuthPassword=s
    NLUseProxyAuthNtlm=b0
    NLDnsThroughProxy=b0
    NLSpecifyOutgoingPorts=b0
    NLSpecifyIncomingPorts=b0
    NLIncomingPorts=s2000-2010
    NLProxyServer=s192.168.150.2
    NLOutgoingPorts=s2000-2010
    NLEnableUPnP=b1

    Конечно, всё это довольно сложно, но всё, что вам нужно — это настроить всё один раз, и забыть об этом. В дальнейшем всё будет происходить автоматически, и избавит вас от рутинной операции смены настроек при каждом подключении.

    Я надеюсь, эта короткая инструкция поможет вам упростить запуск Miranda IM с USB drive даже при разных настройках прокси на разных ПК.

 
 
Copyright © Johan's blog
Blogger Theme by BloggerThemes Design by Diovo.com