[>]
Re: Что писать в ii.bone.14?
im.1406
51t(mira, 2) — vit01
2014-05-27 18:45:11
да хрен его знает. я сам не знаю, что завтра будет, что я могу ещё сделать. мож у тебя поднять резеврный сайт с резервной документацией (кстати, а ты можешь произвольный сабдомен привязывать?)?
[>]
Re: Что писать в ii.bone.14?
im.1406
vit01(mira, 1) — 51t
2014-05-27 19:04:52
> (кстати, а ты можешь произвольный сабдомен привязывать?)
Поддомен на .tk я привязывать не могу, могу привязать единственный субдомен к длинному адресу
http://ii.frm381.16mb.com/
Работает уже, кстати.
> мож у тебя поднять резеврный сайт с резервной документацией
Резервную документацию можешь пихать в texts на битбакете. Если имеешь в виду ii.51t.ru, то займусь этим завтра
[>]
Re: ???
im.1406
vit01(mira, 1) — spline
2014-05-27 19:05:48
dHsdvfKWyaWgHkrv4lRH
нашёл в /msg
это в клиенте у меня отсутствует
[>]
набросал простенький чекер
im.1406
51t(mira, 2) — All
2014-05-27 19:07:33
import os
msgs = os.listdir('msg')
passed = set()
echoes = os.listdir('echo')
for ea in echoes:
for h in open('echo/%s' % ea).read().splitlines():
if h in msgs:
msgs.remove(h)
passed.add(h)
else:
if h in passed:
print 'double in %s: %s' % (ea, h)
else:
print 'bad record in %s: "%s"' % (ea, h)
for h in msgs:
print 'no owner for %s' % h
[>]
Re: До завтра
im.1406
51t(mira, 2) — vit01
2014-05-27 19:11:09
спокойной ночи... прогнал я базу чекером - ужас на голове дыбом встал. :)
[>]
Что с нодой произошло?
im.1406
spline(station13, 1) — vit01
2014-05-27 20:09:40
Сабж.
При фетчинге получаю такой вот выхлоп:
$ ./gate
fetch
http://irk38.tk/ii/ii-point.php?q=/u/e/im.1406/game.rogue.14/vit01.2014/obsd.talk.14/lor-opennet.2014/ii.dev.14/spline.bash.rss.14/spline.creepy.14/spline.lor.rss.14/spline.openbsd-cvs.rss.14
fetch
http://irk38.tk/ii/ii-point.php?q=/u/m/////////////////////////////////////
Traceback (most recent call last):
File "webfetch.py", line 57, in <module>
parse()
File "webfetch.py", line 55, in parse
debundle(ea,s)
File "webfetch.py", line 34, in debundle
open('../../msg/%s' % mid,'w').write(unp(kod))
IOError: [Errno 21] Is a directory: '../../msg/'
Очевидно, какой-то странный косяк с msgid. Но ума не приложу что не так.
[>]
Привет!
im.1406
vit01(mira, 1) — All
2014-05-28 03:54:28
Доброе утро, дорогие поинты! В Иркутске 8:54, за окном ясно. Поеду на дачу, буду проверять базу оттуда :)
[>]
Re: Что с нодой произошло?
im.1406
vit01(mira, 1) — spline
2014-05-28 04:46:22
Это всё из-за пустых строк в базе. Скажи, в какой эхе они находятся, я исправлю. К тому же, Рома чекер написал для базы, я его на php перенесу, и всё исправлю.
[>]
Re: Что с нодой произошло?
im.1406
51t(mira, 2) — spline
2014-05-28 05:13:24
их быть не должно. когда-нибудь фетчер будет их игнориоровать (мой клиент уже игнорирует, там простейший if, есть или здесь, или в .dev), но сейчас нам нужно выявлять проблемы, а не обрабатывать их.
[>]
Re: Привет!
im.1406
51t(mira, 2) — vit01
2014-05-28 05:15:26
во Владивостоке 12:15, на улице, брррр, холодновато, и мы ведём свой репортаж с центральной арены постройки светлого будущего, где сейчас делается фиксер для базы, и может быть, что то ещё.
[>]
ребилдилка. тестовая версия, поэтому не в dev
im.1406
51t(mira, 2) — All
2014-05-28 05:30:55
import os
msgs = os.listdir('msg')
for h in msgs:
if os.path.getsize('msg/%s' % h) == 0:
os.remove('msg/%s' % h)
msgs.remove(h)
echoes = os.listdir('echo')
for ea in echoes:
passed = []
echo = open('echo/%s' % ea).read().splitlines()
for h in echo:
if h in msgs:
msgs.remove(h)
passed.append(h)
if passed != echo:
passed = passed + [''] or []
open('echo/%s' % ea,'w').write('\n'.join(passed))
for h in msgs:
os.remove('msg/%s' % h)
ребилдит базу - удаляет левые записи и дубли, удаляет сообщения, которых нет ни в одной эхе (в файле эх, если просто отписались от эхи, ничего не удалится), удаляет сообщения с размером 0, которые у меня откуда-то плодятся...
использовать с осторожностью! сначала чекером прогнать с записью в лог. затем заархивировать базу. и только потом запускать фиксер!
но по хорошему, кто-то, кто php языки говорит, нужно, чтобы переписал php-ноду. точнее, тот момент, где оно записывает сообщение в базу - чтобы левое сообщение там не могло пройти, только то, что стандарт прописал :)
[>]
Re: Что с нодой произошло?
im.1406
51t(mira, 2) — vit01
2014-05-28 05:45:56
прогнал ребилдером
следующий синк прислал мне 1056 пустых сообщений (заодно нашёл баг в клиенте, show all не работало, ща исправлю)
[>]
Сделано
im.1406
vit01(mira, 1) — All
2014-05-28 07:33:53
Прогнал проверяльщиком и исправляльщиком базу, загрузил обратно на узел.
[>]
Re: Сделано
im.1406
51t(mira, 2) — vit01
2014-05-28 07:38:27
некоторый прогресс есть - вместо 1056 сообщений no message их стало 99
впрочем, на станции spline их было 96. наверное, это его пустые сообщения :)
сейчас будете их гонять туда-сюда :)
[>]
Re: Сделано
im.1406
vit01(mira, 1) — 51t
2014-05-28 07:41:22
Наверное, он их сначала скачал у меня, потом я их удалил, потом снова скачал, потом spline их скачает у меня.
[>]
Re: Сделано
im.1406
51t(mira, 2) — vit01
2014-05-28 07:43:04
короче, от php-ноды надо оставить только ноду. роботы сделать в виде внешних пойнтов, а нода должна быть только нодой, но чистой, красивой и корректной, и больше не делать ничего.
один фиг, самая интересная эха, cvs, так ни у кого и не ходит :)
[>]
Re: Сделано
im.1406
vit01(mira, 1) — 51t
2014-05-28 07:50:29
> короче, от php-ноды надо оставить только ноду. роботы сделать в виде внешних пойнтов, а нода должна быть только нодой, но чистой, красивой и корректной, и больше не делать ничего.
Лучше мы всё починим, и будет всё хорошо :)
> один фиг, самая интересная эха, cvs, так ни у кого и не ходит :)
Пока что я не видел, чтобы туда что-то написали ещё. А gate3 опять сохраняет ту же самую статью...
[>]
Re: Сделано
im.1406
51t(mira, 2) — vit01
2014-05-28 07:53:35
нафиг писать роботы на php, если есть python? :) на python у меня всё ходит, всё работает и всё под контролем, любую проблему могу исправить
а задача php ноды - быть закинутой на любой хостинг и там выполнять свои обязанности. когда их будет выполнять - тогда уже можно будет что-то прикручивать...
покажи мне ноду, которая работает у тебя, прям щас...
[>]
Re: Сделано
im.1406
vit01(mira, 1) — 51t
2014-05-28 08:11:19
> нафиг писать роботы на php, если есть python? :) на python у меня всё ходит, всё работает и всё под контролем, любую проблему могу исправить
Хостинг питон не поддерживает, поэтому php. Всё логично.
> покажи мне ноду, которая работает у тебя, прям щас...
Вот эта нода и работает. Правда встречаются неполадки с гейтами, но нода работает.
[>]
Re: Сделано
im.1406
51t(mira, 2) — vit01
2014-05-28 08:15:03
> Хостинг питон не поддерживает, поэтому php. Всё логично.
роботов можно запускать хоть из дома, хоть откуда угодно
> Вот эта нода и работает. Правда встречаются неполадки с гейтами, но нода работает.
какая вот эта? я хочу исходники посмотреть. если api корректен, то хоть клиент пишет, хоть робот, косяков оно пропустить не должно.
[>]
Re: Сделано
im.1406
51t(mira, 2) — vit01
2014-05-28 08:52:41
ну, собственно, вся запись идёт здесь:
function savemsg($h,$e,$t) {
checkEcho($e);
if(checkHash($h)) {
if(!file_exists('msg/'.$h)) {
$fp = fopen('msg/'.$h, 'wb'); fwrite($fp, $t); fclose($fp);
$fp = fopen('echo/'.$e, 'ab'); fwrite($fp, "$h\n"); fclose($fp);
echo "message saved: ok\n";
} else {
echo "error: this message exists\n";
}
} else echo "error: incorrect msgid\n";
}
больше, насколько я понимаю, никто сообщения не пишет?
у меня тут такие вопросы:
1. что делает checkEcho? где оно вываливается с ошибкой?
2. что делает checkHash??? является ли '' валидным хэшем на этом чекере?
3. if(!file_exists('msg/'.$h)) - вообще-то это неправильно, потому что один кривой файл может не позволить перезапись. если эха требует записи файла, его надо записывать, не проверяя на валидность.
4. ага, у тебя ещё и в point_msg запись идёт, сейчас его разберу.
[>]
Re: Сделано
im.1406
51t(mira, 2) — 51t
2014-05-28 08:56:42
но эта функция не может делать нулевые файлы. там бы хоть ii/ok было бы. но всё равно.
function msg_to_ii($echo,$msg,$username,$addr,$time,$receiver,$subj,$repto) {
checkEcho($echo);
if($repto) {
$repto="/repto/".$repto;
}
$msgwrite="ii/ok$repto
$echo
$time
$username
$addr
$receiver
$subj\n\n$msg";
if(count($msgwrite)>64099) die("error:msg big!");
$msgid=hsh($msgwrite);
@$echofile=fopen("echo/".$echo,"a");
@fputs($echofile,$msgid."\n"); fclose($echofile);
@$msgfile=fopen("msg/".$msgid,"w");
@fputs($msgfile,$msgwrite);
fclose($msgfile);
return $msgid;
}
5. см. 1
6. подавление ошибок, особенно в данном случае - это очень плохо. там не должно быть ошибок
[>]
Re: Сделано
im.1406
vit01(mira, 1) — 51t
2014-05-28 08:57:32
Основная запись идёт в msg_to_ii, savemsg используется для пуша. Проверялки не всегда рабочие, когда-то ты просил поставить на них заглушка, поэтому посмотри ещё.
[>]
Re: Сделано
im.1406
51t(mira, 2) — vit01
2014-05-28 09:06:55
> Основная запись идёт в msg_to_ii
Как оно может создать пустое сообщение? Мне непонятно.
[>]
Re: Сделано
im.1406
vit01(mira, 1) — 51t
2014-05-28 09:21:49
Во-первых, в фетчере используется своё собственное сохранение сообщений, во-вторых, буквально вчера нода была другая, поэтому были проблемы. Сегодня потестируем именно эту ноду.
[>]
Re: Сделано
im.1406
51t(mira, 2) — vit01
2014-05-28 09:23:46
> Во-первых, в фетчере используется своё собственное сохранение сообщений
так и используй ii-functions, не зря ты его писал :)
[>]
Коммит
im.1406
vit01(mira, 1) — All
2014-05-28 10:07:54
После борьбы с сорняками на даче решил сделать коммит. Изменения: мелкий багофикс, а также вынесение некоторых данных в конфиг. Просьба 51t посмотреть webfetch.php, так как всякие ужасные ошибки идут именно от фетчинга.
[>]
Re: Коммит
im.1406
51t(mira, 2) — vit01
2014-05-28 13:37:54
да то же самое, основную доку переписываю, только меньше фидо, больше радости :) чучуть из "статьи" взял. кстати, лучше бы по статье чё сказали, покатит её в таком виде на хабр запулить, или "провинция, не поймут-с"? если не поймут-с, то что изменить надо. а то ни одного комментария не было :(
[>]
Re: Коммит
im.1406
51t(mira, 2) — 51t
2014-05-28 13:38:36
или хотя бы поиграть в "хабр", вы будете задавать обязательные для того сообщества вопросы, а я на них буду отвечать - потом можно будет это сразу в статью добавить :)
[>]
Re: Коммит
im.1406
vit01(mira, 1) — 51t
2014-05-28 13:41:52
> да то же самое, основную доку переписываю, только меньше фидо, больше радости :)
А можно бэкап? :)
> чучуть из "статьи" взял. кстати, лучше бы по статье чё сказали, покатит её в таком виде на хабр запулить, или "провинция, не поймут-с"? если не поймут-с, то что изменить надо. а то ни одного комментария не было :(
Не поймут, надо поменьше фидошных терминов, больше конкретики + записать конкретно, что ii может (да взять хотя бы из того же habr.md).
[>]
Re: Коммит
im.1406
51t(mira, 2) — vit01
2014-05-28 13:44:49
> А можно бэкап? :)
бэк-чё? бэк-куда? :) можно, если только объяснишь, что имеешь ввиду. :)
> Не поймут, надо поменьше фидошных терминов, больше конкретики + записать конкретно, что ii может (да взять хотя бы из того же habr.md).
а какие там фидошные термины? да и статья сама по себе не подразумевает конкретику, с таким-то названием. по конкретике - уже было, это неинтересно. тут мы идём на шаг вперёд, переформатируем опыт :) кроме того, там есть конкретные зацепки, про ту же поддержку для сообществ - мож, найдутся те, кто захочет это проверить.
в общем, не совсем понятно - ткни в конкретные места, где что нужно переделать.
[>]
Re: Коммит
im.1406
vit01(mira, 1) — 51t
2014-05-28 13:48:09
> или хотя бы поиграть в "хабр", вы будете задавать обязательные для того сообщества вопросы, а я на них буду отвечать - потом можно будет это сразу в статью добавить :)
Обязательных вопросов на хабре, вроде бы, и нет. Задам часто задаваемые вообще:
1. Что оно умеет, чем лучше <имя сервиса> или <название программы>?
2. "Опять это фидо, куда уж можно?"
3. Где скачать?
4. Какие были использованы технологии?
5. Как применять на практике?
[>]
Re: Коммит
im.1406
51t(mira, 2) — vit01
2014-05-28 13:50:51
> 1. Что оно умеет, чем лучше <имя сервиса> или <название программы>?
да, а что?
> 2. "Опять это фидо, куда уж можно?"
времена меняются, а мы не меняемся вместе с ними :)
> 3. Где скачать?
на irk38.tk. я толком сам не знаю.
> 4. Какие были использованы технологии?
как обычно, наше ноу-хау, сборка трезвым.
> 5. Как применять на практике?
читать документацию, наверное. не знаю, оно как-то у меня само применяется на практике. :)
[>]
Re: Коммит
im.1406
vit01(mira, 1) — 51t
2014-05-28 13:55:11
> бэк-чё? бэк-куда? :) можно, если только объяснишь, что имеешь ввиду. :)
backup, резервная копия (ну чтобы себе сохранить)
> а какие там фидошные термины?
Само фидо, эха, гейт (гейтование), нода, станция, поинт. Поменять на более "цивилизованные" синонимы
> в общем, не совсем понятно - ткни в конкретные места, где что нужно переделать.
И да, сам стиль речи очень настораживает, плюс есть небольшие проблемы с русским языком (хабровчане очень не любят ошибки в языке). Но это я могу исправить сам.
[>]
Re: Коммит
im.1406
vit01(mira, 1) — 51t
2014-05-28 13:57:29
>> 1. Что оно умеет, чем лучше <имя сервиса> или <название программы>?
>да, а что?
>> 2. "Опять это фидо, куда уж можно?"
>времена меняются, а мы не меняемся вместе с ними :)
>> 3. Где скачать?
>на irk38.tk. я толком сам не знаю.
>> 4. Какие были использованы технологии?
>как обычно, наше ноу-хау, сборка трезвым.
>> 5. Как применять на практике?
> читать документацию, наверное. не знаю, оно как-то у меня само применяется на практике. :)
Мне сейчас написать правильные ответы? :)
[>]
Re: Коммит
im.1406
51t(mira, 2) — vit01
2014-05-28 14:01:43
> backup, резервная копия (ну чтобы себе сохранить)
я сейчас это хоть как-нибудь по разделам растолкаю, и сразу же в git закину.
> Само фидо, эха, гейт (гейтование), нода, станция, поинт. Поменять на более "цивилизованные" синонимы
эти слова я вижу в описании того же i2p. кроме слова "эха", которое я вижу один раз. и как его там заменить? :)
> И да, сам стиль речи очень настораживает, плюс есть небольшие проблемы с русским языком (хабровчане очень не любят ошибки в языке). Но это я могу исправить сам.
где. ты конкретно откомментируй, типа "вот тут не так, вот тут ошибка". у тебя же есть волшебный символ > :)