четверг, 24 мая 2007 г.

Очень занятные шутки про блондинок

Недавно нашел очень прикольные шутки про блондинок.

По правде говоря, даже не ожидал, что можно так действительно интересно шутить.

суббота, 19 мая 2007 г.

Инструкция по использованию Google Reader

Вопрос: Как быть в курсе всех интересующих событий?
Ответ: Быть подписанным и читать новостные ленты


Вопрос: Что такое новостные ленты?
Ответ: Есть например три сайта - sport.ru, job.ru и hobby.ru и вам интересно чего там новенького появляется. В этом случае существует два варианта.

Bариант первый. C упорством дебила заходить один раз в несколько дней (неделю/месяц/год) на каждый из этих сайтов и проверять не появились ли новые новости/статьи/заметки, после чего их читать. При этом щедро одаривать любимого провайдера бесполезно израсходованным трафиком...

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


Вопрос: С помощью чего читать эти новостные ленты?
Ответ: Использовать Google Reader


Google Reader можно пользоваться следующим образом:
- зайти на сайт, новости которого, вас интересуют
- в адресной строке браузера должен появиться значек, который сигнализирует о том, что сайт поддерживает публикацию новостных лент в форматах RSS или Atom (Atom это более новый формат, желательно подписываться именно на него)
- скопировать ссылку на новостную ленту в буфер обмена
- зайти на http://www.google.com/reader
- залогиниться
- сделать клик на ссылке "Add subscription" и в появившемся окошке ввести url который был скопирован в буфер обмена
- щелкнуть на "Add"

UPD: сразу после того, как я опубликовал это сообщение, мне стало интересно, а был ли вообще смысл в подобной инструкции :)

Мой Firefox

Вот такой винегрет по мотивам Firefox я использую на работе и дома.

Generated:
Sun May 20 2007 19:42:29 GMT+0300
User Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
Build ID: 2006120418

Enabled Extensions: [20]
Installed Themes: [4]
Installed Plugins: (8)
  • Adobe Acrobat
  • Java(TM) Platform SE 6
  • LogMeIn Inc. Remote Access Components 1.0.0.242
  • Microsoft® DRM
  • Mozilla Default Plug-in
  • PCMan's IE Tab Plug-in for Mozilla/Firefox
  • QuickTime Plug-in 6.5.1
  • Windows Media Player Plug-in Dynamic Link Library

В поисках святого грааля

Сегодня вдруг захотелось отыскать plugin для Miranda, который добавляет проверку правописания в сообщениях. Спустя получасового сеанса нашел то что мне было нужно и то, что мне не было нужно :)

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

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

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


Так что попробую использовать этот plugin некоторое время. Думаю что он у меня приживется :)


Кроме того, обнаружил еще два любопытных плагина:
  • Miranda-GDS-V2 - обеспечит интеграцию Google Desktop Search с историей сообщений, которая хранится в базе Miranda. Не знаю насколько он будет мне полезен, так как я не использую дома Google Desktop Search. Для поиска сообщения по истории я использую Find A Message, хотя может быть мне стоит перестать жадничать и поставить у себя дома Google Desktop Search :)
  • WATrack - Отображает название проигрываемой песни в окне сообщений. Поддерживает Winamp, Apollo, 1by1, Media Player Classic, Window Media Player, JetAudio и FooBar. ...уверенная победа в номинации "самый бесполезный plugin" ;)

воскресенье, 13 мая 2007 г.

Параметры командной строки в .NET Windows Forms

Оказывается, что это можно получить предельно просто :)

string[] args = Environment.GetCommandLineArgs();

понедельник, 7 мая 2007 г.

Анализ функциональности Firebird, MySQL, PostgreeSQL

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

I. PostgreSQL 8.1.5

Работает на Windows NT и на Win9x через Cygwin, Linux, FreeBSD, Mac OS X, Novell Netware 6, OS/2

BSD лицензия, существует так же коммерческая лицензия (которая предполагает техническую поддержку)

Поддерживает транзакции, подзапросы, триггеры, представления, внешние ключи, пользовательские типы и их наследование

Исталлятор на русском языке.

Поддержка языка запросов PL/pgSQL, который очень похож на PL/SQL Oracle.

Поддержка хранимых процедур, написанных на PL/Java, PL-J, plPHP, plR, pl-ruby. Соответственно, хранимые процеруры можно писать на диалектах Java, PHP, Ruby (и каком-то языке для статистики - R).

В пакете идет консольная и графическая консоль управления

В пакете идет JDBC, Npgsql, ODBC, OLEDB драверы, таким образом обеспечивается функциональность для языков Java (JDBC), .NET (Npgsql), ADO (OleDB) и прочих через драйвер OBDC.

FAQ

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


II. Firebird

Firebird - это СУБД InterBase, код которой открыла компания Borland

Работает под Windows, Linux, Mac-OS (Darwin) и некоторых Unix платформах.

Идет под лицензией MPL, с небольшими ограничениями.

