# Легкость питона
Peter(harbor:club.syscall.ru) — All
2017-04-10 17:47:00


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

Я уже не 1й раз пытаюсь подружиться с питоном, и знаю, что меня обманывают. :) По моему, самые простые языки: луа, си, ассемблер. От сложного к простому. А питон мной воспринимается просто как сборник рецептов. Не могу почувствовать язык. Не могу понять его логику. :) Но я надеюсь :)

# Re: Легкость питона
spline(harbor:club.syscall.ru) — Peter
2017-04-10 18:41:40


Действительно не самый простой язык. Почему-то принято синтаксический сахар и обширность стандартной библиотеки называть простотой языка, но на деле всё совсем не так =)

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — spline
2017-04-10 20:51:06


После обновления из гита:
Traceback (most recent call last):
  File "caesium.py", line 1621, in <module>
    load_colors()
  File "caesium.py", line 233, in load_colors
    curses.init_pair(11, colors.index(param[1]), colors.index(param[2]))
_curses.error: init_pair() returned ERR

До этого долго безуспешно пытался завести его. :) Фетчер срабатывает, пишет новые сообщения, но ... все по 0 остается в списке.

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — spline
2017-04-10 20:51:26


Это я про цезий :)

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-10 21:04:24


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

http://git.gk11.ru/gk11/ii-clients-gk11/src/master/old-caesium

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-10 21:48:21


Ну, надо двигать новое тоже.
Вот ii/idec есть, но ты же пишешь gk11. ;) Так и тут, совместим приятное с полезным, spline пофиксит или расскажет, где я не прав.

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-10 22:06:46


gk11 это не новое, это исправленное под другие реалии. там изменена сама концепция, если ii это было для накопления эх по годам-месяцам, где каждая эха - целостная, которая потом уезжает в архив и ты можешь запросить эху за нужный год - то gk11 она больше для болтания, а не накопления архива информации за 140 лет, и заточена уже под это. потому что *непригодилось*, нет пока таких серьёзных нужд :) но саму ii никто не отменяет, её можно тоже запросто скачать

если какая-то вещь устраивает - то зачем её менять? я вот с ужасом жду, когда выйдет 9-й дебиан, потому что не хочу менять свой 8-й, и ещё бы много лет на нём прожил :)

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-10 22:13:45


Да про разницу gk11 и ii я прочитал и визуально ощутил.

# Re: Легкость питона
spline(gk,11) — Рома
2017-04-11 03:08:02


> самый нормальный цезий - это старый, до сих пор им пользуюсь. работает, как часы

И конечно у тебя есть весомые аргументы. Так зачем же ты их от нас скрываешь?

> http://git.gk11.ru/gk11/ii-clients-gk11/src/master/old-caesium

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

# Re: Легкость питона
spline(gk,11) — Peter
2017-04-11 03:08:02


> После обновления из гита:
> До этого долго безуспешно пытался завести его. :) Фетчер срабатывает, пишет новые сообщения, но ... все по 0 остается в списке.

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

# Re: Легкость питона
Рома(harbor:gk11.ru) — spline
2017-04-11 03:14:43


> И конечно у тебя есть весомые аргументы. Так зачем же ты их от нас скрываешь?

он простой, понятный и просто работает

новые версии, сколько не пробовал - неудобно и всё тут

# Re: Легкость питона
spline(gk,11) — Рома
2017-04-11 03:57:12


>> И конечно у тебя есть весомые аргументы. Так зачем же ты их от нас скрываешь?

> он простой, понятный и просто работает

Ты сейчас разницу между гк и ii описал =)

> новые версии, сколько не пробовал - неудобно и всё тут

С учётом того, что в используемой тобой части ничего не поменялось, утверждение весомое.x

# Re: Легкость питона
Рома(harbor:gk11.ru) — spline
2017-04-11 04:10:23


я только когда увидел, что фетчер вызывается через shell, а не через import - уже за голову схватился :) у меня может запросто не быть python-а в PATH, или он может называться своим именем

