вторник, 22 февраля 2011 г.
Научитесь программировать за десять лет
Очень понравилась статья "Научитесь программировать за десять лет". Думаю, еще одна ссылка на хороший материал не повредит. :) Оригинальная английская версия "Teach Yourself Programming in Ten Years".
Ярлыки:
полезные ресурсы
воскресенье, 20 февраля 2011 г.
Ресурс с неофициальными пакетами Python
Unofficial Windows Binaries for Python Extension Packages
На мой взгляд очень полезный ресурс. Нашел его, когда пытался собрать lxml. В результате статья с пошаговой инструкцией по сборке lxml заменена этой ссылкой. :)
На мой взгляд очень полезный ресурс. Нашел его, когда пытался собрать lxml. В результате статья с пошаговой инструкцией по сборке lxml заменена этой ссылкой. :)
Ярлыки:
Python
понедельник, 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 обсуждается этот и другие вопросы.
Решение проблемы и объяснение, почему были сделаны изменения я нашел в статье VC++ Directories. Теперь редактирование глобальных настроек доступно в окне Property Manager (View > Other Windows > Property Manager). Глобальные настройки изменяются при редактировании узла Microsoft.Cpp.Win32.user.
Неудобством нового варианта редактирования является то, что для редактирования глобальных настроек нужно создавать проект. Интуитивно не понятно, что изменения сделанные через один проект будут доступны во всей системе. В комментариях к статье VC++ Directories обсуждается этот и другие вопросы.
Ярлыки:
VC++ Directories,
Visual Studio,
Visual Studio 2010
пятница, 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.
Полный пример кода:
Полный пример кода:
Ярлыки:
.net,
c#,
install,
windows service
суббота, 18 декабря 2010 г.
Создание тестового SSL сертификата, настройка HttpListener
Основан на How To: Walkthrough Using HttpListener as an SSL Simple Server
Я раньше не работал с SSL. И когда в одном проекте возникла необходимость использовать SSL, я обнаружил, что нет простого объяснения того, как можно создать SSL сертификат. Результатом поиска стала эта статья. Она основана на англоязычном варианте и расширена информацией полученной из собственного опыта.
Я раньше не работал с SSL. И когда в одном проекте возникла необходимость использовать SSL, я обнаружил, что нет простого объяснения того, как можно создать SSL сертификат. Результатом поиска стала эта статья. Она основана на англоязычном варианте и расширена информацией полученной из собственного опыта.
Ярлыки:
.net,
httplistener,
ssl
среда, 27 октября 2010 г.
Сравнение кириллицы в SQLite без учета регистра
У SQLite есть одна особенность. Сравнение строк без учета регистра, функции изменения регистра работают только для ASCII-символов. Это особенность может принести немало хлопот, если нужно строить запросы с использованием, например, кириллицы.
Например, если в колонке str сохранены значения “VaLuE”, “value”, то запрос SELECT * FROM tab WHERE str LIKE “value” вернет две строки. LIKE по-умолчанию не чувствителен к регистру. Если в базе данных сохранены значения “ЗнАчЕнИе” и “значение”, то такой же запрос вернет только одну строку.
Для решения подобных задач SQLite предоставляет механизм переопределения встроенных функций и правил сравнения в пользовательском коде. Ниже пример кода на Python, который выполняет переопределение:
Например, если в колонке str сохранены значения “VaLuE”, “value”, то запрос SELECT * FROM tab WHERE str LIKE “value” вернет две строки. LIKE по-умолчанию не чувствителен к регистру. Если в базе данных сохранены значения “ЗнАчЕнИе” и “значение”, то такой же запрос вернет только одну строку.
Для решения подобных задач SQLite предоставляет механизм переопределения встроенных функций и правил сравнения в пользовательском коде. Ниже пример кода на Python, который выполняет переопределение:
Подписаться на:
Сообщения (Atom)