Записи с меткой "рабочее"

1
Июн

hdd

   Автор: Aen Sidhe    in дневник

Все помнят, надеюсь, мою замечательную машину на работе. Так вот, всю неделю она работала как древний третий пень с убитым в хлам винтом. Начали копаться, выяснили, что во всём повинен именно винт. А что же это за винт? А это Жесткий диск 640ГБ Western Digital «Caviar Green WD6400AARS» 64МБ (SATA II). Человек, который его купил, сказал буквально следующее: «А что, новая технология (физический кластер 4 кб), первая партия, кеш на 64 метра покроет минусы от потерь на скорости вращения в 5400, ну и он будет жрать меньше электричества».

Что же получилось на самом деле:

  1. Windows XP выпадала в BSOD в инсталляторе при первом обращении к винту.
  2. Пункт 1 лечится джампером, но в офисе нет джамперов (кто их юзал в последние три года?), в комплектации его тоже нет.
  3. Пока нашли джампер, я поставил уже Windows 7.
  4. Любое обращение к винту == фриз всей системы. Попытки делать какие-то серьёзные операции с ним вводят машину в ступор.
  5. Окей, купили ещё один винт (обычную барракуду на 640 гигабайт с таким же кешем и 7200 оборотов).
  6. Поставили Acronis True Image, попытались скопировать винт. Акронис упал намертво на первом обращении к винту после ребута.
  7. Поставили Acronis True Image WD Edition (да, у Акрониса есть спец. софт для винтов от вестерн дигитала). Акронис упал аналогично.
  8. Порадовались, что данные всё ещё целы, стали искать другой софт.
  9. Нашли Paragon Partition Manager 10. Оно подумало и сказало: знаешь, 4 часа и я всё скопирую. Оставил на ночь.
  10. С утра увидел «копирование завершено», выдернул WD из компа, запустил на новом винте – всё летает.

Граждане, не покупайте экспериментальные комплектующие.

Метки:дневник, отчёт, рабочее
26
Май

incredibuild

   Автор: Aen Sidhe    in дневник, программирование

Распределённые вычисления рулят. Сейчас собираю проект, утилизируется 20 ядер, 55 ГГц в сумме, билд идёт уже 10 минут. А теперь представим, что ядер всего два :)

Метки:дневник, программирование, рабочее
25
Май

новое рабочее место

   Автор: Aen Sidhe    in дневник

  • Benq G2420HD
  • Intel Core i7 860
  • 8 Gb DDR3
  • Radeon HD 4550
  • На клаве узкий ентер, блин. Неудобно.

В целом – клёво.

Метки:дневник, рабочее
20
Май

left

   Автор: Aen Sidhe    in дневник

С завтрашнего дня я больше не работаю в компании «Ру.Софт». Удачи и успехов тем, кто там продолжает там работать :)

Метки:дневник, рабочее
20
Май

docs

   Автор: Aen Sidhe    in дневник

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

Метки:дневник, рабочее
28
Янв

iPad

   Автор: Aen Sidhe    in дневник

Шеф предложил отличный вариант – зачем нужен iPad. Как замена рабочему ноутбуку весом в 600 грамм.

Метки:гаджет, дневник, рабочее
28
Дек

38 hours

   Автор: Aen Sidhe    in дневник

Побьём рекорд или нет?

Метки:дневник, рабочее
16
Дек

perfomance

   Автор: Aen Sidhe    in программирование

Будете смеяться, но после того, как я оптимизировал создание карты с 10 секунд до 23 миллисекунд, мы упёрлись в производительность стандартных коллекций.

Раньше, когда небо было голубое и трава зелёная, монстров у нас было чётко заданное количество. Поэтому был массив. Сейчас, количество мобов меняется, поэтому, недолго думая, был всунут List<T>. Всё бы ничего, но сервер тут же стал жрать в 4 раза больше проца. Замеры показали, что почти вся нагрузка – пересчёт монстров, из которого половину времени мы сидим в геттера List<T>.Item.

Думаем, что делать :)

Метки:программирование, рабочее

Грабли, как мне кажется, есть везде. В своё время, ни одна библиотека не прошла мимо меня в проект, кроме, пожалуй, Infragistics, без доработки. Поговорим о граблях в System.AddIn.

Для начала порекомендую прочитать статью в блоге Джейсона Хи (Jason He), которая называется «Coding patterns to avoid in addin pipeline development». Да и вообще, его блог почитать надо, он поподробнее Walkthrough в MSDN.

Итак, первая грабля, на которую я наступил: дефолтные домены работают без ShadowCopy, как следствие, заменить сборки на горячем сервере мы не можем. Ок, нам особо и не надо, сделаем домен сами:

[cc lang="csharp"]
AddInStore.Update(pipelineRootFolderPath);

Collection tokens = AddInStore.FindAddIns(typeof(IView), pipelineRootFolderPath);

AddInToken calcToken = tokens[0];

AppDomain domain = AppDomain.CreateDomain(string.Format(«Test {0}», DateTime.Now), null, new AppDomainSetup { ShadowCopyFiles = «true» });

return calcToken.Activate(domain);
[/cc]

Затем мы работаем, всё ок. Для выгрузки аддона используем такой код: [cci lang="csharp"]AddInController.GetAddInController(calc).Shutdown()[/cci]. По идее всё хорошо, но есть одно но. Из-за того, что мы домен создали вручную, то автоматически инфраструктура System.AddIn его не выгрузит. Да, это может быть логично, но об этом нигде не написано.

Код ниже логичен, но будет падать, несмотря на то, что ссылка на домен у контроллера есть, и она живая. Просто разработчики посчитали, что раз AddIn отключен, то домен нам уже не нужен. Вообще, реализация AddInController’a с [cci lang="csharp"]lock(this)[/cci] и прочим меня ни разу не порадовала.

[cc lang="csharp"]
AddInController c = AddInController.GetAddInController(calc);
c.Shutdown();
AppDomain.Unload(c.AppDomain);
[/cc]

Правильный код вот такой:

[cc lang="csharp"]
AddInController c = AddInController.GetAddInController(calc);
AppDomain d = c.AppDomain;
c.Shutdown();
AppDomain.Unload(d);
[/cc]

Метки:дневник, программирование, рабочее
15
Ноя

Кризис

   Автор: Aen Sidhe    in дневник

А вот резюме. Я, если честно, думаю, что это шутка.

Ну или что не найдётся ни одного вменяемого работодателя, который это чудо наймёт.

Метки:hr, дневник, рабочее
Страница 1 из 512345