LINUX.ORG.RU

Сообщения BreadFan

 

Negative latency между хостами

Помогите локализовать проблему пожалуйста. Суть такова:

На хосте 1 процесс берет свой таймстемп через gettimeofday и засылает в сеть по UDP multicast, на хосте 2 процесс получает эти пакеты, берет свой gettimeofday и выводит разницу. Если рейт небольшой, то разница адекватна, но если слать через 10 микросекунд и быстрее, то разница получается отрицательной. регулярно достигает тысяч микросов со знаком минус.

ничего особо не меняется, если на приёмнике получать таймстемп через SO_TIMESTAMP.

правильно ли я понимаю, что ntp можно полностью исключить (т.к. разница становится отрицательной только при больших рейтах)?

куда ещё нужно смотреть?

сиистема - rhel 7.

 ,

BreadFan
()

Teamcity: одна конфигурация для двух SVN бранчей

Возможно ли настроить конфигурацию Тимсити чтобы та собирала код из двух разных бранчей? Сразу оговорюсь, для SVN.

Зачем это нужно:

  • есть проект, состоящий из примерно 10 независимых модулей. у каждого модуля свои юнит тесты. очень удобно иметь по конфигурации на каждый из них. поменял один компонент - через пару минут увидел результат в почте.
  • проект поддерживается под 4 платформы, соответственно 40 конфигураций. если умножить их еще и на количество бренчей, то будет как-то очень много.

Что пробовал:

  • завел переменную branch.name для конфигурации, c помощью checkout rules вычекиваю выбранный бренч. Недостатки: не понял как настроить триггер на коммит чтобы он смотрел на нужные бренчи. Запланировать билд тоже нельзя - Тимсити не дает запустить конфигурацию с параметром.
  • думал написать плагин, который триггерил бы билд, но нет прав админа на тимсити сервер.

Git такое вроде бы умеет, но переезд на гит у нас пока только в планах.

 

BreadFan
()

Собственный DSL?

Привет, ЛОР!

Есть у меня такая задача - есть сишная структура:

struct foo_struct {
  int8_t f8;
  int32_t f32;
  int64_t arr64[10];
};

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

view foo_view {
   name: "My field 1", type: string, from: f8, id: 500
   name: "My field 2", type: int64, from: f8 * f32, id: 900
   name: "Array field %i", type: string[], from: arr64, ids: 1000...   
};

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

int foo_view_get_by_id(struct foo_struct* stct, int id, void* to);

/* foo_view_get_by_name("Array field 8") должен вернуть to_str(arr64[8]) */
int foo_view_get_by_name(struct foo_struct* stct, const char* name, void* to);

сейчас что-то из этого делает наколеночный скрипт на awk, но этот подход давно себя исчерпал. как писать такой генератор? flex + bison + самописный генератор в С или что-то готовое уже есть?

BreadFan
()

SVN: директория из другого репозитория

Привет!

Есть ли возможность организовать репозиторий вот так?

repo/trunk
\--dir1
\--dir2 - из другого репозитория
\--dir3

Хочу так сделать чтобы при checkout и update repo/trunk эта dir2 была актуальной. Или это грязно, и нужно делать по-другому?

 

BreadFan
()

Собрать стеки со всех нитей процесса

Привет всем!

Я пытаюсь собрать stack traces для всех нитей процесса при SIGSEGV и прочих неприятностях, но есть 2 проблемы:
1. Функции backtrace получают стек текущей нити, а надо со всех. Есть ли аналогичные функции для этого случая?
2. Пытался взять адреса стеков с помощью pthread_attr_getstack (код здесь) чтобы потом как-нибудь обработать, функция возвращает NULL. Не могу понять почему, все делаю по манам.

Ну и вообще: кто как собирает стеки, не прибегая к коркам?

BreadFan
()

Помогите нарисовать график

Привет!

Есть у меня некоторые данные по некоторым процессам - имя процесса и времена его начала и завершения, например:
proc1 00:40:44,674 00:40:45,688
proc2 00:40:46,140 00:40:46,910
...

