LINUX.ORG.RU

Thalassa 0.3.50

 , , thalassa,


0

4

Выпущена новая версия Thalassa CMS под номером 0.3.50.

В этой версии переписан фильтр HTML-тегов для комментариев.

Разработчиком CMS является Андрей Викторович Столяров, также известный как @Croco.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 2)
Ответ на: комментарий от Zeev

То, что автор обладает огромным опытов в разработке и преподавании — факт, который глупо отрицать.

Вообще-то нет, не глупо. Результат разработки мы уже видим, он… так себе. Результат преподавания можно видеть на сайте https://veresov.pro/rustmustdie/. Статья в высшей мере спорная и очень многими местами некорректная.

Сабдж отношения к этому не имеет, так как никогда и не задумывался, как объект демонстрации личных навыков.

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

Определение термина «адекватность», как таковое — растяжимо и не имеет отношения к вопросу.

Придуймай другой термин. Суть в том, что автор пропагандирует «используйте старое, новое говно», но почему https://thebestmotherfucking.website на html5 и css3 грузится быстрее текстовых комментариев автора.

gaylord
()
Ответ на: комментарий от gaylord
  1. Насколько я понял, да, в статье враньё, но пока до Rust’а я ещё не дошел, проверить утвердждения написанные в статье не могу и потому к данном языку программирования отношения пока у меня сугубо нейтральное. В любом случае это типичный приём типа Ad Hitlerum, если ученик Столярова пишит бред это ещё не значит, что всё, что пишет сам Столяров — бред.
  2. Все мы порой делаем вещи неидеально, это не является поводом для подобной «гражданской казни» субъекта.
  3. Когда вообще автор сабджа учил кого-либо вебу? В трёхтомнике чётко описано почему по мнению автора VLA — плохо, STL — зло, а сборка мусора — сомнительна, но прямого указания «используйте старое, новое говно от него никогда не звучала, более того в введении присутствует и критика использования мёртвого софта, вроде MS-DOS, но нужно понимать, что ни Pascal, ни ANSI C мёртвыми языками не являются.
Zeev
() автор топика
Ответ на: комментарий от gaylord

Соглашусь, поэтому важно выбирать библиотеки. И вот это навык, которому хорошо бы учить: как выбирать, по каким критериям отсеивать, на что обращать внимание.

Ага. Жаль, но я вообще не знаю, чтобы где-нибудь этому учили. В результате люди на практике как-то доходят до понимания.

Ага. И он этому не учит, он просто учит «пишите все сами ведь все остальные дебилы». Это плохой совет, объективно.

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

У него есть в doc/ файл banned_techniques.html для тех, кто хотел бы присоединиться к разработке (не понял только талассы или это общие его принципы) где он пишет:

External dependencies can be build-time and run-time. So here's the rule:

    the only acceptable run-time dependency is the operating system kernel;

    the only acceptable build-time dependencies are the compiler, the make utility (either GNU make or Posix make, but not cmake) and — doubtfully and with limitations, but, well, to some extent — standard libraries.

The idea behind the rule is obvious: the less your program needs to build and run, the better. However, there's also another idea. If you, as the author of a program, by simply choosing what to use and what not to use, can solve in advance any problem which either a user of the program, or a package maintainer may experience, then you must do so for any program you're going to let anyone use. 

Далее он проезжается по интерпретируемым язык, допуская их только как DSL, а также по таким как C# и Java и снова про библиотеки:

Besides that, you must always make sure your program can be built as a statically-linked binary. It is okay to keep dynamic linkage possible for cases when the program is transferred to the target machine as a source tarball and gets built there, but for all cases of binary distribution, including distribution as a package for a particular package manager (such as deb, yum, rpm and the like), all executable binaries must depend on nothing but the OS kernel. And no, packing all the “shared” libs together with the binary is NOT a solution.

No external libraries are tolerable, at all; the exception we unwillingly make for some parts of the C standard library is temporary. If you think you really need a certain library, please consider it carefully: you will, first of all, need to put it into the main source tree of the project, which effectively means it becomes another piece of code we (you!) have to maintain. And to build every time we decide to do a complete rebuild. 

В принципе посыл понятен, хочет, чтобы все свое можно было нести с собой. Как уже говорил, есть плюсы и минусы у такого подхода. В том числе и для безопасности. К примеру, изх того что просачивалось в разной информации, внутри Microsoft фактически такой подход и использовался лет 10-15 назад, не знаю как сейчас.

praseodim ★★★★★
()
Ответ на: комментарий от praseodim

Кстати, а как исправлением CVE, если все в докер засунуто?

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

rtxtxtrx ★★
()
Ответ на: комментарий от praseodim

иначе это совсем маразм был бы

На самом деле я бы посмотрел на личность, которая библиотеки реально не признаёт и пишет всё сам на Ассемблере и Си без стандартной библиотеки.

Zeev
() автор топика
Ответ на: комментарий от slyjoeh

Это не информация. Это предупреждение.

ugoday ★★★★★
()
Ответ на: комментарий от rumgot

Не сказал бы. Достаточно уверенный в себе человек. Понравилось его интервью у ИТ Бороды.

Я видел как он издевается у себя в комментариях над людьми которые даже ему ничего плохого не сказали, любит гнобить позицию более слабых, ну а неудобные для него ответы он просто не пропускает. Ему важно показать какой он дартаньян на белом коне, а все другие в говне.
Как-то мне попался наиболее характерный пример: http://www.infoviolence.org/ru/vblog/video058.html где ЧСВ пробило небеса и затмило разум.
Что мы там видим? Перешёл на личность навесив ярлык, после завуалированно обозвал человека умственно отсталым, начал надменно издеваться, следом пошли заходы уровня «кто не понял инфу из ролика тот дебил», повеяло «да как ты посмел с меня пруфы спрашивать!??», в конце концов перешёл на откровенные оскорбления и в завершении выдал «ну я победил, а тебе слова не давали».
Вот как этого человека можно назвать достаточно уверенным в себе, да и вообще сказать что он в своём уме!?
На том же ютубе комментарии он отключает, боится публичного бесконтрольного обсуждения.

А премодерация как-то принципиально по уровню свободословия отличается от постмодерации?

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

EvilFox ★★
()
Ответ на: комментарий от Zeev

Насколько я понял, да, в статье враньё, но пока до Rust’а я ещё не дошел, проверить утвердждения написанные в статье не могу и потому к данном языку программирования отношения пока у меня сугубо нейтральное. В любом случае это типичный приём типа Ad Hitlerum, если ученик Столярова пишит бред это ещё не значит, что всё, что пишет сам Столяров — бред.

Ты упустил суть. Я говорю не то, что Столяров пишет бред (хотя пишет). Я говорю, что его ученик пишет, и в тексте ученика прослеживается все то же воинственное неприятие нового.

Все мы порой делаем вещи неидеально, это не является поводом для подобной «гражданской казни» субъекта.

Это не казнь. Это wake up call — если автор осознает свои ошибки и поменяет подход, отношение поменяется.

Когда вообще автор сабджа учил кого-либо вебу? В трёхтомнике чётко описано почему по мнению автора VLA — плохо, STL — зло, а сборка мусора — сомнительна, но прямого указания «используйте старое, новое говно от него никогда не звучала, более того в введении присутствует и критика использования мёртвого софта, вроде MS-DOS, но нужно понимать, что ни Pascal, ни ANSI C мёртвыми языками не являются.

В тексте были гораздо более категоричные слова :)

gaylord
()
Ответ на: комментарий от gaylord
  1. В любом случае это не имеет отношения к трёхтомнику. Он не призывает не принимать всего нового, он конкретно критикуют определённые популярные технологии. В том чтобы просто критически воспринимать новый инструмент ничего плохого не вижу, это есть определенная форма критического мышления.
  2. Что нужно конкретно менять в подходе к обучению, описанном в трёхтомнике? Начинать с JS?
  3. В каком из них?
Zeev
() автор топика
Ответ на: комментарий от gaylord

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

moonmadness
()
Ответ на: комментарий от Zeev

Что нужно конкретно менять в подходе к обучению, описанном в трёхтомнике? Начинать с JS? В каком из них?

Я мог бы даже покопаться и принести цитаты, но автор сломал ocr и цитировать его книги нельзя. Удивительный человек.

gaylord
()

посмотрев кодик по диагонали…

  1. такое впечатление, что автор не знает, что в плюсах для указателей используются nullptr, а не 0. вроде компилятор должен варнинги давать по этому поводу… потому вопрос - а с какими варнингами это компилируется?

  2. странная манера выносить переменную цикла for наружу. тогда как он специально сделан так, чтобы декларация могла быть внутри(и должна быть там, если не нужна снаружи).

то есть писать надо не

int i;
for (i = 0;...)

а

for (int i = 0;...)
  1. конструкторы желательно обозначать как explicit, где только можно. во избежание неявных преобразований в самых разных местах кода.

  2. хидер, соответствующий данной единице компиляции, включается первым, а не последним.

  3. излишнее использование указателей там, где нужно применять ссылку.

  4. битовые маски лучше задавать через оператор сдвига бита, тогда явно виден номер бита, а не 16-ричной константой.

alysnix ★★★
()
Ответ на: комментарий от alysnix

nullptr с C++11, а автор, я так понял, пишет в C++98.

До C++11 использовался 0, а последующие стандарты, вроде, 0 использовать не запрещают.

rOgret
()
Ответ на: комментарий от gaylord

Ну к правкам это отношения не имеет. Текстовый слой сломан с целью противодействия плагиату и отсутствия превосходств электронной версии над бумажной о чём автор неоднократно говорил.

Zeev
() автор топика
Ответ на: комментарий от rOgret

а автор, я так понял, пишет в C++98.

тогда уж NULL

а последующие стандарты, вроде, 0 использовать не запрещают.

плевать на стандарты. 0 подходит просто по дефолтнтой совместимости с числом, а nullptr - это типизированная константа. второе лучше, ибо добавляет некий контроль типа.

alysnix ★★★
()
Ответ на: комментарий от Zeev

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

gaylord
()
Ответ на: комментарий от alysnix

Он застрял в 90-х и отвергает всё то чему не научился тогда, выпячивает своё невежество как некий эталон.
Почитай вот эти ссылки станет более понятно:
http://thalassa.croco.net/doc/cpp_subset.html
http://thalassa.croco.net/doc/coding_style.html
http://thalassa.croco.net/doc/banned_techniques.html
Он отвергает современные стандарты, но в то же время отвергает GNU-расширения. Форсит бездарное использование i++ и т.д.

EvilFox ★★
()
Ответ на: комментарий от EvilFox

Before the commitees touched all this with their dirty hands

Ну так а чо ж автор продолжает использовать столь грязную вещь? Почему не оберон? Не фортран?

you must not include any header files that have no “.h” suffix and you must not use any names from that damn “namespace std”

Не использовать std? Класс, чому тогда не ассемблер?

input-output may be used

С английским у автора тоже всё очень-очень плохо

Data structures are built exactly the same way as in plain C, manually, for every particular task.

Ну так пиши на С, ёпт.

No features from C99 and later «standards»

Аффтар, а покажи свои 64хбитные типы тогда.

Боже, я ж говорил, что он бесконечный источник лулзов

PPP328 ★★★★★
()
Ответ на: комментарий от Zeev

Pascal … мёртвыми языками не являются

Да, живее всех живых. А уж вакансий-то по нему - просто тьма!

Только не надо говорить, что это учебный язык. Учебные языки не нужны. Я уже неоднократно писал, как правильно учить программированию, так что повторюсь:

А еще нужно рассказывать о том, как правильно структурировать проекты и декомпозировать задачу. Редкий софт пишется только на одном языке, и нужно понимать, где лучше использовать го, питон, или сишечку. Нужно показывать, как языки взаимодействуют друг с другом, как использовать плюсы того или иного языка и как получить от этого выигрыш, а не усираться, доказывая, что раст - говно, как это любит столяров. И не брать какие-то учебные языки, типа паскаля - это пустая трата времени, лучше учить сразу что-то более пригодное. А еще обучение не должно быть оторвано от реальности. Например, я уже неоднократно описывал общую идею курса для программирования, с оглядкой на MIT (они там используют питон для старта). Берем питон, показываем как пишутся алгоритмы на высоком уровне, как проектировать софт и декомпозировать задачу. Потом вводим си и показываем, чего на самом деле стоят все простые питоновские типы и как всё работает на низком уровне. Потом предлагаем задачу, которую на чистом си решать будет сложно, а на питоне - слишком медленно, и таким образом покажем, что бизнес-логику можно написать на простом высокоуровневом языке, а критичные к скорости части на си.

Правда, столяров зассал дискутировать со мной на этот счет и сразу добавил в чс %) Клоунам с регалиями не нужны отзывы из индустрии. Всё, что противоречит их уютному манямирку, будет вплотную игнорироваться.

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от alysnix

то есть писать надо не

int i;
for (i = 0;...)

а

for (int i = 0;...)

Автор использует ansi c, он же C89, в нем объявление переменной допустимо только в начале блока. С указанием -ansi компилятор выдаст Error на такое объявление.

Остальные странности кода тоже растут из старых стандартов.

praseodim ★★★★★
()
Последнее исправление: praseodim (всего исправлений: 1)
Ответ на: комментарий от Zeev

На Free Pascal активно разрабатываются программы, тот же PeaZip например.

Это не активно. Активно программы разрабатываются на C, C++, Python, Go, Rust и ещё некоторых языках. На Free Pascal разрабатывается несколько проектов.

gaylord
()
Ответ на: комментарий от gaylord

Тем не менее мёртвым языком он не является. Ни Си, ни Питон, ни Go, ни тем более Си++ или Rust на роль первого языка не подходит.

Zeev
() автор топика
Ответ на: комментарий от Zeev

Тем не менее мёртвым языком он не является.

Является. Наличие одного-двух-трех проектов не делает язык живым. Живым его делает наличие какого-то активного сообщества, поддерживаемые библиотеки и постоянные улучшения корректности / производительности. И вакансий. Если этого нет, язык мертв. Даже если на нем есть проекты, которые кто-то разрабатывает.

В этом смысле даже Haskell живой, в отличи от Pascal.

Ни Си, ни Питон, ни Go, ни тем более Си++ или Rust на роль первого языка не подходит.

Ерунда. Курс MIT, как уже заметили, преподает первый языком Python. Прости, но MIT – гораздо более заслуживающее доверие заведение, что кафедра МГУ.

gaylord
()
Ответ на: комментарий от Zeev

Ясно всё.

Да вообще нет. Было бы интересно узнать, что же такого можно сделать на Pascal, чего нельзя на Python.

У меня лишь один к вам вопрос — читали ли вы вообще трёхтомник?

Да.

gaylord
()
Ответ на: комментарий от gaylord

Да вообще нет. Было бы интересно узнать, что же такого можно сделать на Pascal, чего нельзя на Python.

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

а пытон - интерпретируемый язык, в котором даже целых чисел вроде нет. чисто для скриптухи.

alysnix ★★★
()
Ответ на: комментарий от Zeev
Управление памятью с помощью указателей, отсутствие сборки мусора.

Как эти вещи связаны с обучением программированию? Т.е. с алгоритмами и прочими вещами?

gaylord
()

также известный как @Croco.

Так же известный как @Zeev.

t3n3t
()
Ответ на: комментарий от alysnix

Да есть там конечно целые числа. Нет разницы какой язык – компилируемый, интерпретируемый или воображаемый – програмирование (т.е. процесс превращения задачки на бумажке в алгоритм) прекрасно демонстрируется на примере Python.

gaylord
()
Ответ на: комментарий от Obezyan

Он там еще с трех акков-новорегов ставил дизлайки под десятками комментариев в соответствующих новостях.

t3n3t
()
Ответ на: комментарий от gaylord

В вашем понимании в малой степени, так как для вас отсутствия структированого понимания происходящего на низком уровне является, судя по всему, преемлимым. Однако, ни я, ни автор трёхтомника с вами не согласны.

Zeev
() автор топика
Ответ на: комментарий от Zeev

честно говоря, после прочтения предисловия к его введению в с++ читать что-то еще его расхотелось. попробуйте сами

ripgrep
()
Ответ на: комментарий от Zeev

В вашем понимании в малой степени, так как для вас отсутствия структированого понимания происходящего на низком уровне является, судя по всему, преемлимым. Однако, ни я, ни автор трёхтомника с вами не согласны.

Вообще ни разу. Просто у меня хватает когнитивных способностей чтобы разделять обучение на две принципиально разные части – обучение программированию как процессу преобразования требований в алгоритмы и обучение программированию как страданиями с оптимизацией.

Для первой части Python подходит ваще без проблем.

Для второй Pascal бесполезен, потому что там начинается страдание с кешами CPU, кешами TLB, прерываниями, пределами пропускной способности памяти, продолбанными предсказаниями и прочим блудом, который сильно зависит от языка. И вот уже C или Rust.

Где-то между идет обучение Go, потому что веб-сервисы сейчас имеет смысл только на нем и писать, если нет каких-то особых требований к производительности. Все как хочет автор – статическая линковка, быстрый код и вот это все.

gaylord
()
Ответ на: комментарий от gaylord

Как эти вещи связаны с обучением программированию? Т.е. с алгоритмами и прочими вещами?

принципиально. сборка мусора позволяет любому зайцу играть на клавиатуре(собссно для этого ее и культивируют).

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

alysnix ★★★
()
Ответ на: комментарий от alysnix

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

Ручное управление даже в C уже пытаются выкинуть. В ядро вот defer принесли.

gaylord
()
Ответ на: комментарий от alysnix

принципиально. сборка мусора позволяет любому зайцу играть на клавиатуре(собссно для этого ее и культивируют).

А плохо это тем, что?..

gaylord
()
Ответ на: комментарий от gaylord

Только если бы вы реально читали хотя бы предисловие к трёхтомнику вы бы понимали, чем чревато быстрое освоение Си в качестве первого-второго языка. Ну а Раст до Си/Си++ это уж помилуйте.

Zeev
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.