LINUX.ORG.RU

Сообщения abr_linux

 

bash первый символ переменной в UTF 8

Подскажите, как достать первый символ переменной, заданной в кодировке UTF-8? Плюс, есть необходимость, замены первого символа в данной строке.
Читал здесь: bash первый символ переменной, ни один совет не помогает. Суть в чём: авторизация PAM. Прописал в common-auth автозагрузку моего скрипта. Если в нём просто указать echo $PAM_USER >> /home/user/log, то в етом файле имя пользователя отображается нормально. Но если попробовать, к примеру, echo `echo «$PAM_USER» | sed 's/^\(.\).*/\1/'` >> /home/user/log, то в логе отображается первый байт UTF-символа. Получается, метод не определяет кодировку, а просто выбирает первый байт входящей строки. Как побороть?

abr_linux
()

Автозагрузка после входа пользователя

У нас на предприятии поднят AD, все клиенты на Убунту 10.04. Вход через логин/пароль AD на клиентах организовал. Однако, как вы понимаете, открывается свежий чистенький ubuntu-style рабочий стол. Мне же необходимо его стилизовать под корпоративные нормы. Кое-какие программы сразу открыть, поменять фон и пр. Кое-какие дефолтные настройки для any-user я поменял (кнопки окна не слева, а справа, фон по-умолчанию). Только вот не могу побороть автозагрузку. Дело в том, что в Убунте у каждого пользователя папка автозагрузки находится в ~/.config/autostart. Проблема только в том, что до входа папки ~ может не существовать. Следовательно, автозапуска тупо не будет.
В данные момент у меня скрипт через крон тупо синхронизирует базу AD и создаёт папки всех пользователей с прописанным автозапуском. но ето не дело. Как решить проблему? rc.local - ето оно? Если нет, то какие есть варианты? Носом крутить не буду - главное, чтобы работало.

abr_linux
()

Вопрос о /dev/null

Добрый день! Интересует, можно ли создать файл, который редактировался бы как обычный текстовый (из gedit, например), но при сохранении вся инфа из него уходила бы в /dev/null. У меня есть движок на php, который не создав один файл, не работает. А если и создаёт, то пишет там не очень хорошую информацию, после чего движок тоже не работает. Надо, чтобы файл был открыт для записи и чтения, но всегда оставался пустым, чего бы с ним не делали.

abr_linux
()

Как блокировать tcp пакеты с определённым содержанием?

САБЖ.

Пакеты уходят в глобальную сеть, приходят из неё же. Необходимо, чтобы пакеты с некоторым содержанием не попадали на выход и не принимались. Причём, проверятся должно начало содержимого пакета (первый байт), середина (например 5й) и размер содержимого в байтах (например 10 байт).
Каким образом можно блокировать пакет по таким параметрам?

abr_linux
()

Мониторинг сети со шлюза

Добрый день! Понимаю, что тема, может быть изъезженная. Но в интернете выбор большой, хотелось бы узнать советы тех, кто сталкивался с проблемой.
В общем, в конторе одной постоянно лагает сетка - есть-есть интернет и нету его на минут 10, потом опять появляется.
Решил я поставить шлюз между сетью и модемом, чтобы пронаблюдать за клиентами - чья сетевуха жрёт трафик или посылает кучу мусора (может сломаная какая). На шлюзе хочу поставить мерялку трафика. Вот о ней у меня и вопрос. Какая прога может мне показывать текущее состояние сети, объём пожираемого трафика в секунду? Неплохо было б в разрезе протоколов. И замечательно было б если оно окажется графическим. Хотя, если есть консольные версии, которые выводят данных, не требующих дополнительного перевода на человеческий язык, то тоже неплохо.

abr_linux
()

Вывод звука через phonon

Делаю озвучку для приложения. Необходимо, чтобы просто-напросто воспроизводились секундные звуковые сообщения. Причём, необходима многопоточность: чтобы два разных звука могли играть в один момент времени, но не один и тот же звук.

Для етого создаю два класса: Audio : QObject и TMediaObject : Phonon::MediaObject. Далее части кода:

TMediaObject::TMediaObject(SoundType st)
{
soundType = st;
connect(this, SIGNAL(finished()), this, SLOT(finish()));
}

void TMediaObject::finish()
{
emit finishedPlaying(soundType);
deleteLater();
}

Audio::~Audio()
{
delete output;
}

void Audio::play(SoundType soundType) //soundType - собственно играемый звук
{
if (!sounds.contains(soundType)) //если данный звук щё не играется
{
sounds.insert(soundType);
media = new TMediaObject(soundType);
connect(media, SIGNAL(finishedPlaying(SoundType)), this, SLOT(finish(SoundType)));
QString mediaFile = soundDescription(soundType); //преобразование типа звука к имени звукового файла
      
if (mediaFile == "")
qDebug() << «Error: Media file not found»;
else
{
Phonon::createPath(media, output);
media->setCurrentSource(Phonon::MediaSource(theRM.getSoundsPath() + «/» + mediaFile + ".ogg"));
media->play();
}
}
}

void Audio::finish(SoundType soundType)
{
sounds.remove(soundType);
}

Проигрывание звука начинается в Audio::play, в которую передаётся тип звука.
Проблемы такие:
- одновременно два звука игратся не хотят. Если один уже проигрывается, то для второго выдаётся ошибка Phonon::createPath: Cannot connect TMediaObject ( no objectName ) to Phonon::AudioOutput ( no objectName )
- утечки памяти. Я вроде подчищаю все созданные переменные, но память приложения после добавления звука стала кушатся сильнее, причём вскоре звук пропадает вобще. Причём по-разному, либо после 10 вызовов play, либо аж после 100, но пропадает стабильно.