# Re: Легкость питона
spline(gk,11) — Рома
2017-04-11 05:03:50


Рома> я только когда увидел, что фетчер вызывается через shell, а не через import - уже за голову схватился :) у меня может запросто не быть python-а в PATH, или он может называться своим именем

А поправить конфиг тебе религия мешает?

Импортируй ка нативный бинарь, например. Отчего бы не использовать такой фетчер в перспективе?

# Re: Легкость питона
Рома(harbor:gk11.ru) — spline
2017-04-11 05:41:36


> Импортируй ка нативный бинарь, например. Отчего бы не использовать такой фетчер в перспективе?

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

# Re: Легкость питона
spline(gk,11) — Рома
2017-04-11 06:02:44


>> Импортируй ка нативный бинарь, например. Отчего бы не использовать такой фетчер в перспективе?
> просто я никогда такого способа не видел. раз и то и то через python3, лучше как модуль импортировать

Сделано на вырост. Тем более нынче мне очень понравился golang и я некоторый софт хочу на нём реализовать. Например, уже есть нода без веб-интерфейса http://spline-online.tk:4242/

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — spline
2017-04-11 06:16:21


Сначала надо с падениеи разобраться. Я делал git status, стирал все лишнее. Не помогло. Вечером еще попробую.

Ребята, не ссорьтесь. :)

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

# Re: Легкость питона
gl00my(harbor:gk11.ru) — Рома
2017-04-11 06:25:10


Откровенно говоря, у вас обоих есть косяки, например: :)

У сплайна в ноде если не написать завершающий /. Вчера минут 15 на этом застрял. :)

У тебя: фетчер не оформлен никак (ни параметров, ни конфига). Да и run.py не особенно в демона оформлен. :)

Разобраться стороннему человеку не так просто. Хотя вроде бы все т просто.

Это не критика, но все же дооформить и выложить публично, как законченный "продукт" было бы неплохо.

# Re: Легкость питона
Peter(gk,11) — gl00my
2017-04-11 06:57:11


gl00my> Это не критика, но все же дооформить и выложить публично, как законченный "продукт" было бы неплохо.

Проверка из цезия. :)

# Re: Легкость питона
Рома(harbor:gk11.ru) — gl00my
2017-04-11 07:10:56


> У тебя: фетчер не оформлен никак (ни параметров, ни конфига).

его можно вообще в лоб пускать, и он будет по /discover всю ноду синхронизировать
не понимаю, зачем там нужен конфиг :)

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 07:35:37


Можно. Но если я хочу забирать с нескольких разных нод. С разных нод, разные эхи -- вполне нормальная ституация. Нужно делать копипаст. Вообще, копипаст нельзя допускать. Такой пакет, где нужно менять код для конфигурации -- я не знаю, можно ли в дистр какой-то протолкнуть?

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

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 07:49:01


> Нужно делать копипаст.

это экономия на спичках. наличие проверок значительно усложнит наглядность кода - проще для каждой ноды делать свою копию, и всё. хотя я могу сделать версию, которая будет sys.argv слушать :)

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 07:54:40


Я понял твою позицию. Но для меня, минусы значительны. Хотя я тоже сторонник простоты (возможно, не такой экстремальной) Например, после git pull мне придется менять несколько файлов. Самый критический минус я озвучил -- скрипт может вообще не быть доступен для записи ( если он в рамках дистрибутива оказался).
А так тебе решать, просто вопрос цели. Если цели нет -- распостранять технологию -- то можно ничего не делать. Мне не критично точно, но в таком виде не могу "рекомендовать" поставить ноду друзьям, если только сам не поставлю.

# Re: Легкость питона
Рома(harbor:gk11.ru) — Рома
2017-04-11 07:52:13


кстати, чёт я не вижу, чтобы в фетчере где-то LIMIT использовался. забыл, что ли, добавить его :) вспомнить бы ещё, как оно там работает

# Re: Легкость питона
Рома(harbor:gk11.ru) — Рома
2017-04-11 08:02:39


