[NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

serzh-z писал(а):
04.02.2015 02:18
На самом деле, для меня, как для разработчика, абсолютно очевидно, почему большинство дистрибутивов переключилось на systemd. Как для администратора - только радует. Как для пользователя - не вызывает вопросов. Как для теоретика - интересует что будет после systemd, но не вызывает сомнений в том, что и дальше окружение Linux будет двигаться в том же направлении.
Я тоже понимаю, и именно поэтому не виню ни их ни вас. Во всём виноват только один вполне конкретный человек, не раз упоминавшийся в этой теме.
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

Кстати, serzh-z, как вы считаете, не пора ли подправить лозунг на distrowatch.com ("Put the fun back into computing. Use Linux, BSD")? Я в том смысле, что вряд ли возможно получить этот самый fun от системы с systemd, вы не находите?
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение drBatty »

serzh-z писал(а):
04.02.2015 02:18
На самом деле, для меня, как для разработчика, абсолютно очевидно, почему большинство дистрибутивов переключилось на systemd.

для меня тоже очевидно, RH придумала очередную NIH, и все побежали её себе вкорячивать, для совместимости с RHEL.
serzh-z писал(а):
04.02.2015 02:18
но не вызывает сомнений в том, что и дальше окружение Linux будет двигаться в том же направлении.

вы так говорите, как будто-бы в этом есть что-то хорошее.
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Hephaestus »

Vascom писал(а):
03.02.2015 15:43
Ничего с ясностью и ошибками не случится, поскольку искать ошибку в паре строк уж точно проще, чем в простыне. Ну а функционал не сложно и нарастить как требуется, делов-то.
В вашем случае добавляются ещё и ошибки этой сложной простыни, в то время как в системд все системные ошибки можно отловить заранее, а оставшаяся часть из нескольких строк легко проверяется на ошибки.
Это подразумевает, что нет ошибок в самом бинарнике, который парсит Ваши простые конфиги. Как там правильная фамилия этого бинарника? Я просто не в курсе.
Так вот, если в этот бинарник вкрадётся какая-нибудь трудноуловимая ошибка, и в результате что-то будет работать не совсем так, как ожидалось, то... можно до посинения исправлять свои простые конфиги - не поможет. Там, собственно, даже не понять будет, кто виноват - бинарник или конфиг. И даже если выяснить достоверно, что дело в бинарнике, то единственный выход - багрепорт Леннарту и ждать реакции. Такой сценарий гораздо более вероятен, чем Вы думаете, ибо Леннарт постоянно там что-то меняет. А это, кстати, потенциальный источник ошибок.

В случае с классическим SysVinit такой сценарий практически исключён, ибо как сказали выше, кода в init мало, оттестирован многократно, а все потенциально проблемные вещи вынесены в скрипты, доступные для редактирования.

Vascom писал(а):
03.02.2015 16:16
Кстати, системд легко позволяет использовать старые простыни. Так что всё же непонятно, что конкретно вас не устраивает.
Это не совсем правда. Сам Леннарт писал в своей статье, что не каждый скрипт будет работать в такой схеме. При этом, подозреваю, что он сам не сможет сказать наверняка, заработает скрипт или нет. Это лотерея, проще говоря.
И опять-таки. Был SysVinit+script. Теперь Systemd+config+script. При этом script тот же самый. Спрашивается, какой смысл в systemd, если от своего "большого и неудобного" скрипта я всё равно в итоге не избавлюсь?

Vascom писал(а):
03.02.2015 16:29
Так озвучьте эту "основную часть" претензий к системд. Вкратце и без эмоций.
Основная претензия к systemd - попытка "объять необъятное". Разработка, которая изначально заявлялась как "система инициализации" впоследствии превратилась в "системный менеджер" и дальнейшее развитие таким манером превратит его в самостоятельную ОС. При этом, прежний инструмент, который "поглощен" systemd, может завершить самостоятельное существование. Один из примеров - udev, возможно, есть и другие. Не вижу в этом ничего хорошего.
Более субъективная претензия: необходимость переучиваться, осваивать новые инструменты, затрачивать время и силы на замену своих init-скриптов конфигами (там где это возможно). В результате всё равно не удастся полностью избавиться от скриптов - это раз, и два - непонятно, зачем всё это нужно, если у меня и так всё работало?
Теперь, собственно, вопрос к Вам: Чем так плоха sysvinit, что её непременно нужно с кровью выдирать из системы и заменять на другую?
От Леннарта был только один внятный агрумент - сложность скриптов, которые "имеют подводные камни". Но это его (Леннарта) личная проблема, а не проблема всех дистров.
Изложите Ваши аргументы по этому поводу.
А заодно, попытайтесь убедить меня, что скрипты сложны и имеют подводные камни, а язык Си (на котором творит Леннарт) лишён этих недостатков, то есть он простой и без подводных камней. Я вот сам никак не смог в этом убедиться.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение drBatty »

Hephaestus писал(а):
05.02.2015 15:18
А заодно, попытайтесь убедить меня, что скрипты сложны и имеют подводные камни, а язык Си (на котором творит Леннарт) лишён этих недостатков,

аплодирую стоя!
Язык Си конечно "без подводных камней", да. И UB там на каждом шагу не бывает, да. Леннарт уже вычислил

Код: Выделить всё

x-- - --x;

да?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

drBatty писал(а):
05.02.2015 16:35
Язык Си конечно "без подводных камней", да. И UB там на каждом шагу не бывает, да.
И тем не менее, писать правильные шелл-скрипты существенно сложнее писать правильного сишного кода. Несравненно сложнее. Давайте проведём эксперимент - напишите шелл-скрипт, перемещающий файл. Скрипту на вход передаются старое путь до файла-некаталога и новый. А я попробую найти ошибку.
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

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

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19300
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Bizdelnick »

yoshakar писал(а):
05.02.2015 22:26
напишите шелл-скрипт, перемещающий файл

Код: Выделить всё

#!/bin/sh
mv "$@"

А теперь напишите то же самое на C.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

Bizdelnick писал(а):
05.02.2015 23:19

Код: Выделить всё

#!/bin/sh
mv "$@"

А теперь напишите то же самое на C.

Увы, это не работает:

Shell

$ touch -- -r $ ./mv.sh -r r mv: illegal option -- r usage: mv [-f | -i | -n] [-hv] source target mv [-f | -i | -n] [-v] source ... directory


А вот на C:

Код: Выделить всё

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv) {
    rename(argv[1], argv[2]);
    return EXIT_SUCCESS;
}

