Сообщения в develop.16

Re: Освоение программирования

Ответ на сообщение
>>  Это должно научить некоторым базовым вещам
Anotheroneuser> А могу я некоторые базовые вещи освоить просто в теории? Или обязательно надо сразу где-то закреплять их на практике?
Проверять на практике полезно, как мне кажется. Пусть даже это будут какие-нибудь абстрактные примеры, но если их покрутить так и этак, то придёт общее понимание как этот пример работает. К тому же, насколько мне известно, практическое применение теоретических знаний способствует образованию новых нейронных связей в коре головного мозга, что значительно укрепляет навык применения этих знаний.
>>  Awesome WM
Anotheroneuser> На некоторых снимках выглядит обалденно. Только у меня не настолько глубокое знание Linux на данный момент. Уже несколько лет работаю в Mint. Но надо что-то менять — согласен. Попробую..
А вот тут моё мнение диаметрально противоположное, если честно. Использовать лучше то, к чему привык. Конечно, любопытство в своё время заставило меня попробовать так называемые тайловые оконные менеджеры, да так на них и остался по сей день, но Awesome достаточно сложен в настройке, если именно осмысленно писать ему конфиг и аплеты, и его изучение требует времени и сил.
Andrew Lobanov to Anotheroneuser (2018-05-15 04:24:34) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Anotheroneuser> Это позволит сэкономить массу сил. По-крайней мере, сейчас, когда их действительно есть куда девать. Как ты понимаешь, до меня практически не доходят характеристики языков программирования. Я просто не понимаю, что значит «монструозный-компактный» или «простой-сложный».
Да оно тебе особо и не нужно. Просто есть языки с кучей конструкций и концепций, которые нужно знать. Теоретически на них проще писать, ведь на каждый чих у тебя есть в языке что-нибудь. А есть языки с необходимым минимумом. В них тебе многое придётся делать чуть сложнее, но зато там мало всего и писать/читать код будет существенно проще. Это, конечно, моё мнение как любителя, но для себя я вывел такую штуку.
Anotheroneuser> С моей точки зрения на данный момент, язык — некий набор инструментов, с помощью которого мне предстоит оживить сценарий игры. Как это будет в натуре, пока даже не представляю. Ну main3.lua понять могу. И приблизительно представляю себе, что движок будет воспроизводить то, что предусмотрено алгоритмом, который ему напишешь в main3.lua. Наверное, в main3.lua же будут содержаться ссылки на звуковые- видео- фото- и прочие материалы, которые необходимо разместить в каталоге игры (это, кстати, отлично).
Instead предоставляет кучу удобных штук для программирования игр. Причём по большей части для написания игры уровня квантового кота (эталон да =) можно прочесть только документацию к движку и изучить код какой-нибудь простой игры. Тут я только о своих играх могу судить, так как в чужой код лажу редко, если это не код stead. Правда сейчас есть смысл опираться только на новое ядро, так что даже и не знаю в какую игру посоветовать заглянуть.
Anotheroneuser> Но читать код... пока не понимаю. Изучаю пособие. Слава Богу, кстати, что не придётся пока учить С++ )) Наверное, на это уйдут годы
Ну с инстедом всё просто на самом деле. Есть в РИЛ-сообществе мнение, что инсед сложный, но на самом деле это не так. Инстед против FireURQ, ИМХО, примерно как go против python. То есть писать на питоне, может, ипроще новичку, но go проще устроен с точки зрения синтаксиса и структуры языка. Инстед это простой инструмент, но не с самым низким порогом вхождения. Но это так. Растекаюсь мыслью по байтам =)

Я как-то объяснял жене как писать игры на инстеде. Вот комната, вот ещё комната. Их можно связать переходами. Вот объект, вот ещё объект. Можно сказать движку, что их можно брать или что между ними возможно взаимодействие.

