LINUX.ORG.RU

Сообщения saper

 

Есть ли в природе пример кода согласно man на qsort

В man на qsort или bsearch сказано, что в качестве функции сравнения может выступать strcmp. Покажите такой пример, т.е. без промежуточной функции compar ...

saper
()

Сортировка очень болших бинарных файлов

Подскажите библиотеку для C/C++ или внешнюю утилиту для сортировки очень больших файлов (от 500Мб до 2Гб). Содержимое файлов - цифры в формате C-шных unsigned int и float.

Хочется избавиться от преобразования float->char[16] и использования обычного sort.

saper
()

strftime и локаль

Маленькая программка:

#include <time.h>

void main()
{
time_t t;
struct tm *local;
char ftime[256];

t = time(NULL);
local = localtime(&t);
strftime(ftime, 127, "%d %b %Y %H:%M", local);
printf("\n%s\n", ftime);
}

Возвращает:
21 May 2006 18:43

Почему то не русской локали, хотя date из bash выдает:
Вск Май 21 18:43:40 MSD 2006

locale из bash выдает:
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"
LC_ALL=ru_RU.KOI8-R

И вот еще:
$ ls -d1 /usr/lib/locale/ru*
/usr/lib/locale/ru
/usr/lib/locale/ru_RU
/usr/lib/locale/ru_RU.koi8r
/usr/lib/locale/ru_RU.koi8-r
/usr/lib/locale/ru_RU.KOI8R
/usr/lib/locale/ru_RU.KOI8-R

$ ls -d1 /usr/share/locale/ru*
/usr/share/locale/ru
/usr/share/locale/ru_RU
/usr/share/locale/ru_RU.koi8r
/usr/share/locale/ru_RU.koi8-r
/usr/share/locale/ru_RU.KOI8R
/usr/share/locale/ru_RU.KOI8-R

На UTF8 перейти не смогу, да и не поможет:
$ export LC_ALL=ru_RU.UTF8
$ export LANG=ru_RU.UTF8
$ /x
21 May 2006 18:43

:-(

saper
()

*.mp4

Есть у меня 2 файла с расширением mp4, ни mplayer, ни xine не играют их (версии - последние, стабильные). Сейчас качаю mpeg4ip и gpac.

saper
()

Как помочь Open Source проектам

Есть проблема, которая (по моим данным) до сих пор не решена: если какая то средняя или маленькая компания в РФ захочет перевести некоторую сумму разработчикам того же NetFilter, Squid или еще какого то проекта, то она столкнется с переводом денег за границу, что организовать для небольших компаний очень сложно.

Хотя 200-300$ в год для 2-3 Open Source проектов некоторые могут себе позволить и более того хотели бы перевести эти суммы. Некоторые безвозмездно, некоторые возмездно (увидеть свою компанию в Donations).

Есть ли в РФ такой фонд и если нет, то может кто знает более простой способ отблагодарить материально разработчиков? (Патчи, сообщения об ошибках - контакт с авторами проектов налажен, эта ступенька уже есть, хочется большего).

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

saper
()

BASH: разность разделить на разность

Можно ли в bash одной строкой разделить разность на разность, вроде:
let X=(a-b)/(c-d)

saper
()

Плата аппаратного сжатия видео в MPEG4 для Linux

Есть такое? ;-)

saper
()

Multicast в Internet для видеопотоков

Собственно тема в заголовке и несколько вопросов по ней:

1. Какой видео/аудио кодек использовать для клиентов с коммутируемым доступом и скоростью подключения около 33600?
2. Смогут ли эти клиенты (подключены через обычных провайдеров крупных городов России) подписываться на этот multicast через тот же IGMP? (если опустить проблемы с блокированием такого трафика межсетевыми экранами на клиенте и его провайдера)
3. Если есть - дайте ссылку на multicast видеопоток для 33600.

Пока присматриваемся к VideoLAN, но он вроде для скоростей от 512Kbit (MPEG4), есть еще интересная Apple-овская разработка.

Клиенты - Windows 98SE, P700, 128Mb, кодеки можно доустановить.

saper
()

Предложение по развитию сервера www.linux.org.ru

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

В части модерирования:
1. Показать кнопку "Удалить" пользователям у которых минимум 1 звезда (при более сложной доработке заменить "Удалить" на "Пожаловаться", например). Допуск просто зарегистрированных пользователей может привести к злоупотреблению перерегистрацией новых ников.
/Затраты: немного поправить алгоритм вывода этой кнопки/.
2. При нажатии на эту кнопку пользователем не модератором - добавлять очки к указанному сообщению.
/Затраты: возможно нужно завести еще одну колонку в таблице БД с сообщениями, в которой будет содержаться число очков, в SQL поставить для колонки "default 0"/.
3. Количество добавляемых очков должно зависеть от количества звезд пользователей, например(!): 1 зведа - добавляется 1, 2 звезды - 5, 3 звезды - 10, 4 звезды - 15.
/Затраты: функция расчета добавляемых очков на SQL, можно сделать ее математической, например: кол-во очков = 2 в степени кол-ва звезд/.
4. Для модераторов через их профиль или на отдельной странице выводить таблицу сообщений с числом очков более 0 (сами очки должны указываться), сортировка на странице должна происходить по убыванию значения очки.
/Затраты: добавление странички и чистый SQL, повышается нагрузка на SQL при формировании этой странички, для снижения этого, можно делать расчет этой страницы раз в час/.
5. При набирании сообщением определенного количества очков оно автоматически удаляется с указанием причины.
/Затраты: см. п.4 про расчет раз в час, добавление нового типа причины "Удалено по просьбам трудящихся" ;-) либо выбирается самая указываемая причина при нажатии удалить пользователем/.
6. Непродуманный момент: как учитывать начислил уже очки пользователь этому сообщению или нет.
/Затраты: можно обойти введением кол-ва очков на пользователя в единицу времени, в день или месяц/.

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

Видимо надежда по части реализации только на svyatogor, green куда то пропал... если идея конечно понравится и будет одобрена высшим руководством.

С уважением ...
Искренне ваш ...
:-)

saper
()

SIM-ICQ: проект умер?

Посмотрел sim-icq.sf.net, sim.shutoff.spb.ru, http://www.sim-icq.spb.ru/board/index.php и пришел к таким вот неутешительным выводам:
- Похоже главный разработчик Владимир Шутов покинул проект.
- Автор пропал 25 сентября 2004 года (см. дату последнего snapshot http://sim.shutoff.spb.ru/files/).
- Активность в CVS на SourceForge.Net очень слабая, в основном что то исправляет wrar, остальные - делают локализацию на разные языки.
- Где брать последний обновляемый snapshot?

Может кто то в курсе и может прокомментировать, что случилось с автором и кто сейчас продолжает проект для всех дистрибутивов, а не только для ALTLinux/ASPLinux (у них есть сборки 0.9.4, но они отличаются по датам и я не могу оценить вот так навскидку у кого из них более стабильная версия, скачивать и сравнивать - нет времени и смысла тоже).

Проблемы текущей версии SIM-ICQ 0.9.3-2 я не буду подробно описывать, думаю все их сами знают:
- работа с прокси-серверами;
- глючит контакт-лист, нельзя менять свои "детали" в icq/jabber ... (меняются но не всегда и не все);
- окошки самостоятельно меняют размер (например, при ошибке отправки);
- очень долго соединение с серверами;
- не всегда можно работать с двумя OSCAR серверами - AIM и ICQ.

Пишу не флейма ради!

Подскажите, где можно взять последний snapshot в tar.bz2/tar.gz?
Кто ведет проект, кто обновляет его?

saper
()

2Demetrio

Вполне понятно, что http://www.linux.org.ru/profile/saper/view-message.jsp?msgid=727658 удалили за дело. Флейм? Да! Но новость же не флеймообразующая.

Но почему в начале, да и сейчас, уже отмодерировав его, не попытались ввести режим отправки комментариев только для тех, у кого есть 1 звезда? Тогда и новость есть и флейма нет, и вы и мы рады :)

saper
()

Сильно тормозит GPRS/IRDA/PPP при переходе на 2.6

Два ядра, оба чистые с kernel.org, версии 2.4.27 и 2.6.8.

На 2.4.27 все быстро грузится (>1KB/sec до 3.5KB/sec), на 2.6.8 тормоза (~150B/sec).

Всё кроме ядра - одинковое, это одна и та же машина, модулями ничего не гружу. Выход в инет через GPRS/IRDA. Софт один и тот же в Linux (ну просто ядро выбираю при загрузке и всё!).

Ничего не помогает, google рыл уже. Появилось вроде с 2.6.7, точно раньше на 2.6 такого не было. Не знаю что делать уже.

Такое поведение на ноуте с FIR IRDA и на PC с SIR IRDA.

Не знаю, кто виноват - что то в IRDA наломали или в PPP. Но факт.

Понятно, что логи чистые, ничего нет, dmesg нормальный. Но 2.4 нормально, как Windows 2000 работает с сетью, а 2.6 тормозит. Меняются только ядра. Конфиги pppd у меня в норме, конфиги ядра простые, разве что ACPI включен, всякие там PREEMPT, REGPARMS, 4KSTACKS и пр. не пользовал при тестах, от них в общем ничего не меняется. Намучился много, патчил своими патчами потом, и некоторыми другими - не помогает. То что там наломали в 2.6 с SIR для Actisys на ноут не влияет - у него FIR nsc-ircc.c. Всё грузится в ядре, не модулями. Одинаковые в этом плане конфиги 2.6 и 2.4.

saper
()

2svyatogor: Предложение по улучшению сайта, связанное с удаление новости про Slackware 10.0

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

BaT в приватной беседе сообщил, что движок это не умеет, плохо, может svyatogor поможет?

Такими темпами многие новости люди не смогут просто увидеть.

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

P.S. Местами наблюдается легкое подобие высказываний и поведения модераторов крикунам про Slackware... капризно как то с вашей стороны так поступать, чувствуется что то личное или политическое в вопросе со Slackware (даже судя по приватной беседе с BaT-ом).

P.P.S. Возможные подпорки (с малой правкой кода, как я полагаю): для определенных новостей не показывать комментарии анонимных пользователей, перенести новость в состояние архив, если PHP генерированая новость хранится в базе, то подредактировать ее там, удалив кнопку добавить сообщение. Новость должна остаться...

saper
()

Кому необходимо: как сделать быстрый старт OpenOffice и немного KDE :)

Это перепечатка моего сообщения из комментария к новостям, с небольшими дополнениями. Рад буду услышать отзывы, кому это помогло или не помогло :-|

Итак, что нужно сделать, чтобы ваш OpenOffice стартовал быстро, а заодно и KDE, без всяких левых приложений типа oooqstart (которые к тому же не всегда работают).
Имеем:
CPU: AMD Athlon 850@892, RAM: 256Mb
Slackware 9.1+current, Linux 2.6.6
OpenOffice 1.1.1, установленный в /opt/openoffice

С приведенными ниже настройками OpenOffice старутет меньше чем за 2 секунды.

Создаем /opt/openoffice/ooqs.sh:
#!/bin/sh
cd /opt/openoffice
while true; do
/opt/openoffice/soffice -quickstart -plugin
sleep 5
done

Создаем /opt/openoffice/oostart.sh:
#!/bin/sh
if [ "`ps ax|grep ooqs.sh|grep -v grep`" == "" ]; then
/opt/openoffice/ooqs.sh &
fi
/opt/openoffice/soffice $@

Модифицируем /opt/kde/bin/startkde (не обязательно, но killall стоит добавить на выходе и X, не важно KDE у вас или нет):
#!/bin/sh
trap 'echo GOT SIGHUP' HUP

kdeinit_shutdown
dcopserver_shutdown

xsetroot -cursor_name left_ptr -solid black

LD_BIND_NOW=true kdeinit +kcminit +knotify
if test $? -ne 0; then
echo 'startkde: Could not start kdeinit. Check your installation.' 1>&2
xmessage -geometry 500x100 "Could not start kdeinit. Check your installation."
fi

test -n "$KDEWM" && KDEWM="--windowmanager $KDEWM"
kwrapper ksmserver $KDEWM
if test $? -eq 255; then
echo 'startkde: Could not start ksmserver. Check your installation.' 1>&2
xmessage -geometry 500x100 "Could not start ksmserver. Check your installation."
fi

killall ooqs.sh
kdeinit_shutdown
dcopserver_shutdown

Обратите внимание на строчку killall ooqs.sh :)

Минусы этого решения:
1. Такой скрипт startkde применим только если вы постоянно работаете в KDE одним и тем же пользователем и первый старт KDE вы делали обычным пользователем, принципиально для OpenOffice нет разницы будет использоваться этот модифицированный скрипт или нет.
2. Почему то закрытие последнего окна OpenOffice происходит медленнее, чем раньше (задержка в пару сек).

Для ускорения KDE можно попробовать сделать следующее (у меня работает, тут уже серьезной работы не было):
из /opt/kde/bin переместить в резерв:
kaccess kbuildsycoca kcminit kdesktop kdesktop_lock khotkeys
из /opt/kde/lib переместить в резерв:
libkdeinit_kbuildsycoca.la libkdeinit_kcminit.so
libkdeinit_khotkeys.la libkdeinit_kaccess.la
libkdeinit_kbuildsycoca.so libkdeinit_kdesktop.la
libkdeinit_khotkeys.so libkdeinit_kaccess.so
libkdeinit_kcminit.la libkdeinit_kdesktop.so
из /opt/kde/lib/kde3 переместить в резерв:
kaccess.la kcminit.la kdesktop.la khotkeys.la knotify.la
kaccess.so kcminit.so kdesktop.so khotkeys.so knotify.so

Внимание: перемещение *kdesktop* отключит рабочий стол (мне он не нужен), перемещение *khotkeys* отключит в первую очередь запуск команд по Alt-F2 (я думаю, что для запуска команд хватит konsole или rxvt или своего приложения на базе обычного hotkeys, который памяти потребляет меньше). Также см. выше скрипт startkde, очищенный от ненужных вещей.

Рекомендуется сделать символическую ссылку /usr/X11R6/lib/X11/xinit/xinitrc на /opt/kde/bin/startkde, исходный xinitrc.kde для современной системы мало полезного имеет, при желании смотрите используете вы Xresources или нет (я - нет, хватает ~/.Xdefaults).

При необходимости, шрифты от KDE прописать в каталог шрифтов /usr/X11R6/lib/fonts/misc (там пара unicode шрифтов fixed), поскольку очистка startkde для меня в первую очередь сказалась в этом.

P.S. Надеюсь кому то поможет.
P.P.S. Если вы редко разрабатываете программы и не используете большую часть времени свой компьютер как сервер остановите всякие acpid, crond, atd, sshd, а также отключите ldconfig в стартовых скриптах.
P.P.P.S. Не забудьте сделать резервную копию всех изменений, Удачи :)

saper
()

Давайте обсудим как сжимать mecnoder-ом такие вот ролики

Итак, есть фотокамера Pentax Optio S4i с возможностью записи видео в MJPEG 320x240@15fps (по времени ограничено емкостью карты Secure Digital). В общем уже неплохо.

Чтобы это работало на разных компьютерах (в windows такой mjpeg играет только QuickTime), я решил перегнать в MPEG4, и зафильтровать с целью улучшения качества. Исходный поток видео ~1200kbps.

Исходно проигрываю его так:
mplayer -pp 6 -vf hqdn3d imgXXXX.avi

Что замечено:
1. Бикубический фильтр scale увеличивает лучше, чем встроенный в matrox, значит, решил я, нужно смасштабировать им до 640x480, параметр четкости (sharp) поставил на максимум.
mplayer -pp 6 -vf scale 640:480:0:0:100,hqdn3d -sws 2 imgXXXX.avi

2. Для плавности можно увеличить framerate, через фильтр tfields.
mplayer -pp 6 -vf scale 640:480:0:0:100,tfields=4,hqdn3d -sws 2 imgXXXX.avi

Итого, играет получше, чем исходное MJPEG с -pp 6 и -vf hqdn3d

Теперь надо все сжать в MPEG4. И тут проблема: хотелось бы уменьшить размер файла, но:
1. scale требует большего bitrate, т.к. увеличивает сжимаемую площадь.
2. tfields требует большего bitrate, т.к. увеличивает framerate (fps).

Попытки сжать вот так:
mencoder $1 -pp 6 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1:vbitrate=600:vhq:v4mv:trell:autoaspect -ofps 30 -vf scale=640:480:0:0:100,tfields=4,hqdn3d -sws 2 -oac copy -o /movie.avi
rm movie.avi
mencoder $1 -pp 6 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2:vbitrate=600:vhq:v4mv:trell:autoaspect -ofps 30 -vf scale=640:480:0:0:100,tfields=4,hqdn3d -sws 2 -oac copy -o /movie.avi

Успеха не принесли, vbitrate=600 (в два раза меньше, чем исходное) не дает желаемого качества MPEG4, при проигрывании полученного MPEG4 AVI с pp 6 и hqdn3d и уже увеличенным до 640x480 изображением качество хуже, чем исходного MJPEG с pp 6 и hqdn4d и аппаратным масштабированием (Matrox).

У кого какие идеи?

P.S. Можно увеличить bitrate конечно, но выход ли это???

saper
()

Индикация на сервере через COM-port ...

Есть идея - на сервере с 8 свободными индикаторами (LED) сделать программу, которая из bash включала/выключала указанный (чтобы отражать процесс загрузки, отражать ошибки различных программ/устройств). Хочу спросить - можно ли сделать это на COM-порту, есть ли примеры/аналоги, писать буду на C.

saper
()

Отфильтровать IPX между двумя интерфейсами на Linux-IPX-router(ipxripd).

Subj. По MAC-ам нельзя, так как IPX протокол (вообще как протокол) netfilter не знает, патчи искал - не нашел даже экспериментальных для старых версий ядер. Очень нужно разрешить IPX трафик только для двух Novell серверов, находящихся за eth0, а весь остльной запретить (250 машин шарят по IPX/NetBIOS свои ресурсы на eth1, eth2, eth3). Для чего надо - чтобы вообще ограничить трафик и избавиться от обильного броадкаста (в основном IPX/Netbios/SMB:BROWSE - регистрация мастеров сеток и прочее). Пересадить с IPX/Netbios на IP/Netbios нельзя - пользователи зашиты в NDS Novella, и вообще нельзя для этой задачи.

saper
()

Linux FreeSWAN и FreeBSD KAME(racoon) и мои аргументы :)

Тут опять таки некоторый выбор намечается и опять таки между FreeBSD и Linux решением. Напишу, что уже заметил:
+ KAME пишут профессионалы из коммерческих фирм, им платят за это деньги;
- эти профессионалы работают по контракту над проектом в одном физическом месте (в Японии), это уже второй контракт на 2 года заключили до 2004 года, соответственно не понятно кто его будет развивать в случае чего.
- лицензия BSD позволяет этим профессионалам забыть про open-версию и развивать свою коммерческую.
+ KAME поддерживает X509v3 сертификаты и сервер IKE
+ FreeSWAN поддерживает X509v3 сертификаты в виде отдельного патча :( и сервер IKE
+ FreeSWAN разарбатывается под лицензией GPL
+ KAME многие фирмы используют в своих коммерческих VPN
+ на FreeSWAN легко нашел параметры скорости работы, на KAME - вообще не нашел, хотя и FAQs и HOWTOs на их сайте смотрел.
+ на FreeSWAN отличная документация (с небольшими оговорками :)

Ваше аргументированное мнение приветствуется.

Хотя в слабые каналы подумываю установить CIPE, а эти нужны для Windows XP клиентов с X509 сертификатами, чтобы из любой точки мира, кстати любой из этих 2-х VPN может аутентифицировать по сертификату? (то есть когда у клиента меняется IP-адрес от сессии к сессии - Ex: dialup из различных стран от разных провайдеров)?

saper
()

Что лучше FreeBSD ipfw или Linux IPTables? И мои аргументы ...

Интерисует по параметру настраиваемость, легкость администрирования. Сейчас есть firewall на FreeBSD, думаем перевести его на Linux (корпоративная политика), правил в FreeBSD около 150. Есть проблемы:

При попытке добавить правила с destination на несколько портов - нужно писать несколько правил (по количеству портов).

При попытке посмотреть - а как вообще правила выполняются (последовательность), опять таки - только перебором таблиц nat, filter, mangle, и то: как отфильтровать пакет до NAT-инга?

saper
()

Samba. XFS. ACL. Windows-клиент не может удалить пользователя Everyone из списков доступа к папке

Собствено subj. Пользователи локальные. В smbpasswd прописаны, находятся в отдельной группе.

Вот весь smb.conf:

[global]
netbios name = MYCOMP
workgroup = MYDOM

interfaces = eth0 192.168.10.1/255.255.255.0
bind interfaces only = yes

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 IPTOS_LOWDELAY

encrypt passwords = yes

security = user

log file = /var/log/samba-acl.log
debuglevel = 0

character set = KOI8-R
client code page = 866
preserve case = yes
short preserve case = yes

nt acl support = yes

[exchange]
comment = Folder for information exchange
path = /mnt/mobile
browseable = yes

saper
()

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