LINUX.ORG.RU

Thalassa CMS 0.1.20

 , ,


1

6

Вышел очередной релиз Thalassa CMS, сочетающей генератор статического HTML и CGI-программу для поддержки пользовательских комментариев. Thalassa CMS написана на C++ и, по заявлению автора, не имеет внешних зависимостей, не использует СУБД и не генерирует страниц со скриптами.

В новый релиз включены исходные тексты ytid.cgi - веб-приложения, позволяющего выбрать экземпляр invidious для просмотра видео с YouTube (по тексту ссылки на YouTube).

Thalassa CMS распространяется на условиях Croco's Individualistic Free Software License.

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

anonymous

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 4)

для просмотра видео с YouTube
Andrey V. Stolyarov

что-то не сходится
зачем уважаемому гуру понадобилось вдруг смотреть ютуб?

anonymous_sapiens ★★★★★
()

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

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

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

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

Паскаль же строго в образовательных целях в качестве первого языка.

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

Не знаю. А кто ему донатит? Есть ведь кто-то.

sluggard ★★★★★
()

Thalassa CMS распространяется на условиях Croco’s Individualistic Free Software License.

И с какого перепугу софт с подобными фимозными требованиями оказался в разделе Open Source?

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

А почему не на божетсвенном Паскале? В С++ же побочные эффекты…

Они в любом императивноя языке есть - в том числе и в паскале.

zabbal ★★★★★
()

Это лучше бы в раздел «Пропреитарное ПО»

zx_gamer ★★
()
/usr/bin/ld: невозможно найти -lstdc++: Нет такого файла или каталога
/usr/bin/ld: невозможно найти -lm: Нет такого файла или каталога
/usr/bin/ld: невозможно найти -lc: Нет такого файла или каталога
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
make[1]: *** [Makefile:53: thalassa] Ошибка 1

не пойму что не может найти

sudo dnf install libstdc++ libstdc++-devel
Последняя проверка окончания срока действия метаданных: 3:01:44 назад, Ср 07 фев 2024 14:00:31.
Пакет libstdc++-13.2.1-6.fc39.x86_64 уже установлен.
Пакет libstdc++-13.2.1-6.fc39.i686 уже установлен.
Пакет libstdc++-devel-13.2.1-6.fc39.x86_64 уже установлен.
Зависимости разрешены.
Нет действий для выполнения.
Выполнено!
vstartsev
()
Последнее исправление: vstartsev (всего исправлений: 2)
Ответ на: комментарий от sluggard

Так он же и философский дисер на эту тему писал. Он же у нас дважды кандидат наук. Не Навальный тому причиной был, как я понимаю.

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

Создай топик на форуме и кинь полную портянку.

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

cgi, серьезно? :)

CGI для блога за глаза. Вон ejudge нормально на CGI работает с одним Apache httpd, даже когда соревнования с 8000+ участниками проводят.

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

ну, на nginx + golang оно бы работало в 10 раз быстрее, безопаснее и кода там было бы 1000 строк, а не 10 тысяч поценциальных дыр.

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

mrdeath ★★★★★
()

Сразу по названию узнал автора :)

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

Он видеоблог ведет вроде. Только не уверен, что он его на ютубе хостит, а не выкладывает на своем сервере.

Zhbert ★★★★★
()

Дорогому другу Крокодилу да в Gemini Space... Там сплошной маркдаун, текстовые файлы и никакого джаваскрипта... :)

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

Быстрее. Но на для блога нет смысла усложнять. И какой-нибудь FastCGI на C/C++ работал бы много быстрее языка Go.

безопаснее и кода там было бы 1000 строк

Проще CGI сделать сложно. Читаешь переменные окружения и stdin, пишешь response в stdout. Даже память освобождать не обязательно, процесс живет все равно 1 раз для 1 запроса.

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

PHP десятки лет только так и работал, ничего, все выжили.

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

Для блога можно на го и статику раздавать и хттп2 с тлс и без нгинкса. Так что проще вообще вряд-ли может быть. В придачу не нужно реализовывать самому хтмл генератор и парсер ини файлов.

Пхп был необходимостью, ибо быстро писалось. А так хорошего там было мало. Можно ради прикола написать Фастцги на с++ и обычный хттп на го и сравнить скорость работы и написания. С потоками заманаешься в ц++ работать.думаю го все равно будет быстрее из-за его дешёвых тредов. Если там в логике не высчитывать где-то число пи :)

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

Для блога можно на го и статику раздавать и хттп2 с тлс и без нгинкса.