хочется нарисовать график по типу такого:
http://img704.imageshack.us/img704/1367/plotv.png

какой инструмент выбрать? чувствую, что gnuplot, но я так и не разобрался как в нем строить линии.

спасибо!

BreadFan
()

DEB с конфигурационными файлами

Начал разбираться с построением DEB, решив начать с малого - сделать пакет из кастомных конфигов Астериска.

Подправил control и rules, сгенерированные dh_make

Собрал от юзера и рута с помощью:

debuild -i -us -uc

Все собралось, но:

1. файлы в deb лежат относительно текущей директории (./etc вместо /etc)

2. если подменить стандартные пермишены, генерируемые dh_fixperms, lintian начинает жаловаться

Посмотрел как сделали мейнтенеры в Debian, постарался воспроизвести: ситуация не изменилась.

Пожалуйста, пините меня в направлении правильной доки, в которой было более-менее разжевано как правильно класть файлы и чинить пермишены или в сторону минимальных сборочных deb-файлов, по которым человеку, испорченному rpm легко было сориентироваться :)

BreadFan
()

postfix + gmail: Username and Password not accepted

Нутром чую, что тема такая была, но нагуглить по лору не удалось. Проблема вот в чем: есть postfix, через sasl он авторизуется на gmail. проблема в том, что примерно через сутки gmail перестает аутентифицировать postfix до тех пор, пока я не залогинюсь в его вебе, причем при этом он предлагает мне разгадать капчу.

как это можно вылечить?

P.S. Нагуглил совет поставить в main.cf задержки в пару секунд, но ждать сутки чтобы воспроизвести не охота :)

smtp_destination_rate_delay = 2
relay_destination_rate_delay = 2

BreadFan
()

Relocation в Европу. Нужен совет.

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

BreadFan
()

Greasemonkey: concat

Что-то я совсем ничего не понимаю! Javascript-код для Greasemonkey:

...
var topics;

topics = document.getElementsByClassName('TextTopic');
topics = topics.concat(document.getElementsByTagName('h1'));
...

скрипт не выполняется, в Error console - «topics.concat is not a function». пробовал еще вместо var topics сделать var topics = new Array() - то же результат.

В тоже время в нагугленных мной скриптах этот concat используется вроде как у меня.

Короче, help :) На javascript первый раз в жизни пишу!

BreadFan
()

Инфосистемы Джет

Если кто-нибудь работает в Инфосистемах Джет или общался с тамошней HR, не могли бы вы скинуть мне на почту/jabber batrakov@gmail.com какой-либо контакт (желательно e-mail) HR-менеджера Натальи. Больше никаких данных нет, на определителе телефона высветился только номер джетовского телефонного свича :(

Интерес сугубо деловой :)

>>>

BreadFan
()

Замена символов в С-препроцессоре

Хочется странного, а именно, замены символов средствами препроцессора.
Зачем это нужно:
- есть библиотека log4c, она позволяет логировать в группы логов, формат которых: группа.подгруппа1.подгруппа2...
- есть макрос INIT_LOG_GROUP(group) cat_ ##group = log4c_category_get("myapp." #group)

проблема в том, что если мы передадим туда INIT_LOG_GROUP(g1.g2), то это развернется в cat_g1.g2 = ..., а переменная cat_g1 с членом g2 у нас, разумеется, не определена

можно ли сделать примерно так?:
INIT_LOG_GROUP(group) cat_ ##TR('.', '_', group) = log4c_category_get("myapp." #group)

код будет работать только под Linux и собираться только gcc, поэтому на переносимость пох.

>>>

BreadFan
()

Про русские маны

Зацените точность перевода!

RECV(2)

If from is not NULL, and the underlying protocol provides the source address, this source address is filled in.

Если параметр from не равен NULL, а сокет не является ориентированным на соединения, то адресотправителя в сообщении не заполняется.

man-pages-ru-0.7-8
Fedora Core 3

>>>

BreadFan
()

