Программирование
Active Directory — Unknown error (0×80005000)
Пользователь admin Окт.31.2011. Категория Программирование
На последнем проекте требовалось поднять лес (Active Directory), чтож… Лес был поднят.
Общая схема такова:
/ sub1.root.dom — a.sub1.root.dom
root.dom — sub2.root.dom
Скажу сразу, был предусмотрен вариант, когда контроллеры — разные ОС (2003, 2008).
Получилось так, что a.sub1 и sub2 поднялись на Windows 2003 R2, остальные — Windows 2008.
Собственно оперируя UserPrincipal, …, LDAP и прочим, у нас работало все, кроме контроллеров на Windows 2003. Это заставило усомниться в надежности связки. Хотя они все работали под единой схемой — 2003.
А зря, все оказалось намного проще.
Первый шаг в функциональное программирование
Пользователь admin Фев.25.2011. Категория Программирование
На днях начал смотреть на F#, собственно поискал информацию, почитал форумы.
немного побаловался с ConfigurationManager
Пользователь admin Янв.24.2011. Категория Silverlight, Программирование
Совсем недавно понадобилось сделать шифрование секции connectionStrings в web.config.
Собственно шифрование базировалось на RSA с использованием 1024 битного ключа.
Ну чтож…
Самый простой вариант — использование RsaProtectedConfigurationProvider.
Все бы хорошо, все сделано (да делать там практически нечего
), но есть одно НО.
… потребовалась утилита, которая сделала бы первоначальную шифровку, осуществлять ее через aspnet_regiis не очень то и хотелось, скажем так лень, двигатель прогресса. Захотелось все по простому, а именно сделать утилиту, которой банально указываешь web.config + режим (crypt/decrypt).
Тут то я и столкнулся с проблемой… (читать дальше…)
Хостинг Silverlight приложения на Apache
Пользователь admin Июл.08.2010. Категория Silverlight, Программирование
Вчера стало интересно, а как собственно хостить SL (он же Silverlight) на апаче?
Что это дает?
- Apache в 99% крутится под *nix ОС, а *nix хостингов намного больше;
- Больше свободы, мы не привязаны на Windows хост;
- Интересно было поэксперементировать.
Что же мне потребовалось для всего этого? (читать дальше…)
Library project file cannot specify ApplicationDefinition element.
Пользователь admin Фев.20.2010. Категория WPF, Программирование
Сегодня столкнулся с проблемой.
После переноса класса на основе Window в библиотеку, проект перестал билдиться, сообщая «Library project file cannot specify ApplicationDefinition element.».
Решение проблемы:
Solution Explorer -> свойствах файла -> Build Action изменить на Page.
Пересобрать проект.
MailRuChekershke
Пользователь admin Фев.15.2010. Категория WPF, Программирование
На выходных хотелось чего-нибудь написать, но при этом чтобы мозг особо и не напрягался.
Тут общаясь со slider’ом понял что у парня проблема. Решил помочь, да и на античате давно нет активности.
Собственно написал ему многопоточный чекер почтовых ящиков для сервиса — Mail.ru (валид/невалид).
Знакомство в WPF
Пользователь admin Янв.26.2010. Категория WPF, Программирование
Второй день подряд занимаюсь изучением WPF.
И на 2-й день столкнулся с проблемой. Вчера скачал WPF Toolkit, а сегодня проблемы
Рисовал форму в Expression Blend 3. Все прекрасно, все работает, но вот незадача, в Visual Studio 2008 SP1 отказывается открываться.
NUnit – unit-testing framework
Пользователь admin Июл.30.2009. Категория Программирование
Буквально сегодня бороздя просторы интернета в поисках нормальной русскоязычной документации (описания, мануалов) по аттрибутам фраемворка — NUnit, наткнулся на запись в блоге. Автор любезен и позволил скопировать информацию.
От себя хочу добавить. Материал достаточно полезный, просто описан и показывает много возможностей, если до этого работа с NUnit как таковая не осуществлялась.
Ну чтож, пожалуй начнем (ух и намучаюсь же я сейчас с оформлением
)
(читать дальше…)
Определение ТИЦ C#
Пользователь admin Июн.30.2009. Категория Программирование
Сегодня на ачате чувак попросил перевести с php на C#
Ниже код на php:
function getCI($url)
{
$url = str_replace("www.", "", $url);
$ci_url = "http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://www.".$url."/";
$ci_data = implode("", file("$ci_url"));
preg_match("/value=\"(.\d*)\"/", $ci_data, $ci);
if ($ci[1] == "")
return 0; // Если не смогли определить ТИЦ...
else
return $ci[1]; // Вот оно счастье...
}
Вот что из этого вышло:
(читать дальше…)
BackgroundWorker или чем я сегодня занимался.
Пользователь admin Май.23.2009. Категория Будни, Программирование
Утро началось для меня часов в 8, когда сестра проснулась и начала собираться на работу.
Встал и сразу ощутил боль в шее, больно поворачивать голову вправо. Такс, пора подушку убирать. :twisted:
Первым делом привел себя в порядок, поел, сел за комп. Включил в аську и увидел что заказчик скинул мне примерный алгоритм того что он хочет увидеть. Посидел, подумал… Я ему уже сделал некую часть, осталось за малым. Но это первый блин и конечно же комом.
Решил что пора заняться рефакторингом, причем солидным.
Так же взглянул в сторону XAML, по после 20-ти минут, отложил до лучших времен. Не совсем понял как допустим у объекта ListView изменить коллекцию колонок.
Начал кординально переписывать проект, и сразу же задумался о потоках, оно в принципе многопоточно, за исключением того что основной поток все равно вешается и это приводит к «эффекту зависшего окна»
.
Начал думать как все обойти, думать долго не пришлось, в принципе знал о классе BackgroundWorker *, но почему-то не использовал его
.
Начал все прикручивать, разбирать и т.п. Вобщем за сегодня ~1000 строк кода я налопатил, немного мне это надоело. Пошел смотреть TV, а именно программу «Большая разница». Хм, улыбнуло.
Вобщем что из этого вышло:
У компонента есть обработчик события — DoWork. Имено там пишем код который будет выполняться в отдельном потоке.
Внимание! BackgroundWorker не покрывает проблему обращения к контролам, для этого следует использовать Invoke.
Следующий обработчик который меня заинтересовал, это RunWorkerCompleted. Данное событие не отработает если была вызвана отмена — метод CancelAsync().
Следующее, это конечно же реализация прерывание работы BackgroundWorker’a.
Для этого:
- Вызывается метод CancelAsync();
- Именно в той длинной операции используется следующий код:
if (backgroundWorker1.CancellationPending)
{
e.Cancel = true;
return;
}
* доплнительная информация на rsdn
Наверное все…
Месяцев 4-5 назад, я писал класс для парсинга Гугла. Собственно вот он, да, в нем есть что переделывать, а что? Достаточно отписаться и я возможно этим займусь
, а пока он позволяет следующее:
- Поддержка WebProxy;
- Изменение UserAgent’a;
- Поиск по всем результатам;
- Отбрасывать ссылки в которых содержится ключевое слово «google»;
- Устанавливать колличество выводимых результатов;
- Устанавливать начальную страницу, с которой будет начат парсинг;
- Используется сервис гугла, генерирующий минимальную по объему страницу;
Пример поиска, парсится 1 страница и первые 100 результатов:
var google = new GoogleParser("C#");
var result = google.GetResult();
var str = "";
foreach (var s in result)
{
str += s;
}
textBox1.Text = str;
Вот так читать все страницы:
var google = new GoogleParser("C#");
var str = "";
while (google.Read())
{
var result = google.GetResult();
foreach (var s in result)
{
str += s;
}
}
textBox1.Text = str;
