Каков статус btrfs сегодня?
Продолжает как раньше терять данные, забивать всё мета данными так что потом сама себя починить не может и прочие старые проблемы?
Продолжает как раньше терять данные, забивать всё мета данными так что потом сама себя починить не может и прочие старые проблемы?
Пусть даже гики для гиков за 100500 денег. Даже если это будет кирпич а-ля старый тинкпад где вместо мобильного проца поставили декстопный но зато можно самому заменить сгоревший или сделать апгрейд.
Какой бы мощный телефон у меня не был эта дрянь всегда течёт памятью и сыпет ошибками. Прямо худший пример опенсорца.
rtorrent проработал у меня неделю. Ман нормальный хрен найдешь. Воевал с dht(ничего не видит). Довоевался что dht было максимум 20 пиров. Соответственно раздает очень плохо. А качает еще хуже. Я так понял у него не работает peer exchange.
Вчера ночью переехал на трансмиссию. Качать стало лучше. Даже качает брошенные торренты с 1 сидом через диалап автора. Не порадовал жор цпу. rtorrent жрал меньше в 1.5 раза. Понравилось что есть нативные удаленные клиенты под все ос и не по одной штуке. Сейчас управляю с андроид телефона. На сервере ncurses клиент
С ходу мне сказали что qbittorrent будет еще лучше тк умеет bittorent 2.0 и еще какие то протоколы и связь с самым популярным uTorrent будет около 100%.
Про делюгу сами мне расскажите.
PS сравниваю все с uTorrent 2.2.1 на соседней вендо машине где dht всегда около 300+ и качает все моментально. А rtorrent даже рядом соседнюю машину в упор не видел пока через общий рабочий трекер не помог.
PPS порты все открыл. И даже 6881
Раньше и без js все ссылки были видны. А теперь там кружочек анимации загрузки и нифига не скачать. Аш бесит. В html коде тоже ссылок не замечено. Ещё оно требует веб компонент которых нету например в паленуме. Да и вообще в альтернативных браузерах без зашквара.
Итого только убогой хром вынужден использовать. А это по умолчанию бб.
А как например скачать на сервере через links?
Короче зла не хватает. Чтобы они смузи подавились.
Перемещено hobbit из general
Хочу использовать вместо постоянного выбора между обычным изменяемым полем и заданием константы из параметров шаблона
Те вместо
#include <cstdint>
#include <cstdlib>
#define BGA__ARRAY_SIZE(arrayArg) (sizeof((arrayArg)) / sizeof((arrayArg)[0]))
template<class ValueArg, size_t sizeArg, class IndexArg = size_t>
struct Stack_Storage_Static {
typedef ValueArg Value;
typedef IndexArg Index;
static const Index size = sizeArg;
Value data[size];
};
template<class ValueArg, class IndexArg = size_t>
struct Stack_Storage_Dynamic {
typedef ValueArg Value;
typedef IndexArg Index;
Value* data;
Index size;
};
template<class StorageArg>
struct Stack {
typedef StorageArg Storage;
typedef typename Storage::Value Value;
typedef typename Storage::Index Index;
Storage storage;
Index topIndex = 0;
Index size() const {
return this->storage.size;
}
void push(Value const& v) {
if(this->topIndex < this->size()) {
this->storage.data[this->topIndex++] = v;
};
}
};
int main() {
Stack<Stack_Storage_Static<int, 16> > staticStack;
staticStack.push(1);
int dynamicStack_data[16];
Stack<Stack_Storage_Dynamic<int> > dynamicStack;
dynamicStack.storage.data = dynamicStack_data;
dynamicStack.storage.size = BGA__ARRAY_SIZE(dynamicStack_data);
dynamicStack.push(1);
return 0;
}
такое
#include <cstdint>
#include <cstdlib>
#define BGA__ARRAY_SIZE(arrayArg) (sizeof((arrayArg)) / sizeof((arrayArg)[0]))
template<class ValueArg, class IndexArg = size_t>
struct Stack {
typedef ValueArg Value;
typedef IndexArg Index;
private:
Index topIndex = 0;
//# спрячем поля чтобы гарантированно пользователь не смог их изменить. Даже через const_cast. Тк мы и сами не можем изменить поля то фактически они есть жеткие константы
Value* const data;
const Index m_size;
public:
Stack(Value* data_, Index size_): data(data_), m_size(size_) {
}
Index size() const {
return this->m_size;
}
void push(Value const& v) {
if(this->topIndex < this->size()) {
this->data[this->topIndex++] = v;
};
}
};
//# тут компилятор знает адрес fixedStack_data и размер и может заинлайнить их в методы. Более того - вообще выкинуть память под указатель на данные и размер если все методы есть инлайн. Те фактически это должно работать как Stack<Stack_Storage_Static<int, 16> > но не инстанцировать новые методы класса на каждый размер данных
int fixedStack_data[16];
Stack<int> fixedStack(fixedStack_data, BGA__ARRAY_SIZE(fixedStack_data));
int main() {
fixedStack.push(1);
size_t dynamicStack_size = 16; //# но может быть задано пользователем
//# тут уже dynamicStack_data с неизвестным адресом и размером. Оптимизация не выйдет. Работает как Stack<Stack_Storage_Dynamic<int> >
int* dynamicStack_data = new int[dynamicStack_size];
Stack<int> dynamicStack(dynamicStack_data, dynamicStack_size);
dynamicStack.push(1);
return 0;
}
Что это дает? Меньший объем исходного кода. Меньше бойлерплейтной возни с шаблонами. Значительно меньший шанс случайно нарожать кучу одинаковых методов, отличающихся только размером контейнера (было такое).
Понятно что нужно проверять работает ли оптимизация на каждом интересующем компиляторе. Но тут вопрос чисто теоретический. Равноценная ли эта подмена?
И сразу параллельный вопрос. Допустим ::std::array<int, size>. Возможно компилятор достаточно не дебил и не рожает одинаковые методы для разных размеров а просто сам создает новое динамическое поле размера? Короче как сделать лучше?
И да. Это все чтобы экономить на спичках в условиях мелко контроллеров.
Типа как gzip по дефолту удаляет архив.
А для rm емнип нужно создать спец файл корне против rm -rf /
Накидайте ссылок или просто кто что знает.
********************************************************************************************************************************************************************************************************************************************************************************************************************************
****************************************************************************************************************************
********************************
Всего голосов: 402
Адская боль (уже есть или предстоит, например у зубного врача). Отключаем нервы боли тумблером и ок.
Или допустим не спиться. А спать надо. Переводим мозг в режим сна форсированно воздействием на определённый нерв. Пусть это будет просто кнопка или программа на мк тут уже не важно.
Возможны просто всякие симуляции того что сейчас работает плохо а нужно чтобы хорошо или отлично.
Или я попал в окружение где женщин нет и не предвидится. Проще отключить половую систему чем вынужденно регулярно симулировать.
Или хотя бы официально есть такая альтернатива.
Чтобы было полное понимание процесса. Без волшебных окошек визарда после которых возникают левые ошибки и юзер впадает в ступор.
Типа
Я даже для дебиана не могу найти подобный гайд. Сразу окошки лезут.
Отключил pop3 без oauth2. Куча древних клиентов больше почту не получат. Валю на другой почта сервер. Гуглу желаю разориться.
Цифры + символы = 39 байт на полу глифы + до 19 байт на индексы (не обязательно)
Цифры + символы + буквы = 72 байт на полу глифы + до 96 байт на индексы (не обязательно)
Для любителей всяких микро микроконтроллеров типа attiny13
Байты без учета кода рисовая но он крайне тупой.
Идея изначально не моя.
Моя реализация https://github.com/bga/bit-font
> cat main.cpp
#include <type_traits>
int main() {
static_assert((::std::is_same<char, signed char>::value) == true);
static_assert((::std::is_same<char, unsigned char>::value) == true);
return 0;
}
> g++ -Wall -Wextra main.cpp
main.cpp: In function 'int main()':
main.cpp:4:2: error: static assertion failed
static_assert((::std::is_same<char, signed char>::value) == true);
^~~~~~~~~~~~~
main.cpp:5:2: error: static assertion failed
static_assert((::std::is_same<char, unsigned char>::value) == true);
^~~~~~~~~~~~~
Внутри же они все одинаковые. Стальной полированный блин и магнитная голова. Можно разметить блин и на 120гб и на 2 тб. Или это зависит от качества полировки блина? Типа пытаются разметить максимально пока бэды массово не пойдут?
Чтобы не рожал жирно таблиц а что то вида hash = s[1] + 2 * s[5]
Какую step down микро платку из Китая взять? Токи под 2А на выходе. Ток сна естественно как можно меньше.
Для всталяния в сомнительные хосты
Не обязательно 3.0 но желательно.
Беглый поиск на али ничего не дал.
У контроллеров флешек такая функция обычно бывает. Сам лично ставил микро переключатель на write protect ножку. А как быть с внешними hdd боксами?
Приснилась сегодня.
Есть стакан шириной W(нечетное) высотой H
ooooo
ooooo
ooooo
ooooo
ooooo
ooooo
ooooo
Из точки @ ([floor(W / 2), 0]) отпускают листик. Падать он может вниз или по диагоналям - #
oo@oo
o###o
ooooo
ooooo
ooooo
ooooo
ooooo
При этом не может пересечь края стакана. Те [x, y] -> [[x, y + 1], [min(x + 1, W - 1), y + 1], [max(x - 1, 0), y + 1]]
ooooo
o@ooo
###oo
ooooo
oooo@
@oo##
##ooo
Найти всевозможное количество путей из изначальной точки [floor(W / 2), 0] до дна.
PS тег haskell для привлечения математиков. Решить нужно аналитически, без рекурсивных программ в лоб.
Процессор строго x64 (такой хостер).
Выживет ли debian 11?
Или ставить debian 10 с мигрированием на 11 после окончания поддержи (август 2022)?
Задачи сервера
Спасибо.
Unihertz atom L https://aliexpress.ru/item/1005001602325985.html
Unihertz atom XL https://aliexpress.ru/item/1005001602669499.html
Обсуждение https://4pda.to/forum/index.php?showtopic=980110
Плюсы.
| ← предыдущие | следующие → |