LINUX.ORG.RU

Сообщения RomanU

 

Java: подскажите имя класса или библиотеку

Форум — Development

Хочу разместить на форме несколько панелей, разделить их каким-нибудь 
сплиттером, чтобы потом менять размер каждой части.
Однако, JSplitPane позволяет поместить только 2 панели.
Есть ли что-то, что позволит мне разместить большее число панелей
и разделить их?
Вот как, например, в NetBeans в Compact Windows Mode.

Хотелось бы, конечно, исходники с нормальной лицензией. 
Ну или не исходники, но что б работало, как описал выше:)
RomanU
()

запуск программ и jar-файлов в Java. Подскажите

Форум — Development

Написал простенькую программу на Java (только недавно стал изучать), она коннектится к ораклу и делает запрос. Когда я запускаю её - всё нормально.
Но вот я хочу сделать jar, создаю, добавляю туда мой main.class,
получается внутри каталог classTest и в нём мой файл main.class,
в манифесте пишу Main-Class: classTest/main и вот ....
мой архив не работает :( результат ниже.
Подскажите, чего ему может не хватать, если без архива программа
работает, а в архиве - нет! Импортится только оракловый архив,
ему я и прописываю classpath. Непонятно, почему мой архив не может найти драйвер оракла, хотя программа находит.


[roman@romanu \ Wed Feb  2 \ 09:22:42 -> Java]$ java -classpath /Oracle/OraHome/jdbc/lib/classes111.zip:$PWD classTest/main
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
[roman@romanu \ Wed Feb  2 \ 09:22:52 -> Java]$ java -classpath /Oracle/OraHome/jdbc/lib/classes111.zip:$PWD -jar classTest/testJar.jar
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at classTest.main.main(main.java:28)
Exception in thread "main" java.sql.SQLException: No suitable driver
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at classTest.main.main(main.java:35)
[roman@romanu \ Wed Feb  2 \ 09:23:08 -> Java]$
RomanU
()

Создание SSL сертификатов. Помогите, плз...

Форум — Admin

Пытаюсь создать CA сертификат и им подписать другой сертификат,
чтобы использовать его для LDAP сервера.

# Здесь создаю CA
openssl genrsa -des3 -out very_security/ca.key 2048
openssl req -new -x509 -days 1825 -key very_security/ca.key -out certs/ca.cert

# Создаю сертификат для LDAP и пытаюсь его подписать ca.cert'ом
openssl genrsa -out private/slapd.key 1024
openssl req -new -key private/slapd.key -out tmp/slapd.csr
openssl x509 -req -days 1095 -in tmp/slapd.csr -out private/slapd.cert -CA certs/ca.cert -CAkey very_security/ca.key -CAcreateserial

# Делаю PEM
mv private/slapd.key  private/slapd.pem
cat private/slapd.cert >> private/slapd.pem

Ввожу пароль, всё создаётся. Пытаюсь проверить сертификат:
[root@ldap_pdc openssl]# openssl verify -CAfile certs/ca.cert private/slapd.pem
private/slapd.pem: /C=ru/ST=Russia/L=G/O=ymg/OU=ldap/CN=ldap.ymgeo.ru
error 18 at 0 depth lookup:self signed certificate
/C=ru/ST=Russia/L=G/O=ymg/OU=ldap/CN=ldap.ymgeo.ru
error 7 at 0 depth lookup:certificate signature failure

Как правильно создать сертификат и подписать его, чтобы у меня
не возникали эти ошибки??

Если я делаю так:
openssl req -new -x509 -days 365 -nodes -out private/slapd.pem -keyout private/slapd.pem

то получаю:
[root@ldap_pdc private]# openssl verify slapd.pem
slapd.pem: /C=RU/ST=Russia/L=Gelendzhik/O=ymgeo/OU=LDAP/CN=LDAP.ymgeo.ru/Email=admin@ymgeo.
ru
error 18 at 0 depth lookup:self signed certificate
OK

То есть ОК всё же показывает. Объясните, плиз. Уже несколько доков
прочитал, но всё равно до конца не понимаю.
RomanU
()

Samba+LDAP+Migrate from NT4, проблемы создания Posix и sambaSAMaccount у юзеров и машин

Форум — Admin

В конфиге самбы для настройки LDAP я пишу:

ldap delete dn = Yes
add user script = /usr/local/sbin/smbldap-useradd -m "%u"
add machine script = /usr/local/sbin/smbldap-useradd -w "%u"
add group script = /usr/local/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/local/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/local/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/local/sbin/smbldap-usermod -g "%g" "%u"

При этом команда
add user script = /usr/local/sbin/smbldap-useradd -m "%u"
создаёт Posix аккаунт у юзера.

Для создания изначально sambaSAMaccount используют это:
add user script = /usr/local/sbin/smbldap-useradd -a -m "%u"

Что я имею:
Самба не может поменять атрибуты у юзера или машины, т.е.
превратить из Posix аккаунта аккаунт самбы.
Если добавлять машину в домен, то самба почему-то сама не прописывает
свои атрибуты к аккаунту машины, и он так и остаётся Posix.

При миграции юзеров из NT4 домена в домен Samba имею такие проблемы:
если в smb.conf создавать Posix аккаунты (тем способом, как я писал выше),
то самба не может изменить атрибуты юзеров и машин и добавить свои
атрибуты класса sambaSAMaccount.
Если создавать sambaSAMaccount, то самба говорит, что аккаунт юзера
уже имеет атрибуты sambaSAMaccount. То есть она анализирует хорошо,
но чтобы самой добавлять класс sambaSAMaccount - этого ещё я не добился.

Вопросы:
1. Какие настройки в smb.conf должны быть, чтобы корректно изменялся
   аккаунт юзера из Posix в Samba-аккаунт?
2. Нужно ли иметь Posix аккаунты всех юзеров на локальной машине (сервере)
   при использовании LDAP или можно обойтись только аккаунтами
   в базе LDAP ?
3. Как избежать двойного повторения действия для успешного добавления
   машины в домен и пользователя? Самба выдаёт успешное завершение
   только со второй попытки, и это, естесственно, напрягает
3. Как правильно мигрировать с NT4 домена в домен Samba, чтобы
   атрибуты аккаунтов изменялись правильно (без ошибок) ?

P.S.  HOWTO уже читал-перечитался :( Всё делаю как там - не работает.
Лог миграции приведу ниже.
RomanU
()

Samba+LDAP+несколько доменов на одной машине. Реально?

Форум — Admin

Подскажиите,реален ли сабж ...

Думаю сделать так:
на машине стоит OpenLDAP, nss_ldap, pam_ldap.
Думаю поставить несколько штук самб (т.е. несколько PDC будет).
Каждая самба будет свой домен рулить. На 1 сетевой интерфейс
навешать несколько IP, по одному для каждой самбы.
Т.е. задача сэкономить железо.
Мне кажется, что с nss_ldap всё будет ок, так как может искать
в поддиректориях пароли, группы, etc.
Вот с самба буду пробовать. Но всё же, хочу спросить, есть ли
какие-нибудь ограничения, которые точно непозволят мне такое сделать
или всё возможно? :)
RomanU
()

как подсчитать трафик через NAT ??

Форум — Admin

Люди, подскажите плз. К примеру, есть правила:
Внешние адреса на роутере(это пример):
1) 213.128.1.1
2) 213.128.1.2
Внутренний сервер имеет адрес 10.2.1.1 . Надо сделать нат на него
и подсчитать трафик входящий и исходящий с каждого внешнего адреса.

