LINUX.ORG.RU

Сообщения Cy6erBr4in

 

нужна структура данных

Форум — Development

Всем привет. Собственно, задача в создании никоего map'а, для хранения key, value, но соль в том, что key это некий промежуток значений, при этом границы могут быть как открытыми, так и закрытыми, тоесть дожно быть что-то навроде

M = [1, 10) -> a
[10, 20) -> b
[20, 30) -> c

соотвественно поиск будет давать следующие результаты:

find(1,M) = a
find(15,M) = b
find(20,M) = c
find(30,M) – EXCEPTION

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

всем заранее спасибо.

Cy6erBr4in
()

[bash][if] файлы

Форум — Development

всем привет.

необходимо выполнить определенные действия, если существует(ют) определенный(е) файл(ы).

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

if [ -f filename ]; then
    some commands here
fi

но дело в том, что файлов может быть от 0 до n, и проверять их нужно по маске, навроде filename.log.*, [ -f ... ] в таком случае уже не катит...

есть идея, сделать ls filename.log.* | wc -l и сравнить результат с 0, только надо будет еще перенаправить stderr в /dev/null, ибо если файлов таких нет вообще, то ls ругнется...

есть какие-нибудь более прямые способоы? посоветуйте что-нибудь :)

 ,

Cy6erBr4in
()

[Asterisk][SIP]что с этим можно сделать?...

Форум — Admin

Всем доброго времени суток!

сразу скажу, я не особо в теме, поэтому вопрос кому-то может показаться странным.

что мы имеем:

1) выделенный сервер в интернетах, с широким каналом

2) смартфон с sip клиентом

сейчас пользуюсь услугами sipnet.ru (не сочтите за рекламу), все в принципе устраивает, но подумалось тут мне об Asterisk'е... а не могу ли я как-то расширить функционал своего sip телефона, установив Asterisk на своем сервере, и настроив его в качестве ?gateway'я??

вообщем вопрос вот в чем, могу ли я получить какой-нибудь профит, если запущу свой Asterisk?

 ,

Cy6erBr4in
()

[wget][mercurial][bazaar] новый мейнтейнер - школьник?

Форум — Talks
On Sat, May 1, 2010 at 11:29 PM, Giuseppe Scrivano <gscrivano@gnu.org> wrote:
Hello wget hackers,

I have migrated the GNU Wget repository from Mercurial to Bazaar.

The new repository is accessible here:

bzr branch http://bzr.savannah.gnu.org/r/wget/trunk

Are there pending patches that should be applied?

Cheers,
Giuseppe

я вот не пойму, он шутит чтоли? маразм...

а что думаете вы?

 ,

Cy6erBr4in
()

Главный мэйнтэйнер GNU Wget отходит от дел...

Новости — GNU's Not Unix
Группа GNU's Not Unix

...и ищет себе преемника.

Вчера в рассылке, посвященной всем известному и многими любимому менеджеру закачек GNU Wget, главный мэйнтейнер и один из основных разработчиков Micah Cowan написал, что хочет уйти с занимаемого им поста. Он занимается данным проектом уже два с половиной года; работа над Wget, как он сам пишет, принесла ему массу позитива, а также позволила получить множество новых знаний. Micah благодарит всех кто участвовал и продолжает участвовать в развитии и поддержке проекта. Заодно он упомянул о своих «мечтах» о реализации Wget 2.0, который, по его словам, должен быть полностью отдельным проектом.

Кроме того, он обещает постараться передать свои дела своему преемнику максимально полно.

Ну что же, будем надеяться, что найдется кто-нибудь, кто продолжит работу Micah на уровне по крайней мере не ниже текущего! Кто возьмется?

>>> Письмо

 ,

Cy6erBr4in
()

[NVidia][Multiseat] как?

Форум — Desktop

Всем привет, кто-нить настраивал multiseat? В наличии имеется компьютер, видеокарта NVidia GF 9600 GT, два монитора, две мыши, две клавиатуры.

