LINUX.ORG.RU

Продолжается работа над портированием Lorsource на Rust

 , , , ,


0

4

Продолжается работа над портом движка форума LINUX.ORG.RU на Rust.

Целью изначально было создание полностью совместимого на уровне интерфейсов REST API и доступа к БД порта кода написанного на Java.

Проект казался интересным лично для меня, как с точки зрения изучения работы самого форума, так и реальная работа с большим объемом чужого (открытого) кода с применением GPT.

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

В итоге используя ChatGPT Pro x20, удалось добиться результата, который видно на скриншотах. Более того, такая подписка даже является избыточной.

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

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

Преимущества порта которые видны без сложных тестов:

  • мгновенный старт
  • низкое потребление памяти
★★★★★

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

Я тут для гильдии делал курс по луа под конкретную версию. Уникальный кстати курс, больше такого нет нигде. И вот пока делал, кадый модуль пришлось по 10-20 раз самому пройти, чтобы учесть все нюансы. В итоге сам выучил то, что раньше лениво было как то запоминать и не давалось. Когда по 20 раз повторяешь вразных вариациях одно и то же, сложно не понять ине выучить. Въедается намертво.

Ну вот теперь вы меня понимаете, как это, по сорок пятому разу одно и то же студентам толдычить, а им всё до фени. Шутка «сам давно понял, а им до сих пор не понятно!» вот совсем и не шутка.

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

Это тоже еще предстоит осознать и переделать.

Я бы посоветовал осознать и начать с нуля. Это не переделать уже.

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

И это безотносительно, web ты пишешь, или нет. И язык так же не важен. Общие принципы справедливы дяже как для bash, так и для полноценных языков.

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

Чтобы начать с нуля, надо сначала зайти в тупик. То есть осознать - что же сейчас работает не так? Почему нельзя дорабатывать дальше? А как же оно должно тогда работать?

А пока это не прочувствуешь, все возможные правильные архитектуры это слова.

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

Глупый учится на своих ошибках, умный - на чужих (с) не помню кто

Как минимум тут уже сказали, что текущий путь тупиковый. Так зачем по нему идти?

shell-script ★★★★★
()
Ответ на: комментарий от LightDiver

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

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

Ну, ты можешь почитать лет 10 статьи, учебники или даже пойти поучиться лет 6. Тебе дадут разностороннее образование, в котором нужного конкретно для этой задачи будет для тебя 0.01%. Задачу ты не решишь, ты же учишься, впитывая 99.9% вообще других знаний, которые для данной задачи не нужны.

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

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

Образвание и информация это хорошо, но оно не заменяет личного опыта.

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

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

Любые мануалы, инструкции, учебники дают информацию из прошлого.

Это справедливо для новых, неизведанных областей. Для написания форума, это актуальная информация.

У меня есть пример из смежной области. Из DevOps. Пока коллеги вот так вот методом тыка пытались запилить сложный пайплайн для одной очень специфичной платформы, пробовали много вариантов, как ты говоришь, осозновали ошибки, я сидел и, казалось, ничего не делал. А по факту курил маны. И через некоторое время, когда они запускали очередной пробный вариант(который снова не взлетел), я выдал готовый код. Сразу, с первого раза. Потому что в манах нашёл нужный функционал. Стек был сложный, большой, использовалась куча разного софта, не только дефолтные CI/CD системы. Там и кодить пришлось много(не на yaml, хотя и это тоже :)), и учитывать особенности работы конечного софта, и принимать в расчёт ограничения инфраструктуры. Манов выкурить пришлось тонны. Но в итоге у меня рабочее решение и бонусом знания в голове. А коллегам пришлось навёрстывать и потом изучать то, что я написал.

Это не хвастовство, это пример разницы подходов. Я это не сам придумал, меня такому научили старшие коллеги, когда я ещё был молодым почти безбородым админом.

Поэтому я и пишу о том, что лучше таки почитать, а не методом тыка грабли собирать.

И поэтому, имея на вооружении именно такой подход, мне в своё время и MVC-фреймворки писать приходилось в том числе. Хотя, говорят, это уже устарело, но суть осталась та же. Опять же, судя по приведённым тобой паттернам.

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

Я написал максимально абстрактно общие вехи. Ты ему будешь объяснять как нормально разделить данные и логику? Это базовые знания, которые нужно осознать. И лучше поэтапно. По шагам.

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

Знания без практики усваиваются на порядок хуже. Уйдет он на год все это изучать. Вернется все еще без практики.

Начнет исправлять что то одно, а остальное то тоже невпорядке. Ему по пять раз в месяц все переписывать с нуля?

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


Хотя именно системное обучение - это охренительно. Я тут недавно помогал одному человеку с курсом по питону (мошенничество, кинули много народу на миллиарды денег). Но даже те жалкие 2 месяца получения системного образования мне дали нереально много. Пока мошенники все не собрали и не свалили в закат. А жаль, там самое интересное начиналось.

Там нам знания передавали уже опытные преподы (их тоже кинули) - вправляли мозги поэтапно шаг за шагом. Говорили как делать правильно, как нет, почему.

Но замечу, сразу когда объясняли, не доходило. Мы брались писать как попало. А вот через 3-4 шага доходило железобетонно, когда мы сталкивались с результатом своих же косяков. И наконец понимали: так вот почему надо делать правильно!

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

Я написал максимально абстрактно общие вехи.

Не согласен. Ты как раз очень хорошо написал. И за это мой отдельный респект. Вот лучше бы нейроболвану именно это скормить(каждый пункт по-отдельности), а не пытаться выудить из него бесполезный код. Глядишь, что-нить путное и выдаст. Если уж обычным поиском люди пользоваться разучились.

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

В общем, вариантов много, было бы желание. А тут я вижу... Да ничего я не вижу. Нейролапша в перемешку с данными, без структуры, без попытки понимания. Это безотносительно к языку. Я ничего не смыслю в rust и по возможности (пока) обхожу его стороной. Поэтому критиковать или хвалить сам код не могу.

Мне откровенно жаль потраченные ТС ресурсы. Их бы, да в нужное русло.

Сейчас он просто впустую потратит время.

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

Посмотрим через год-два. Я вспоминаю себя 3 года назад. Да если бы мне тогда дали ИИшку.. хрен бы я чего изучил наверное. Ибо нахрена.

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

Ой ли? Искуственный идиот это такая обёртка над StackOverflow-driven development. Только раньше тебе самому надо было искать, а тут ответ быстрее. Но архитектуру проекта, логику конкретных решений и, наконец, оптимальные инструменты он тебе не даст.

Это молоток. Хороший такой, пневмомолоток с лазерным прицелом и мягкой рукоятью. Но от него толку ноль, когда ты не знаешь, куда ударить. А вот, чтобы знать куда, надо читать и изучать. И ТС тут показывает нам отличный пример этого.

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

Раньше я искал, когда заходил в тупик. У меня оттуда взяты 3-5 функций. Разбиение фразы на слова, например. В основном приходилось долго и мучительно думать самому. Когда совсем кирдык - идешь туда. Когда и там ноль - к знакомым программистам в ирку или создаешь тему тут.

А когда тебе любой вопрос решают просто по запросу. Ну я не знаю. Это очень интересно изучить - как это вообще влияет на обучение. Думаю в ближайшие годы мы это увидим лично.

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

Так в том-то и дело, что не любой и не решают.

Опять же пример из практики. Младшему коллеге дали простую задачу. Проанализировать сборку дистрибутива просто по версиям, вытащить CVE, связанные с этими версиями. Без привязки к дистру, только по софту. Нарисовать скрипт для этого, сделать отдельную кнопку для генерации отчёта. Ну ведь простейшее. Он полез в чатбота. Тот ему насоветовал всякие разные варианты вплоть до выкладывания списка софта в общий доступ и подключения каких-то сторонних сканеров. А про банальный CVE API и использование любого удобного тебе инструмента для доступа к нему и потом получения обычного JSON не сказал.

А ведь стоило всего лишь с самого начала зайти на https://nvd.nist.gov/ и увидеть раздел API.

shell-script ★★★★★
()

Вроде не первое апреля...

gns ★★★★★
()

Даже не смотря на сомнительную лицензию (апач, фи) - это чистой воды восторг, практически арт-перфоманс :-D

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

