среда, января 23, 2013

F#, очередная серия. Жидкая.

При очередной попытке сделать что-то полезное на F# наткнулся на слабоватые способности компилятора в деле вывода типов. В программке на C# был вот такой цикл:

image

На F# цикл превратился вот в какой:

image

В лямбде fun (us:SPUser), как оказалось, указывать тип обязательно - без этого компилятор жидко падает… При этом “ошибки” распространяются довольно далеко по тексту программы – ну, не умеет компилятор остановиться на одной ошибке, обязательно надо всю гирлянду обозначить…

Нда…

Пошёл осваивать монады, бум на C# функциональщиной заниматься…

суббота, декабря 29, 2012

Hyper-V features in VirtualBox

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

Отсутствие такой feature при непрекращающейся любви разработчиков Windows к перезагрузкам при установке обновлений (и участившихся выпусках самих обновлений) очень угнетает. Однажды даже забыл сохранить виртуалку с контроллером домена и после загрузки пришлось её восстанавливать из "снимка"…

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

Вот PS-скрипт, который сохраняет все работающие виртуальные машины и выполняет перезагрузку или выключение компьютера:

clip_image001

"Побочный" результат работы скрипта - список работающих виртуалок в текстовом файле. Этот список можно использовать для реализации второй недостающей feature - восстановления ранее работавших виртуальных машин.

Вот соответствующий скрипт:

clip_image002

Остаётся сделать на рабочем столе ярлыки для запуска этих скриптов и использовать при необходимости перезагрузиться и при запуске машин после перезагрузки.

пятница, декабря 28, 2012

Бойся Try/Catch…

Вот, только что наткнулся: конструкция try/catch в PS v.2 (которая с Шарепойнтом 2010 только и работает) срабатывает в зависимости от типа ошибки - некоторые вовсе не перехватывает.

Пример: конструкция try{2/0}catch{"низя!"} вываливает сообщение в консоль:

clip_image001

PS v.3 исполняет как надо:

clip_image002

Выясняется, правда, что если делить не на нуль, а на переменную, содержащую нуль, то этот примерчик работает и во второй версии:

clip_image003

С другой стороны, наткнулся-то я на такое смешное поведение Catch в реальном скрипте при попытке в блоке Try записать данные в системный лог:

Write-EventLog -LogName $eventLogName -Source $eventLogSourceName ...

Если переменная $eventLogSourceName пустая, то в Catch ловится ошибка с сообщением "Cannot validate argument on parameter 'Source'. The argument is null or empty."

А если там неверное значение, то исключение не ловится и сообщение пишется в консоль:

clip_image004

Как с этим бороться? Не перечислять же все известные в природе исключения? Тем более, что некоторые всё равно не перехватываются…

Нашёлся способ в виде конструкции Trap - нечто наподобие On Error в бейсике.

Ловит все ошибки, но особо с действиями над этими ошибками не развернёшься. В файл на диске ошибки записать можно (чего я, собственно, и добивался), а вот собрать тексты разных ошибок, чтобы потом их разом записать в лог, как обычно в CS делаю - вигвам.

Вот примерчик:

$err="Error: "

trap$err += $_
$err
Out-File -FilePath "errors.log" -Encoding "utf8" -Append -InputObject $_.Exception.Message
continue }

$dvdr = 0
1/$dvdr
NonsenseString 
2+3
$err #здесь та же строка "Error: " :(

Здесь выполняются все действия, а сообщения об ошибках выводятся в файл:


Попытка деления на нуль.
Имя "NonsenseString" не распознано как имя командлета, функции, файла скрипта или выполняемой программы.


Не фонтан, конечно, но, всё же, лучше, чем просто пропадающее сообщение (пускай даже код после "кривых" Catch иногда и выполняется нормально)…

пятница, декабря 21, 2012

Троянский конь…

С декабрьским пакетом обновлений установился Windows Management Framework 3.0 for Windows Server. Спасибо, конечно, но можно было бы и предупредить, что при попытке воспользоваться “Командной консолью Sharepoint 2010” получим сообщение “The local farm is not accessible. Cmdlets with FeatureDependencyId are not registered.”