Вопрос собственно к тем, кто это уже настраивал. В интернете полно инструкций по настройке с использованием нескольких карт. С использованием одной карты нашел тут: http://netpatia.blogspot.com/2009/06/multiseat-in-ubuntu-904.html но что-то не могу заставить это работать :( может дело в руках, а может в том что там парень использует ATI.

Зарание всем благодарен!

 ,

Cy6erBr4in
()

[C++][templates][inheritance] непонятно...

Форум — Development

Всем привет... никогда особенно не любил плюсы, но вот решил применить их для небольшого приложения... и столкнулся вот с такой проблемой...

сначало собственно код:

// собственно базовый класс
template <class T1, class T2>
class base
{
protected:
  T1 data;
...
public:
...
  virtual void test () = 0;
};

// класс потомок
template <class T1, class T2>
class derived : public base<T1, T2>
{
...
public:
  void test ()
  {
    data.somefun (); собственно тут и проблема
  }
};

так, как написано у меня, не работает... чтобы заработало, надо писать явно:

  void test ()
  {
    base<T1, T2>::data.somefun ();
  }

собственно вопрос, почему так? :)

Зарание всем благодарен.

 

Cy6erBr4in
()

[NFS][logging] performance problems

Форум — Development

Всем привет. Не совсем уверен что надо сюда писать, возможно стоило создать тему в Admin, но начну отсюда.

Попробую объяснить ситуацию...

Есть хост, назовем его NFS server, на нем шарится каталог, на другом хосте, обзавем его NFS client, этот каталог примонтирован, и определенный процесс с остервинением пишет лог в файл, который расположен в примонтированном по nfs каталоге... так пишет, что процессор на NFS client`е, по заявлениям кастомера, грузится так сильно, что их аппликейшен не может сделать даже video call (проблема не в том что не хватает пропускной способности для видео, потому как видео идет по другому интерфейсу, проблема именно с cpu).

при этом, на NFS server загрузка процессора минимальна... могу кусочек top`а предоставить:

top - 06:45:28 up 8 days, 21:23,  5 users,  load average: 0.61, 0.52, 0.48
Tasks: 117 total,   1 running, 116 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.0%us,  2.0%sy,  0.0%ni, 66.3%id, 29.7%wa,  0.0%hi,  1.0%si,  0.0%st
Mem:   2075588k total,  2019392k used,    56196k free,    67116k buffers
Swap:        0k total,        0k used,        0k free,  1725844k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
 4663 root      15   0     0    0    0 D  1.0  0.0   2:08.28 nfsd               
 4668 root      15   0     0    0    0 S  1.0  0.0   2:00.14 nfsd               
    1 root      16   0   720  284  248 S  0.0  0.0   0:01.63 init               
    2 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0        
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0        
    4 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 events/0           
    5 root      10  -5     0    0    0 S  0.0  0.0   0:01.53 khelper            
    6 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kthread            
    8 root      10  -5     0    0    0 S  0.0  0.0   0:00.51 kblockd/0          
    9 root      20  -5     0    0    0 S  0.0  0.0   0:00.00 kacpid             
  165 root      16   0     0    0    0 S  0.0  0.0   0:07.40 pdflush            
  166 root      15   0     0    0    0 S  0.0  0.0   0:02.16 kswapd0            
  167 root      15  -5     0    0    0 S  0.0  0.0   0:00.00 aio/0              
  372 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 cqueue/0           
  373 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 kseriod            
  413 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 kpsmoused          
  801 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0          
  884 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 reiserfs/0         
  949 root      13  -4  1872  676  436 S  0.0  0.0   0:00.38 udevd              
 1466 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 khubd              
 1549 root      20   0     0    0    0 S  0.0  0.0   0:00.00 shpchpd_event      
 1739 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 ata/0              
 1740 root      11  -5     0    0    0 S  0.0  0.0   0:00.00 ata_aux            
 1760 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_1          
 1762 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_2          
 1764 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_3          
 1765 root      10  -5     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_4          
 2282 messageb  16   0  3428  912  712 S  0.0  0.0   0:00.00 dbus-daemon        
 2306 root      16   0  1524  436  380 S  0.0  0.0   0:00.20 pipdaemon          
 2328 root      24   0  1616  308  220 S  0.0  0.0   0:00.00 resmgrd            
 2338 root      16   0  4204 2712 1416 S  0.0  0.1   0:00.30 hald               