исправил LIMIT в старом фетчере, и добавил фетчер с командным управлением
http://git.gk11.ru/gk11/gk11-server/src/master/tools/gkfetch-db-argv.py

запускать так:
python2.7 gkfetch-db-argv.py НОДА ЛИМИТ ЭХА ЭХА ЭХА
либо python2.7 gkfetch-db-argv.py НОДА ЛИМИТ /discover

то есть:
python2.7 gkfetch-db-argv.py gk11.ru 700 std.club obsd

# Re: Легкость питона
gl00my(harbor:gk11.ru) — Рома
2017-04-11 08:04:13


Ага. Доеду до работы и прикручу

# Re: Легкость питона
Рома(harbor:gk11.ru) — gl00my
2017-04-11 08:11:00


да, кстати, после того, как сольёшь всю эху - у сообщений будет новёхонький accepted и они зальют тебе всю главную - не страшно, но неаккуратно. в таком случае лучше тоже запустить тот трёхстрочник, который меняет accepted на date, но уже для эхи obsd
from bbdata.dbj import msg

for n in msg.select().where(msg.echoarea == 'obsd'):
    n.accepted = n.date

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 08:17:56


Понял. Я собирался кстати фечить не все (мне старые сообщения не особенно важны), или по какой то причине лучше все?

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 08:22:55


лучше все. чтобы была полная копия на случай... да случаи разные бывают :) там всего-то менее 700 сообщений

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 08:25:48


Ок, заберу все. Добавить эху на главную -- это просто текстовый файл? В базе вроде нет ничего?

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 08:29:08


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

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 09:09:53


Что то скрипт со сбросом даты не помог :)
Что делать?

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 09:40:19


Что то скрипт со сбросом даты не помог :)

попробуй в конце скрипта дописать строчку
msg.save()

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 09:54:13


А разве без параметра сработает?

# Re: Легкость питона
gl00my(harbor:gk11.ru) — Peter
2017-04-11 10:01:27


В общем, все странно.
добавил n.save (а не msg.save)

В базе теперь времена совпали, но сортировка - все равно убитая.
Пока откатил базу назад

# Re: Легкость питона
gl00my(harbor:gk11.ru) — gl00my
2017-04-11 10:03:42


А скрипт в виде простого цикла - который ты дал ранее - не меняет дату. Просто проходит все записи и все.
В принципе, логично. Надо как то сохранить изменения..

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — gl00my
2017-04-11 10:06:27


Нужен скрипт, который для всех сообщений сбрасывает дату на время создания. :)
Сможешь в виде sql запроса оформить?

# Re: Легкость питона
Рома(harbor:gk11.ru) — gl00my
2017-04-11 10:15:28


> А скрипт в виде простого цикла - который ты дал ранее - не меняет дату.

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

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 10:17:04


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

именно этот скрипт я тебе и дал - почему он не работает, я не знаю

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 10:20:55


Тогда очень странно... :(

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Peter
2017-04-11 10:33:49


Вот конкретно сейчас. Даты же сбиты?

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 10:36:13


почему, сейчас нормальные даты

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 10:37:29


у тебя, по-моему, на других эхах что-то сбилось :) а с openbsd всё нормально
только базы больше не убивай, а то сообщения пропадают раньше, чем я их захватить успею :)

# Re: Легкость питона
Рома(harbor:gk11.ru) — Рома
2017-04-11 10:43:59


вообще, по идее, это надо в фетчер *право первого синка* ввести, чтобы оно accepted не проставляло

просто в ii вообще не было ленты (точнее, был один отдельно стоящий сервис, который собирал сообщения со всех и формировал из них ленту), поэтому там можно было синкаться, как угодно. а сейчас, наверное, лучше при особом ключе LIMIT снимать этот самый limit и при этом не добавлять accepted, а проставлять дату

потом этим займусь

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 10:45:42


Ладно, что то похожее на правильные даты у нас получилось вроде. Хоть и не совсем. :) Но жить можно...

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 10:49:00