iptables -t nat -N ACCT_IN_213.128.1.1
iptables -t nat -N ACCT_OUT_213.128.1.1
iptables -t nat -N ACCT_IN_213.128.1.2
iptables -t nat -N ACCT_OUT_213.128.1.2

iptables -t nat -F ACCT_IN_213.128.1.1
iptables -t nat -F ACCT_OUT_213.128.1.1
iptables -t nat -F ACCT_IN_213.128.1.2
iptables -t nat -F ACCT_OUT_213.128.1.2

iptables -t nat -A PREROUTING -d 213.128.1.1 -j ACCT_IN_213.128.1.1
iptables -t nat -A ACCT_IN_213.128.1.1 -j DNAT --to 10.2.1.1
iptables -t nat -A POSTROUTING -s 10.2.1.1 -j ACCT_OUT_213.128.1.1
iptables -t nat -A ACCT_OUT_213.128.1.1 -j SNAT --to 213.128.1.1

iptables -t nat -A PREROUTING -d 213.128.1.2 -j ACCT_IN_213.128.1.2
iptables -t nat -A ACCT_IN_213.128.1.2 -j DNAT --to 10.2.1.1
iptables -t nat -A POSTROUTING -s 10.2.1.1 -j ACCT_OUT_213.128.1.2
iptables -t nat -A ACCT_OUT_213.128.1.2 -j SNAT --to 213.128.1.2

