пятница, 5 февраля 2010 г.

Ошибка при добавлении "русского" контакта в Spark

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

SEVERE: Unable to add new entry XXXX@jabber.YYYYY.ru
No response from the server.:
at org.jivesoftware.smack.Roster.createEntry(Roster.java:249)
at org.jivesoftware.spark.ui.RosterDialog.addEntry(RosterDialog.java:473)
at org.jivesoftware.spark.ui.RosterDialog$4.construct(RosterDialog.java:438)
at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:129)
at java.lang.Thread.run(Unknown Source)

Сервер Openfire 3.6.4 / mysql 5.1 / NDS (6.5)


Проблема в кодировке таблицы ofRoster на сервере. Установочный скрипт создает таблицу в latin1. Нужно перекодировать в utf8:
alter table openfire.ofRoster convert to charset utf8;
alter table openfire.ofRoster DEFAULT CHARACTER SET = utf8;

бекап/рестор базы быстрее.

четверг, 12 ноября 2009 г.

кошкорутер

После удаления конфига (startup-config) важно не забыть сказать ip routing, иначе никакого чуда не будет, ip nat translation будет показывать пустоту.

//каждый раз вспоминаю про эту особенность только наткнувшись на сообщение "IP routing not enabled", а его еще нужно выдавить из партизана.

среда, 28 октября 2009 г.

Apache2 и аутентификация пользователей в NDS / AD

1. Модной тулзой включаем в конфигурацию апача модуль ldap аутентификации:
a2enmod authnz_ldap


В конфигурации виртуал хоста пишем:
AuthType Basic
AuthName "Novell login required"
AuthBasicProvider ldap
AuthLDAPURL "ldap://nds.domain/o=ORG?cn??(objectClass=user)"
Require ldap-group cn=Subversion, ou=Unit, ou=Department, o=ORG


для AD
 
AuthLDAPBindDN user@domain.org
AuthLDAPBindPassword "password"
AuthLDAPURL "ldap://dc1.domain.org/ou=users,dc=domain,dc=org?sAMAccountName?sub?(objectClass=*)"
Require ldap-group "cn=nagios_admins,ou=group,OU=Dep,OU=users,DC=domain,DC=org"   

вторник, 27 октября 2009 г.

redmine и экспорт в pdf на русском

Debian/squeeze
В репозитории redmine 0.9.0~svn2907-1, поддержка mysql отдельным пакетом redmine-mysql.

Перед конфигурированием redmine необходимо в /etc/mysql/my.cnf добавить:
[client]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
default-character-set=utf8
character-set-server = utf8
collation-server = utf8_general_ci

[mysql]
default-character-set=utf8
иначе таблицы будут созданы с кодировкой latin1.

Из коробки экспорт в pdf выводит плящущие сикарашки. Патча от разработчиков не ожидается, но есть "народное" решение для версии 0.8.
Для версии 0.9 требуются небольшие исправления, но в целом лечится аналогично.
1. Отсюда берем модифицированный пакет RFPDF и заменяем содержимое каталога redmine/vendor/plugins/rfpdf на содержимое архива.
2. Патчим redmine:



diff -urN redmine_orig/lib/redmine/export/pdf.rb redmine_works/lib/redmine/export/pdf.rb
--- redmine_orig/lib/redmine/export/pdf.rb      2009-10-27 15:17:35.000000000 +0600
+++ redmine_works/lib/redmine/export/pdf.rb     2009-10-27 15:22:46.000000000 +0600
@@ -17,7 +17,6 @@

 require 'iconv'
 require 'rfpdf/fpdf'
-require 'rfpdf/chinese'

 module Redmine
   module Export
@@ -25,7 +24,7 @@
       include ActionView::Helpers::TextHelper
       include ActionView::Helpers::NumberHelper

-      class IFPDF < FPDF
+      class IFPDF < TCPDF
         include Redmine::I18n
         attr_accessor :footer_date

@@ -49,8 +48,8 @@
             @font_for_content = 'Big5'
             @font_for_footer = 'Big5'
           else
-            @font_for_content = 'Arial'
-            @font_for_footer = 'Helvetica'
+            @font_for_content = 'FreeSans'
+            @font_for_footer = 'FreeSans'
           end
           SetCreator(Redmine::Info.app_name)
           SetFont(@font_for_content)
@@ -113,7 +112,7 @@
         title = query.new_record? ? l(:label_issue_plural) : query.name
         title = "#{project} - #{title}" if project
         pdf.SetTitle(title)
-        pdf.AliasNbPages
+        pdf.alias_nb_pages
         pdf.footer_date = format_date(Date.today)
         pdf.AddPage("L")

@@ -180,7 +179,7 @@
       def issue_to_pdf(issue)
         pdf = IFPDF.new(current_language)
         pdf.SetTitle("#{issue.project} - ##{issue.tracker} #{issue.id}")
-        pdf.AliasNbPages
+        pdf.alias_nb_pages
         pdf.footer_date = format_date(Date.today)
         pdf.AddPage

@@ -307,7 +306,7 @@
       def gantt_to_pdf(gantt, project)
         pdf = IFPDF.new(current_language)
         pdf.SetTitle("#{l(:label_gantt)} #{project}")
-        pdf.AliasNbPages
+        pdf.alias_nb_pages
         pdf.footer_date = format_date(Date.today)
         pdf.AddPage("L")
         pdf.SetFontStyle('B',12)