Конечно, новый PS работает под .NET 4.0, а Sharepoint – под 3.5…

Хорошо хоть, что решается проблемка простым удалением этого “обновления”. Но опять перезагрузка… А на сервере люди…

суббота, декабря 08, 2012

Студийный предел

Два или три дня копался с рефакторингом одного своего решения – выделял классы в отдельные сборки, добавлял к решению новые проекты, удалял ненужные, файлы с исходниками перетаскивал из одной папки в другую. При  этом не всё делалось средствами VS 2012, активно в операциях использовался ФАР. Один раз за это время была перезагрузка компьютера (точнее, нажимал на Reset по причине зависания системы).

В конце эпопеи решил сделать возврат (checkin) – использую TFS на http://visualstudio.com – и фсё, узнал предел возможностей: не шмогла Студия сохранить моё произведение. То каких-то файлов на сервере не обнаруживает (да и откуда им взяться там, если они новые), то, наоборот, говорит, что файл .sln там уже есть (конечно, есть, решение-то уже шесть лет существует)… Сражение кончилось тем, что я тоже признал получившееся новым решением и сохранил его в другой папке.

И что теперь, каждые пять минут checkin делать?
Или это от того, что недавно для Студии update 1 установил? Update 2 это исправит? Или усугубит?

суббота, декабря 01, 2012

Жизнь ли без Microsoft ?

Сегодня наш сельский провайдер устроил проверку, есть ли жизнь без Microsoft – взял, и забанил все MS-сайты: hotmail.com, skydrive.com и все остальные, даже msdn.microsoft.com, часа три экспериментировал. Зачем он это сделал – другой вопрос, думаю, никогда не расскажут.

Выяснилось, что попасть на эти сайты вполне можно через Tor, но зарегистрироваться на них – уже нельзя. При необходимости, ничего оттуда не скачаешь, если нужна авторизация…

Самое неприятное, что при этом приключении выяснилось – на компьютер с Windows 8 невозможно зайти с MS-учёткой, сервера-то недоступны. В принципе, может так получиться, что на компьютере имеется только одна эта учётка – тогда привет, не попадёшь. А ведь при установке этот вариант аутентификации является основным…
И дать бы по башке MS-программерам за такой сюрпризик – с доменными учётными данными, ведь, можно залогиниться и без доступа к контроллеру домена…

пятница, ноября 30, 2012

SQL фокус

Несколько часов сражался с проблемой - не коннектится программка, работающая с SQL Server 2008 (10.50.4000), к моему локальному SQL Server 2012 (11.0.3000): рассказывает про “error: 26 - Error Locating Server/Instance Specified”. Google советует покопаться в настройках сети, SQL Server, а также проверить, существует ли что-то на свете вообще...