Что я имею в результате: считаются не все пакеты. Я так думаю, что
только первые пакеты. Я прав? Как тогда подсчитать остальные?
Ведь в FORWARD уже будет замененный получатель, там уже не узнать,
с какого адреса конкретно прошёл пакет. А если только первые пакеты
проходят через nat-таблицу, что делать?
Как правильно подсчитать трафик (т.е. что добавить в эти правила,
удалить что-то или изменить их), если несколько внешних адресов
натятся на один внутренний?
RomanU
()

учёт трафика в iptables. Куда добавлять цепочки?

Форум — Development

Есть целая куча цепочек iptables:

iptables -t nat .....
     ....
iptables -t filter ...
 ...........
etc.

Допустим, я хочу добавить цепочку для подсчёта трафика:

iptables -N traf
iptables -A INPUT -j traf
Ну и так далее. Но вопрос не об этом:)

Куда правильно будет вставить эти строки - до основных правил или
после? или вовсе неважно?
RomanU
()

помогите с QDockWindow

Форум — Development

Добрый день! Устал тут мучаться с QDockWindow, потому что не хочет
на экране показывать так, как мне надо, устал уже сегодня экспериментировать,
поэтому прошу помощи. Надо расположить 2 QDockWindow следующим образом:

---------------------------
     |                    |
     |   Область с        |
     |   компонентами     |
     |                    |
     |                    |
  1  |                    |
     |                    |
     |                    |
     |====================|
     |        2           |
     |                    |
--------------------------

Это как например в QT Linguist. А у меня, как бы я ни мучался,
2-я DockWindow занимает __ВСЮ__ нижнюю область, то есть так:
---------------------------
     |                    |
     |   Область с        |
     |   компонентами     |
     |                    |
     |                    |
  1  |                    |
     |                    |
     |                    |
==========================|
              2           |
                          |
--------------------------

Подскажите, как правильно это сделать, устал уже мучаться :(
Смотрел исходники лингвиста, но я пока не очень дружу с layouts,
чтобы их так круто расположить. Пробовал по-всякому. Но никак :(
RomanU
()

qt-3.3.2-X11, патч для QListViewItem

Форум — Development

Дописал аналог CTreeView::SetItemData() и GetItemData().
Это чтобы прикрепить к item указатель на данные. Может быть,
я не увидел это сразу, но такого вроде ещё не было там.

--- src/widgets/qlistview.h.orig	Mon May 31 11:00:31 2004
+++ src/widgets/qlistview.h	Tue Jun  1 08:58:23 2004
@@ -109,6 +109,9 @@
     virtual void setText( int, const QString &);
     virtual QString text( int ) const;
 
+    void * itemData();
+    void setItemData( void * pData );
+    
     virtual void setPixmap( int, const QPixmap & );
     virtual const QPixmap * pixmap( int ) const;
 
@@ -224,6 +227,7 @@
     int renameCol;
 
     void * columns;
+    void * m_pData;
 
     friend class QListView;
 };
--- src/widgets/qlistview.cpp.orig	Mon May 31 11:00:25 2004
+++ src/widgets/qlistview.cpp	Tue Jun  1 09:02:36 2004
@@ -723,6 +723,7 @@
     siblingItem = childItem = 0;
 
     columns = 0;
+    m_pData = 0;
 
     selected = 0;
 
@@ -1879,6 +1880,27 @@
     }
 }
 
