И это всё МОЁ

Учитывая не малое число откликов и отсутствие возражний
по теме простейшей программы продолжаем, с учётом замечаний и идей…


Задание к следующему конкурсу звучит примерно так:


Написать на любимом языке программу, которая демонстрирует использование массива данных и применяет по ней цикл.


Условия:



  1. ясность, наглядность, понимаемость и простота восприятия

  2. минимализм, краткость не в ущерб наглядности и пункту выше


Начну со своего любимого Си , опять-таки с учётом полученного опыта и «набитых шишек».


Почему многие преподаватели и авторы книг, постов в блогах демонстрируют в качестве «пробы пера» дополнительные вводные переменные из массива и переменных цикла по нему, когда это загромождает код и усложняем новичком его восприятие.


Все рассказывают, про функцию main в Си, но молчат (видимо, откладывая на потом), что в её заголовке уже есть в качестве параметров и скалярная переменная argc и, логически связанный с ней, массив строк argv. Их ведь сразу можно использовать! Но почему же эти педагоги от программирования сразу не объясняют назначение и смысл этих переменных? Ведь всё равно придётся это проходить. Не проще ли их сразу начать использовать для демонстрации возможностей языка?
И по ходу дела рассказать про циклы, логические выражения и условия в операторах…


У меня получилось всего 5 строчек простого и наглядного кода на Си. Вот текст файла arr_cycl.c:


#include <stdio.h>
void main(int argc, char* argv[]){
for(argc-- ; argc>=0 ; argc--)
printf("argv[%i]=%s\n" , argc, argv[argc]);
}


Компиляция и демонстрационный прогон:


gcc arr_cycl.c && ./a.out раз два три
argv[3]=три
argv[2]=два
argv[1]=раз
argv[0]=./a.out


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


Тут можно многое рассказывать новичку в программировании про его нюансы: например, что наибольший индекс (крайний элемент) - это размер массива за вычетом 1, потому, что наименьший индекс - это нуль (нулевое смещение в Си).
И это условие выполняется в первой части оператора for


Жду нечта аналогичного на других языках с разъяснениями. Даёшь простые и понятные альтернативы набившим оскомину заскорузлым подходам к изучению программирования (пробам пера)!



P.S.:



Кстати, наш насущный bash - тоже интересен тем, что там, в отличие от классического Bourne Shell - есть массивы.









 ,








И это всё МОЁ

Собственно предлагаю обсудить тему.


Главные вопросы:


*стабильность подключения и работы


*опыт эксплуатации


*проброс принтеров и сетевая печать


Последний вопрос актуален, так как устанавливать принтеры клиентов на самом сервере не представляется возможным, нужно чтобы все работало автоматом.









 , ,








И это всё МОЁ
И это всё МОЁ

Приветствую.


Суть такая. Есть usb диск, подключенный к подкроватному серверу, автомонтирование диска прописано в /etc/fstab. Этот диск нужен только для того, чтоб создавать резервные копии особо важных данных на нем.


Но, если, вдруг, сервачок перезагрузился и не найдет этот диск, то загрузка системы остановится.


Как сделать так, чтоб загрузка продолжалась не смотря на отсутствие этого диска?









 ,








И это всё МОЁ

Иногда нужно работать в нескольких операционных системах одновременно. В таких случаях на помощь приходят технологии виртуализации и, в частности, программа VirtualBox. Если вы ещё не знаете, как установить Ubuntu, вам может быть интересна статья об установке Ubuntu. Установка нужной системы в виртуальную машину не решает все проблемы. По умолчанию, нет никакой интеграции между хостом и гостевой машиной - мы не можем передавать файлы, изменять расширение экрана и использовать сложные графические программы. Но есть решение - установка дополнений гостевой ОС. Дополнения гостевой ОС VirtualBox позволяют: Использовать общую папку для обмена файлами между системами; Использовать общий буфер обмена; На лету изменять расширение


Запись Установка дополнений гостевой ОС Ubuntu впервые появилась Losst.






@темы: ubuntu, виртуализация, Система

И это всё МОЁ

Всем привет, подскажите возможно ли в Linux и как осуществить подписку на какое либо событие - т.е. когда событие происходит система вызывает программу подписавшуюся на это событие, в винде есть такое, можно конечно заранее запустить скрипт вставить в цикле sleep и проверку на событие но это в наше время во первых будет неграмотно, в винде уже так давно очень редко делают, во вторых будет сьедать немного ресурсов системы впустую, в частности например хочу сделать автоматическое сохранение правил iptables - только в правила внесены какие то изменения - система сразу вызывает мой простенький скрипт в котором прописано сохранение настроек - iptables-save >…
Так как в линуксе вся система и её настройки - это файлы то я так понимаю что для проверки настроек iptables на предмет изменения надо мониторить состояние какого то из файлов в /proc/net/ - как только файл с настройками iptables изменен вызывается мой скрипт, но какой там из файлов отвечает за настройки iptables тоже непойму









 