Внутрянку обычно все равно проксируют. А HTTP/2 ИМХО абсолютно бесполезен.

В придачу не нужно реализовывать самому хтмл генератор и парсер ини файлов.

Ну так и на C++ можно взять либу. Например GNU cgicc (сам когда-то давно с ней работал, уверен, она не единственная в своем роде).

Можно ради прикола написать Фастцги на с++ и обычный хттп на го и сравнить скорость работы и написания.

И C++ обойдет Go по обоим показателям. Пишется это очень просто. Ниже приведен пример на чистом Си. А работу с тредами можно не проводить, потому что www-сервера умеют сами балансировать нагрузку на несколько демонов. Достаточно запустить несколько экземпляров серверного приложения и (например) nginx сам поделит запросы между ними.

#include "fcgi_stdio.h"
#include <stdlib.h>

int main(void)
{
    while(FCGI_Accept() >= 0)
    {
        printf("Content-type: text/plain\nStatus: 200 OK\n\nHello World!");
    }

    return 0;
}
zx_gamer ★★
()
Ответ на: комментарий от gns

Дорогому другу Крокодилу да в Gemini Space…

Я в эту сторону смотрел, да

Там сплошной маркдаун, текстовые файлы и никакого джаваскрипта… :)

Там вроде и маркдауна толком нет, GemText намного проще, чем Markdown. Зато там есть - совершенно внезапно - TLS. И всё, собственно. Чуваки вроде проблему осознали, как решать - тоже, а вот сообразить, что ничего не бывает бесплатно, и зависимость от OpenSSL или любого его аналога тоже ни разу не бесплатна - вот на это их не хватило.

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

http/2 + https дает примерно +30% прироста скорости отдачи контента. на http2 без https впринципе да, мало толку.

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

package main

import (
  "fmt"
  "log"
  "net/http"
  "time"
)

func timeHandler(w http.ResponseWriter, r *http.Request) {
  fmt.Fprint(w, time.Now().Format("02 Jan 2006 15:04:05 MST"))
}

func main() {
  http.HandleFunc("/time", timeHandler)
  http.Handle("/", http.FileServer(http.Dir("public/")))

  port := ":9999"
  log.Fatal(http.ListenAndServe(port, nil))
}
mrdeath ★★★★★
()
Ответ на: комментарий от gns

Тогда я не в курсе.

http://infoviolence.org/ru/vblog/video001.html видео смотреть не обязательно, это один из немногих роликов, к которым есть полная расшифровка

(раз уж пришлось давать ссылку на этот влог, заодно - тут кто-то спрашивал, зачем мне ytid.cgi, ну так вот там по ссылке есть иконка в виде мятого тюбика, жмакните по ней - узнаете).

А вообще интересно, конечно - вчера выложил архив и новость на сайт Талассы и пошёл спать, сегодня собрался продублировать новость на stolyarov.info для тех, кто по-аглицки читать не любит, и в очереди на премод обнаружил пару ссылок сюда. Оперативненько.

Croco ★★★
()
Ответ на: удаленный комментарий
p->buffer = realloc(p->buffer, p->bufsize);

Да уж. Результат реаллока проверяют только содомиты! Настоящие дартаньяны просто пишут Божественный Код на Божественных Крестах!

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

А вот еще опусы, с прошлого треда. Проверяю - всё на месте. Зачем же читать комментарии хейтеров, они говорят НЕПРИЯТНО, настоящий сишник столяров и так знает, где у него баги бегают, он их старательно разводит:

  • lib/inifile/inifile.cpp: IniFileParser::Load() - не закрывает файл при ретерне, goto для обработки ошибок видимо использовать религия не позволяет.
  • Там же: код возврата snprintf() не проверяется принципиально.
liksys ★★★★
()
Ответ на: комментарий от liksys

не закрывает файл при ретерне, goto для обработки ошибок видимо использовать религия не позволяет

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

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

Гуру в пару лет назад зассал отвечать на мои контруктивные претензии к его преподаванию паскаля в виде первого языка, так что я у него в игноре %)

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

А, не увидит. Ответы на игнорируемые комментарии тоже скрываются

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

I’m too lazy to call police

Да ладно, Бастрыкин взял бы под личный контроль! :)

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

С тех пор ведет блог об информационном насилии.

Это что-то на пси-террористическом? :)

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

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

Ну а библиотеки, не совсем понимаю почему Сшники их так не любят. Почему бы было ее же в этом проекте не использовать?

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