+/*!
+    Returns the data pointer, associated with this item, or 0 if unset
+    
+    \sa setItemData()
+*/
+
+void * QListViewItem::itemData()
+{
+    return m_pData;
+}
+
+/*!
+    Associates the data pointer \a pData with this item.
+    
+    \sa itemData()
+*/
+
+void QListViewItem::setItemData( void * pData )
+{
+    m_pData = pData;
+}
 
 /*!
     Sets the pixmap in column \a column to \a pm, if \a pm is non-null
RomanU
()

QT recoding from koi8-r to cp1251

Форум — Development

День добрый!
Пытаюсь перекодировать содержимое ячейки в QTable из кои8 в ср1251.
Я разными способами пытался. И через QTextCodec (сначала в юникод, а затем оттуда обратно, другого способа не нашёл), а потом через iconv.
И тем, и другим способом после обратного занесения значения в ячейку
вижу только ????????????   ?????  ?????????   :(
Как быть?
Через iconv просто беру DataSourceTable->text (i, j), подаю её на вход
iconv с соответствующими параметрами. А потом обратно DataSourceTable->setText ( i, j )
Но выводит, как я уже и говорил, вопросы. А буквы русские до перекодировки отображает нормально в ячейке.
Какие ещё дополнительно преобразования надо сделать со строкой, чтобы
получить нормальный результат??
RomanU
()

Использование enum в switch

Форум — Development

Есть такая конструкция.

В заголовке:

typedef enum TWPages
             {
                 TWP_HEADER = 0,
                 TWP_LOAD_SEQ,
                 TWP_TPL_SRC,
                 TWP_DATA_SRC,
                 TWP_LOAD_SRC,
                 TWP_SQL_QUERY,
                 TWP_LOGGING
             } TabWidgetPage;
								
В программе:

94     switch ( InfoTabWidget->currentPage () )
95     {
96         case TWP_HEADER:
97         case TWP_LOAD_SEQ:
98         case TWP_TPL_SRC:
99                             LoadTemplateFile ();
100                             break;
101         case TWP_DATA_SRC:
102                             LoadDataFile ();
103                             break;
104         default:
105                             ;
106     }
						  
Ошибки компилера:

src/cmainform.cpp: In method `void CMainForm::fileOpen ()':
src/cmainform.cpp:94: switch quantity not an integer
src/cmainform.cpp:98: duplicate case value `TWP_TPL_SRC'
src/cmainform.cpp:97: previously used here
src/cmainform.cpp:101: duplicate case value `TWP_DATA_SRC'
src/cmainform.cpp:97: previously used here

Вопрос: как использовать правильно множества в switch?
RomanU
()

размер бинарника с использованием QT

Форум — Development

Вопрос такой: когда компилю прогу, получаю ~11 мегов. Не очень :(
Там конечно другие либы линкуются. Но у них не такой размер.
Я собрал QT статиком, думая, что это поможет. Но в результате получилось, что при ключе -static в компиляции моей проги линковщик захотел ещё статик либы Xext или ещё что-то (возможно Х11).
Как сделать, чтобы получить меньший размер проги? Видимо, статичная либа QT не помогла :( А разница debug и release проекта не больше мегабайта. strip помогает увеличить размер проги в 2 раза. Но 5 мегов всё равно многовато. Хелп.

RomanU
()

qt-3.3.1-X11, патчи!

Форум — Development

Попробуем сюда помещать патчи по сабжу.

Вот один из них:
Как-то я тут обнаружил пару проблем. Во-первых, при сохранении файла проекта в самом файле обнаруживаются лишние пустые строки. Во-вторых, если во флагах использовать такую конструкцию:
LIBS    += `cat $(ORACLE_HOME)/lib/sysliblist`
то знаки ` успешно удалялись :(
Вот это всё я пофиксил. Кому поможет - буду рад.
Кстати, проблема с QDialog::exec() и модальностью диалога решается соответствующей установкой параметра parent.

--- qt-3.3.1/tools/designer/designer/project.cpp	Mon Jan 19 20:27:25 2004
+++ qt-3.3.1_patched/tools/designer/designer/project.cpp	Wed Mar 10 10:59:00 2004
@@ -374,7 +374,7 @@
 		}
 		if ( ( c.isLetter() || c.isDigit() || c == '.' || c == '/' || c == '_' || c == '\\' || c == '\"' || c == '\'' || c == '=' ||
-		       c == '$' || c == '-' || c == '(' || c == ')' || c == ':'  || c == '+' || c == ',' || c == '~' ) &&
+		       c == '$' || c == '-' || c == '(' || c == ')' || c == ':'  || c == '+' || c == ',' || c == '~' || c == '`' ) &&
        	     c != ' ' && c != '\t' && c != '\n' ) {
 		    if ( !inName )
 			currName = QString::null;
@@ -561,6 +561,9 @@
 	int end = contents.find( '\n', i );
 	if ( end == -1 )
 	    end = contents.length() - 1;
+	else
+	    while ( contents[end+1] == '\n' )
+		end++;	//	Remove extra symbols '\n'
 	contents.remove( start, end - start + 1 );
     }
 }
@@ -580,6 +583,8 @@
 	    lastWasBackspash = ( contents[ i ] == '\\' ||
 				 lastWasBackspash && ( contents[ i ] == ' ' || contents[ i ] == '\t' ) );
 	}
+        while ( contents[i+1] == '\n' )
+            i++;  //      Remove extra symbols '\n'
 	contents.remove( start, i - start + 1 );
     }
 }
RomanU
()

perl+bash

Форум — Development

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

#!/usr/bin/perl -w
# test.pl
$idx = 0;
$idx++;
print "$idx\n";

Всё работает, выводит "1".
Есть скрипт баш:

/usr/bin/perl -w << END_OF_PERL
$idx = 0;
$idx++;
print "$idx\n";
END_OF_PERL

Выдаёт ошибку:
syntax error at - line 1, near "="
Execution of - aborted due to compilation errors.

Подскажите, что я не так делаю?? Я ещё пробовал написать так:
/usr/bin/perl -w -- << END_OF_PERL
но ничего не изменилось. Заранее благодарю.

RomanU
()

yacc: token

Форум — Development

Вопрос такой:
есть файл ххх.у . В нём строчки:

%token TOK_1 TOK_2 TOK3
TOK_4 TOK5
TOK_6
...........
и т.д.

1. Имеет ли значение, что токены 4, 5, 6 расположены на другой строке?
2. Различаются ли как-нибудь по приоритету токены 4, 5 от 1, 2, 3
а также 6 от 4, 5 или нет?
3. Допустим, я удаляю токены 1, 2, 4. Строки выглядят так:
TOK_3
TOK_5
TOK_6
Удаляю соответственно правила, связанные с токенами 1, 2, 4.
Это не проходит - выдаёт ошибку. Если их поместить в 1 строчку -
то ошибки нет. Но я не знаю, правильно ли так, поскольку в первоначальном варианте они были на разных строках. Помогите, пожалуйста!

RomanU
()

RSS подписка на новые темы