Shell

$ cc mv.c -o mvc $ touch -- -r $ ./mvc -r r

Всё работает.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19300
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Bizdelnick »

yoshakar писал(а):
05.02.2015 23:41
Увы, это не работает:

Это работает, Вы просто запускаете неправильно.

yoshakar писал(а):
05.02.2015 23:41
Всё работает.

Нет, это как раз не работает.

Shell

% gcc -o mv mv.c % touch somefile % ./mv somefile /tmp/file % echo $? 0 % ls /tmp/file ls: невозможно получить доступ к /tmp/file: Нет такого файла или каталога % ls somefile somefile %

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

Bizdelnick писал(а):
05.02.2015 23:50
Это работает, Вы просто запускаете неправильно.
Когда программа делает не то, что от неё требуется - это называется "не работает". Программа должна была получить на вход два аргумента - начальный путь и конечный - и переместить файл. Ваша программа этого не делает, она ошибочная, причём ненамеренно ошибочная - вот что главное.

Bizdelnick писал(а):
05.02.2015 23:50
Нет, это как раз не работает.
Это у вас что-то с окружением не то:

Shell

~ % touch somefile ~ % ./mvc somefile /tmp/file ~ % ls /tmp/file /tmp/file ~ %

Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19300
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Bizdelnick »

yoshakar писал(а):
05.02.2015 23:58
Когда программа делает не то, что от неё требуется - это называется "не работает".

