Svyatogor's cave Just another WordPress weblog

7May/080

Востроги по поводу PowerShell

Спорил тут недавно с одним товарищем о разных шелах и привел в качестве примера PowerShell в винде. А сам подумал - я ж его так толком и не заюзал!

Казалось бы что в нем такого? Ну очередной скриптовой язык. Разве что от MS. Синтаксис довольно странный. И не был бы он ничем примечателен если бы не тот факт что из него совершенно спокойно можно работать с любыми .NET библиотеками!

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

Сейчас настала пора экспериментов. Играюсь с параметрами, подбираю оптимальные.  А как выствлять кучи разных значений? Можно GUI написать, но слишком уж много времени займет написание удобного интерфейса, да и не нужен он мне. Следующей мыслью было написание консольного клиента. И она даже был сделан. Но тут на помощь и пришел PowerShell...

Когда я начинал переносить свои корявые наброски с C# в PowerShell я ни на что не надеялся. Более того, был уверен что очень быстро столкнусь с жуткими граблями и забью на это дело. Какого же было мое удивление когда через пару часов я понял что скрипт готов полностью!

Когда я уже думал что моя челюсть дальше никуда не упадет и был готов к жутким тормозам (циклы по 10000 итераций как никак) скрипт заработал очень шустро. Если что-то и было медленнее нативного драйвера - то я не заметил.

Для редактирования и отладки скриптов есть чудесный редактор PowerShell+

Filed under: Uncategorized No Comments
5May/080

Новоселье

Последние N месяцев я злоупотреблял гостеприимством админа Til-Design. Ондако, пора и честь знать. После долгих поисков и по наводке thestalwart остановил свой выбор на VPS от Gandi. За скромные 5 GBP в месяц я имею виртуальный сервер с 256 MB RAM и 5 Gb места (система на отдельном разделе).

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

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

Пока взял минимальный пакет, выбрал Ubuntu 7.10. Поставил lighttpd, php (fcgi), mysql (убил innodb) и vsftp.

Filed under: Uncategorized No Comments
25Apr/080

Доводим винду до юзабельного вида

Вот как выглядит моя винда после применения напильника и установки BB4Win. Если будет не влом скоро напишу что и как делал.

Free Image Hosting at www.ImageShack.us

Filed under: Uncategorized No Comments
6Apr/080

А у нас сегодня снег!

(прошу прощения за качество. фоткал с мобилы)

Filed under: Uncategorized No Comments
31Mar/080

Firefox 3. Впечатления и выбор расширений.

Не дождавшись релиза Firefox 3 поставил себе 4ую бету.

  • Работает значительно быстрее даже на глаза. (Догоняем Opera!)
  • Использует меньше память.
  • Весьма понравился новый autocomplete в адресной панеле. Теперь он ищет и в названии страице и во всем URL, а не только с начала.
  • Статус загрузок в статус баре тоже очень полезен

