вторник, 22 февраля 2011 г.

Выступление Стива Джобса перед выпускниками Стэнфордского университета

Научитесь программировать за десять лет

Очень понравилась статья "Научитесь программировать за десять лет". Думаю, еще одна ссылка на хороший материал не повредит. :) Оригинальная английская версия "Teach Yourself Programming in Ten Years".

воскресенье, 20 февраля 2011 г.

Ресурс с неофициальными пакетами Python

Unofficial Windows Binaries for Python Extension Packages

На мой взгляд очень полезный ресурс. Нашел его, когда пытался собрать lxml. В результате статья с пошаговой инструкцией по сборке lxml заменена этой ссылкой. :)

понедельник, 7 февраля 2011 г.

Настройка путей С++ в Visual Studio 2010

При переходе на Visual Studio 2010 в одном из проектов я обнаружил что нет возможности редактировать глобальные пути C++ способом, доступным в предыдущих версиях Visual Studio. В Visual Studio 2008 редактирование путей было доступно через пункт меню Tools > Options > Projects and Solutions > VC++ Directories.

Решение проблемы и объяснение, почему были сделаны изменения я нашел в статье VC++ Directories. Теперь редактирование глобальных настроек доступно в окне Property Manager (View > Other Windows > Property Manager). Глобальные настройки изменяются при редактировании узла Microsoft.Cpp.Win32.user.

Неудобством нового варианта редактирования является то, что для редактирования глобальных настроек нужно создавать проект. Интуитивно не понятно, что изменения сделанные через один проект будут доступны во всей системе. В комментариях к статье VC++ Directories обсуждается этот и другие вопросы.

пятница, 24 декабря 2010 г.

Установка, удаление службы Windows из кода .NET приложения

В приложении нужно определить public классы, унаследованные от System.ServiceProcess.ServiceBase и System.Configuration.Install.Installer. Для наследника ServiceInstaller нужно указать атрибут [RunInstaller(true)]. Эти классы описывают службу. Установка и удаление выполняется статическими методами класса System.Configuration.Install.ManagedInstallerClass. О ManagedInstallerClass в MSDN написано только то, что это класс для внутренних нужно .NET Framework и он не предназначен для непосредственного вызова из кода пользователя. Пример использования этого класса можно найти в реализации утилит, которые поставляются вместе с .NET Framework.

Полный пример кода:

суббота, 18 декабря 2010 г.

Создание тестового SSL сертификата, настройка HttpListener

Основан на How To: Walkthrough Using HttpListener as an SSL Simple Server

Я раньше не работал с SSL. И когда в одном проекте возникла необходимость использовать  SSL, я обнаружил, что нет простого объяснения того, как можно создать SSL сертификат. Результатом поиска стала эта статья. Она основана на англоязычном варианте и расширена информацией полученной из собственного опыта.

среда, 27 октября 2010 г.

Сравнение кириллицы в SQLite без учета регистра

У SQLite есть одна особенность. Сравнение строк без учета регистра, функции изменения регистра работают только для ASCII-символов. Это особенность может принести немало хлопот, если нужно строить запросы с использованием, например, кириллицы.

Например, если в колонке str сохранены значения “VaLuE”, “value”, то запрос SELECT * FROM tab WHERE str LIKE “value” вернет две строки. LIKE по-умолчанию не чувствителен к регистру. Если в базе данных сохранены значения “ЗнАчЕнИе” и “значение”, то такой же запрос вернет только одну строку.

Для решения подобных задач SQLite предоставляет механизм переопределения встроенных функций и правил сравнения в пользовательском коде. Ниже пример кода на Python, который выполняет переопределение: