LINUX.ORG.RU

Сообщения mriadus

 

Перенаправление потока stdout. Ускорение скидывания данных.

Форум — Development

Есть приложение, запущенное из командной строки так:

./appname > log.log

Данные в лог пишутся шеллом, но, похоже, с буферризацией. Задержка составляет около секунды. Командой tail -f log.log я вижу изменения не моментально, а с этой задержкой. Командой watch -n0.2 «tail -n 30» с той же задержкой в секунду.

Нельзя ли без остановки приложения как-то повлиять на эту буферризацию в сторону уменьшения времени задержки?

Спасибо.

mriadus
()

Почему приложение может тихо завершаться в функции «send()»?

Форум — Development

Имеется ввиду ssize_t send(int s, const void *buf, size_t len, int flags);, которая с сокетами работает.

Какие могут быть варианты? Да, возможно закрывается соединение к тому моменту, как я отправляю (сокеты-асинхронные), но тогда бы приходил SIGPIPE. А тут просто завершается без всяких новостей. Буффер точно исправен, размер точно тот. Всё утыкано std::cout, вижу, что параметры корректные.

Приложение - http-сервер, обрабатывает, наверное 1000 запросов, используя для каждого send(), но в какой-то момент send становится последним.

Что проверено: - память не течёт - указатель на буффер - ОК, размер какой нужно. - сокет - ну точно созданный или accept-нутый, и точно не -1. - сигнал SIGPIPE не приходит.

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

Исходники не покажу - незачем, просто вспомните варианты, когда send может завалить приложение, я уже не знаю, что проверять )

Спасибо!

mriadus
()

Софт для рисования на бесконечном холсте для tablet PC.

Форум — General

Есть HP tc4400, у которого под TFT-матрицей стоит wacom-«плата», и активное перо, упирающееся в стекло, стоящее над TFT-матрицей. Получается очень точно и со степенями чувствительности рисовать. Интересно, существует ли софт, дающий возможность так рисовать:

Нарисовать человечка, потом сделать zoom на пуговицу его одежды (при этом линии пуговицы станут очень толстыми) и иметь возможность рисовать всё теми же тонкими линиями внутри этой же пуговицы. То есть, нарисовать 10 человечков тонкими линиями, каждый внутри пуговицы другого. То есть, чтобы я мог отдать файл другу, он открыл и увидел человечка, а потом чтобы он мог 10 раз обнаруживать человечков в пуговицах друг друга...

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

Microsoft делала какую-то презентацию на TED. Показывала какую-то читалку, в стиле adobe acrobat. Докладчик очень глубоко зумил, читал то, что читают люди на небольших фотографиях... И читал то, что читают люди на фотографиях в журналах, которые читают люди на фотографиях в журналах, которые читают люди... Ну или google/yandex map - от глобуса до автомобильной парковки... Т.е. я хочу так: провёл тонкую чёрную линию по глубусу, сделал много zoom и увидел целые регионы, на которых лежит чёрная пелена...

mriadus
()

Посоветуйте протокол/библиотеку/фреймворк для общения в кластере мастера со слейвами. Выдача заданий, приём ответов.

Форум — Development

Библиотека нужна под C++. Имеется ввиду сетевой транспорт обмена задачами/ответами. Но к протоколу требования такие простые, что можно прямо сейчас взять и использовать HTTP. XML-возможности по структуризации данных не нужны, будет достаточно гонять туда-сюда линейные структуры данных. Можно бинарные, можно в виде набора текстовых строк. Будет клёво, если протокол высокого уровня будет отделён от сокетного-коннектного-биндного и будет даваться возможность завернуть его ещё во что-нибудь и использовать свой сокетный код.

По поводу фреймворка - а есть ли такой фреймворк... то есть, что-то, что ты включаешь в приложения мастера и слейва, и у них появляется обмен задачами, работами, обмен alive-посылками, регистрация работ и задач на мастере. Далее уже дописываешь свои структуры данных в процесс обмена тасками и джобами, реализацию их выполнения...

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

Спасибо.

mriadus
()

Советую всем посмотреть лекции А. Степанова в Yandex.

Форум — Development

Он там прочёл 2 большие лекции. Первая часть первой лекции: http://video.yandex.ru/users/ya-events/view/129/

Смотрели многие, но многие и не заметили.

Это автор STL для C++. Давно занимается вопросами обобщённого программирования. Вопросами отделения типов от алгоритмов. Вопросами унификации библиотек для всех языков без проседания производительности. Сравнивает программистов и электронщиков - первые постоянно собирают всё из транзисторов, а вторые уже давно юзают готовые микросхемы (намёк на хорошие библиотеки). Оч. интересные и вдохновляющие лекции. Советует выкинуть Александреску на помойку, не заниматься изучением питонов и хаскелей и их отличий, а сначала осилить базовые вопросы построения и анализа алгоритмов и читать Кнута или хотя-бы купить и поставить на полку, чтобы он оттуда говорил: «прочитай, прочитай...»

mriadus
()

Безумная идея для поисковых систем. Виртуальные поисковые машины пользователей внутри основной.

Форум — Development

Идея такая. Позволить пользователям поисковой машины (ПМ) вешать нагрузку на «скачивательно-искательную мощ» системы в виде скриптов на каком-то гуглоязыке. То есть идея скорее не в том, что запущенные «внутри гугла» ваши скрипты будут слать гуглу запросы, а будут являться тупой параллельной нагрузкой на «ток траффика», который гугл собирает. В гуглоязыке - работа с переменными, запись данных в файл для последующего анализа. То есть, песочница для поисковых экспериментов без разработки своего робота. Конечно, выполняется в свободное процессорное гугло-время и т.п. Или за деньги с повышенными приоритетами. Ток траффика можно фильтровать фильтрами.

p.s.
Траффико-резистор - это ширина канала связи. Или упирание в другие ресурсы.
А что такое траффико-конденсатор и траффико-индуктивность? Интересно, какие траффико-RLC-цепи в мире есть? (-;

mriadus
()

Какой интересный поиск по форумам можно сделать?

Форум — Development

Есть база постов с разных форумов. Свалка топиков выглядит так: http://ymap.dyndns.org/ Робот периодически смотрит на разные форумы, апдейтит базу, вставляет новые записи. В текущем виде это штука не оч. полезная. Можно сделать централизованную читалку форумов - выбираешь по тегам или сайтам форумы и читаешь коктейль. Но много где есть RSS. С другой стороны, многие не шарят в RSS и такая штука просто удобнее за счёт отсутствия одного шага. Но это всё не так весело.

Весело было бы придумать какой-то поиск по форумам - более специфичный для форумов, чем общий поиск гугла.

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

Что ещё интересного для поиска на форумах можно придумать?

mriadus
()

БД. Таблица сообщений форума.

Форум — Development

СУБД - допустим, MySQL.

Посоветуйте огранизацию таблицы с сообщениями для форума и способ работы с ней. Сообщение должно содержать информацию о топике, к которому относится. В топике может быть, например, over 9000 сообщений и хочется быстро показать страницу номер 333. На странице - 25 сообщений.

P.S. Не очень важные детали: форум не древовидный, но содержит под-разделы. Это можно считать просто отдельными форумами - Talks, Development, Desktop... Сообщения от всех этих форумов - в одной таблице. Просто у сообщения будет id_forum и всё. Если под каждый такой форум создать таблицу - страшного тоже ничё не будет, этих форумов мало. Данные будут добавляться на C++ или Python, считываться - PHP.

mriadus
()

webcam -> ffmpeg -> h264. Почему не более 4 fps? CPU load = 10%!!!

Форум — General

Команда:

ffmpeg -f video4linux -s 640x480 -b 700k -r 29.97 -i /dev/video1 -i /tmp/fifo.wav -vcodec libx264 -vpre hq video.mp4

От изменения -vpre, -r, -b на другие значения, картина не меняется. Картина с частотой кадров.

29.97 FPS оказываются в выходном файле, но смена картинки происходит не чаще 4-5 fps.

Это число (4-5 fps) пишет ffmpeg во время кодирования:

...
frame=   26 fps=  4 q=-1.0 Lsize=     235kB time=8.27 bitrate= 232.2kbits/s
...

/usr/share/ffmpeg/libx264-hq.ffpreset:

coder=1
flags=+loop
cmp=+chroma
partitions=+parti8x8+parti4x4+partp8x8+partb8x8
me_method=umh
subq=8
me_range=16
g=25
keyint_min=25
sc_threshold=40
i_qfactor=0.71
b_strategy=2
qcomp=0.6
qmin=10
qmax=29
qdiff=4
bf=3
threads=2
refs=8
directpred=3
trellis=1
flags2=+wpred+mixed_refs+dct8x8+fastpskip

Камера - logitech IM connect. Тормозная, но не настолько. Около 10-15 fps при том освещении, которое было на момент тестов, она выдавать могла (mplayer показал).

Нельзя сказать, что проца не хватает. Он нагружен процентов на 10% во время этого действа.

Спасибо.

mriadus
()

Поиск языка программирования.

Форум — Development

Что наиболее похожее на нижеописанный язык вы можете вспомнить?

Это похоже на regexp-ы. Основная цель - находить шаблоны. Но работает немного умнее regexp-ов, позволяя создавать переменные, сравнивать их с чем-то и т.п. Для ясности - пример:

Есть тексты: «abcdef», «abcddeeff»

Программа на таком языке:

a, b, c, d, f, $X="OK", $CODE=33

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

В конце стоят два специальных оператора - создание двух переменных, присваивание им чего-то. До них дело доходит по вышеописанной логике - если все предыдущие операторы успешно «пройденены» (соотв. символы найдены). Т.е., если текст будет не «abcdef», то переменные $X и $CODE созданы не будут.

Оператор ИЛИ:

(a,b,c) || (w,d,x) || (g,p,o,x,a), $X = 1

Три последовательности через ИЛИ. Делаются три попытки поиска разных последовательностей с одного места в тексте. Три последовательности, разделённые ИЛИ - это один оператор, далее запятая и второй - «$X=1». Смысл - нашли хотябы одну из них - перейдём к выполнению следующего, который создаёт переменную. Не нашли ничего, до $X дело не дойдёт.

Программа посложнее:

a, b ,c, (d, f, $CODE=1, $X=55) || ( d,d,e,e,f,f,$CODE=2, $X=66), ( $CODE == 1, $TEXT="Hello world" ) || ( 2 == $CODE, $TEXT = "mama, mama, chto ya budu delat" )

В зависимости от вида строки, создаётся разная переменная $CODE, и в зависимости от неё, переменная $TEXT имеет разное содержимое. Все программы тут дурацкие, решаются уже имеющимися во вселенной средствами, конечно. Но интересно узнать, существуют ли подобные «языки», работающие по подобной логике - «прохождение» последовательности операторов, зависящее от нахождения их во входной последовательности или от результатов выполнения условных операторов...

Спасибченко!

mriadus
()

Вещание с веб-камеры.

Форум — General

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

Такое решение есть у рутуба - они дают свою спец-софтину, но рутуб - тормоз и софтина у них только под windows.

Например, на стороне вещателя - возможность использования ffmpeg - было бы клёво.

Посоветуйте ещё пожалуйста конкретные настройки для ffmpeg + ffserver, а также необходимый комплект дров/кодеков (конкретные версии и производители), которые позволяют дать юзеру ссылку на видео-поток, которую базовая windows xp успешно откроет и покажет в каком-нибудь своём windows media player.

Я игрался ffmpeg + ffserver давно, как-то плохо получалось, ещё попробую, а вы пока изложите свой опыт свежий, если есть.

mriadus
()

Вопрос по разработке алгоритма.

Форум — Development

Вопрос на разработку (знание) алгоритма.

Нужно предложить такой способ хранения информации о сотрудниках предприятия, для каждого из которых хранится дата наёма и дата увольнения с работы, при котором наиболее быстро будет работать операция выборки из этой базы всех персон, успевших устроиться и уволиться в заданный пользователем интервал.

Думаю, точность указания даты - до дня.

Спасибо.

mriadus
()

C/C++ linux разработчик. Ищу удалённую работу.

Форум — Job

Здравствуйте!

На данный момент наибольший опыт имеется в C/C++ - разработке серверных многопоточных backend-приложений для высоконагруженных проектов, выполняющих роль специализированных СУБД. Очень интересует работа в области разработки СУБД, задачи, связанные с подбором или разработкой алгоритмов, структур данных, нестандартных решений, с вдумчивой проработкой базовых деталей систем.

Понимание STL изнутри, опыт разработки аллокаторов, опыт использования boost::lexical_cast, boost::tokenizer, boost::filesystem и др.

Опыт:
- работы с POSIX sockets, pthreads, epoll, libcurl, libmysql, FastCGI, Qt, xlib, MySQL, PostgreSQL.
- реализации собственных сетевых протоколов, синтаксических анализаторов, интерпретатора простого скриптового языка.
- проектирования распределённых систем, применения MapReduce.

Английский - письменный и устный.

Пишите пожалуйста на:

mriadus
gmail
com

Телефон: +7 921 57 98 994

mriadus
()

Как ограничить долю файлового кеша, который может отожрать опр. процесс или опр. файл.

Форум — Desktop

Есть 10-гиговый файл - диск виртуалки. Когда по этому файлу шарится виртуалка, прочитанные части этого файла кладутся в файловый кеш (вся невыделенная процессами часть ОЗУ), вытесняя гораздо более полезные для меня в данный момент файлы оттуда.

Хотелось бы ограничить долю этого кеша, которая может быть использована для кеширования кусков этого 10-гигового файла. Грубо говоря, хотелось бы сказать системе «не юзай больше 50 мегабайт кеша для кеширования кусков данного файла».

Спасибо. Чеснокоеды.

mriadus
()

Подскажите простой сценарий поднятия VPN.

Форум — Admin

1. Есть openvpn. 2. Цель: сделать сеть 192.168.1.0 из двух машин - linux + windows. Нужно, чтобы windows-юзер создал какую-то VPN сеть (без уст. доп. софта), указав в настройках интернет-IP-адрес linux-хоста и получил интерфейс в сеть 192.168.1.0 поверх интернета.

mriadus
()

Несколько выходов в интернет. Пустить разные приложения через разные из них.

Форум — Development

Сабж.

Главное условие задачи - может быть так или иначе доступно несколько маршрутизаторов (10.10.10.1, 10.10.10.55, 192.168.1.55), имеющих разные белые IP (рызных провайдеров и т.п.).

Хочется, грубо говоря, запустить 2 TCP клиента, которые идут на один и тот же IP в интернет, но через разные маршрутизаторы. Каким способом это делается? Спасибо.

mriadus
()

Заказ на написание конфига для ptoftpd.

Форум — Admin

Хочу заходить на FTP не указывая никакого логина (ftp:ftp) и получать доступ в диру /home/ftp/ на добавление новых файлов, листинг и чтение имеющихся. Всё. Спасибо!

mriadus
()

Создание раздела безопасности для скеретарш и блондинок.

Форум — General

Разделы на HDD:
(1) Спасательный. 20 Гб.
(2) Винда. 10Гб.
(3) Данные. 300 Гб.

Врубаем комп. Из (1) грузится линукс и запускает виндовый загрузчик, убивая себя этим. Насколько реально, работая в защищённом режиме, в линуксе, под рутом, прочитать другой загрузчик, рассчитанный на реальный режим, передать ему управление и самоубицца?

Спасательно-загрузочный линукс из раздела (1) выглядит так:
«здраствуй юзер, нажми L или S или жди 5 секунд».

После установки винды и программ, сисадмин указывает спасательному линуксу сделать точку восстановления (жмёт S). Линуксовое приложение грабит раздел (2) в файл, кладёт на свой раздел.

Если винду покусали вирусы, то на этапе загрузки юзер приказывает спасательному линуксу восстановить тот раздел целиком, нажимая L.

Наверное использовать линукс для (1) - пушка и воробьи и есть какое-то решение весом в 50 кб, которое ставится на раздел (1) и делает всё тут описанное?

mriadus
()

[Санкт-Петербург] Продам nokia n810. 5000 руб.

Форум — Mobile

Я незнаю, зачем он мне нужен. Мне хватает nokia 1110i + nokia 1202i в кармане. Запродам. Комплект полный, работает всё клёво. Хотя нет, не полный, запасной стилус, кажется, потерялся. +7 921 57 98 994

 

mriadus
()

Чего это хочет smbd при запуске? (виснет, пытается соединиться на 127.0.0.1:631).

Форум — Admin

connect(4, {sa_family=AF_INET, sin_port=htons(631), sin_addr=inet_addr(«127.0.0.1»)}

mriadus
()

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