По секрету скажу, что я до сих пор не знаю lua, так как не прочёл ни одного учебника по этому языку. Просто я изучал чужие игры и экспериментировал =)
Andrew Lobanov to Anotheroneuser (2018-05-15 04:24:33) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Я о Моженкове особо ничего не знаю, если честно. ПРосто его видеодневник попался мне в Youtube и показался нормальным. Он там старается аккуратно советовать, так что, может я что-то не так понял: если разбираться, то придётся лезть в вашу профессию, а я не могу по причине полного отсутствия представления о ней )
> На самом деле, выражать свои мысли в коде проще, когда имеешь простой инструмент. lua достаточно компактный язык
Эта мысль меня вполне удовлетворяет.
Anotheroneuser to Andrew Lobanov (2018-05-14 18:52:17) [ссылка]

Re: Освоение программирования

Ответ на сообщение
> Это должно научить некоторым базовым вещам
А могу я некоторые базовые вещи освоить просто в теории? Или обязательно надо сразу где-то закреплять их на практике?
> сразу "потрогать" результат своего труда
Да. Именно так. Есть запас сил и не хотелось бы перерасходовать его. Хотелось бы составить алгоритм и посмотреть, как он будет исполняться. Короче, Lua так Lua.
> Awesome WM
На некоторых снимках выглядит обалденно. Только у меня не настолько глубокое знание Linux на данный момент. Уже несколько лет работаю в Mint. Но надо что-то менять — согласен. Попробую..
Anotheroneuser to vit01 (2018-05-14 18:49:00) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Это позволит сэкономить массу сил. По-крайней мере, сейчас, когда их действительно есть куда девать. Как ты понимаешь, до меня практически не доходят характеристики языков программирования. Я просто не понимаю, что значит «монструозный-компактный» или «простой-сложный».

С моей точки зрения на данный момент, язык — некий набор инструментов, с помощью которого мне предстоит оживить сценарий игры. Как это будет в натуре, пока даже не представляю. Ну main3.lua понять могу. И приблизительно представляю себе, что движок будет воспроизводить то, что предусмотрено алгоритмом, который ему напишешь в main3.lua. Наверное, в main3.lua же будут содержаться ссылки на звуковые- видео- фото- и прочие материалы, которые необходимо разместить в каталоге игры (это, кстати, отлично).

Но читать код... пока не понимаю. Изучаю пособие. Слава Богу, кстати, что не придётся пока учить С++ )) Наверное, на это уйдут годы
Anotheroneuser to Andrew Lobanov (2018-05-14 18:03:57) [ссылка]

Re: Освоение программирования

Ответ на сообщение
*С восхищением* Обалдеть..
У тебя прямо врождённая склонность есть к программированию.
Вспоминаю, как в школе уравнения решал — жуть берёт ) Тёмный лес со зверями. Еле-еле что-то укладывалось. А информатики у нас вообще не было, гуманитарный же уклон. Вот по этому уклону и пришлось катиться всю дорогу ))

Но Бейсик мне запомнился. И «Лабиринт колдуна».
Anotheroneuser to Peter (2018-05-14 17:36:17) [ссылка]

Re: Освоение программирования

Ответ на сообщение
>>  Не знаю почему тебе советовали начинать с С++
Anotheroneuser> Программу обучения составляю спешно, ориентируясь на мнение таких людей, как ты, Андрей, Пётр — специалистов.
Anotheroneuser> Начинать с С++ рекомендует В.Моженков в своём видеожурнале https://www.youtube.com/playlist?list=PLY7PmJJFH5nS_QOUktkW_eJikn41A819x
Anotheroneuser> Он говорит, что начинать изучение программирования с какого-нибудь вспомогательного (возможно, я не точно воспроизвожу его слова) языка приведёт к тому, что впоследствии придётся осваивать основной язык как бы заново. Может быть, меня попросту переклинило в анализе этой теории применительно к изучению Lua по отношению к C++... А, может, Моженков говорил это не для всех, а лишь для тех, кто планирует капитально связать свою жизнь с программированием и заниматься им профессионально? У меня-то нет такой цели.
Если честно, по ссылке я не сходил, но сильно не согласен с В. Моженковым по той простой причине, что в современном мире именно C++ требуется разве что для поддержки legacy-кода. Для системщиков он так и остался слишком монструзным, хотя кто-то что-то и пишет на нём, а для прикладного ПО появились более классные языки. Причём если говорить именно о прикладном ПО, то опускаться до низкого уровня нынче нет никакого смысла, так как большинство потребностей программиста, особенно если он пишет для себя, с лихвой покроют те же python или go.
>>  Переходи сразу к lua
Anotheroneuser> Привлекательная мысль, благодарю. И очень сэкономит время.
На самом деле, выражать свои мысли в коде проще, когда имеешь простой инструмент. lua достаточно компактный язык. При этом не требует больших знаний и уж тем более, знания C++.

// Может, я предвзят, но С++ не самый удачный язык в принципе. Не самый и плохой, но уж учиться программировать с него это как-то слишком.
Andrew Lobanov to Anotheroneuser (2018-05-14 16:57:52) [ссылка]

Re: Освоение программирования

Ответ на сообщение
>>> Переходи сразу к lua
Anotheroneuser>> Привлекательная мысль, благодарю. И очень сэкономит время.
vit01> То, что для "настоящего" обучения программированию советуют C++, на самом деле не лишено смысла. Это должно научить некоторым базовым вещам, да и строгая типизация дисциплинирует.
ИМХО, а я не настоящий сварщик, делать первые шаги с C++ имеет смысл только если под рукой есть гуру, который всегда придёт на помощь. Причём именно гуру, а не преподаватель.
vit01> На мой взгляд, самое важное в обучении программированию - это иметь возможность сразу "потрогать" результат своего труда. А если твоя краткосрочная цель есть написание игрушек на Инстеде, то Lua - это точное попадание. Так у тебя будет мотивация улучшать свои навыки, и, натренировавшись, можно будет углубляться, переходить от простого к сложному. К тем же плюсам, например.
Да, собственно, до долгой сборки проектов на том же C++ ещё дожить надо. Так что потрогать на первых порах получится сразу практически с любым компилятором.
Andrew Lobanov to vit01 (2018-05-14 16:57:52) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Peter> Сугубо для оживления беседы. :) У меня был примерно такой путь:
Довольно увлекательный, надо сказать, путь =)
Peter> 15) Написал INSTEAD. Понравился Lua, появился инстерес к высокоуровневым языкам. Так что теперь с удовольствием применяю то, что попадется под руку.
Вот, кстати, у меня отторжение высокоуровневых языков было приобретено сугубо благодаря спектруму и позже сишников. Переборол в себе это с помощью С =)
Peter> 16) Работы менялись, но C остался =)
И это не просто так. До сих пор считаю его очень крутым инженерным языком. Конечно, писать прикладной софт на нём нынче не очень удобно, КМК, но системные вещи сам Пат велел =)
Andrew Lobanov to Peter (2018-05-14 16:57:52) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Сугубо для оживления беседы. :) У меня был примерно такой путь:

1) БК0010-01 играл в игры
2) Написал программу для решения квадратных уравнений на Фокале (и тут настал катарсис!)
3) Начал писать игры на Фокале (без знаний вообще)
4) Начал писать игры на Бейсике (без знаний вообще)
5) Начал дизассемблировать код и не понимая что он делает вставлять в свой код игр на Бейсеке :) Обычно для звука и графики
6) В школе появилась информатика но там были блок-схемы. Ничему не научился =)
7) Появилась машина на процессоре 8086 (без винчестера, конечно). Начал писать на gwbasic
8) Начал читать литературу по ассемблеру и писать код прямо в debug.com и отлаживать/менять чужие игры. Уровни к sopwith, музыка в арканоиде итд.
9) Кто то дал C компилятор. Начал пытаться писать на C
10) В итоге, стал более менее писать на ассемблере и С. Конечно, гл образом игры =)
11) В институте уже только C и ASM + Паскаль как предмет
12) Усторился на работу где надо было дизассемблировать ядро Windows NT
13) Устроился на работу где надо было дизассемблировать ядро Windows NT + писать драйверы на c++
14) Устроился на работу где делать примерно то же самое, но для Linux :)
15) Написал INSTEAD. Понравился Lua, появился инстерес к высокоуровневым языкам. Так что теперь с удовольствием применяю то, что попадется под руку.
16) Работы менялись, но C остался =)
Peter to Anotheroneuser (2018-05-14 15:19:38) [ссылка]

