LINUX.ORG.RU

Избранные сообщения zl0y

Превратить беззнаковое число в знаковое

 , ,

Язык C. Имеем на входе беззнаковое число, например, uint32_t. Но на самом деле в нем находится, например, 25 битовое знаковое число. В 25-м бите признак отрицательного числа, в 26..32 битах нули. Размер числа в битах задаётся параметром. Как бы более правильно сделать функцию типа int32_t to_signed32(uint32_t value, uint8_t bits)? Вижу вариант с кучей юнионов (по одному на каждое количество битов), ну и всякая арифметика.

vromanov
()

Enterprise своими руками

 , , ,

Нужно поднять почтовик на 150 юзеров, квота каждого юзера 50 Гб.

Как лучше организовать всю систему и резервное копирование данных с неё?

Стоит ли использовать дедики Хетцнера, например такой или есть что-то получше?

Требования 3

  • Достаточный размер дискового пространства;
  • Резервное копирование и/или отказоустойчивость;
  • Минимальная функциональность почтовика SMTP/IMAP и календарь событий/органайзер.

Насчет 2 пункта не уверен, правильно ли сформулировал, если что не так, поправьте.

Twissel
()

Осваиваем ZFS: как правильно готовить?

 , , ,

Из чистого любопытства, просто для ознакомления, поднял две виртуалки CentOS 8.2 (15 Гб под систему lvm), 4 виртуальных диска такого же размера в ZFS RAID 10.

zfs-0.8.5-1

zfs-kmod-0.8.5-1

В систему говноскриптом поставил LAMP, подмонтировал ZFS-пулл для его файлов.

Стащил скрипт со stackexchange

#!/bin/sh

#Setup/variables:

#Each snapshot name must be unique, timestamp is a good choice.
#You can also use Solaris date, but I don't know the correct syntax.
snapshot_string=DO_NOT_DELETE_remote_replication_
timestamp=$(/usr/bin/date '+%Y%m%d%H%M%S')
source_pool=data
destination_pool=data
new_snap="$source_pool"@"$snapshot_string""$timestamp"
destination_host=hostname

# Initial send:

# Create first recursive snapshot of the whole pool.
zfs snapshot -r "$new_snap"
# Initial replication via SSH.
zfs send -R "$new_snap" | ssh "$destination_host" zfs recv -Fdu "$destination_pool"

# Incremental sends:

# Get old snapshot name.
old_snap=$(zfs list -H -o name -t snapshot -r "$source_pool" | grep "$source_pool"@"$snapshot_string" | tail --lines=1)
# Create new recursive snapshot of the whole pool.
zfs snapshot -r "$new_snap"
# Incremental replication via SSH.
zfs send -R -I "$old_snap" "$new_snap" | ssh "$destination_host" zfs recv -Fdu "$destination_pool"
# Delete older snaps on the local source (grep -v inverts the selection)
delete_from=$(zfs list -H -o name -t snapshot -r "$source_pool" | grep "$snapshot_string" | grep -v "$timestamp")
for snap in $delete_from; do
    zfs destroy "$snap"
done

На ВМ-источнике создаю в подмонтированном каталоге текстовый файл. Запускаю скрипт.

Выхлоп:

cannot receive new filesystem stream: destination has snapshots (eg. data@DO_NOT_DELETE_remote_replication_20201207101336)
must destroy them to overwrite it
cannot create snapshot 'data@DO_NOT_DELETE_remote_replication_20201207103101': dataset already exists
no snapshots were created
WARNING: could not send data@DO_NOT_DELETE_remote_replication_20201207103101:
incremental source (data@DO_NOT_DELETE_remote_replication_20201207103101) is not earlier than it
cannot receive: failed to read from stream

Хотя на целевой ВМ никаких снепшотов, конечно, нет.

ЧЯДНТ?

Twissel
()

Ваши 10 самых любимых книг

 

Делитесь:)

bryak
()

Нашёл алгоритмического видео дядьку - палю годноту

 ,

Залипателям на картинки, таким как я, зайдёт норм. Рассказывает про базовые, но тем не менее фундаментальные вещи. (Хотя я только 4 ролика глянул , может я не прав).

Вот ещё от @xaizek ваще крутые визуализации

LINUX-ORG-RU
()

Тестирование сетевых программ - имитация плохого соединения

 , ,

Есть некая программа, которая отправляет UDP пакеты. Мне необходимо в целях тестирования иногда не отправлять ее UDP пакеты, а иногда их дублировать (вместо одного пакета отправим два таких же UDP пакета), или отправлять не в том порядке. И чтобы с входящими UDP пакетами тоже можно было что-то такое делать, т.е. надо имитировать всякие такие проблемы с сетью. Какие для этого существуют опенсорсные решения для Linux?

SZT
()

Откуда пошла мода писать «заграницей» вместо «за границей»?

 

Собственно, сабж. Ясно же, что это неправильно.

te111011010
()

Еды лайфхаков тред

 

Не люблю употребление слова «лайфхак» не к месту, но тут вроде к месту.

Берёте «плавленый» сырок «Дружба». Почему в кавычках? Потому что он ломается, а не как Хохланд, намазывается. Крошите его в картофельное пюре быстрого приготовления. Заливаете крутым кипятком. И он плавится! Можно и в нормальное пюре, но тогда это уже не лайфхак, так как требует более 10 минут на готовку.

Ненавидите чеснок? Берёте сыр, трёте на мелкой тёрке (обязательно мелкой, а не на крупной), добавляете майонез, и давите чеснок (и побольше, штучки три). Проверено многочисленными гостями: с чесноком на порядок вкуснее.