И это всё МОЁ

Привет! Сижу на арче, использую sway, хочу, чтобы все приложения выглядели одинаково (почти). Установил эти пакеты: breeze, breeze-gtk. В lxappearance успешно установил темную тему, в qt5ct в выпадающем списке вижу только светлую (Breeze), других нет. Кто ставил эту тему, поделитесь опытом, куда спрятана темная версия для qt?









 , , , ,








И это всё МОЁ

Собственно, сабж.


Greetings! After three months in /testing, the PAM merge into the main tree
is now complete. When updating, be sure to install the new pam, cracklib, and
libpwquality packages or you may find yourself locked out of your machine.
Otherwise, these changes should be completely transparent and you shouldn't
notice any obvious operational differences. Be careful if you make any changes
in /etc/pam.d/ - leaving an extra console logged in while testing PAM config
changes is a recommended standard procedure. Thanks again to Robby Workman,
Vincent Batts, Phantom X, and ivandi for help implementing this. It's not
done yet and there will be more fine-tuning of the config files, but now we
can move on to build some other updates. Enjoy!


https://mirror.yandex.ru/slackware/slackware64-current/ChangeLog.txt








 ,








И это всё МОЁ

Всем доброго времени суток!
На CentOS 7 на локальном сервере «SRV2» после настройки BIND происходит ошибка по разрешению зоны:

nslookup SRV2
;; connection timed out; no servers could be reached

nslookup SRV2 172.16.11.10
;; connection timed out; no servers could be reached

При том обратная зона работает:

nslookup 172.16.11.10
Server: 172.16.11.10
Address: 172.16.11.10#53

10.11.16.172.in-addr.arpa name = SRV2.Rosa-software.ru.

Правила Firewalld прописал. Сеть настраивал через NetworkManager

Addresses: 172.16.11.10/24
Gateway: 172.16.11.1
DNS Servers: 172.16.11.10
Search domains: Rosa-software.ru

Вывод resolvconf:

# Generated by NetworkManager
search Rosa-software.ru
nameserver 172.16.11.10

Конфигурационный файл named.conf:

options {
directory "/var/named";
listen-on { 127.0.0.1; localhost; 172.16.11.10; };
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};

zone "." IN {
type hint;
file "named.ca";
};

zone "forward.bind" {
type master;
file "master/forward.bind";
};

zone "11.16.172.in-addr.arpa" {
type master;
file "master/11.16.172.in-addr.arpa";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Конфиг forward.bind:

$TTL 604800
@ IN SOA Rosa-software.ru. root.Rosa-software.ru. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS Rosa-software.ru.
@ IN A 172.16.11.10

SRV2 IN A 172.16.11.10

www IN CNAME SRV2.Rosa-software.ru.

Конфиг 11.16.172.in-addr.arpa:

$TTL 604800
@ IN SOA Rosa-software.ru. root.Rosa-software.ru. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS Rosa-software.ru.
10 IN PTR SRV2.Rosa-software.ru.

Подскажите, куда копать
P.S. На Debian все спокойно работает >_<








 , ,








И это всё МОЁ

Пытаюсь сделать соперника компьютера, игра сама похожа на доту только шашками, нужно используя ходы вверх,вниз,влево и вправо за ход пройти мимо шашек соперника и раньше встать на позиции соперника изначальные по очереди, клетки 8*8 поля, 9 твоих и 9 соперника, надо пройти по диагонали из угла в угол. проблема в том что шашки не могут проходить через друг друга и стоит выбор в выборе могущей походить, только у меня рекурсия и stack overfow выпадает когда я не выбиваю из массива те которые походить не могут

bool Game::Move_UpAI(int i,int j)
{
if (i != 0 && Matrix[i - 1][j] == 0)
{
Matrix[i - 1][j] = Matrix[i][j];
Matrix[i][j] = 0;
ChessY[Matrix[i][j] - 1] += 0.2;
std::cout << "MoveUp AI" << std::endl;
return true;
}
else
return false;
}
void Game::ReccurentWalk(int numbernotuse)
{
current = -1, currentI = -1, currentJ = -1;
for (int i = 10; i < 18; i++)
if (!ai[i] )
{
current = i;
if (current == numbernotuse)
continue;
break;
}
for (int i = 0; i < 8; i++)
for (int j = 0; j < 8; j++)
if (Matrix[i][j] == current)
{
currentI = i;
currentJ = j;
break;
}
if (!Move_UpAI(currentI, currentJ))
if(!Move_LeftAI(currentI, currentJ))
{
ReccurentWalk(current);
}
// Move_LeftAI(currentI, currentJ);
}
void Game::AI()
{
if (secondplayer)
{
secondplayer = false;
firstplayer = true;
ReccurentWalk(-2);
if (currentI == 0 && currentJ == 0)
{
ai[9] = true;
ReccurentWalk(9);
}








 , ,








И это всё МОЁ
Компания Google представила релиз web-браузера Chrome 83. Одновременно доступен стабильный выпуск свободного проекта Chromium, выступающего основой Chrome. Браузер Chrome отличается использованием логотипов Google, наличием системы отправки уведомлений в случае краха, возможностью загрузки модуля Flash по запросу, модулями для воспроизведения защищённого видеоконтента (DRM), системой автоматической установки обновлений и передачей при поиске RLZ-параметров. Из-за перевода разработчиков на работу на дому в условиях пандемии коронавируса SARS-CoV-2 выпуск Chrome 82 был пропущен. Следующий выпуск Chrome 84 запланирован на 14 июля.



И это всё МОЁ

Привет.


Установил систему Linux Mint 19.3 Tricia на быструю USB флешку. Буду использовать как системную. Устанавливал все по умолчанию.


Диск /dev/sdb: 117,9 GiB, 126567317504 байт, 247201792 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0x22943bab

Устр-во Загрузочный начало Конец Секторы Размер Идентификатор Тип
/dev/sdb1 * 2048 247199743 247197696 117,9G 83 Linux


Подмонитировано так


/dev/sdb1 on / type ext4 (rw,relatime,errors=remount-ro)


При загрузке системы возникает тут пауза на полторы минуты:


[    3.585360] scsi 6:0:0:0: Direct-Access     SanDisk  Extreme          1.00 PQ: 0 ANSI: 6
[ 3.585639] sd 6:0:0:0: Attached scsi generic sg1 type 0
[ 3.585883] sd 6:0:0:0: [sdb] 247201792 512-byte logical blocks: (127 GB/118 GiB)
[ 3.587051] sd 6:0:0:0: [sdb] Write Protect is off
[ 3.587054] sd 6:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 3.587281] sd 6:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 3.592272] sdb: sdb1
[ 3.593656] sd 6:0:0:0: [sdb] Attached SCSI removable disk
[ 92.468472] raid6: sse2x4 gen() 16199 MB/s
[ 92.516468] raid6: sse2x4 xor() 11155 MB/s
[ 92.564473] raid6: sse2x2 gen() 13632 MB/s


Как избавиться от этой задержки?


Раньше на linux mint 17.2 при подобной установке грузилось все за 15 секунд с подобной USB флешки.









 ,








И это всё МОЁ

Здравствуйте уважаемые форумчане!Обращаюсь с помощью в таком вопросе - имеется ноутбук с двумя видяхами intel hd 630 и nvidia 1050. Соль в следующем,схема вывода видео по видеовыходам :



  1. HDMI (подключен к Intel)

  2. MiniDisplayPort1 (подключен к Intel)

  3. MiniDisplayPort2 (подключен НАПРЯМУЮ к дискретной nvidia)


Проблема такая - пытаюсь вывести видео на внешний монитор через порт который напрямую подключен к нвидиа и имею черный экран,система как будто даже незнает что туда можно вывести изображение,вроде как сама видяха не работает или работает в другом режиме?Притом в log файле иксов,есть строки которые показывают что моник он как раз таки видит и даже показывает его название и порт,но уже после загрузки gnome или любого другого де, вывод на моник не возможен.
К слову скажу что на винде10 и самое главное что на убунту эта фича вполне себе сносно работает,тоесть видео есть и в настройках показывается что я юзаю нвидиа напрямую без интела.


Помогите пожалуйста настроить именно на арче, вывод на внешний монитор с дискретной видеокарты
Использую дистрибутив arch linux, драйвер intel x86mesa,нвидиа проприетарная,так же юзаю прайм,тоесть в играх дискретка помогает интелу. Надеюсь внятно смог описать проблему


P.S. могу предоставить любые логи и информацию из терминала если это понадобится









 , ,








И это всё МОЁ

Приветствую, комрады!

Имеем аппаратный контроллер Adaptec 51645. На нем был собран массив raid-10 из 6 дисков. При попытке расширить его с помощью arcconf modify на еще 2 свежедобавленных диска сервер ушел в аут.
После перезагрузки логический диск пропал, все физические диски видны и в нормальном состоянии.

Имеет кто опыт? Данным капец или можно восстановить логический диск?








 








И это всё МОЁ

Привет многоуважаемый all,

пишу из горящего такнка... мой личный thinkpad котрый в основном использовался как desktop (в смысле на столе стоял) начал помирать, и продолжает помирать прямо сейчас.

Присматриваюсь к https://puri.sm/products/ из-за их попыток сделать свободные загрузчики, но сильно много времени вникать в этот огород нет... Также помню кто-то на fb продавали «разлоченные» и с отключённым ME переделанные синкпады, но боюсь ждать сейчас посылки с Гонг Конга нет времени. (ноут вырубается каждые пол часа, он старый.)

Хотелось бы отделяемую батарею, чтобы можно было добавлять более мощную (если такое сейчас есть на рынке), желательно встроенные LTE modem, идеально отключаемы железно радио и тд. удобная док станция, так скрин?

Бюджет до 5k баксов.

Apple не предлагать, они рингтоны за деньги продают :)








 ,