Re: Освоение программирования

Ответ на сообщение
>> Переходи сразу к lua
Anotheroneuser> Привлекательная мысль, благодарю. И очень сэкономит время.
То, что для "настоящего" обучения программированию советуют C++, на самом деле не лишено смысла. Это должно научить некоторым базовым вещам, да и строгая типизация дисциплинирует.

Но всё-таки соглашусь с остальными товарищами и посоветую начать с Lua.

На мой взгляд, самое важное в обучении программированию - это иметь возможность сразу "потрогать" результат своего труда. А если твоя краткосрочная цель есть написание игрушек на Инстеде, то Lua - это точное попадание. Так у тебя будет мотивация улучшать свои навыки, и, натренировавшись, можно будет углубляться, переходить от простого к сложному. К тем же плюсам, например.

// python тоже очень крут в плане низкого порога вхождения и неплохо оптимизирует рутину

P.S. Когда начнёшь изучать Lua, попробуй установить Awesome WM. Будешь изучать язык и одновременно тюнинговать свой рабочий стол =)
vit01 to Anotheroneuser (2018-05-14 15:10:44) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Надо подумать... Благодарю за советы
Кстати, сам Иерусалимски, в ответ на претензии одного из читателей его книги в последней редакции, ответил следующее: «The book is not addressed to newbie programmers, and its description clearly says that: "Programming in Lua is targeted at people with some programming background". It also says that "[it] does not assume any prior knowledge about Lua", and I stand by it, as long as the reader has some programming experience.»
Это есть на Amazon.

Я не просто «newbie» а «damn newbie man-who-seek-the-way-to-become-a-programmer» )))
Anotheroneuser to Andrew Lobanov (2018-05-14 13:50:58) [ссылка]

Re: Освоение программирования

Ответ на сообщение
> Не знаю почему тебе советовали начинать с С++
Программу обучения составляю спешно, ориентируясь на мнение таких людей, как ты, Андрей, Пётр — специалистов.
Начинать с С++ рекомендует В.Моженков в своём видеожурнале https://www.youtube.com/playlist?list=PLY7PmJJFH5nS_QOUktkW_eJikn41A819x
Он говорит, что начинать изучение программирования с какого-нибудь вспомогательного (возможно, я не точно воспроизвожу его слова) языка приведёт к тому, что впоследствии придётся осваивать основной язык как бы заново. Может быть, меня попросту переклинило в анализе этой теории применительно к изучению Lua по отношению к C++... А, может, Моженков говорил это не для всех, а лишь для тех, кто планирует капитально связать свою жизнь с программированием и заниматься им профессионально? У меня-то нет такой цели.
> Переходи сразу к lua
Привлекательная мысль, благодарю. И очень сэкономит время.
Anotheroneuser to btimofeev (2018-05-14 13:42:49) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Anotheroneuser> С++
Anotheroneuser> Б. Страуструп - Принципы и практика с использованием C++
Anotheroneuser> Меня берут глубочайшие сомнения, что мозг не закипит уже после пятнадцатой минуты обучения.
Не знаю почему тебе советовали начинать с С++, но если ты никогда раньше не программировал, то, имхо, лучше с него не начинать (а уж тем более с книги Страуструпа). Переходи сразу к lua, как посоветовал Андрей. Или можно начать с Python'а или Go, например. C++ выучишь когда-нибудь потом.

btimofeev to Anotheroneuser (2018-05-14 12:51:46) [ссылка]

Re: Освоение программирования

Ответ на сообщение
>>  Посоветуешь что-нибудь толковое по алгоритмизации. Я искал, но попадалось либо очень сложное, либо малоизвестное. А ты, наверняка, знаешь что-нибудь толковое.
Anotheroneuser> После «алгоритмизации» знак вопроса, конечно же))) Прошу прощения — спешил и спотыкался )
К сожалению, ничего не подскажу по этому вопросу. Сам учился по учебникам бейика и паскаля. Потом долго вытравливал их из себя =)

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

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

Если про написание игр и lua имелся в виду instead, то тут не обязательно вообще знать плюсы. Даже не обязательно знать lua, хотя последнее очень полезно. Если же какой-то другой движок, то я не могу ничего сказать.

Лично я бы начал как раз с чего попроще. То есть с lua, так как он проще C++ и является целью. В books.tech (спрашивайте у оператора вашего уза =) лежит Иерусалимски на русском языке. Очень хороший учебник.

// Книжку могу скинуть более дургим способом, но для этого лучше написать мне на почту spline at rooker dot ru.
Andrew Lobanov to Anotheroneuser (2018-05-14 12:16:55) [ссылка]

Re: Освоение программирования

Ответ на сообщение
> Посоветуешь что-нибудь толковое по алгоритмизации. Я искал, но попадалось либо очень сложное, либо малоизвестное. А ты, наверняка, знаешь что-нибудь толковое.
После «алгоритмизации» знак вопроса, конечно же))) Прошу прощения — спешил и спотыкался )
Anotheroneuser to Anotheroneuser (2018-05-14 11:42:44) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Не знаю, как тут ответить и тебе и Петру сразу, так что отвечаю так.
> А где посмотреть то?
Вот сама учебная программа:
---------------
Начало освоения
---------------

С++
Б. Страуструп - Принципы и практика с использованием C++
К этому меня привели рассуждения Владимира Моженкова 
Он рекомендовал начинать изучение программирования с C++.
Меня берут глубочайшие сомнения, что мозг не закипит уже после пятнадцатой минуты обучения.

------------------------------------------
Продолжение изучения и начало деятельности
------------------------------------------

Lua
Lua 5.3 Руководство - http://lua.org.ru/contents_ru.html
C++ сам по себе мне необходим для изучения Lua, а Lua — для разработки игр.
Всё-таки, хочется освоить язык. Подойти к этому если не профессионально, то сколь-нибудь специально.
Как думаете — не слишком ли? Может быть, не пыжиться, а просто освоить движок и дело с концом.. 

-----------------------
Облегчение деятельности
-----------------------

Emacs LISP
Emacs Lisp https://www.gnu.org/software/emacs/manual/html_node/elisp/index.html
Он необходим для нормального использования EMACS, который, как мне показалось, весьма подходит для организации информации.
О цели такой организации уже говорили здесь. Есть определённая система обращения с информацией, которая требует наличия стационарной и переносной машин (в качестве переносной машины пока будет выступать onyx-boox darwin 5, когда удастся его приобрести на средства, вырученные от продажи другого их устройства, которое не подошло по ряду интересных причин, подробности — по интересу).

LaTeX
Documentation https://www.latex-project.org/help/documentation/
Необходим для облегчения работы с процессуальными документами. Хочется забыть о текстовых процессорах и, как говорят разработчики LaTeX: «… it is better to leave document design to document designers, and to let authors get on with writing documents».
Не знаю насколько верным будет такое решение с точки зрения практики, поскольку на данный момент не сверстал в LaTeX ни одного документа.
> Важнее учиться алгоритмизации, а потом уже учить те или иные языки
Посоветуешь что-нибудь толковое по алгоритмизации. Я искал, но попадалось либо очень сложное, либо малоизвестное. А ты, наверняка, знаешь что-нибудь толковое.

Ну и всё.
Сам вот самоучка. Поэтому, как самоучка — самоучкам ))
Anotheroneuser to Andrew Lobanov (2018-05-14 11:38:50) [ссылка]

Re: Освоение программирования

Ответ на сообщение
Anotheroneuser> Парни, набросал тут себе небольшую программу по освоению языков. Но, конечно, сомневаюсь в том, правильна ли последовательность и т.д. Можно вас попросить — посмотреть, исправить и рекомендовать мне что-нибудь? Там не очень много.
А где посмотреть то?

Вообще, я самоучка и вообще не настоящий сварщик, но учить именно языки это уже завершающий этап обучения азам программирования. Важнее учиться алгоритмизации, а потом уже учить те или иные языки. Разве что не стоит учить алгоритмизацию с паскалем - очень уж потом трудно на более общепринятый синтаксис переучиваться. Полное отторжение будет =)
Andrew Lobanov to Anotheroneuser (2018-05-14 09:03:45) [ссылка]

Re: Освоение программирования

Ответ на сообщение
> Но, конечно, сомневаюсь в том, правильна ли последовательность и т.д.
Я самоучка. Так что вообще боюсь что то советовать. Я просто делал то, что было интересно и все. Кмк основная движущая сила -- любопытство.
Peter to Anotheroneuser (2018-05-14 07:05:25) [ссылка]

Освоение программирования

Парни, набросал тут себе небольшую программу по освоению языков. Но, конечно, сомневаюсь в том, правильна ли последовательность и т.д. Можно вас попросить — посмотреть, исправить и рекомендовать мне что-нибудь? Там не очень много.
Anotheroneuser to All (2018-05-14 06:13:17) [ссылка]

Re: TopicID на dynamic: вытаскиваем тред целиком

Ответ на сообщение
Так, я начинаю индексирование всего. Теперь у почти каждого сообщения должен появиться topicid.
Те сообщения, для которых по каким-то причинам не найдено старового сообщения, получают тег "misplaced": "yes".
Difrex(mobile) to Difrex(mobile) (2018-01-08 11:43:30) [ссылка]

Re: TopicID на dynamic: вытаскиваем тред целиком

Ответ на сообщение
>> // Народ, а каких бы еще фич хотелось бы вам?
>1. Хотелось бы добавить в FAQ описание, как пользоваться тредами и навигацией туда-сюда-обратно по msgid, сабжам, поинтам
Будет отдельная от фака дока.
>2. Нужен парсинг цитат, комментариев и прочей разметки. И выделение цветом. А то читать просто так крайне неудобно
Есть в TODO.
>3. API для экспорта текущей ленты в формат RSS.
Интересное предложение, посмотрю, что можно придумать
>4. При доступе через клиент, когда скачиваешь сообщение, отсутствует тег ii/ok. Это баг
Я удивлен, что оно вообще работает =)

Да, кстати, я был бы очень признателен, если бы хотелки и баги формировались, как таск.

* По вебу тут https://gitea.difrex.ru/lapus/dynamic/issues
* По ноде тут https://gitea.difrex.ru/Umbrella/lessmore
* По индексу тут https://gitea.difrex.ru/Umbrella/fetcher

Если удобней на гитхабе, то могу синкать актуальные изменения и туда :)
Difrex(mobile) to vit01 (2018-01-05 09:08:36) [ссылка]

Re: TopicID на dynamic: вытаскиваем тред целиком

Ответ на сообщение
> // Народ, а каких бы еще фич хотелось бы вам?
1. Хотелось бы добавить в FAQ описание, как пользоваться тредами и навигацией туда-сюда-обратно по msgid, сабжам, поинтам

2. Нужен парсинг цитат, комментариев и прочей разметки. И выделение цветом. А то читать просто так крайне неудобно

3. API для экспорта текущей ленты в формат RSS.

4. При доступе через клиент, когда скачиваешь сообщение, отсутствует тег ii/ok. Это баг
vit01 to Difrex(mobile) (2018-01-05 08:53:12) [ссылка]