И такие щё вопросы: каким образом можно щё программировать звук под Qt? Может стоит забить на Phonon?

abr_linux
()

Прога для анализа web-страницы на си

Нужно на си написать небольшую программку, которая бы сканировала в нете веб-страницу и на основе полученных результатов что-то отправляла в нет посредством POST или GET методов. Подскажите, что почитать на ету тему. Или что поискать в гугле, атто даже запрос составить не могу :-[

abr_linux
()

QTextCursor + QTextCharFormat + QTextBlock

Задача такая: надо в QTextBrowser поместить несколько ссылок, впоследствии которые потом необходимо преврать в обычный текст (как вариант, просто обнулить href)

Вот один из вариантов кода:

   QTextBlockFormat tbf = cursor.blockFormat();

   QTextCharFormat tf;

   tf.setAnchor(true);

   tf.setAnchorHref(«sdfgh»);

   /*Создаём текстовые блоки с текстом, который является гиперссылкой*/

   cursor.insertBlock();

   cursor.blockCharFormat().setAnchor(true);

   cursor.blockCharFormat().setAnchorHref(«sghj»);

   cursor.insertText(«Comm1»);

   /*И щё один*/

   cursor.insertBlock();

   cursor.blockCharFormat().setAnchor(true);

   cursor.blockCharFormat().setAnchorHref(«sghj»);

   cursor.insertText(«Comm2»);

   /*Дальше мы ссылки в данных блоках пытаемся обнулить*/

   tf.setAnchor(false);

   tf.setAnchorHref("");

   QTextBlock tb = cursor.block();

   cursor.setPosition(tb.position());

   if (cursor.blockCharFormat().isAnchor()) //Вот тут условие срабатывает, и срабатывает верно

      cursor.mergeBlockCharFormat(tf);

   tb = tb.previous();

   cursor.setPosition(tb.position());

   if (cursor.blockCharFormat().isAnchor()) //Тут тоже

      cursor.mergeBlockCharFormat(tf);

Вариантов перепробовал много. Проблема в том, что в половине из них в первой части кода ссылки на текст просто не устанавливаются. В приведённом выше варианте они вроде становятся, однако формат самих етих ссылок отличается от тех, которые были бы, если б я сделал cursor.insertHtml(«sghj»). то есть, они не синего цвета и не подчёркнуты.

И, несмотря на то, что ссылки в первой части кода я даже каким-то образом устанавливаю, во второй части кода ссылки уже не могу никак снять. В какую сторону мануалить?

Важно, что ссылки не являются ссылками http:// - у меня они выполняют внутренние программные функции. Обрабатывать их пробовал - а етом проблемы нету.

abr_linux
()

Обновление gentoo

В общем, проблемы две. Первая заключается в том, что live CD 2010 не хочет загружатся. При загрузке на определённом моменте начинает выдавать ошибку что-то типа «cp: write error: not enough free space on device» Поетому, загрузить 2010 не удаётся.

До загрузки данного живого диска я ради практики поставил дистрибутив 5 года (2005.1). Собственно, скорее всего, был бы интернет, не было б проблем. Да вот беда - у меня инет раздаёт Yota (Wimax), для работы модема необходима библиотека libusb-1.0. Библиотека из исходников ставится не хочет, по ошибкам очевидно, что версия компилятора старее, чем компилируемая библиотека. Если исходники подпилить (кое-что убрать из configure.ac и Makefile.am), то библиотека и драйвер на модем компилируются, но инет не работает всё равно. В общем, замкнутый круг: чтобы был инет надо обновить дистрибутив, чтобы обновить дистрибутив нужен инет.

Вижу спасение только в том, чтобы обновить систему без инета. Но опыта маловато. Подскажите, каким образом обновить portage? И если кто знает, подскажите, что делать с «живым» 2010? отчего такая ошибка может возникнуть?

abr_linux
()

Gentoo install

По мануалу получилось достаточно легко установить Gentoo с диска от 2005 года. Потом пришлось чуток помучатся с драйвером для флешки, но тоже вроде разобрался. После етого установил xorg-x11 и после перезагрузки у меня перестали автоматически монтироватся другие разделы, на которых находятся /usr и /home. При загрузке выдаётся ошибка «Some local filesystems failed to mount». Подскажите, в чём может быть проблема? И какую дополнительную информацию предоставить, чтобы выяснить, в чём ошибка?

abr_linux
()

Линукс-драйвера и приложения, связанные с ними

Добрый день! Необходимо написать приложение, обслуживающее устройство. Драйвер для устройства уже написан, но не мной. Передо мной стоит задача написать программу-апплет, который бы считывал данные из етого устройства посредством драйвера. Пожалуйста, направте меня на мануалы по взаимодействию приложения и драйвера. Буду рад любой подсказке. Лично сам с написанием дров сталкивался на уровне примеров, но в коде уже существующего разобратся смогу, он не особо сложный. Мне бы только знать, как вывести данные в программу.

abr_linux
()

GTK. Компиляция картинок внутрь программ

Подскажите, пожалуйста, каким образом можно загружать картинку в GtkImage не из внешнего файла, а из ресурсов программы. Имеется ввиду, что при выполнении gtk_image_new_from_file () скомпилированная программа также остаётся зависимой от внешнего файла-рисунка. Как сделать так, чтобы после компиляции внешние файлы не требовались?

abr_linux
()

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