Удручает разве что новый дефолтный скин в висте. Если дизайнер хотел интегрировать FF3 в look&feel системы, ему крайне не помешало бы посмотреть хотябы скришоты висты в интернете :(

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

Better GMail 2. Мелкие улучшательства для GMail. Самое интересное - древовидный просмотр меток (скажет Projects/P1, Projects/P2 будут сгрупированы в дерево с корнем Projects). Кроме того может накладыватьна GMail скин, скрывать панель Invite, скрывать кол-во писем в метке Spam.

ChatZilla.  Не часто, но все же я захожу на IRC каналы. Чем держать отдельную программу (xchat или уродский mIRC) намного удобней использовать этот плагин. Балго весь нужный функционал он поддерживает.

Extended Status Bar. Покажет подробную информацию о статусе загрузки страницы (картинка, кб, скорость, время)

FrieBug. Думаю веб девелопрам представлять этот плагин не нужно. А если нужно - бегом на getfirebug.com!!!

FireGestrues. Плагин для реализации mouse gestures. Один из самых свежих. Довольно продвинутый и, что немаловжано, быстрый.

FlashGot. Умеет прокидывать закачки (в том числе все ссылке в выделеном тексте) во встроеный менджер закачек или внешнюю программу. Я использую его в связке с FreeDownloadManager, т.к. его родной плагин был забанен в FF3 - роняет весь бразуер.

Foxmarks Bookmark Synchronizer. Некоторое время пользовался del.icio.us в сочетании с их плагин для FF2. Под новую версию они его выпускать не торопятся. Вот я и задумался - а оно мне надо? Решил, что нет. Foxmarks синхронизирует закладки с их собственным сервисом. Для пользователя все совершенно прозрачно (чего не скажешь о del.icio.us). Версия для FF3 в стадии бета тестирования и пока надо заранее подписаться. Но скоро, наверное, уже релиз и тогда она будет полностью открыта.

GMail notifier. Думаю название горовит самп за  за себя. Сидит в статусной строке и уведомляет о новых письмах в моем почтовом ящике.

Google Notebook. Плагин для одноименного сервиса от Google. Позволяет легко вести несколько записных книжек. Каждая запись, конечно же имее метки (tags). Кроме того можно туда отправить выделеный текст со страницы.

Personal Menu. С помощью этого плагина можно скрыть  сторку меню, пока вы не нажмете Alt. А на панель можно положить кнопку вызывающее это самое меню. Экономит экранное пространство. Менюшка нужна очень редко, можно и Alt нажать.

Tabs Open Relative. Предположим у вас 15-20 табов. В первом из них вы окрыли ссылку щелчком средней кнопкой мыши (т.е. в новом табе). Где он появится? Правильно, где в конце, за пределами видимости. А этот плагин открывает все вкладки справа от текущей.

Web Developer Toolbar. Еще один плагин с кучей мелочей для веб разработчиков. Линейки, работа с CSS, формами, картинками, куками и т.д. Всего и не перечислишь.

Больше пока плагинов мне, вроде, не нужно. Ссылок не даю, т.к. по имен каждый из них находится сразу же на https://addons.mozilla.org/.

Filed under: Uncategorized No Comments
28Feb/080

Model View Presenter (MVP) Pattern

Слушая недавний podcast о реализации MVC паттерна в ASP.NET обратил внимание на сделаное мельком замечание о MVP (Model View Presenter). Как оказалось этот паттерн в своем роде несколько похож на MVC и преследует схожие задачи - разделить интерфейс и логику. Но "заточен" он именно под модель разработки на базе контролов.

Почитав несколько статей я выудил следующие базовые концепции.

GUI (Web UI) для каждой формы реализует интерфейс IViewMyPage и предоставляет набор свойств для доступа к содержимому формы и событий которые завязаны на действия пользователя.

Presenter класс хранит ссылку на интерфейс IViewMyPage и источник данных (неважно как именно вы его реализуете). Он обрабатывает события из интерфейса и управляет его свойствами. Учитыва что у него ссылка на IViewMyPage его не интересует как это реально выглядит на странице и через какой контрол.

Вот пара ссылок по теме:

  • Статья в MSD Magazine. Подробно но слишком расплывчато.
  • haacked (Блог Фила Хаака - ведущего инженера по разработке ASP.NET MVC). Не так много теории, но зато прекрасный и простой пример.
Filed under: Uncategorized No Comments
26Feb/080

Обои на десктоп

Сайт с потрясающей коллекцией обоев хорошего качества во всех мыслимых размерах!

 http://interfacelift.com/wallpaper/

Filed under: Uncategorized No Comments
26Feb/080

Web Deployment Project в VS2008

Для 2008 студии, так же как и для 2005, существует расширение Web Deployment Project. Казалось бы зачем оно нам, особенно если мы используем Web Application? Ведь в принципе достаточно закопировать сайт в нужный каталог. Усе так, тiльки трошечки не так. Появилась у него одна незаменимая "фишка": подменять разделы Web.config содержимым других файлов.

Вот вам пример. В моем Web.config прописаны настройки подключения к локальному MySQL. Рядом лежит файл nhibernate.web.config. При запуске Deployment проекта воответствующая секция в Web.config подменяется.

В свое время я писал нечто аналогичное. Но подмена произходила в runtime режиме при запуске приложения. И файл искался по имени машины.

Подробнее об Web Deployment Project читаем тут.

Filed under: Uncategorized No Comments
10Feb/080

Reflection Generic типов в mono 1.2.6

Наткнулся на неприятный баг в mono 1.2.6. При разборке Generic классов через reflection теряются имена параметров в методах. В результате у меня перестал работать asp:ObjectDataSource. Проблема решается сборкой mono-1.2.6 из сырцов с накладыванием вот этого патчика из SVN.

Filed under: Uncategorized No Comments
4Feb/080

Поддержка ASP.NET в Mono

Возникла задача написания веб приложения. Встал вопрос выбора платформы. Последние 1.5 года я писал на ASP.NET и мне не очень хотелось возвращаться на PHP или же изучать веб фреймворки в Java. Но вот беда, сервер, где по началу будет жить проект - Linux. И тут я вспомнил про Mono. А что, попробуем?

Итак, разработка ведется на клиентской машине с Windows Vista и Visual Studio 2008. Тип проекта - AJAX Web Site на .NET v2 (в дефолтовой поставке AJAX только для v3.5, эти билиотеки ставились отдельно с сайта MS). В проекте применяются log4net и NHibernate.

Сервер openSuse 10.x и mono 1.2.6 (брался с сайта mono. в более ставых версиях не поддерживается MS AJAX). Сервер xsp2.

Сделал простенький тестовый проект... Скажу честно - не ждал что заработает! Но произошло почти чудо, все это дело поднялось под mono с минимальными изменениями и без применения бубна! Причем компилировать на линуксовой машине ничего не надо, просто делается релиз из под студии.

Ура товарищи! Наконец мы можем совместить мощь ASP.NET и стабильность и открытость Linuх :) С нетерпением жду поддержки v3.5 и Linq в mono.

Если кому-то интересно, то вот на какие мелкие проблемы я наткнулся по пути:

  • VS2008 создает в web.config какут-то странную секция system.webServer, которую понимает только IIS7, а mono на ней падает. Просто убираем ее и все.
  • Драйвер mysql .net connector версии 1.0.10 не пошел. Обновился до 5.х
  • Функция Publish Website в VS2008 начисто забывает про Global.asax - приходится копировать его руками.
Filed under: Uncategorized No Comments