Программа делает то, что от неё требуется. mv.sh -- -r r

yoshakar писал(а):
05.02.2015 23:58
Программа должна была получить на вход два аргумента - начальный путь и конечный - и переместить файл. Ваша программа этого не делает, она ошибочная, причём ненамеренно ошибочная - вот что главное.

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

Код: Выделить всё

#!/bin/sh
mv -- "$1" "$2"
Что характерно, ни одной строки кода не добавилось. А вот чтобы Ваша программа на C начала работать в моём вполне нормальном окружении (Debian Jessie, если интересно), придётся её размер увеличить куда более существенно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

Bizdelnick писал(а):
06.02.2015 00:19
Что характерно, ни одной строки кода не добавилось. А вот чтобы Ваша программа на C начала работать в моём вполне нормальном окружении (Debian Jessie, если интересно), придётся её размер увеличить куда более существенно.
Увеличение размера - это не так уж страшно, хотя и неприятно. А то что ни одной строчки кода не добавилось - это не особо полезно: ядерный реактор уже взорвался, а спутник уже упал.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19300
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Bizdelnick »

yoshakar писал(а):
06.02.2015 00:26
ядерный реактор уже взорвался, а спутник упал.

Неа. Я ведь не запускал скрипт с неверными параметрами.

Кстати, ещё одна ошибка в Вашем коде:

Shell

% valgrind ./mv ==29235== Memcheck, a memory error detector ==29235== Copyright © 2002-2013, and GNU GPL'd, by Julian Seward et al. ==29235== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==29235== Command: ./mv ==29235== ==29235== Syscall param rename(oldpath) points to unaddressable byte(s) ==29235== at 0x4E9C5C7: rename (syscall-template.S:81) ==29235== by 0x400535: main (mv.c:5) ==29235== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==29235== ==29235== ==29235== HEAP SUMMARY: ==29235== in use at exit: 0 bytes in 0 blocks ==29235== total heap usage: 0 allocs, 0 frees, 0 bytes allocated ==29235== ==29235== All heap blocks were freed -- no leaks are possible ==29235== ==29235== For counts of detected and suppressed errors, rerun with: -v ==29235== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) %

Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

Bizdelnick писал(а):
06.02.2015 00:27
Кстати, ещё одна ошибка в Вашем коде:
Это не ошибка, это так и задумано: внешний код/система должны соблюдать контракт использования.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19300
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Bizdelnick »

yoshakar писал(а):
06.02.2015 00:29
Это не ошибка, это так и задумано: внешний код/система должны соблюдать контракт использования.

Мда, искренне надеюсь, что Леннарт такой логикой не руководствуется...
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

А вот если бы они писали на хаскеле - их можно было бы хотя бы за это уважать. Ненавидеть и уважать.
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение drBatty »

yoshakar писал(а):
05.02.2015 22:26
писать правильные шелл-скрипты существенно сложнее писать правильного сишного кода.

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

Вот только в данной задаче это не имеет значения, Slackware Linux без всего и с SSD тоже грузится за секунду, как и systemd. Хотя в слаке всё сделано на bash'е.

yoshakar писал(а):
05.02.2015 22:26
Давайте проведём эксперимент - напишите шелл-скрипт, перемещающий файл. Скрипту на вход передаются старое путь до файла-некаталога и новый. А я попробую найти ошибку.

$

mv old_file new_file


yoshakar писал(а):
05.02.2015 23:41
Увы, это не работает:

это работает в соответствии с документацией.
yoshakar писал(а):
05.02.2015 23:41
Всё работает.

работает совершенно неправильно(причём ВСЕГДА возвращает SUCCESS), да и покрывает всего 1% функционала mv(1).
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение drBatty »

yoshakar писал(а):
06.02.2015 00:26
Увеличение размера - это не так уж страшно, хотя и неприятно.

тогда реализуйте мне пожалуйста