TopicID на dynamic: вытаскиваем тред целиком

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

Так вот суть: в индексе каждому сообщению присваивается topicid в формате UUID(RFC 4122).
Зная topicid мы можем выбрать целиком тред с нужной нам сортировкой.

Чтобы вытащить тред по интересующему сообщению(мы знаем msgid) нам нужно будет сделать 2 запроса:
* Первый - узнаем topicid из сообщения
* Второй - вытягиваем ветку

Здесь и далее запросы в json отправляются методом POST на https://dynamic.lessmore.pw/search2.

Узнаем topicid
{
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    },
    {
      "_score": {
        "order": "desc"
      }
    }
  ],
  "query": {
    "query_string": {
      "fields": [
        "msgid"
      ],
      "query": "apfIchd9i8HMMc5DKJNI"
    }
  },
  "size": 1
}
В ответ нам вернется документ сообщения
{
  "took": 1,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": null,
    "hits": [
      {
        "_index": "idec5",
        "_type": "post",
        "_id": "apfIchd9i8HMMc5DKJNI",
        "_score": 9.252761,
        "_source": {
           ...
           "topicid": "fcb208f7-c947-42bc-a037-73d63b137913"
        },
        "sort": [
          1514976123000,
          9.252761
        ]
      }
    ]
  }
}
Теперь зная topicid можно вытянуть весь тред с сортировкой от старых к новым(или наоборот).

Модифицируем первый запрос
{
  "sort": [
    {
      "date": {
        "order": "asc"
      }
    },
    {
      "_score": {
        "order": "asc"
      }
    }
  ],
  "query": {
    "query_string": {
      "fields": [
        "topicid"
      ],
      "query": "fcb208f7-c947-42bc-a037-73d63b137913"
    }
  },
  "size": 100
}
Ответом будет список с документами ветки отсортированный по дате от старых сообщений к новым.

Новый поиск будет доступен тут https://dynamic.lessmore.pw/search2 в ближайшее время, и нидекс будет наполняться совсем неторопливо.
После полного реиндекса поиск будет объявлен стабильным и доступен по https://dynamic.lessmore.pw/search.
Так же фетчер, маппинг, веб будут документированы и снабжаться инструкцией по развертке.

// Народ, а каких бы еще фич хотелось бы вам?
Difrex(mobile) to All (2018-01-05 08:02:22) [ссылка]

Re: API поиска на dynamic.lessmore.pw

Ответ на сообщение
Фикс для запроса эхи. Правильный запрос будет выглядеть так
{
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    },
    {
      "_score": {
        "order": "desc"
      }
    }
  ],
  "query": {
    "query_string": {
      "fields": [
        "echo"
      ],
      "query": "idec.talks"
    }
  },
  "size": 5
}
Difrex(mobile) to Difrex(mobile) (2017-12-12 09:24:25) [ссылка]

API поиска на dynamic.lessmore.pw

== Поиск на dynamic.lessmore.pw

Как это ваще устроено??? На самом деле [API](https://dynamic.lessmore.pw/search) -- это открытый всем Elasticsearch, который предоставляет
гору возможностей для поиска за счет движка Lucene. Давайте что-нибудь найдем!

Вот в [этом](ii://XWShDDcuR4C8PcrTFdGl) вот комменте я пообещал рассказать как это все сделать. Приступим.

Давайте для начала попробуем поискать этот самый коммент(XWShDDcuR4C8PcrTFdGl). Здесь и далее мы будем использовать только
*curl*.
curl -XPOST -d '{"query": {"query_string" : {"fields" : ["msgid"], "query" :"XWShDDcuR4C8PcrTFdGl"}}}' https://dynamic.lessmore.pw/search
Нам вернется такой вот ответ
{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 8.316952,
    "hits": [
      {
        "_index": "idec_net",
        "_type": "post",
        "_id": "XWShDDcuR4C8PcrTFdGl",
        "_score": 8.316952,
        "_source": {
          "echo": "idec.talks",
          "subg": "Re: Совет нодов",
          "to": "Peter",
          "author": "Difrex(mobile)",
          "message": "\nПостараюсь завтра написать пост с обзором в ii://develop.16. Ну, и ссылку в этот тред скину.",
          "date": "1513020107",
          "msgid": "XWShDDcuR4C8PcrTFdGl",
          "tags": "",
          "repto": "h97Frgqdtapl4AI11aUj",
          "address": "tavern,23"
        }
      }
    ]
  }
}
Вот и он!

Нам вернулось одно сообщение, что не удивительно, т.к. ID в сети уникальны, а мы искали именно по нему.

А теперь давайте выведем все последние(5) сообщения(по дате) из эхи *idec.talks*:
curl -XPOST -d '{"sort": [{"date": {"order": "desc"}}, {"_score": {"order": "desc" }}], "size": 5}' https://dynamic.lessmore.pw/search -H 'Content-type: application/json'
{
  "took": 2,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  }
...
Смотрите, тут мы отсортировали(на стороне сервера) сообщения по дате в порядке убывания и ограничили лимит в 5 сообщений.
Попробуйте перевести это на SQL(====select * from idec.talks order by date desc limit 5====).

А теперь выполним более сложный поиск: мы найдем сообщения по строке! Т.е. выполним полнотекстовый поиск!

Запрос будет выглядеть так:
{
  "sort": [
    {
      "date": {
        "order": "desc"
      }
    },
    {
      "_score": {
        "order": "desc"
      }
    }
  ],
  "query": {
    "simple_query_string": {
      "query": "обзор"
    }
  },
  "size": 5
}
Отправляем его POST-ом в https://dynamic.lessmore.pw/search.

В ответ нам на это вернется список из 5 сообщений отсортированных по дате, где найдены вхождения слова "обзор".
Кстати, верхнее сообщение(b2rhH6sOfzEzgGZzLT51(на данный момент)) из эхи habra.16 и с заголовком
"Обзор литературы по языку Python для начинающих".

Вот так вот. Чтобы делать более лучшие вещи читайте документацию(query DSL) по Elasticsearch.

// Да, если вашей эхи нет в индексе, то убедитесь, что она есть в list.txt
Difrex(mobile) to All (2017-12-12 07:22:13) [ссылка]

Re: Очарован GO

Ответ на сообщение
Peter> P.S. Кто еще заценил эту штуку? :)
Язык и правда замечательный. Меня очень радует что во время засилия раздутых языков с тоннами синтаксического сахара и развесистым синтаксисом сравнительно недавно появился такой замечательный язык. Конечно, результат не очень быстрый на фоне C и многих других компилируемых языков, но это окупается удобством разработки и куда большей производительностью в сравнении с популярными интерпретируемыми языками.

Да. Маскот крайне классный ещё. Согласен.
Andrew Lobanov to Peter (2017-12-11 04:38:16) [ссылка]

Re: Очарован GO

Ответ на сообщение
Я пишу на Go. Он классный :)
Difrex(mobile) to Peter (2017-12-10 17:32:58) [ссылка]

Очарован GO

Начал изучать go. И должен сказать, я очарован:

1) простотой синтаксиса (такой же простой, как в C);
2) простотой кросс-компиляции для разных платформ (без мороки с кросс средами);
3) дает плюшки скриптовых языков и вместе с тем это КОМПИЛЯТОР!
4) классный талисман =)

Сейчас мне кажется, что это может стать моим рабочим инструментом, помимо C и Lua.

Буду изучать дальше!

P.S. Кто еще заценил эту штуку? :)
Peter to All (2017-12-09 19:14:32) [ссылка]

Фреймворки жабаскрипта

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

Пока склоняюсь к vue.js, но прислушаюсь к советам.
Difrex(mobile) to All (2017-12-05 12:40:09) [ссылка]