Добавление правил iptables без libiptc

Понадобилось тут в своем приложении, код которого ни под каким предлогом распространять нельзя, добавлять и удалять однотипные правила iptables. Добавлять/удалять надо около ~50 правил в секунду, в каждый момент в цепочке где-то около 1500 правил.

Вариантов реализации вроде всего ничего: 1. Писать приложение с libiptc и общаться с ним через какой-нить IPC 2. Патчить iptables чтобы он постоянно висел, отдавать ему правила через какой-нить IPC, патчи по требованию кастомера отдавать 3. Ковырять протокол взаимодействия iptables с netfilter чтобы отдавать ему правила 4. Забить на все и дергать бинарь iptables через popen

Попробовал добавить такое правило iptables'ом, 0.005 секунд, для моей задачи вроде нормально. Какой из пунктов кто посоветует, и каких подводных камней мне ждать?

>>>

BreadFan
()

Автомапинг имен eth? с реальными интерфейсами

Возникла проблема: написать скрипт для машины с 6 проводными сетевыми интерфейсами, размещенными на двух разных карточках, так чтобы он однозначно мапил интерфейсы к именам eth?

Вопрос: в каком направлении необходимо двигаться и решаема ли эта задача в принципе? я посмотред man iftab - он может привязывать имена к макам или прерываниям. но так как скрипт должен работать на заранее неизвестной конфигурации, маки нам неизвестны, как распределяются IRQ и как их узнать, кроме как используя костыли типа ifconfig eth0 up && udevinfo -a -p /sys/class/net/eth0 - для меня загадка :)

>>>

BreadFan
()

Eclipse и package explorer

В еклипсе никак не могу приручить project explorer так, чтобы он генерировал правильное представление пекеджей. он ориентируется на иерархию директорий, а у меня в директориях
src/java/org/apache/poi
и
src/ooxml/org/apache/poi
лежат классы, принадлежащие одному пакету org.apache.poi. Еклипс же считает, что эти классы принадлежат пакетам src.java.org.apache.poi и src.ooxml.org.apache.poi. В качестве решения eclipse предлагает перенести класс в тот пекедж, который объявлен в java-файле, но это мне не подходит, т.к. он переносит и сами файлы, а у меня включена интеграция с SVN и трогать иерархию директорий я не хочу.

подскажите пожалуйста решение поизящнее, в идеале - чтобы он брал названия пекеджей из сырков.

>>>

BreadFan
()

Java: вопрос по лицензированию

У меня возникла необходимость добавить функциональности в один из классов пакета javax.Swing. Просто унаследоваться от этого класса и переопределить методы не комильфо: нужно обращаться к private членам, добавлять ощутимые куски кода в разные места функция и проч. Я скачал исходники и тупо поправил нужные места в классе. Т.к. я полный нуб в джаве, мои изменения вряд ли примут в Sun, поэтому я решил не париться, а переименовать этот класс и пользоваться им в своей программе. Свои изменения я готов выложить в любой момент, однако код программы открыть никак не могу.

Вопрос: правомерны мои действия с точки зрения лицензии? Если нет, то что нужно сделать чтобы не открывать код?

>>>

BreadFan
()

Конвертирование между кодировками

Чего-то я туплю. Есть виндовое приложение, которое пишет файлы с русским текстом в некоторой кодировке. Notepad++ говорит, что эта кодировка - ANSI.
Линуксовый file говорит, что это:

$ file file.txt
file.txt: Non-ISO extended-ASCII English text, with LF, NEL line terminators

iconv сконвертить его не может, оция -с дает кучу мусора

$ iconv -f MS-ANSI file.txt
iconv: illegal input sequence at position 1

хочется сконвертить эти файлы в utf-8 для последующей индексации, помогите, пожалуйста!

вот sample файл зааплоадил: http://webfile.ru/1803935

>>>

BreadFan
()

Тру-книги по базам данных

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

заранее спасибо

>>>

BreadFan
()

Снова флуд в Dev

BreadFan
()

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