%wa в среднем от 15 до 30, но выше 35 не поднимается...

и отсюда резонный вопрос, какого фига? :) где может быть узкое место? может быть проблемы на NFS client, и он сам не справляется с записью?

Всем зарание благодарен.

 ,

Cy6erBr4in
()

[PDF] Концепции техники и модели компьютерного программирования

Форум — Development

Многие просили прислать на почту, поэтому выкладываю в свободный доступ:

http://rapidshare.com/files/173984387/ctmcp.pdf.html

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

 

Cy6erBr4in
()

[SLED][Gnome][Main Menu][Hotkey] нипаняно :(

Форум — Desktop

Всем привет, волею судьбы сейчас приходится работать за рабочей станцией, на которую установлен Suse Linux Enterprice Destop... так вот, по непонятным мне причинам, при нажатии на клавишу Win открывается главное меню... в настройках хоткеев этого нет, в смысле вин клавиша вообще там не фигурирует, главная проблема в том, что если попытаться настроить какое-нить сочетание клавишь, навроде Win+... то в настройках оно отлавливается, прописывается что-то типа Mod4+... но вот нифига не работает, вместо того чтобы отработал хоткей, открывается это гребанное главное меню... уже и xmodmap посмотрел, нет там вроде ничего подозрительного... и gconf-editor облазил, тоже нет вроде ничего...

может кто-нить сталкивался, где еще может быть это прописано?

P.S.: если убрать с панели аплет меню, то оно ессесно перестает появляться по нажатию на вин клавишу, но вот хоткеям от этого лучше не становится, в том смысле что хоткеи Win+... все равно не работают :(

 , ,

Cy6erBr4in
()

[Mercurial] разные версии

Форум — Development

Привет всем. Есть такой вопрос.

Есть "сервер" через него происходит синхронизация репозиториев на двух независимых машинах... тоесть имеем схему

DevHost1 <-> RepoServer <-> DevHost2

Все как бы работало до сегодняшнего дня, но сегодня сервер RepoServer поменялся, и на той системе где он сейчас распологается Mercurial версии 0.9.1, а на DevHost`ах версия 1.0.1...

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

Зарание благодарен за ответ.

P.S.: очень надеюсь на ответ от tailgunner`а :)

 

Cy6erBr4in
()

[X.org][Hotkeys] вопрос...

Форум — Desktop

Всем привет. Хочется мне странного, а может и не очень, но хочу настроить сочетание клавишь в иксах, как в консоли, а именно чтобы Ctrl+m работало как Enter. Как я понимаю, через xmodmap такое не сотворить, я не нашел как там вещать значения на сочетание клавиш, или я неправ?

Если кто делал что-нить подобное, буду рад увидеть решение данной проблемы.

Зарание благодарен.

 ,

Cy6erBr4in
()

[jabber.el] [http-proxy] как?

Форум — Desktop

Всем привет... ситуация такая... есть соединение с интернетом через http proxy... есть emacs 22.1, есть jabber.el... хочется чтобы всё это мирно сосуществовало и работало...

это вообще возможно?

Зарание спасибо!

>>>

Cy6erBr4in
()

[Erlang] [Binaries] проблемы и непонимание :)

Форум — Development

Всем привет.

есть такой вопрос... чем будут отличатся данные
попавшие в переменную в этих двух случаях:

допустим вычитываем из файла 8 байт данных:

{ok, File} = file:open ("file.bin", [read, raw, binary]).
{ok, Data} = file:read (File, 8).

потом я хочу "отрезать" 4 байта в одну переменную, и 4 в другую:

<<Data_1:4/binary, Data_2:4/binary>> = Data.

и второй вариант

<<Data_1:32/integer, Data_2:32/integer>> = Data.