> потом этим займусь

Хорошо бы. :)

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 10:53:02


> Хорошо бы. :)

http://git.gk11.ru/gk11/gk11-server/commit/901311a5c219ef57bb0b1d2512e7506bab66c053

999999 сообщений хватит на всех :) теперь, если задать LIMIT равным 999999, то accepted будет равно дате сообщения

# Re: Легкость питона
gl00my(harbor:gk11.ru) — Рома
2017-04-11 10:58:37


Может, лучше 0? ;) Или -1? А то как то 999999 как то совсем магически.

# Re: Легкость питона
Рома(harbor:gk11.ru) — gl00my
2017-04-11 11:01:13


зато меняется в полстрочки. если 0 - то надо будет ещё делать перебитие лимита, либо менять в сервере

всё равно это делается один раз в жизни, и больше такой лимит не нужен. да и непринципиально это, разве что лента чуть засоряется, если много сообщений сразу. хотя, можно тогда и 0 перебивать на 999999 - ща приделаем

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 11:09:57


Да я про это и говорю, безлимит -- это -1 или 0. Оба варианта красивее по моему чем 999999 :)

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 11:10:36


Спасибо! Значит 0 - это безлимит,

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 11:11:00


во всём нужно знать меру :) 999999 хватит для всех :)

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 11:30:19


Кстати, а есть возможность обратиться сразу к кому-то, без реплая? Ну не к All а сразу по имени? Вряд ли, но вдруг? :)
В принципе, ненужная фича....

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 11:43:47


в веб-интерфейсе - нет, оно в hidden-поле зашито - ну, можно это hidden-поле преобразовать в текстовое, но зачем? :) через клиенты - можно, где такое предусмотрено

хотя, в принципе, карбонки есть и в клиентах и на самом сервере:

http://club.syscall.ru/for/Peter
http://club.syscall.ru/rssfor/Peter

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

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 11:49:46


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

# Re: Легкость питона
Рома(harbor:gk11.ru) — Peter
2017-04-11 12:01:42


---
 tpl/mform.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tpl/mform.html b/tpl/mform.html
index 62243ce..b84a4ea 100644
--- a/tpl/mform.html
+++ b/tpl/mform.html
@@ -31,7 +31,7 @@
 <form class="form-horizontal" role="form" method="post" enctype="multipart/form-data" action="/a/savemsg/{{ea}}">
         <input type="hidden" name="repto" value="{{repto}}" />
         <input type="hidden" name="msgfrom" value="{{u.uname}}" />
-        <input type="hidden" name="msgto" value="{{rmsg.msgfrom if repto else 'All'}}" />
+        <input type="text" name="msgto" value="{{rmsg.msgfrom if repto else 'All'}}" class="form-control" id="msgtoInput" placeholder="Получатель">
         <input type="text" name="title" value="{{zubj}}" class="form-control" id="subjInput" placeholder="Тема сообщения">
         <textarea name="outtxt" class="form-control" style="height:300px" placeholder="Текст сообщения"></textarea>
 
-- 
2.1.4

# Re: Легкость питона
Peter(harbor:club.syscall.ru) — Рома
2017-04-11 12:08:19


Ага, спасибо. Вроде нашел. :)

# Re: Легкость питона
spline(gk,11) — Peter
2017-04-11 13:04:21


> Кстати, а есть возможность обратиться сразу к кому-то, без реплая? Ну не к All а сразу по имени? Вряд ли, но вдруг? :)
> В принципе, ненужная фича....

В цезии есть такая возможность. Интересно как оно работает на стыке с гк?

# Re: Легкость питона
Рома(harbor:gk11.ru) — spline
2017-04-11 13:06:25


> В цезии есть такая возможность. Интересно как оно работает на стыке с гк?

поле to нормально работает, как и поле from. из всех полей только поле адреса выполняет другую функцию, чем в ii, и поэтому конвертируется туда-сюда, всё остальное остаётся *как есть*