Рандомно подропать входящий трафик на ppp0
Надо сэмулировать потерю пакетов, с eth0 работает на ура, с ppp0 - не пашеть:
tc qdisc add dev ppp0 netem loss 11%
Есть ещё варианты?
Надо сэмулировать потерю пакетов, с eth0 работает на ура, с ppp0 - не пашеть:
tc qdisc add dev ppp0 netem loss 11%
Есть ещё варианты?
Есть кодебейз.
Есть unified diff patch.
Хочется посмотреть чего там наменялось в side-by-side режиме, для всех файлов упомянутых в патче.
Хотелось бы сделать это с помощью привычного ковыряла. аля git difftool, только для произвольной папки.
Как говорили древние отцы-основатели редактирования текстов: « Damnosa quid non imminuit dies¹ ? »
Но мы им отвечаем: « Tempora mutantur et nos mutamur in illis² ! »
Делимся полезными и интересными кусками из своих конфигов, а также демонстрируем, кто на какой статусной строке в данный момент остановился и использует. Также это касается не общеизвестных плугинов или настройки/интеграции общеизвестных и общеиспользуемых. В общем синтастик или ЗадротДерево сюда не нужно, наверное, писать.
Я могу предложить (кое-что известное, но будет полезно новичкам, если такие есть):
А теперь по статусной строке. Почти два года сидел на airline, но вот недавно перешел на lightline, которая быстрее стартует и легче кастомизируется, а также не содержит кучу неиспользуемых (лично мной) возможностей. Попробовал еще ezbar, но японец пилит его под себя, хотя там есть кое-что интересное, насчет скорости:
lightline: 229.019 000.003:
ezbar: 250.312 000.002:
airline: 276.823 000.003:
Вот такая у меня статусная строка: картинка, настройка здесь и здесь. Середина прозрачная, выведен размер файла, имя файла справа, голубой квадратик с + это модифицированный, но не сохраненный файл.
Показывайте ваши ништяки.
--------
¹ - лат. что не изменит губительное время
² - лат. времена меняются и мы меняемся с ними
в общем есть матрица для ориентированного графа, тут все понятно, есть матрица допустим n * n, если нужно установить связь например 3 - 4, то делаем так: *(3 * n + 4) = 1, все просто. теперь допустим нужна матрица для неориентированного графа, 4 - 3 эквивалентно 3 - 4, а 3 - 3 не может быть, следовательно нам для хранения матрицы требуется память (n * n / 2 - n / 2), однако вопрос, как адресовать в таком массиве нужные нам связи, если написать *(3 * n + 4), то получим выход за пределы массива, есть идеи?
Условия задачи такие:
1. Дан граф;
2. Разрешено удалять вершины, вместе с вершиной удаляются все инцидентные ей ребра;
3. Никаким другим способом удалять ребра нельзя;
4. Требуется найти минимальное множество вершин, после удаления которого ребер в графе не остается.
Вопросы:
1. Каково общепринятое название этой задачи?
2. Есть ли готовые быстрые алгоритмы?
Интересует:
Asus Zenbook UX52VS
Kubuntu 14.04
После перезагрузки гарнитура подцепляется нормально, звук идёт.
После suspend/resume она вроде бы как подцепляется, значок соединения показывается, но звука через неё нет.
На другом ноутбуке (HP) с другой гарнитурой и кубунтой совершенно аналогичная история.
Куда копать? Спасибо.
Дратути, меня зовут модест...
Есть хранилище: большой файл, разделённый на страницы (4...16Кб).
В хранилище лежит 100500 объектов переменной длины: в каждой странице 100...300 штук, в зависимости от их длины. Объекты хранятся в порядке их добавления в хранилище. Кончается текущая страница, открывается новая (в старой ставится ссылка на новую) и т.п. Страница пишется атомарно благодаря double-write-buffer как в InnoDB.
Разыскивается алгоритм и структура данных, которая бы позволяла сохранить информацию о порядке следования (списке) объектов. От структуры данных требуются операции:
1. Выдать N объектов с заданного смещения в списке
2. Атомарно переставить любой объект из его текущей позиции в начало списка (типа «поднятие топика»)
3. Операцию 2 выполнить в минимальное количество записей страниц, в деале за 1. У меня есть решение для 4 записей страниц на такую операцию, при этом между записями каждой страницы можно упасть и хранилище останется консистентным, но с учётом double write buffer реальных записей уже 8, а это 128 КБ записи на диск: дохрена для примитивной операции )
B-tree знаю как работает, но оно мне не нужно, я не хочу полноценное удаление-добавление-по-ключу, хочется проще и дешевле, не хочется полу-заполненных страниц, сплитов, мёрджей... Допустимо хранение всего индекса в памяти (но не самих объектов).
Варианты:
1. В каждый объект запилить поле «timestamp» (свежесть). Когда объект надо поднять в начало списка, то делаем touch этому timestamp. Это позволит на каждое поднятие объекта перезаписывать только ту страницу, где лежит этот объект. Недостаток: при холодном старте хранилища придётся прочитать ВСЕ объекты, чтобы построить индекс в памяти (дерево) по ключу timestamp. Хотя можно хранить массив timestamp объектов отдельно от самих объектов, в параллельном «потоке» страниц. Тогда при подъёме нужно читать меньше страниц.
2. Заюзать журнал и ссылки в объектах (двусвязный интрузивный список объектов). При поднятии объекта в начало списка, кидать в журнал команду, которая меняет ссылки между объектами. Вместо операции на реальных страницах просто кидать команду в журнал, таким образом пишется только 1 страница (страница журнала). Когда журнал набирает критическую массу, он накатывается на реальные страницы (но тут наступает необходимость перезаписать много разных страниц, хотя если список сделать не интрузивный, то есть prev-next (указатели) не хранить внутри самих объектов, а в отдельном «потоке страниц», то многие модификации указателей будут попадать на одни и те же страницы, в которых лежат эти указатели, поэтому количество страниц с указателями надо будет записать сильно меньше, чем самих указателей...).
Кастую DBMS-девелоперов и коммитчиков патчей в мускуль.
Есть ноутбук fujitsu lh532. Ноутбук под виндой живет в два раза дольше, чем под онтопиком, хотя в (arch) linux все очень тайлово, минималистично и не ярко (подсветка - 17%). powertop выглядит примерно вот так вот
The battery reports a discharge rate of 7.41 W
The estimated remaining time is 1 hours, 7 minutes
Summary: 1202,8 wakeups/second, 172,4 GPU ops/seconds, 0,0 VFS ops/sec and 8,0% CPU use
Usage Events/s Category Description
17,0% Device Display backlight
17,0% Device Display backlight
27,5 ms/s 957,0 Process /usr/bin/Xorg.bin :0 -seat seat0 -auth /run/lightdm/root/:0 -nolist
100,0% Device USB device: USB Mouse (A4Tech)
0,0 pkts/s Device Network interface: enp3s0 (r8169)
0,0 pkts/s Device Network interface: wlp4s0 (iwlwifi)
17,3 ms/s 57,8 Process /home/likan/.xmonad/xmonad-x86_64-linux
3,4 ms/s 147,9 Interrupt [30] i915
7,0 ms/s 6,9 Process /usr/lib/chromium/chromium --ppapi-flash-path=/usr/lib/PepperFlash/
5,1 ms/s 32,3 Process dzen2 -x 0 -y 752 -w 450 -h 16 -ta l -fg #9d9d9d -bg #020202 -fn -*
4,5 ms/s 19,6 Process dzen2 -x 0 -y 0 -w 950 -h 16 -ta l -fg #9d9d9d -bg #020202 -fn -*-m
3,6 ms/s 5,9 Process dzen2 -x 450 -y 752 -w 916 -h 16 -ta r -fg #44aacc -bg #020202 -fn
2,4 ms/s 28,4 Process xmonad-x86_64-l
2,9 ms/s 2,0 Process dzen2 -x 950 -y 0 -w 416 -h 16 -ta r -fg #9d9d9d -bg #020202 -fn -*
0,8 ms/s 21,5 Process [irq/31-iwlwifi]
1,2 ms/s 7,8 Process /usr/bin/xfce4-terminal
197,7 us/s 19,6 Process [rcu_preempt]
0,7 ms/s 1,0 Timer posix_timer_fn
79,9 us/s 17,6 Interrupt [31] iwlwifi
335,6 us/s 7,8 Timer tick_sched_timer
138,8 us/s 9,8 kWork ieee80211_iface_work
372,8 us/s 1,0 Interrupt [9] RCU(softirq)
337,7 us/s 1,0 kWork i915_gem_idle_work_handler
296,0 us/s 1,0 Interrupt [7] sched(softirq)
93,7 us/s 3,9 Process /usr/lib/chromium/chromium --type=gpu-process --channel=1148.0.5543
megabaks, но статья 2010 года. Хочется что-то точно такое же, но посвежее.Каша в голове, да. Я прав или где-то ошибаюсь?
Значит такая модель. Есть 4 сетевых интерфейса: eth0, wlan0, tun0, tap0. Для каждого есть драйвер и какая-то плата, либо юзерспейсное приложение.
Открываем мы значит лор в браузере, http-запрос (прикладной уровень) упаковывается в ip-пакет (сетевой уровень). Согласно нашим таблицам маршруторизации ip-пакет пойдёт по одному из сетевых интерфейсов. При этом различий в ip-пакете не будет. Значит для сетевых интерфейсов есть какая-то общая функция типа send_data(interface, data).
Дальше начинаются различия.
В eth0 ip-пакет по идее должен быть упакован в ethernet-frame. Это происходит в драйвере или уже на плате? А может бывает по разному?
В wlan0 ip-пакет будет упакован во что-то похожее на ethernet-frame, но другое, так как wifi и ethernet отличаются на канальном и физическом уровнях.
В tap0 ip-пакет будет упакован драйвером в ethernet-frame и передан в юзерспейсное приложение.
В tun0 ip-пакет никуда не будет упакован, а будет сразу передан драйвером в юзерспейсное приложение.
Так или не так?
Всем привет! Подскажите толковую литературу. Сам далеко не математик, поэтому хочется что-то понятное, без «тройных интегралов», но и без особой воды. Мне кроме Кнута в голову ничего не приходит (Конкретная математика и т.п.) Есть ли еще что? может наши отечественные авторы?
всю свою сознательную жизнь я думал, что оператор << НЕ ЯВЛЯЕТСЯ ЦИКЛИЧЕСКИМ, но вопрос возник когда в правильно работающей проге нашел логическую ошибку на ровном месте, сам прикол сводится к такому коду:
for (i = 0; i < 64 + 1; i++)
printf("i = %d; x = 0x%08x\n", i, (0x1 << i));
printf("\nbut i = %d; x = 0x%08x\n", 37, (0x1 << 37));
i = 0; x = 0x00000001
i = 1; x = 0x00000002
...
i = 30; x = 0x40000000
i = 31; x = 0x80000000
i = 32; x = 0x00000001 // !!!
i = 33; x = 0x00000002
...
i = 37; x = 0x00000020
...
i = 64; x = 0x00000001 // !!!
but i = 37; x = 0x00000000
скажите, пожалуйста, это фича, и я что-то пропустил в K&R, или эпическая бага?
p.s. в свою очередь >> довольно православен, и значение отличное от нуля у него только при сдвиге на 0
| ← назад |