И это всё МОЁ

def create_block(name, amount, to_whom, prev_hash=''):
# Создаем блок


data = {
'name': name,
'amount': amount,
'to_whom': to_whom,
'hash': prev_hash,
}

with open(blockchain_dir + filename, 'w') as file:
json.dump(data, file, indent=4, ensure_ascii=False)

Вопрос в том, как информации записанной в эти блоки присвоить уникальный номер? Можно подробно объяснить. Я просто новичок в питоне.









 ,








И это всё МОЁ


Platform: Windows
Version: AIMP v4.50 or newer






21:14

Sip и swarm

И это всё МОЁ

Посоны, кто-нибудь хоть раз сращивал сип со свармом? Сварм затем что все остальное под ним, и пилить рядом отдельный стек того же pcmk будет жёстко, а рулить станциями вручную это совсем кисло.


Дано - два выходных фрисвича, регистраций нет, только работа с провайдером, так что по сути оно stateless в глобальном плане (sip-сессии разумеется надо держать)


Все rtp выставлены в host-mode, плюс торчит 5060 ингресс со свармовой балансировкой. В сессии отправляется белый адрес ноды, так что rtp вроде все ок, приходит куда сказали.


Балансер сварма вроде как на ipvs работает, поставил для нужной fw-маски persistence engine = sip, тут по идее тоже ок, сигнализация между хостами не плутает.


Вроде бегает, но чёт сцыкотно. Кто знает какие ещё подводные камни есть?









 , ,








20:58

VP9

И это всё МОЁ

Крайняя обнова на монжара! VP9 аппаратно работает на Радоне RX470. Хромиум! Урааа! Наконецто! Я думаю с месой и на других картах работает! Почему друзья с Арчем молчат до сих пор, у них же обновы раньше приходят! Правда КДЕ немного сломали, но это хрень, завтра поправлю!









 , ,








И это всё МОЁ

В dwm некоторые патчи не совсем корректные(нужно после patch -p1 < фиксить некоторые моменты). Хочу для себя сделать патчи, после которых не нужно будет ничего фиксить. Итак, делаю две директории


mkdir {old,new}


далее в директорию old закидываю чистый dwm + все патчи в директорию patch


Далее делаю


cp -prf old new
cd old/dwm
patch -p1 < ../patch/1.dwm-autostart-20161205-bb3bd6f.diff
cd ../../


далее выполняю diff на две директории и формирую патч


diff -ur new old > 1.dwm-autostart-20161205-bb3bd6f_my.diff
``

далее удаляю old и беру оригинальное состояние до patch
```bash
cp -prf new old


пробуй накладывать СВОЙ патч


cd old/dwm
patch -p1 < ../../patches/1.dwm-autostart-20161205-bb3bd6f_my.diff
can't find file to patch at input line 4
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff -ur new/dwm/dwm.c old/dwm/dwm.c
|--- new/dwm/dwm.c 2020-05-20 20:29:21.000000000 +0300
|+++ old/dwm/dwm.c 2020-05-20 20:51:40.458254267 +0300
--------------------------
File to patch:


Как от этого избавиться, чтобы вручную не указывать файл dwm.c?









 , ,