Код: Выделить всё

       --backup[=CONTROL]
              make a backup of each existing destination file

       -S, --suffix=SUFFIX
              override the usual backup suffix

       -t, --target-directory=DIRECTORY
              move all SOURCE arguments into DIRECTORY

       -T, --no-target-directory
              treat DEST as a normal file
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение drBatty »

yoshakar
да, ещё хочу

$

mv *.avi TARGET/


мой шелл так умеет. А ваш?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

drBatty писал(а):
06.02.2015 08:02
В сишке UB на каждом шагу, и это не баг, а фича.
...про которую знают программисты, и отлично знают как с этим бороться, так что не стоит об этом и говорить.
drBatty писал(а):
06.02.2015 08:02
это работает в соответствии с документацией.
Вот документация:
Скрипту на вход передаются старый путь до файла-некаталога и новый.
Никаких "--" здесь нет.
Спасибо сказали:

yoshakar
Сообщения: 259
ОС: Debian Stretch

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение yoshakar »

drBatty писал(а):
06.02.2015 08:58
yoshakar
да, ещё хочу

$

mv *.avi TARGET/


мой шелл так умеет. А ваш?
Мой "шелл" работает в соответствии со спецификацией, понимаете? Ваш - нет. Итого, мы имеем ещё один упавший спутник и взорвавшийся реактор теперь из-за неуместной обработки звёздочек и остального.
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Hephaestus »

yoshakar писал(а):
06.02.2015 10:33
Мой "шелл" работает в соответствии со пецификацией, понимаете? Ваш - нет. Итого, мы имеет ещё один упавший спутник и взорвавшийся реактор теперь из-за неуместной обработки звёздочек и остального.
Мда... Страшно даже подумать, что будет, если на спутник или реактор запилить systemd, который меняется то и дело.

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

Понимаете, меня ведь смущает, заявление его, Леннарта, озвученное в статье, дескать, скрипты сложно писать, сложно отлаживать, подводные камни и т.п. И поэтому он выбирает Си, как альтернативу, ибо этот язык ему знаком лучше. Да пожалуйста. Это его личное дело.

Беда в том, что эта идея проводится через всю статью, как основание для повсеместного отказа от sysvinit и внедрения systemd.
То есть Леннарт не осилил скрипты и поэтому sysvinit безнадежно плох и все быстренько должны перейти на systemd.

Но эту логику очень легко довести до конца: Леннарт избавляет сообщество от скриптов, как источника ошибок, для этого он создаёт свой бинарный (не скриптовый) продукт, и это означает, что в данном продукте ошибок нет - он просто не имеет права на ошибку, иначе какой смысл менять один источник ошибок на другой?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2028
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Stauffenberg »

Hephaestus писал(а):
06.02.2015 10:53
Понимаете, меня ведь смущает, заявление его, Леннарта, озвученное в статье, дескать, скрипты сложно писать, сложно отлаживать, подводные камни и т.п. И поэтому он выбирает Си, как альтернативу, ибо этот язык ему знаком лучше. Да пожалуйста. Это его личное дело

Леннарт явно метит на место Торвальдса, после того как тот уйдет. Но он еще пока не знает, что его завалят явно раньше...
ИМХО посещение Леннартом Free Software конференций явно опасно для его здоровья.

Изображение
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19300
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Bizdelnick »

yoshakar писал(а):
06.02.2015 10:26
Вот документация:
Скрипту на вход передаются старый путь до файла-некаталога и новый.
Никаких "--" здесь нет.

Такой постановке задачи не соответствует ни одна из приведённых выше реализаций. Ибо пути они все получают не со стандартного ввода, а из аргументов. Так что сначала научитесь корректно формулировать задачи, а потом уже предъявляйте претензии, что что-то не так.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Hephaestus »

Stauffenberg писал(а):
06.02.2015 10:58
ИМХО посещение Леннартом Free Software конференций явно опасно для его здоровья.
Я не понял. Почему опасно? Его там избили что ли?
На картинке Линус с краю слева, Леннарт - с краю справа (правильно понимаю?), то есть они на диаметрально противоположных местах, что вполне символично.
Однако всё тихо и мирно вроде бы? Так почему опасно?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:

Аватара пользователя
Stauffenberg
Сообщения: 2028
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Stauffenberg »

Hephaestus писал(а):
06.02.2015 11:30
Я не понял. Почему опасно?

Вы разве не в курсе? В интернете организовали сбор средств для найма киллера для Леннарта. Он сам писал об этом в g+ :rolleyes:

Hephaestus писал(а):
06.02.2015 11:30
На картинке Линус с краю слева, Леннарт - с краю справа (правильно понимаю?), то есть они на диаметрально противоположных местах, что вполне символично.

Я вижу на фотке иное - он уже сидит вместе с "первыми людьми", делающими Linux.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 19300
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Bizdelnick »

yoshakar писал(а):
05.02.2015 22:26
писать правильные шелл-скрипты существенно сложнее писать правильного сишного кода. Несравненно сложнее. Давайте проведём эксперимент

Ладно, предлагаю подвести итог эксперимента. В моей первоначальной реализации на shell одна ошибка, вызванная неправильным пониманием задания. Исправление заняло у меня несколько секунд. В Вашей реализации на C три ошибки, которые Вы так и не исправили. Итак, на каком языке сложнее писать правильный код?

P. S. Вообще, конечно, зря Вы задали классическую задачку с собеседования. Классический неправильный ответ выглядел бы как

Код: Выделить всё

#!/bin/sh
mv "$1" "$2"
или, в особо запущенном случае,

Код: Выделить всё

#!/bin/bash
mv $1 $2
и был бы в принципе неспособен обрабатывать файлы, имена которых начинаются с дефисов. Но мой вариант - способен.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение drBatty »

yoshakar писал(а):
06.02.2015 10:26
В сишке UB на каждом шагу, и это не баг, а фича.

...про которую знают программисты, и отлично знают как с этим бороться, так что не стоит об этом и говорить.

а зачем бороться, если можно и не бороться? Если мне нужно накостылить поднятие демона, то на кой ляд мне расчехлять GCC? Я вот этого не понимаю, зачем себе создавать сложности, а потом с ними бороться? Находить утечки, переполнения буфера, и т.п.?

Вы вообще в курсе, что любое UB опасно тем, что его можно использовать в своих интересах, и ещё тем, что оно незаметное? Программа с виду работает, а на самом деле, управлять программой может кто-то другой. Какой смысл использовать такой уязвимый ЯП, в котором полно неопределённого поведения? Мне кажется, что даже слабоумному ясно, что всевозможные UB необходимо убрать, пусть костыль подымающий демон будет работать не 1 секунду, а 1.000001 секунду, но без UB.

yoshakar писал(а):
06.02.2015 10:26
Никаких "--" здесь нет.

"--" это не баг, а фича. Даже целый набор фич. Которых в вашем варианте нет. Вы ещё поругайте mv за то, что в шелле она символ «*» отрабатывает не as is.
yoshakar писал(а):
06.02.2015 10:33
Мой "шелл" работает в соответствии со спецификацией, понимаете? Ваш - нет. Итого, мы имеем ещё один упавший спутник и взорвавшийся реактор теперь из-за неуместной обработки звёздочек и остального.

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

$

mv *.avi TARGET/


или это "надуманная задача"?
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:

Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2

Re: [NIXP] Systemd получил новые сетевые возможности: форвардинг и маскарадинг IP, базовое управление брандмауэром

Сообщение Hephaestus »

Stauffenberg писал(а):
06.02.2015 11:55
Вы разве не в курсе? В интернете организовали сбор средств для найма убийцы для Леннарта.
И что? Пока они соберут, Леннарт успеет в хлам угробить Linux, BSD и винду впридачу.
И вообще, он ещё нас всех переживет.

P.S. И кстати, это никак не объясняет, почему Леннарту опасно ездить на конференции.
Киллер его только там может достать что ли?
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали: