LINUX.ORG.RU

Выпуск Thalassa CMS 0.1.10

 ,


2

8

Thalassa CMS – это система управления контентом, позволяющая создавать статические сайты с возможностью комментирования.

Отличительные особенности:

  • Написана на языке C++
  • Нет зависимостей (кроме libc)
  • Поддержка комментариев и каптчи
  • Поддержка RSS

В новой версии:

  • В макрос %[discuss:] добавлены функции ifparent и parent
  • Добавлена поддержка FreeBSD
  • Косметические улучшения в шаблоне Smoky

Автор этой замечательной программы есть на LOR под ником @Croco.

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



Проверено: unfo ()
Последнее исправление: cumvillain (всего исправлений: 11)

Ответ на: комментарий от Begemoth

Но эта функция что-то всё равно «попахивает», как по мне. Особенно, из-за этих кастов. Ведь через FilterChain::Add(StreamFilter *f), где инициализируется last, мы можем любой StreamFilter засунуть, не только DestSV.

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

А разве ещё остались сильные спецы в IT кто не «покинул»?

Есть любители острых ощущений, есть определенное количество упертых людей, которые инвестировали достаточно, чтобы попробовать переседеть. Есть семейные чуваки, которым на данном моменте тоже проще попробовать пересидеть.

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

И это хорошо. Регулярки это артефакт всяких перлов и прочей скриптоты.

Ну откровенно проще написать foobar-[[:alnum:]]{4} чем городить юникодый парсер, не?

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

Хоть вопрос и риторический, но я озвучу ответ: «полно!» и явно больше чем некоторым представляется.

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

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

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

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

Ну тока regexp уже написали.

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

О, ещё один ватник порвался

Возможно он пытался сберечь чувства ватников?

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

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

Если же речь про то, что надо циклом из 4 итераций проверить что там alnum символы, а не какие-то другие, так это вообще элементарно. Да, регулярка выглядит компактнее, точно так же как file_get_contents("https://.../...") на пхп выглядит компактнее чем скачивалка произвольных урлов на Си - на то они и скрипты.

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

Если же речь про то, что надо циклом из 4 итераций проверить что там alnum символы, а не какие-то другие, так это вообще элементарно.

Ну давай, покажи класс, сделай мне то же самое только без regexp’ов на сях :D

cumvillain
() автор топика

Учитывая, что он тут бахвалился, что никогда не проверяет результат malloc(), я даже боюсь представить, как оно написано

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

Учитывая, что он тут бахвалился, что никогда не проверяет результат malloc(), я даже боюсь представить, как оно написано

ссылку!

cumvillain
() автор топика

Добавлена поддержка FreeBS

В чём была проблема? С помощью clang++ не собиралось?

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

без всяких жаб и нодежеэсов

Как будто что-то плохое. И вообще, вали с лора. Движок написан на жабе вперемешку со скалой.

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

Не в чем. Во всех сферах продуктивным никогда не будешь.

xaTa ★★★
()

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

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

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

Ты сомневаешься в могуществе автора?

cumvillain
() автор топика

Круто. Респект Столярову.

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

ЛОР не на моём же железе работает. Поэтому причин валить не вижу. Тем более, я не имею фобий к какому-либо софту, просто можно недолюбливать Electron например, но всё равно использовать приложения на нём, по причине их полезности и незаменимости.

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

это вроде Drupal ? но как можно в одно лицо написать столько.

Это не друпал, это Hugo. В одно лицо за 6 лет? Запросто.

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

Настоящие сишники Эдичка и @Croco так и не научились копировать строки.

https://github.com/a-croco-stolyarov/thalassa/blob/2f5da231ded6a9ffea1623b4ccef1604c113f1a1/lib/inifile/inifile.cpp#L448C23-L448C23

Зачем проверять код возврата snprintf?

https://github.com/a-croco-stolyarov/thalassa/blob/2f5da231ded6a9ffea1623b4ccef1604c113f1a1/lib/inifile/inifile.cpp#L475C16-L475C16

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

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

Открыл файл наугад. В первой же функции 3 утечки файлового дескриптора [1][2][3].

Да, я в прошлый раз так же нашел то ли утечку, то ли порчу :D

cumvillain
() автор топика

Вау, никогда такого не было и вот опять! Код последнего на планете труъ-программиста @Croco, желавшего всем, кто не разделяет его шизу, смерти и всяческих кар, оказался безграмотным говном.

Это надо в палату мер и весов, и показывать фанбоям столярова. Да и в ВМК можно отправить, чтобы гнали с его ссаными тряпками за профнепригодность.

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

Столяров в Черногории, я думаю на ВМК его уже нет.

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

а каст сделать в каждой строчке чтобы вызывать метод вообще легально? компилятор это оптимизирует в одну операцию? я не в курсе этой особенности языка

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

Это каст указателя к другому указателю, так что это reinterpret_cast.

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

Ivan_qrt ★★★★★
()

Зачем это если есть Jekyll/Pelican? + лёгкий язык для внесения правок с параллельным изучением.
Сейчас в основном многим нужна быстрая сборка разве что, чем вышеприведённые похвастаться не могут.

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

Каст который там есть, вообще никакие операции не произведет в ассемблерном коде.

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

Какой ужас, ведь в любой CMS есть реализация TLS!

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

1. Там нету комментариев
2. apt install jekyll
После данной операции объём занятого дискового пространства возрастёт на 294 MB.

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

Там только небольшое количество правил на регекспах — собственно те, которые регулярками описать можно. Большая же часть — на плюсах и анализирует AST.

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

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

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

Самая мякотка в том, что даже линупсовое ядро уже научилось в RAII, не говоря уже о современных плюсах. А программисты на C++ до сих пор не научились :D

cumvillain
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.