Установка обновления Windows 8.1— Удалить Sentinel runtime driver

Как только появилась возможность, я сразу же решил обновиться до Win 8.1. Обновление скачалось через Маркет нормально, однако при установке появилось сообщение «Необходимо удалить следующие программы: Sentinel runtime driver». Удалить его оказалось не так просто, как может показаться на первый взгляд, но особых проблем не составило. Итак:

  1. Качаем Сommand line run-time installer с офсайта. Внизу странички нужно принять условия соглашения, после чего начнется загрузка.
  2. Разархивируем содержимое скачанного архива в удобное место.
  3. Запускаем из командной строки установщик с параметром -purge
haspdinst.exe -purge

После этого должно появиться сообщение об успешном окончании операции. Теперь можно ещё раз запустить установку из трея или Маркета.

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

У меня Windows 8.1 лицензионный, активация не слетела.

Проблема WARN Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

На RoR 3.2  есть некоторая проблема с Webrick, при которой он постоянно в лог выдаёт что-то типа:

[2012-03-07 19:46:14] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true
[2012-03-07 19:46:14] WARN  Could not determine content-length of response body. Set content-length of the response or set Response#chunked = true

При этом, как мне показалось, хромает производительность.

Решается проблема патчем от Amiel Martin —

https://bugs.ruby-lang.org/attachments/2300/204_304_keep_alive.patch

Либо в ручную. Достаточно в файле httpresponse.rb заменить строку

if chunked? || @header['content-length']

на

if chunked? || @header['content-length'] || @status == 304 || @status == 204

Command line calculator on Rails — dentaku

Итак, сегодня в моём блоге наконец появится первая запись по Ruby on Rails.

При разработке системы административного учёта для одного из моих клиентов на Rails я столкнулся с маленькой проблемой. Заказчик изъявил желание самостоятельно создавать новые тарифы, по которым производится расчёт платежей клиентов организации. Это значит что алгоритм работы тарифа не должен являться внутренней частью приложения. Необходимо пользователю дать возможность самостоятельно разрабатывать формулы, по которым и будут производиться расчёты. На самом деле это не проблема, это обычная практика — не обращаться же к программисту каждый раз, когда нужно изменить способ расчёта.

Для решения такой задачи тарифы легче всего хранить в виде:

ID      Name          Formula
1       rate1         var1+var2/var3
2       rate2         var1+var2/var3-100

При расчёте нужно просто извлечь формулу из БД, подставить переменные, рассчитать получившееся выражение и вывести результат пользователю. Самая большая сложность заключается именно на стадии «рассчитать получившееся выражение»…

В ход пошёл Google. Осознав, что найти простую и корректную функцию на Ruby (да и не только на Ruby), способную на входе принять нечто вроде «486+67/2-100», а результатом выдать «419,5», мне не удастся, я взялся за поиски информации на тему разработки простого синтаксического анализатора… И зря потерял время.

В Ruby on Rails не принято изобретать велосипед. Большинство велосипедов уже изобретено в виде гемов. Они хорошо хранятся, легко доступны и успешно причёсываются сообществом. Оказывается и мой велосипед давно изобретён. Называется он Dentaku.

Dentaku — это небольшой гем, позволяющий анализировать арифметические и логические выражения. На вход принимает строку типа «2+2*2», на выходе даёт результат операции «6».

Dentaku поддерживает работу с переменными и следующие операции:

  • Математические: + — * /
  • Логические: < > <= >= <> != = AND OR
  • Функции: IF ROUND

Для начала нужно его установить. На Rails 3 достаточно в Gemfile просто прописать:

gem 'dentaku'

А затем выполнить в директории проекта:

bundle install

После чего увидеть его в списке установленных гемов:

Теперь можно его использовать

def calculate
      calculator = Dentaku::Calculator.new
      calculator.evaluate("2+4") #простое выражение
      calculator.evaluate("2+4/4*8-3*6") #более сложное выражение
      calculator.evaluate("var1+4/4*8-var2*6", 
                           :var1 => 3, :var2 => 6) #выражение с переменными
end

 

Страница на Github — https://github.com/rubysolo/dentaku

Скачать DWG TrueView 2013

Autodesk выпустил DWG TrueView 2013, однако при этом навязчиво просит качнуть ещё и непонятную муть «installer.exe». Если вас такой порядок вещей не устраивает, то ниже представлены ссылки на прямую загрузку установщика DWG TrueView 2013.

DWG TrueView 2013 32-bit (233 MB)

http://download.autodesk.com/esd/dwgtrueview/2013/SetupDWGTrueView2013_32bit.exe 

DWG TrueView 2013 64-bit (304 MB)

http://download.autodesk.com/esd/dwgtrueview/2013/SetupDWGTrueView2013_64bit.exe

Arduino и Windows 8

При установке драйверов для Arduino у пользователей Windows 8 часто возникают проблемы, связанные с отсутствием цифровой подписи сертификата драйвера устройства.

Данная проблема решается так:

  1. Нажмите Windows Key + «R»
  2. Скопируйте данную строку — shutdown.exe /r /o /f /t 00
  3. Вставьте её в окно «Выполнить» и нажмите «ОК»
  4. Выберите «Устранение неполадок»
  5. Выберите «Дополнительные параметры»
  6. Выберите «Настройки запуска»
  7. Кликните по кнопке «Перезапуск»
  8. Система загрузится с экраном «Дополнительные варианты загрузки»
  9. Выбираем вариант «Отключить обязательную проверку цифровой подписи драйверов» (нажимаем кнопочку «7» на клавиатуре)
  10. Система загрузится, после чего можно обычным (как в Windows 7) методом установить драйвера для Arduino

После загрузки ОС в указанном режиме и при попытке установить драйвера для Arduino UNO Rev 3 можно встретить ещё одну ошибку:

Для элемента или информационного пакета устройства не выбран драйвер

Её можно побороть выполнив следующие два действия:

  1. Удалить из папки \arduino-x.x.x\drivers все INF файлы, кроме Arduino UNO REV3.inf
  2. Переименовать Arduino UNO REV3.inf в Arduino UNO R3.inf

После этого устанавливаем драйвер стандартным методом через диспетчер устройств.

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

Photoshop CS6 ошибка 16

Если Photoshop CS6 не запускается и при этом громко матерится со словами «Ошибка 16«, то можно попробовать запустить его от имени Администратора. Даже если он запустится, то все проекты всё равно придётся открывать через «Файл — Открыть», а не простым двойным кликом.

Лечится ошибка 16 просто: нужно просто дать права на запись обычному пользователю в каталог «<диск>:\Program Files (x86)\Common Files\Adobe\SLCache«

Зависания Windows 8

Итак, буквально вчера поставил на домашний/рабочий компьютер RC-версию  Windows 8. Весьма смешанные чувства вызвала новая ОС от Microsoft. Одной из ложек дёгтя стало постоянно повторяющееся событие, которое не давало нормально работать. Периодически система наглухо висла… Двигался только курсор. Единственная закономерность, которую удалось обнаружить — это то, что зависания происходили только при запущенном Chrome. Причём, чем больше открыто вкладок, тем меньше времени оставалось до зависания. На форумах говорили подобном явлении. Причём в разговорах упоминался не только Chrome.

Решил проблему метод #1, описанный здесь.

Отключение динамических процессорных тактов.
Выполните в командной строке, запущенной от имени администратора:

bcdedit /set disabledynamictick yes

Продолжим

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

HP и надпись «Картриджи.Обратитесь к документации принтера»

Бывает, что после заправки картриджей струйных принтеров серии HP PhotoSmart на экране устройства появляется следующая информация.

«Картриджи.Обратитесь к документации принтера»

Далее принтер просто отказывается работать и не реагирует ни на какие кроме выключения.

Поможет решить данную проблему следующая последовательность действий:

  1. на принтере одновременно нажимаем Отмена и ОК,
  2. появится окно «Mfg Commands» с диалогом «Enter Special, Key Combo»
  3. нажимаете OK, потом стрелку ВПРАВО
  4. появится окно «UIAUX» с диалогом «Information Menu»
  5. жмем ОК, потом стрелку ВЛЕВО 5раз (небыстро)
  6. появится окно «UIAUX» с диалогом «pen supply level of ink (LOI)»
  7. жмем ОК
  8. появится окно с диалогом «color ……..»
  9. жмем ОК, потом ВПРАВО (переходим на black) и тоже жмем на ОК
  10. нажимаем 4раза ОТМЕНА

Появится синий экран с надписью «Вас приветствует Photosmart Express», после чего работу можно будет продолжить.

Не исключено, что в будущем проблема с картриджами снова повторится…

http://www.resetters.ru

GlassFrame в Embarcadero RAD Studio 2010

В Embarcadero RAD Studio 2010 существует возможность создания эффекта полупрозрачности Aero для фона окна. Называется этот эффект GlassFrame, но при его включении появляется проблема, связанная с тем, что надписи на кнопках, расположенных на этом окне становятся нечитабельными, а лейблы с темным шрифтом и вовсе пропадают.

Решается эта проблема путём установки свойства формы «DoubleBuffered» в значение «True».