Инсталлятор на английском языке.

Поддерживает транзакции, триггеры, хранимые процедуры.

Функциональность СУБД аналогична InterBase.

Официальный сайт мне вообще не понравился, информация слабо структурирована.


III. MySQL

Работает на Windows, Linux, Unix, MacOS

Является наиболее известной открытой СУБД. Существует масса материалов на русском языке в виде печатных изданий и интернет ресурсов.

В пакете идет только консольная утилита для администрирования.

Инсталлятор на английском языке.

Начиная с версии 5.0 начала поддерживать хранимые процедуры.

Существуют провайдеры данных для Java, ADO.NET, ODBC, PHP, Perl и многих других языков.

На официальном сайте обнаружил массу документации, однако организация сайта не очень понравилась.

IV. Сравнение существующих СУБД

Программа для тестирования производительности различных СУБД.

Поддерживаются:
  • Postgresql
  • Mysql
  • DB2
  • Oracle
  • Sapdb
  • Firebird
  • Microsoft SQL Server
  • Sybase

Результаты тестирования нескольких открытых СУБД


V. Личное мнение

От себя еще добавлю, то, что я пробовал использовать Oracle, MS SQL Server и MySQL из-под .NET

Лично мне диалект MySQL мне не очень понравился.

Все три вышеперечисленных СУБД совершенно спокойно работают с Unicode, так что проблем с интернационализацией быть просто не может.

Firebird предоставляет выбор запуска СУБД как приложение и как Windows служба. PostgreSQL работает только как сервис.


В общем, думаю что имеет смысл попробовать PostgreSQL. Многие мои знакомые программисты рекомендовали использовать именно.

UPD:
Поступило логичное замечание о том, что функциональность Firebird недостаточно освещена. Я это сделал по причине того, что Firebird вырос из Interbase. Соответственно то, что эта СУБД является форком когда-то коммерческого движка говорит только в ее пользу.

Для доступа к базе конечно же существует ODBC драйвер, .NET Data провайдер и CA-JDBC (Jaybird) драйвер. Кстати, замечу, что OleDb драйвер не упоминался :)

Сегодня обнаружил следующие, достаточно веские аргументы в пользу Firebird против MS SQL Server, PostgreSql.

Из всех аргументов, честно говоря для меня наиболее существенным было наличие хорошего ADO.NET провайдера, который судя по заявлению разработчиков, поддерживает такие сервисные API как резвервное копирование и восстановление, статистика, пакетное выполение SQL скриптов.

Однако, использование подобных вещей из-под .NET приложение мне кажется сомнительной пользой. На мой взгляд, подобные вещи должны выполняться несколько иными механизмами, находящимися за пределами .NET клиента СУБД.

log4net в три шага

Сегодня решил воспользоваться библиотекой log4net для логирования сообщений в проекте, который я пишу в качестве работы на бакалавриат (слово "бакалавриат" мне подсказал spellchecker встроенный в Firefox, надеюсь что он меня не подвел :) ).

После непродолжительного гугления я сделал следующее:

1. Добавил ссылку на сборку log4net.dll в свой проект.
2. В App.config файл добавил следующее:
<configSections>
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>

<log4net>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value="log/trace.log"/>
<param name="AppendToFile" value="true"/>
<param name="RollingStyle" value="Date"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p %d{yyyy-MM-dd hh:mm:ss} [%t] %m%n" />
</layout>
</appender>
<root>
<level value="DEBUG"/>
<appender-ref ref="LogFileAppender"/>
</root>
</log4net>

3. В AssemblyInfo.cs добавил следующую строку:
[assembly: log4net.Config.DOMConfigurator(Watch = true)]

4. И после этого смог воспользоваться логированием из своего кода следующим образом:

static class ApplicationEntryPoint
{
public static ILog log = LogManager.GetLogger(string.Empty);

[STAThread]
static void Main()
{
log.Info("Application: start");
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);

FormMain formMain = new FormMain();
Application.Run(formMain);
log.Info("Application: end");
}
}


Таким образом, лог будет выглядеть следующим образом:

INFO 2007-05-07 10:02:14 [1064] Application: start
INFO 2007-05-07 10:02:17 [1064] Соединение с базой Paradox было успешно установлено.

четверг, 3 мая 2007 г.

Notepad++ 4.1 Released

Сегодня прочел новость о выходе новой версии моего любимого легковесного текстового редактора Notepad++.

Был очень приятно удивлен добавлением плагина SpellChecker, который работает на базе aspell. Нужно будет на досуге обязательно попробовать эту функциональность. Меня давно интересовал этот движек для проверки орфографии, однако я до сих пор не видел продукта под-Windows-для-людей, который бы его использовал (Vim и Emacs я считаю достаточно сложными в освоении).

Вдруг вспомнилось о плагине для Miranda, который тоже, используя aspell, проверяет орфографию при наборе сообщения, который я так и не испытал до сих пор :)