Берёте сахар и соусницу - маленькую сковородочку. Греете на плите. Сахар плавится и становится чёрной жидкостью. Поливаете этой жидкостью кусочки хлеба. Сахар-рафинад не подойдёт.

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

Не знаете что поесть на завтрак или на работе? Посмотрите картинку.

А какие ваши лайфхаки о еде?

by orm-i-auga Берёшь картошку, моешь, режешь не очищая на круглые ломти, посыпаешь солью, кидаешь сверху кусок масла и в микроволновку на 20 минут (не накрывая). Получается полупрожарено-полупроварено.

by jollheef Шаверма: помидоры черри, салат или руккола, болгарский перец заворачиваются в лаваш, потом под гриль на пару минут.

by dmxrand 1). Рецепт из-за которого мне на работе запретили готовить. Берем сосиски надрезаем с торцов «крестиками». Кладем в тарелку и заливаем пивом (чтоб чуть чуть сверху было). Ставим в микроволновку минут на 5 на 600 мощи... Пиво все выкипит. А сосиски будут вкусные. А коллеги злые....
2). Берём анаком. Варим его (именно варим) самую малость. Минуту не больше. Потом воду сливаем и обжариваем вермишель на подсолнечном масле.

by tcler когда надо быстро и сытно пожрать, вермишель (паутинку) в сковородку, заливаю водой, кетчупа туда, специй, как выкипит, еще яиц, замороженных овощей и сосисок туда же нарезать, за несколько минут все прожаривается и выходит вполне зачетно.

by chinarulezz Пару яиц разбить в кружку. Добавить щепотку муки. Нарезать салями мелкими кусочками и тоже в кружку. Размешать. Залить в сковородку разогретую в масле. Попарив, пожарив, вынуть получившийся блинчик на тарелку. Посыпать брынзой если есть. Сыром, если любитель. Добавить майонеза по вкусу (для меня обязательно). Летом - с помидорками сочетается очень.

by java_util_Random Пицца «Одминская»: Если пельмени случайно разморозились и слиплись, то, просто раскатать эту массу скалкой, помазать сверху кетчупом, посыпать сыром и добавить по вкусу помидорки, зелень и т.п., выпекать в духовке 15-20 минут на 200 градусах. Пельмени, желательно нормальные, не из мясных продуктов категории «Г».

by Shaman007 А еще в Японии весьма популярно простое блюдо, которое может приготовить любой европеец, но почему-то этого не делает. Идея проще пареной репы: само название omurice (омлет+рис) содержит базовый рецепт. Рис, сверху омлет. Рис можно разнообразить чем угодно (бекон, тушонка, тофу, рыба), омлет полить соусом.

by another Я сей термин (лайфхак) понимаю как бытовую хитрость, с помощью которой можно получить больше, лучше и быстрее, чем без нее. Не обязательно это должно укладываться в 5 минут.
Сначала жарим картошку до 2/3 готовности (можно и раньше, от продукта зависит). Потом закидываем сосиски, порезанные мелкими долями. Перед самым концом приготовления разбиваем пару яиц (или одно, если маленькая сковорода) и добавляем совсем чуть (совсем-совсем чуть) майонезика. Немного перемешать - и офигенно вкусное и нажористое для голодного школьника/студента блюдо. Если накрывать крышкой получится скорее мягкая каша из всего, если нет - то твердая, с жаренной корочкой картошка с добавками. В общем, это вам не омары с шампанским. :)

ZenitharChampion
()

Осенний воздух. Арч для души.

 ,

( немного истории )

  • Herbstluftwm, очень приятный static tiling wm. Единственное, к чему до сих пор не могу в нём привыкнуть — floating mode включается сразу на весь тег;
  • Termite, очень вкусный эмулятор терминала. Раньше жил на urxvt, но меня задолбало его поведение с выделением текста мышью и настройка через ~/.Xresources. Может быть я просто ниасилил;
  • Dzen2 — панелька. Т.к. herbstluftwm не имеет собственной панели, разработчик предоставляет небольшой скрипт для dzen2 прямо с WM. Скрипт мне понравился, и я его утянул себе (с небольшими изменениями).
  • Firefox с Vimperator, CTR, Stylish, и парочкой юзерстилей (grayscale-иконки неактивных вкладок и ночной CSS);
  • Sublime Text 3, в котором я сейчас попиливаю свои конфиги. Шрифт Monaco, 9pt;
  • Rofi. Удобная замена dmenu, в плане запуска программ. Также умеет работать как умное меню переключения окон и пускалка ssh-сессий (которую пока не удалось подружить с termite). Умеет fuzzy-поиск, на манер Command Palette в ST.

Шрифты используются из infinality-bundle, впервые в жизни поставил пакет и забыл. Разве что только доставил парочку шрифтов для панели\редактора\терминала: Tewi, Siji, Monaco и Iosevka. Конфиги доступны здесь. Также все скрины доступны в PNG в этом альбоме: http://imgur.com/a/kIKOd

spijet
()

XMonad и dzen2 очень затюнены :)

 , , ,

Не нашел нормальной панели для х-монады, в итоге взял дзен2 в качестве бекэнда для рендеренга (по ходу дела нашел 2 бага, пофиксил их но похоже его никто не поддерживает, уже больше года висит PR), добавил самописных виджетов. На первом робочем столе флоутинг лейаут для скайпа и прочих мессанджеров. Все иконки из шрифтов и реагируют на клики. На скрине емакс с частью конфига х-монады. Железяка макбук-про-ретина.

pasl
()