чем отличаются кординально эти два варианта?

я бы и не стал спрашивать... просто маленький
примерчик разбора mp3 заголовка работает в первом случае, и не
работает во втором :(

ошибка, которую пишет во втором случае:

** exception error: no match of right hand side value 
                    {<<73,68,51,3,0,0,0,0,9,109,84,73,84,50,0,0,0,8,0,0,0,78,
                       97,114,97,121,97,110,...>>,
                     <<"a\245\247">>}

строчка вообще такая
{_, <<D:4/binary, _/binary>>} = split_binary (Data, N),

а если делать так
{_, <<D:32, _>>} = split_binary (Data, N),

то нишиша не работает :(


Думается мне, что тут какое-то фундаментальное непонимание с моей стороны. 
Знающие люди, подскажите, а? :)

Зарание всем спасибо!

>>>

 

Cy6erBr4in
()

[GNU Robots] кто программирует роботов?

Форум — Development

Давайте делиться кодом! :))

я тут после новости решил немного поразмять моск...

вот что я тут накодил:

;; простенькая функция цикла...
(define (loop th) (if (equal? (robot-feel (car th)) #t) (car th) (loop (cdr th))))

;; функция возвразающая строчку с названием предмета, находящегося перед роботом
(define (what-is-it?) (let ((things '("prize" "food" "space" "wall" "baddie"))) (loop things)))

;; а вот собсно оно... венец творения... искусственный интелект! xD
;; поведение прямое вдоску... робот смотри прямо, если может что-то
;; сделать с предметом перед собой, то делает, если же там пусто или
;; стена, то крутимся по часовой стрелке... если прокрутились на 360
;; градусов, то останавливаемся... попытки двигаться ограничены переменной
;; max-steps, это чтобы робота не заклинило :))

(define (explore max-steps turn-count)
  (if (or (zero? max-steps) 
          (= turn-count 4)) 
      nil 
      (let ((thing (what-is-it?))) 
        (cond ((equal? thing "space") (robot-turn 1) (explore max-steps (+ turn-count 1))) 
              ((equal? thing "wall") (robot-turn 1) (explore max-steps (+ turn-count 1))) 
              ((equal? thing "prize") (robot-grab) (robot-move 1) (explore (- max-steps 1) 0)) 
              ((equal? thing "food") (robot-grab) (robot-move 1) (explore (- max-steps 1) 0)) 
              ((equal? thing "baddie") (robot-zap) (robot-move 1) (explore (- max-steps 1) 0))))))

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


А что придумали вы? делитесь давайте!

>>>

Cy6erBr4in
()

[Большие простые числа] генерация...

Форум — Development

Всем привет. Меня интересует вопрос генерации больших простых чисел. Кто что может подсказать кроме малой теоремы Ферма? Какие ещё есть способы? Хотя бы просто названия, если будут ссылки (можно на англоязычные ресурсы), то буду очень благодарен!

Всем спасибо зарание!

>>>

Cy6erBr4in
()

[Haskell] first steps...

Форум — Development

Всем привет... уже довольно давно начал интересоваться функциональными и почти функциональными языками программирования... можно сказать освоил азы lisp и erlang, решил подробнее остонавиться на haskell, пока только "напосмотреть"...

мой первый опыт так сказать:

$ cat qwe.hs module Main where

factorial n = fac n 1

fac 0 acc = acc

fac n acc = fac (n - 1) (n * acc)

main = factorial 100000

при попытке скомпилировать это, получаю следущее:

$ ghc qwe.hs -o qwe

qwe.hs:9:17: No instance for (Num (IO a)) arising from the literal `100000' at qwe.hs:9:17-22 Possible fix: add an instance declaration for (Num (IO a)) In the first argument of `factorial', namely `100000' In the expression: factorial 100000 In the definition of `main': main = factorial 100000

мой естественный вопрос - что я делаю не так? :)

понятно, я невежественнен, и не дочитал основы haskell, не въехал до конца в систему типов и т.д... но обещаю, я исправлюсь :) вы только мне конкретно с этим примером объясните, как оно должно выглядеть?

если написать

main = print (factorial 100000)

то оно работает, но я именно не хочу выводить результат, как это сделать?

Зарание всем спасибо!

>>>

 

Cy6erBr4in
()

[Debian lenny] [Gnome] [раскладки] проблемы... :(

Форум — Desktop

Всем привет... возникла такая проблема... наверняка с ней столкнулся не один я... с недавнего времени добрый разработчик xkb (или чего-то там в иксах, отвественного за раскладки, извиняюсь за невежество, я не в теме), так вот, недавно этот добрый человек удалил раскладку ru(winkeys)... пакеты обновились, и начались проблемы... всё как бы "решалось" удалением (winkeys), но решается оно не совсем прямо... потом вроде даже пакеты обновились, с какими-то там костылями... в чём собственно суть:

в гноме я использую дополнительные настройки раскладки, такие как: правый alt - переключение раскладок; caps lock и левый ctrl поменяны местами; при включенной русской раскладке должна гореть лампочка скролл лока...

всё это работало, до недавних событий... сейчас, в принципе, всё работает, тоесть caps и ctrl поменяны местами, и раскладка по alt переключается, но вот с лампочками бяда... во-первых, при русской раскладке лампочка скролл лока не загорается, во-вторых, при каждом нажатии caps lock (а это бывает часто, это же у меня ctl теперь) лампочка то загорается то гаснет, тоесть так же как будто это капс нажимается... при этом если нажать на левый ctrl, где на самом деле находится капс, лампочка не загорается...

вот такая вот фигня творится.. если кто-нить знает в чём может быть проблема, или как это можно исправить, буду безмерно благодарен!

P.S.: очень надеюсь на появление svu, почему-то мне кажется он знает как с этим бороться :)

Зарание всем спасибо за ответы!

>>>

 

Cy6erBr4in
()

[Lisp] [binary tree] [remove-node] как?

Форум — Development

Все доброго времени суток всем.

Что-то решил поиграться с двоичными деревьями, и возник у меня вопрос...

что насчёт удаления определённой ноды (листа)... ясное дело, можно
сделать это в стиле C или любого другого императивного ЯП, но меня
интересует, можно ли это сделать как-либо красивее, применив,
возможно, функциональную парадигму?

сейчас у меня есть вот такие функции:

;; добавление листа/ноды
(defun insert-node (tree new-node)
  (if (not tree) new-node
      (if (>= (first tree) (first new-node))
          (list (first tree) 
                (insert-node (second tree) new-node) 
                (third tree))
          (list (first tree) 
                (second tree) 
                (insert-node (third tree) new-node)))))

;; создание листа/ноды
(defun make-node (element)
  (list element nil nil))

;; собственно построение дерева
(defun make-tree (elements)
  (reduce #'insert-node 
          (map 'list #'make-node elements)))

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

ну а теперь собственно буду ждать, может кто-нить подскажет,
как удалить некий лист, самым красивым способом? :)

>>>

 

Cy6erBr4in
()

[ЖЖ] Ваше хобби...

Форум — Talks

Хочу поинтересоваться, какие у вас есть хобби... среди посетителей ЛОРа есть много людей с совершенно разными профессиями, тут и программисты, и системные администраторы, есть просто студенты :) а есть и преподаватели ВУЗов... все люди отдыхают и развлекаются по-разному, вот собственно и вопрос - как?

знаю точно что несколько человек увлекается "велосипедным экстримом" :) кто ещё чем?

я сам увлекаюсь Yo Yo, если вы не знаете что это, или думаете что это та штука за 50 рублей в переходе, которая по веревочке катается вниз - вверх, то вот видео, которое должно прояснить что же это :)

http://lisp-mania.nnov.ru/Freestyle.flv

или

http://lisp-mania.nnov.ru/Freestyle_2.flv

конечно, уровень у меня гораздо ниже, ну ничего, я работаю над этим :)

>>>

 

Cy6erBr4in
()

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