diff -urN redmine_orig/vendor/plugins/rfpdf/environment.rb redmine_works/vendor/plugins/rfpdf/environment.rb
--- redmine_orig/vendor/plugins/rfpdf/environment.rb    2009-10-27 15:17:35.000000000 +0600
+++ redmine_works/vendor/plugins/rfpdf/environment.rb   2009-10-27 15:23:18.000000000 +0600
@@ -8,14 +8,6 @@
 require "#{File.dirname __FILE__}/lib/core/view"
 require "#{File.dirname __FILE__}/lib/core/rfpdf"

-begin
-  require 'RMagick'
-  require "#{File.dirname __FILE__}/lib/core/rmagick"
-rescue LoadError
-  require 'image_science'
-  require "#{File.dirname __FILE__}/lib/core/image_science"
-end
-
 require "#{File.dirname __FILE__}/lib/math"

 require "#{File.dirname __FILE__}/lib/tcpdf"
diff -urN redmine_orig/vendor/plugins/rfpdf/lib/tcpdf.rb redmine_works/vendor/plugins/rfpdf/lib/tcpdf.rb
--- redmine_orig/vendor/plugins/rfpdf/lib/tcpdf.rb      2009-10-27 15:17:35.000000000 +0600
+++ redmine_works/vendor/plugins/rfpdf/lib/tcpdf.rb     2009-10-27 15:24:07.000000000 +0600
@@ -3077,7 +3077,7 @@
                        out('/Filter /FlateDecode');
                end
                out('>>');
-    open(ctgfile) do |f|
+    open(ctgfile, 'rb') do |f|
       putstream(f.read())
     end
                out('endobj');

Поиск в ldap по отсутсвующему атрибуту

Примерно половина пользовательских учеток в дереве унаследованна со старой версии Netware. У этих учеток нет аттрибута uid, что привело к странным глюкам в Openfire, т.е. после настройки ldap сервер стал падать на чтении списка пользователей.

Фильтр: (&(ObjectClass=Person)(!(uid=*)))

Выберет все пользовательские аккаунты (ObjectClass=Person), у которых нет атрибута uid

пятница, 16 октября 2009 г.

Перенос аккаунтов samba на другой сервер

1. Экспорт юзерских учеток в текстовый файл
dbedit -e smbpasswd:/tmp/test -i tdbsam

2. Импорт аккаунтов из текстого файла в базу
pdbedit -i smbpasswd:/tmp/test -e tdbsam

четверг, 1 октября 2009 г.

Монтирование образа дискеты в Ынтерпрайзной ОС

Given an disk image in /export/temp/software.img, a loopback file device (/dev/lofi/1) is created with the following command:

lofiadm -a /export/temp/software.img /dev/lofi/1

The lofi device creates a block device version of a file. This block device can be mounted to /mnt with the following command:

mount -F pcfs -o ro /dev/lofi/1 /mnt

пятница, 10 июля 2009 г.

Навалищенское ущелье - Чертовы врата

7 августа 2007 года, около семи вечера








вторник, 7 июля 2009 г.

bluetooth for linux

Взял на угад porto ba-520, в интернетах про него ничего не пишут кроме спеки на bluetooth и 3-х граммового веса. В результате эксперимента:
в debian stable завелся сам собой: сам определился - драйвер в дистрибутивном ядре был, гном сам проникся новыми возможностями и нарисовал икону в трее, для руления процессом, рук прикладывать не пришлось.

С хр чуть посложнее, несколько раз вставил/выдернул, прежде чем определился.

воскресенье, 28 июня 2009 г.

Воздействие пребывания в открытом космосе на организм человека

Как утверждают учёные НАСА, вопреки распространённым представлениям, при попадании в открытый космос без защитного скафандра человек не замёрзнет, не взорвётся и мгновенно не потеряет сознание, его кровь не закипит. Вместо этого настанет быстрая смерть от недостатка кислорода. Кроме того, со слизистых оболочек организма (язык, глаза, лёгкие) начнёт быстро испаряться вода. Некоторые другие проблемы — декомпрессионная болезнь, солнечные ожоги незащищённых участков кожи и поражение подкожных тканей — начнут сказываться уже через 10 секунд. В какой-то момент человек потеряет сознание из-за нехватки кислорода. Смерть может наступить примерно через 1-2 минуты, хотя точно это не известно. Тем не менее, если не задерживать дыхание в лёгких (попытка задержки приведёт к баротравме), то 30-60 секунд пребывания в открытом космосе не вызовут каких-либо необратимых повреждений человеческого организма.

В НАСА описывают случай, когда человек случайно оказался в пространстве, близком к вакууму (давление ниже 1 Па) из-за утечки воздуха из скафандра. Человек оставался в сознании приблизительно 14 секунд — примерно такое время требуется для того, чтобы обеднённая кислородом кровь попала из лёгких в мозг. Внутри скафандра не возник полный вакуум, и рекомпрессия испытательной камеры началась приблизительно через 15 секунд. Сознание вернулось к человеку, когда давление поднялось до эквивалентного высоте примерно 4,6 км. Позже попавший в вакуум человек рассказывал, что он чувствовал и слышал, как из него выходит воздух, и его последнее осознанное воспоминание состояло в том, что он чувствовал, как вода на его языке закипает.

Журнал «Aviation Week and Space Technology» 13 февраля 1995 г. опубликовал письмо, в котором рассказывалось об инциденте, произошедшем 16 августа 1960 года во время подъёма стратостата с открытой гондолой на высоту 19,5 миль для совершения рекордного прыжка с парашютом. Правая рука пилота оказалась разгерметизирована, однако он решил продолжить подъём. Рука, как и можно было ожидать, испытывала крайне болезненные ощущения, и ею нельзя было пользоваться. Однако при возвращении пилота в более плотные слои атмосферы состояние руки вернулось в норму.