Все другие программы (Sharepoint'ы из виртуалок, например) нормально работают, а эта локальная программка - никак не желает (соединение в ней организовано через использование ConnectionString).
Стали уже закрадываться мысли, не поставить ли 2008-й сервер...

До установки решил порыться в кодах программы (она не моя и, в принципе, работает – чего же чужие коды изучать…) и обнаружилось, что строка соединения передаётся в класс, наследующий System.Data.Linq.DataContext, в конструкторе которого и наблюдается падение с “ошибкой 26”. Мда… Thumbs down

К счастью, у класса оказался другой конструктор, принимающий заранее открытое соединение, которое и было создано нехитрым кодом:
var connection = new SqlConnection(CONNECTION_String);
connection.Open();

Подсунул эту connection классу вместо CONNECTION_String - программка заработала.
Фокус-покус, едрёныть... Secret telling smile

Кстати, похожую историю можно наблюдать при соединении с SQL Server 2012 по “строке соединения” в SQL-манагере:

image

При  вводе тех же данных (имя/пароль) в поля формы “Вход” сервер открывается нормально. Steaming mad

Technorati Tags:

пятница, ноября 23, 2012

Hyper-V или VirtualBox

 В Win7 использовал для разработки исключительно VirtualBox (VB). В самом начале были ещё виртуалки и под MS VirtualPC, но с приходом необходимости заниматься Sharepoint 2010 MS-примочка отпала - не поддерживает она x64-гостевые системы.
При переходе на Win8 одним из основных аргументов в её пользу было наличие встроенного гипервизора Hyper-V. И действительно гипервизор работает (на верхней версии ОС), все заявленные функции исполняет. Ура!
 
В процессе жизни начинают проявляться недостатки виртуальных машин под Hyper-V:
  1. Периодически при запуске заявляет, что виртуализация на компьютере не включена в БИОС, хотя включена. После перезагрузки обычно вылечивается. На данный момент примерно месяц такого не наблюдается - возможно, в одном из исправлений починилось.
  2. Окно виртуальной машины имеет фиксированный набор размеров - этого достаточно для настройки машины админом, для работы на машине (разработка в VS, настройки интерфейса в браузере и т.д.) приходится пользоваться клиентом RDP.
  3. Самое обидное - при установке Hyper-V отключается режим hybrid sleep, к которому привык в Win7, как к родному…  Даже, возможно, в RP-версии Win8 этот режим работал, не мог я его отсутствия не заметить… Собственно, привело это к весьма неприятным последствиям
 
 К остальному как-то привыкнуть можно, но вот отсутствие hybrid sleep весьма угнетает - привык к нему, а выход из hibernate происходит раздражающе долго и нудно, что никак не способствует экономии электроэнергии.
 
Сегодня решил взглянуть, как на Win8 работает старый знакомый VirtualBox. Оказалось, что за время моих упражнений с Win8 вышли две новые версии, впрочем, без каких-либо описанных радикальных изменений.
VirtualBox-4.2.4 на домашней версии Win8 установился и запустился без кашля и чиханий, старые виртуалки (XP и Windows Server 2008) запустились и обновились тоже без проблем.
Никаких тебе RDP не нужно - хоть настраивай, хоть работай, к услугам несколько вариантов в меню "Вид" машины, и hybrid sleep на месте, во всей своей мощи и красе!
Как водится, чего-то и не хватает по сравнению с Hyper-V:
  1. Нет у VB ничего похожего на опции "сохранять состояние и запускать вновь" для машин под Hyper-V. Недостаток несколько компенсируется тем, что попытка перезагрузки/выключения при работающей виртуальной машине блокируется системой - даже кнопку "делать всё равно..." не выводит - машину не испортишь...
  2. Нет возможности динамического выделения памяти для машины. Правда, выяснилось, что Sharepoint 2013, под который, собственно, и нужно выделять много памяти, не поддерживает динамическую память...
 
Что ж, осталось проверить, как в VB чувствует себя Server 2012 и Sharepoint 2013, да можно и вернуться обратно к привычному образу жизни с VB и hybrid sleep...
 
Technorati Tags: ,

суббота, октября 27, 2012

Excel-кошмар

На картинке – процесс открытия небольшого – 434065 байт – .xlsx-файла на моём десктопе с четырёхядерным процессором.

 

clip_image001

 

 

Открывающийся файл взят отсюда - https://www.facebook.com/alex.dybenko/posts/10151477095888574?comment_id=29108109&offset=0&total_comments=116 (там много ещё поучительного, в той дискуссии).

 

Сразу после загрузки файл не открывается вообще - заблокирован бдительной ОС (разблокируется в "свойствах" файла).

После разблокировки открывался примерно 4 минуты - до состояния, когда стало можно что-то делать с данными…

Поворот текста в столбце - примерно 30 сек., на 90⁰ можно повернуть за 2 раза…

 

Всё – новейшее, со всеми обновлениями: Windows 8 Pro x64, Excel 2013 x86.

Мда… 

пятница, октября 26, 2012

Метровые программы

Очень сейчас активно, особенно после вчерашнего праздника и открытия Windows-магазина,  пропагандируется использование и изготовление приложений для Windows 8 с новым интерфейсом (по-старому – Metro). Иногда они забавно выглядят, есть уже и полезные…
Но вот есть у них два сразу бросающихся в глаза недостатка, которые не могут не беспокоить.
  1. Metro-программы устанавливаются без спросу в папку на системном диске (в качестве системного у меня используется SSD-диск 110 Гб, да и в требованиях к оборудованию нет упоминаний про неограниченный системный раздел) - C:\Program Files\WindowsApps\<папка программы>  (эта папка не видна в Explorer'е, но про неё можно узнать в Process Explorer и ФАРе). Кроме того, там же сохраняются и предыдущие версии программ (не всех, правда, а только некоторых от MS) после обновлений (зачем, понять невозможно – нет ведь средств отката на предыдущую версию…) – а это уже не шутки (накопилось уже больше 500 Мб таких  “резервов” при 3-4 десятках установленных приложения), опыт Windows 7 был…
  2. Данные Metro-программ так же без спросу сваливаются в профиль пользователя  - C:\Users\<user>\AppData\Local\Packages\<папка программы> . Простые способы перенаправить куда-то эти данные (при помощи ссылок на папки на других дисках) приводят только к потере работоспособности системы для юзера, над которым проводится эксперимент - помогает только удаление профиля и сооружение нового при очередном логине.
Сейчас их, этих программ, конечно, мало и размер их сравнительно невелик, но если, вдруг, их количество сильно вырастет и они станут посложнее и объёмнее, то можно будет получить сообщение о переполнении системного раздела. Или не станут и не вырастет?
А с данными может стать туго уже очень скоро – напр., папка программки ivi.ru (сервис просмотра фильмов) у меня уже  имеет размер около 3 Гб. И Evernote с Onenote тоже ведь притащат всё из облаков “для ускорения работы”…
А вот любопытно, что будет на планшетках – там программы-то те же самые, а места на дисках совсем мало… Nyah-Nyah

23.11.2012:
Пару дней назад обнаружилась по-настоящему полезная программка такой конструкции.
Все прочие пока что из разряда "любопытно взглянуть".

четверг, октября 25, 2012

Office 2013 RTM, установка

24 октября 2012 г. выложили на MSDN дистрибутив.

По-правде, размер дистрибутива несколько смущает: Devil

clip_image001

Попробую x64 поставить, там размер нормальный

clip_image002

Поставил. Правда, пришлось удалить всё 32-битное (Office 2010, SPD 2010), в т.ч. и preview 2013. Ещё зачем-то вымогнула, чтоб закрыл Chrome…

Но после установки (и, естественно, перезагрузки компа) OneNote открылась ровно на той странице (и даже строчке), где закрылась. Умеют же, когда захотят…

В Ворде также все настройки сохранились, дополнительно пропал глюк с открытием файла из Шарепойнта (для этого, собственно, был установлен Word 2010). Ура.

"Ура" заканчивается при попытке включить табличный режим для SP-списка:

clip_image003

При этом в ИЕ много всяких x64-надстроек:

clip_image004

В установщике Офиса средства работы с SP включены:

clip_image005

Никакие ухищрения типа запуска 64-разрядного ИЕ, восстановления установки Офиса и т.п. результата не дают.

Что ж, как нынче принято говорить, давай, до свиданья. По-моему, это уже третий Офис, где x64-версию использовать практически невозможно. Упорные…

Придётся использовать адскую x86-версию.

Установилась без вымогательства перезагрузки - уже что-то дьявольское… Devil

Несколько мониторов - 2

 

Продолжение истории

Добавил видеокарту NVIDIA GT 610 и подключил к ней телевизор. Теперь не надо ничего переключать, достаточно включить телик.
Ура!

Но корпорация называлась бы как-то по-другому, если бы было так просто. Мониторы пришлось расположить вот так:

image

Если расположить телевизор по горизонтали слева от основного монитора, то при расположении таскбара слева и при включённой панели "Рабочий стол" (ну, привык я так, удобнее всего для меня) содержимое этой панели выводится на телевизоре (!!!???)

понедельник, сентября 10, 2012

Бесплатные антивирусы и Windows 8

Повозился немного с антивирусами (на MS надейся…), бесплатными и известными по более ранним упражнениям. Результат – здесь.
Technorati Tags: ,

пятница, августа 24, 2012

Visual фокус-покус

Построение проекта в Windows 8 RP при помощи RC-версии Студии 2012

clip_image001

проходит чисто и гладко:

1>------ Построение начато: проект: Testo, Конфигурация: Debug Any CPU ------1> Testo -> …\Testo\bin\Debug\Testo.exe
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========
Build Summary
-------------
00:00.524 - Success - Debug Any CPU - Testo\Testo.csproj
Total build time: 00:00.000
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========

То же действие в Windows 8 RTM при помощи RTM-версии Студии

clip_image002

даёт совсем другой результат:

1>------ Построение начато: проект: Testo, Конфигурация: Debug Any CPU ------
1>CSC : error CS1548: Сбой криптографических служб при создании подписи сборки "…\Testo\obj\Debug\Testo.exe" -- "Ошибка подписания сборки -- Отказано в доступе. "
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Build Summary
-------------
00:00.285 - Failed - Debug Any CPU - Testo\Testo.csproj
Total build time: 00:00.000
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

Как говорится - Приехали, здрасьте…

Расследование показывает, что Студию надо запускать под администратором - тогда всё проходит.

Помнится, что в VS 2010 тоже иконка для запуска была настроена на запуск под админом, в версии 2012 такая необходимость, как казалось, отпала. Теперь поставлю обратно:

clip_image003

Это что, русская народная забава - бег по граблям - становится популярной по всему миру? Ура, так победим…

среда, августа 22, 2012

Программы для Windows 8

    После установки системы на "стартовом экране" обнаруживается несколько программ с метро-интерфейсом (или супер-пупер модерновым, как его теперь велено называть). Через одну из них - Магазин – установил и попробовал ещё несколько, показавшихся забавными или даже полезными.

    Оказались бесполезными или нерабочими:

    1. Новости - никак не реагирует на настройки
    2. Камера - вовсе нельзя использовать, как она сама признаётся.
    3. Музыка - коллекцию не видит, при указании конкретного файла - не воспроизводит.
    4. Видео - коллекцию видит, но файлы не воспроизводит (зависает на этапе "Запуск…", на плитке показывает, что файл воспроизводится).
    5. Evernote - никаких настроек, куда-то загружает всё с сервера… Какая-то недоделка.
    6. Photo Monkey - пустой экран с обезьяной и никакой реакции на действия.

    Оказались вполне пригодными для использования:

    1. Погода
    2. Погода AccuWeather.com
    3. Спорт
    4. Сообщения (замена Live Messenger ? Только он и сам уже почти помер…)
    5. Bing - поисковик, выдача забавно оформлена.
    6. Путешествия - не поехать, так поглазеть…
    7. QuickNote - аналог системных десктопных "Записок"
    8. Super Calculator
    9. Calc – тоже калькулятор
    10. KoAlarm – таймеры и будильники
    11. Microsoft Mahjong – красиво…

    Ограниченно годные (можно и выкинуть, если есть нормальные аналоги):

    1. Почта (только Hotmail, но веб-клиент удобнее)
    2. SkyDrive (та же функциональность, что и при доступе через браузер, через который привычней).
    3. Фотографии (желает показывать только "облачные" файлы, локальных - при настроенной библиотеке изображений - не видит)
    4. Tweetro (нет поиска по тегам с неанглийскими буквами - авторам сообщал уже давно)
    5. MetroTwit (подключается только одна учётка, картинки не показывает)
    6. Rechner (калькулятор, но функций нет, только арифметика…)
    7. Microsoft Solitaire Collection (на некоторых игрушках нет настроек - забыли, мышью управляется тяжеловато)
    8. All My Storage (всё обещанное делает, только не очень там объединяются хранилища… Не очень ясно, зачем вообще программка сделана.).
    9. Musixmatch (должна показывать стихи от музыки, но говорит, что моя библиотека пустая и показывает какие-то топы России, США и World).
    10. FineReader Touch (текст со скана распознался погано, при попытке ввести документ с камеры падает)

    Не удалось оценить работоспособность:

    1. ivi.ru – список фильмов выводит, страницы фильмов открываются, сами фильмы не воспроизводится (на андроидном планшете воспроизведение запускается только в плохом качестве и всё время повисает) - похоже, сам сервис плохо работает…
    2. Free Books - книг много, загружаются и показываются, но …только по-английски.

Итог - маловато будет, где-то через полгода надо будет ещё раз на магазинчик посмотреть…

понедельник, августа 20, 2012

Несколько мониторов

Подключил к компьютеру ещё один монитор и теперь у меня их три - два монитора 24" и телевизор 42". Мониторы стоят на столе - для работы, телевизор - в четырёх-пяти метрах, смотреть кино.

Подключены все к выходам встроенного в процессор Intel i7 видео через разъёмы на MB Asus P8Z68-V LX: телевизор - через HDMI, мониторы - через VGA и DVI.

Всё работает, для жизни и работы больше пока ничего не нужно… Одно плохо - не умеет Windows работать с тремя мониторами, только с двумя (да и то не очень чтобы здорово…). Спасибо, хоть Интель приложила софт для настройки видео, при помощи которого можно довольно оперативно выбрать нужную пару мониторов:

clip_image001

Переключать при помощи "Панели управления" устанешь:

clip_image002

Одно утешает, что не только Windows не умеет с тремя мониторами…

А интересно, что будет, если видеокарту добавить и один из мониторов к ней подключить?

пятница, августа 17, 2012

Windows 8 или ServicePack-1, продолжение 2

Начало истории здесь, продолжение – здесь.

Пришло 15 августа и на MSDN выложили обещанные дистрибутивы – Windows 8 и VS 2012.

Описание дальнейших приключений – в OneNote. Live.

среда, августа 15, 2012

Шутка?

Давно уже такого не было: после установки больше двух десятков обновлений на Windows 7 x64 и перезагрузки системы вылезло оповещение о ещё одном "важном" обновлении. Установил (успешно) - оповещение вылезло снова. Снова установил - и снова вылезло...
Из любопытства перезагрузился - снова то же оповещение... Установилось 4 раза (дальше надоело, заблокировал), в протоколе обновлений так и торчат 4 строчки об успешной установке одной и той же заплатки.
Напоследок (завтра, вроде бы, должны начать новую ОСь раздавать) кто-то пошутить решил, похоже...

понедельник, августа 06, 2012

SPFExplorer 2010 с клиентской моделью

Модифицировал старую свою утилиту для работы с объектами Sharepoint 2010 на предмет работы не только в консоли сервера, но и на удалённом компьютере. Собственно, по работе понадобилось сравнить структуру и свойства разных ферм, что удобнее (привык как-то уже…) делать в соседних окошках в “деревянном” виде.
Для обеспечения удалённой работы с Шарепойнтом использовал клиентскую объектную модель (сборки Microsoft.SharePoint.Client и Microsoft.SharePoint.Client.Runtime), функциональность утилиты относительно “удалённых” объектов ограничил только просмотром структуры и свойств, т.к. выполнение каких-либо модификаций требует дополнительных исследований, затраты на которые вряд ли когда окупятся (лично мне хватает быстрого перехода к странице, где можно сделать модификацию стандартным образом). При большой нужде можно написать и соответствующие плагины, интерфейс открыт.
Описание и полный набор файлов утилиты (включая “опасные” плагины удаления и копирования) выложил на гугле-странице (сайт на officelive.com погибПлачущая рожица, потому как благодетелю стало жалко ранее обещанных пожизненно бесплатных ресурсов, которые оказались даже лучше, чем новейший Office365).
Теперь подождём до переоснащения оборудования новыми Осями (Windows 8 и Windows Server 2012) и Студией и можно начинать адаптацию утилиты к использованию с новым Шарепойнтом, несмотря на многочисленные восторженные всхлипы по его поводу. Всё равно же когда-то он станет использоваться…
Technorati Теги:

среда, июня 27, 2012

Windows 8 или ServicePack-1, продолжение

 

Первая серия экспериментов – здесь.

Вдохновившись бодрыми заявлениями некоторых людей о полном переходе на Windows 8, провёл ещё одну серию экспериментов. Описал это в OneNote и повесил на SkyDrive (раздел RP).

В итоге вывод о переходе на новую ОС не изменился, но поработать на ней, всё же, попробую.