LINUX.ORG.RU

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

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

Форум — Development

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

 , ,

vromanov
()

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

Форум — Admin

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

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

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

Требования 3

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

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

 , , ,

Twissel
()

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

Форум — Admin

Из чистого любопытства, просто для ознакомления, поднял две виртуалки 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 самых любимых книг

Форум — Talks

Делитесь:)

 

bryak
()

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

Форум — Development

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

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

 ,

LINUX-ORG-RU
()

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

Форум — Development

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

 , ,

SZT
()

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

Форум — Talks

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

 

te111011010
()

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

Форум — Talks

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

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

>>> Просмотр (1366x768, 1714 Kb)

 ,

spijet
()

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

Галерея — Скриншоты

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

>>> Просмотр (2560x1600, 595 Kb)

 , , ,

pasl
()