воскресенье, 23 марта 2014 г.

Рассуждения о Software Defined Storage: что не так с IO?

http://habrahabr.ru/post/124755/

Первое прочтение: как он прав.
Второе: какой бред..
Третье: что-то разумное есть, но в целом идея не очень. Действительно, СХД может тоже выдать сбой, но это всегда требует переписывания софта, потому что только софт может знать, что и как обрабатывать. А дальнейшие размышления в комментах на тему вероятности правдивости -- реальный бред.

среда, 19 марта 2014 г.

Dell: обновляем прошивки

Итак, что надо обновлять:
You can perform firmware update for the following components:

    iDRAC
    BIOS
    Lifecycle Controller
    Diagnostics
    Operating System Driver Pack
    Network Interface Card (NIC)
    Power Supply Unit (PSU)
    RAID Controller

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

суббота, 15 марта 2014 г.

FreeBSD: предупреждение при сборке чего угодно из портов и ошибка про сборке lang/python2

"/usr/ports/Mk/bsd.python.mk", line 558: Malformed conditional (${PYTHON_REL} >= 320 && defined(PYTHON_PY3K_PLIST_HACK))
"/usr/ports/Mk/bsd.port.mk", line 6589: if-less endif
make: fatal errors encountered -- cannot continue

FreeBSD: scons: done reading SConscript files. error: setting stack size not supported:

При попытке собрать serf (для того же subversion) можно поймать баг

# make -C /usr/ports/www/serf install clean
===>  Building for serf-1.3.4
scons: Reading SConscript files ...
scons: done reading SConscript files.
error: setting stack size not supported:
  File "/usr/local/lib/scons-2.3.0/SCons/Script/Main.py", line 1344:
    _exec_main(parser, values)
  File "/usr/local/lib/scons-2.3.0/SCons/Script/Main.py", line 1308:
    _main(parser)
  File "/usr/local/lib/scons-2.3.0/SCons/Script/Main.py", line 1072:
    nodes = _build_targets(fs, options, targets, target_top)
  File "/usr/local/lib/scons-2.3.0/SCons/Script/Main.py", line 1228:
    jobs = SCons.Job.Jobs(num_jobs, taskmaster)
  File "/usr/local/lib/scons-2.3.0/SCons/Job.py", line 92:
    self.job = Parallel(taskmaster, num, stack_size)
  File "/usr/local/lib/scons-2.3.0/SCons/Job.py", line 365:
    self.tp = ThreadPool(num, stack_size, self.interrupted)
  File "/usr/local/lib/scons-2.3.0/SCons/Job.py", line 280:
    prev_size = threading.stack_size(stack_size*1024)
*** [do-build] Error code 2

Stop in /usr/ports/www/serf.

*** [install] Error code 1

Stop in /usr/ports/www/serf.

воскресенье, 9 марта 2014 г.

FreeBSD: ... by ``make reinstall'' to upgrade it properly. If you really wish to overwrite the old port of ports-mgmt/pkg without deleting it first, set the variable "FORCE_PKG_REGISTER"

Может получиться так, что попытка что-то обновить/установить через portmaster при установленном (и правильно настроенном) pkg вылезает баг: в списке обновлений также есть pkg, и при запуске установки выпадает ошибка

_pkg.zsh /tmp/ports/usr/ports/ports-mgmt/pkg/work/stage/usr/local/share/zsh/site-functions/_pkg
===> scripts/sbin (install) install -o root  -g wheel -m 555
pkg2ng  /tmp/ports/usr/ports/ports-mgmt/pkg/work/stage/usr/local/sbin/pkg2ng
====> Compressing man pages (compress-man) ===>  Installing for
pkg-1.2.2 ===>  Checking if ports-mgmt/pkg already installed ===>
pkg-1.2.2 is already installed You may wish to ``make deinstall'' and
install this port again by ``make reinstall'' to upgrade it properly.
If you really wish to overwrite the old port of ports-mgmt/pkg without
deleting it first, set the variable "FORCE_PKG_REGISTER" in your
environment or the "make install" command line. ***
[check-already-installed] Error code 1

Stop in /usr/ports/ports-mgmt/pkg.

например
http://lists.freebsd.org/pipermail/freebsd-pkg/2013-December/000155.html
Но причина - не баг pkg, а баг portmaster, исправленный в более свежих версиях, лечится обновлением портов + принудительным обновлением портмастера
cd /usr/ports/ports-mgmt/portmaster && make deinstall clean && make install clean

понедельник, 3 марта 2014 г.

htaccess redirect и кириллические пути

Допустим, надо сделать редирект с
http://сайт.рф/каталог/новый
в
http://сайт.рф/новый-каталог

Шаг 0, обязательный! Убеждаемся, что у нас кодировка у файла .htaccess UTF-8, без этого работать не будет!

записи будут такие
RewriteEngine On
RewriteCond %{REQUEST_URI} /каталог/новый [NC]
RewriteRule .* /новый-каталог [L,R=301]

Начальные слэши обязательны, без них будет путь на сервере.
А вот если надо на другой русский домен, сам домен надо за-punycode-ить, например на https://www.reg.ru/whois/punycode
для сайт2.рф будет 
RewriteRule .* http://xn--2-7sb1a4ah.xn--p1ai/новый-каталог [L,R=301]

Можно попробовать объединить строки в 1
RewriteRule /каталог/новый /новый-каталог [L,R=301]

И пара полезных линков "по теме"
20+ правил .htaccess, которые должен знать каждый разработчик
Директива RewriteCond