Когда я начал читать новость, то перепугался. По мере чтения, понял, что это не официоз. А потом увидел, кто автор и вовсе успокоился.

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

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

Для ревью и постановки задач - нужна expertise. Которая до нынешних времен получалась ценой «ошибок трудных». Откуда бы взяться expertise в эру ИИ - непонятно.

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

Но нужно уже тогда скйчас начинать конструировать машину по печатанию Сеньоров - джунов и миддлов не будет.

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

Были времена, когда программисты носили белые халаты. Можно снова начинать, служителям положено быть в униформе.

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

Машина не может быть сеньером. Будет деградировать такая система.

Второе - откуда будут брать качественный корпус данных для обучения? Сейчас уже весь arXiv забит статьями об анализе ИИ-генереного текста. (Большие игроки договариваются о маркировке.. О пользователячх заботятся? Щас, конечно. Нет. Просто проблема - некачественные данные. Их надо отсеивать, чтобы ИИ не отравился при обучении.). В интеренете откуда будут появляться новые данные от экспертов? Не будут.

vvb333007
()

Из материалов дела:

«Втёршись в доверие пользователей ресурса линукс.орг.ру через размещение новостных материлов под псевдонимом Дядя Стёпа, рецидивист-девелопёр Степан Ржавый приступил к выполнению наиболее аморальной части своего преступного замысла. При помощи привлеченных из числа безработных нейросетей подельников он начал планомерно замещать части программного ядра сайта на фрагменты, написанные на языке Раст, с обильным включением SQL...»

Smacker ★★★★★
()

через ELinks норм открывается?

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

Так там уже. Просто на количество файлов глянь в репозитории.. На PHP вышло бы гораздо короче :)

vvb333007
()

Отличная работа!

Почему был выбран Rust а не PHP? Они оба в смысле указателей довольно безопасные, но PHP еще как бы умеет Web из коробки.

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

с обильным включением SQL

по этому вопросу всё время задаются вопросы, отвечаю сразу всем:

  • смотрите оригинал, там то же самое
  • стоит ли это править? пока не знаю
  • в итоге, скорее всего, всё будет зарефачено, но сначала надо как следуюет всё проверить
unclestephen ★★★★★
() автор топика

ещё помню времена, когда за vscode банили :D

ii8_ ★★★★
()

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

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

Будет деградировать такая система.

Пффф, напугал.

Второе - откуда будут брать качественный корпус данных для обучения?

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

В интеренете откуда будут появляться новые данные от экспертов?

А щас типа все знание человечества только на сраных синьор-кодерочках и держится.

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

Не знаю сколько было бы хейта за php, но хотелось что-то JIT на сишечку, а самая модная сишечка сейчас Rust.

unclestephen ★★★★★
() автор топика

Вы так не шутите прямо на первой странице. Щас все старпёры, сишкадрочеры и лудиты в неотложку с инфарктом отъедут.

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

Искуственный идиот это такая обёртка над StackOverflow-driven development.

4.2

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

4.2

gagarin0
()
Ответ на: комментарий от Smacker
                 \
                  \
                   \\
                    \\
                     >\/7
                 _.-(6'  \
                (=___._/` \
                     )  \ |
                    /   / |
                   /    > /
                  j    < _\
              _.-' :      ``.
              \ r=._\        `.
             <`\\_  \         .`-.
              \ r-7  `-. ._  ' .  `\
               \`,      `-.`7  7)   )
                \/         \|  \'  / `-._
                           ||    .'
                            \\  (
                             >\  >
                         ,.-' >.'
                        <.'_.''
                          <'
gagarin0
()

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

Зачем это нужно? Ну, например, чтобы совершить ЛОР-революцию/мятеж. Ты объявишь свой оффтопик лист, всех несогласных забанишь.

Будут судебные иски. Ты пострадаешь, конечно же, за веру и правду, но не отступишь назад. Агитацию и пропаганду, разлагающую фронтА, начинать разрешаю!

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

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

будем считать что этот коммент набросом Java vs. Rust

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

Уверен, что там всё в базу упирается.

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

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

Нет, я когда то тоже стал, когда только начинал, но потом понял, что он не про это.

LightDiver ★★★★★
()

А почему такой странный выбор - Rust? Почему не Erlang, не Go и не Perl?

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