То, что Вы спрашиваете, является простым вопросом с очень сложным ответом.
Каждый тон, который Вы слышите, когда oldschool модем набирает, показателен из ряда данных, которые передаются. Звуковая подача измеряется в Гц. Ваш средний взрослый может получить известие приблизительно от 20 Гц к 20,000 Гц (но мы не можем всегда отличать различие между 20 Гц и 21 Гц).
Поэтому скажите, например, подача на 20 Гц означает 0, и подача на 21 Гц означает 1. Таким образом передать
00000110
Вы передали бы 20Hz 20Hz 20Hz 20Hz 20Hz 21Hz 21Hz 20Hz
. В чем-то смехотворно замедляются как 1 бод, который занял бы 8 секунд для передачи тех данных.
Но почему беспокойство, когда можно сказать что:
30 Гц =
00000000
31 Гц =00000001
32 Гц =00000010
33 Гц =00000011
34 Гц =00000100
35 Гц =00000101
36 Гц =00000110
37 Гц =00000111
и т.д. так на и т.д. Так тот же набор данных (00000110
) может быть представлен как 36Hz
и Вы передали 8 битов за 1 секунду, а не 8. Поздравления, Вы отправили 8 битов информации в единственном цикле.
Теперь МОДЕМ по дрянной телефонной линии, может только отличить столько различных freqencies, и должна быть проверка ошибок и т.д. на месте, но передать:
000000110000011100000100
Вы испытываете необходимость в большом количестве различных аудио передач, играемых друг после друга супер быстро (56,000 из них в секунду в случае 56K модема). При проигрывании 56 000 различных тонов в течение секунды тот коммутируемый звук - то, что Вы получаете.
Я столкнулся с той же проблемой (установка на OSX, а не на марионетку), похоже, она такая же, как в этом обсуждении в рассылке марионеточных пользователей list (и этот обходной путь в репозитории углеродного github).
В моем случае решение заключалось в том, чтобы включить PYTHONPATH
, чтобы включить / opt / graphite / lib
и / opt / graphite / webapp
:
export PYTHONPATH=/opt/graphite/lib:/opt/graphite/webapp
Затем процесс установки завершится успешно, и список пипсов
покажет установленный углерод.
Не знаю, осталась ли у вас эта проблема, но вчера у меня было то же самое. Вот как я обошел это с помощью puppet:
$graphite_version = '0.9.9'
exec {
'install-carbon':
command => "pip install carbon==${graphite_version}",
creates => "/opt/graphite/lib/carbon-${graphite_version}-py2.6.egg-info";
'install-graphite-web':
command => "pip install graphite-web==${graphite_version}",
creates => "/opt/graphite/webapp/graphite_web-${graphite_version}-py2.6.egg-info";
}
Это не решает проблему полностью (углерод и графит не регистрируются должным образом как установленные с помощью pip), но это означает, что ваша марионетка не требует их повторной установки.
Надеюсь, это поможет,
Даз