新月実装開発部

49fdb310 anonymous 2015-12-13 11:18
@markdown
まだたまにエラーが出るなあ。レコードの転送に失敗してるのかしらん。
```
java.io.EOFException: Unexpected end of ZLIB input stream
java.util.zip.ZipException: invalid distance too far back
```
e58230ac anonymous 2015-12-13 15:14
>>ce639e27
それネットワークが不安定にならない?
ab5d938a anonymous 2015-12-13 16:22
>>e58230ac
e709bb1f anonymous 2015-12-14 04:23
>>539165e8
それはどこにも書いてなかったような…
どうしようかな。
03b62f6c anonymous 2015-12-14 05:14
>>e709bb1f
実装上の問題です。
sakuはjoinが来ると、1ノード追い出します。
https://github.com/shingetsu/saku/blob/25c932c992d5fabdd2bff9cf3302284d7a5bbad2/shingetsu/server_cgi.py#L154
ce98f0b8 anonymous 2015-12-14 06:42
レスの表示に成功したのでテンション上がってきたw
とりあえずクロールで集めたデータをきちんと閲覧できるようにしようっと。

ファイルの数: 1114
レコードの数: 253077
キャッシュサイズ: 5319MB
45c18b45 anonymous 2015-12-14 15:38
>>03b62f6c
ははあ、一番最初に/joinしたノードが追い出されるわけですね。
670404d0 anonymous 2015-12-14 15:45
効率の良いクローラーを書くのむずい
98eaa538 anonymous 2015-12-14 17:33
>>30fbf9b9
朔は隣接ノードの数を制限してるから再度/joinしたときに結局別のノードが追い出される。
e0ee4ae1 anonymous 2015-12-14 17:34
>>5cb62859
一緒に頑張りませう。
30fbf9b9 anonymous 2015-12-14 18:42
>>45c18b45
1. A-B となってるところに X がjoinしようとする
2. A-X となってBが切り離される
3. A-X-B として繋ぎ直す
5cb62859 anonymous 2015-12-14 20:39
こういうの作ってます
http://133.130.115.168/
0322c961 anonymous 2015-12-15 02:31
>>670404d0
結局朔のAPIと/headを使って探索ノードを虱潰しして抜けたレスを探していくしかないという…
a3e4dd78 anonymous 2015-12-15 02:42
>>03b62f6c
確かにそうしないと新しいノードが/join出来無いですよね。
定期的に隣接ノードを入れ替えればいいのかしら。
f834edbb anonymous 2015-12-15 13:30
/haveと/headと/getができたっぽい。
テストは一通りしたけど、さすがにオンラインにするのは緊張するなあ。
d1d8d3bc anonymous 2015-12-15 13:37
> >>7a3ee89b
> http://shingetsu.info/protocol/protocol-0.7.d1
> > /get/ファイル名/時刻引数
> > 「時刻/識別子」指定した時刻と識別子のレコード
[[新月の開発/1fb56e12]]

これ実装するの忘れてた! やばいやばい。
ef6bca7c anonymous 2015-12-15 15:14
/updateができたけどうまくいくかな~
855d46b5 anonymous 2015-12-16 07:11
/updateはちゃんと動くようになりました。
これで/recent以外のプロコトルコマンドは全て実装したことになります。
/recentをちょっと実装してみようかな。
3012f9cb anonymous 2015-12-16 18:17
/recentをちゃんと実装するのに新しいテーブルがデータベースに必要になったので、この機会にデータベースの構造を見なおしてスレッドをクロールしなおしました。ここらへんはデータの再取得がすぐできる新月は非常に便利です。いずれMySQLやPostgreSQLでもテストしたいんですけど、いつやろうかな。
d66e9169 anonymous 2015-12-17 07:42
クローラーができてupdaterも出来てよしUI
と思った矢先他のノードへの通信が出来ない現象が発生してる
saku win node 全部怪しすぎて分からん
sakuはUTF8 ダメ言ってるし
msのエラーページが出てくるし
nodeもうまくいう事聞かんし
とほほ…
fd8227b2 >>5cb62859 2015-12-17 11:49
フロントエンドがだいぶ軽くなった。
今後は安定版のリリースを目指す。それと、フロントエンドは機能追加したりデザインをなんとかする…
805bb9c5 anonymous 2015-12-17 12:36
お、頑張ってますね~
Clojureでの新月の新実装「需」はあともうちょっとでUIの作成に取り掛かれるところまで来ました。
d6be29e3 anonymous 2015-12-17 15:28
>>c6157ad8
ノード間の通信が出来ないから使えないと思う
ブラウザでは普通に動作する
まあ時間かかりそうだし時間のある時にするよ
ff24acd8 anonymous 2015-12-17 19:45
「需」のプロコトルコマンドの実装がほぼ完了しました。
/recentは時刻引数の処理を真面目に実装すると結構面倒くさいです。

ゲートウェイのウェブページの作成をサーバーで行うかクライアントで行うかかなり迷ったんですが、結局クライアントサイドでClojureScriptで作成することにしました。これでページ間の遷移がかなりスムーズになるはずです。URLの問題はHTML5のpushState()で解決する予定です。

Manipulating the browser history
https://developer.mozilla.org/en-US/docs/Web/API/History_API
c6157ad8 anonymous 2015-12-17 21:47 1450356472.jpg (132KB)
>>d66e9169
Chromeとかでレスポンスを調べてみたらいいんじゃないでしょうか。
bc2be153 anonymous 2015-12-18 00:41
>>d6be29e3
ノードを動かしているPCのブラウザからならちゃんとテストできますよ。

> ブラウザでは普通に動作する

朔がリクエストのヘッダを見て弾いているのかもしれませんね。
6d4f62c0 anonymous 2015-12-18 01:35
>>d6be29e3
それ心当たりある
sakuはcontent-typeヘッダーをつけていないのにgzip圧縮したレスポンスを返してくるんですが、対処してますか?
13724a8f anonymous 2015-12-18 03:55
>>ca58f444
ここは新実装のスレなので、朔の話はこっちのほうがいいんじゃないかな。
[[新月の開発]]
2806bd49 anonymous 2015-12-18 05:28
>>ca58f444 です
>>6d4f62c0 の言う事が関係してました

リクエスト時に accept-encoding が指定されていないとsakuが >>d66e9169 のエラーを出して応答しなくなるようです
ずっとnode側の問題だと思ってやってたからすごく時間を無駄にした気がする
ca58f444 anonymous 2015-12-18 09:31
なんかエラー出たので報告

sakuのトレース(抜粋)
環境:win7 pyhton3.5 saku4.6.1

Exception happened during processing of request from ('127.0.0.1', 51759)

AppData\Local\Programs\Python\Python35-32\lib\http\server.py", line 931, in send_head
    return self.run_cgi()
shingetsu\LightCGIHTTPServer.py", line 253, in run_cgi
    cgiobj.start()
shingetsu\basecgi.py", line 103, in start
    self.run()
shingetsu\server_cgi.py", line 69, in run
    self.do_recent(path)
shingetsu\server_cgi.py", line 246, in do_recent
    fp = self.output()
shingetsu\server_cgi.py", line 194, in output
    return TextIOWrapper(fp, 'utf-8', 'replace')
AttributeError: 'BodyFilter' object has no attribute 'readable'
c7edc22a anonymous 2015-12-18 12:29
>>8086a12e
修正しました
8086a12e anonymous 2015-12-18 14:52
@markdown
>>2806bd49
本当だ。プロトコルの説明書にはaccept-encodingが必須とは書いてないからこれは変だね。
```python
        # HTTP_* headers require by SAKU
        env["HTTP_ACCEPT_LANGUAGE"] = \
            self.headers.get("Accept-Language", "")
        env["HTTP_ACCEPT_ENCODING"] = \
            self.headers.get("Accept-Encoding", "")
        env["HTTP_HOST"] = self.headers.get('host', '')
        env["HTTP_REFERER"] = self.headers.get("Referer", "")
        if 'X-Forwarded-For' in self.headers:
            env['HTTP_X_FORWARDED_FOR'] = self.headers['X-Forwarded-For']
```

https://github.com/shingetsu/saku/blob/5eaec8229dc33bbb42aac05847370011040de840/shingetsu/LightCGIHTTPServer.py

> ただし、gzip 形式で圧縮したメッセージをノードに送信する場合、 通信相手ノードはリクエストのメッセージヘッダを解析し、 ノードがgzip形式で圧縮されたメッセージを解釈できるかどうか 判断しなければならない。

http://shingetsu.info/protocol/protocol-0.7.d1
506094cd anonymous 2015-12-18 17:00
やっと通信終わった
これからUI(`・ω・´)ゞ
41561c10 anonymous 2015-12-18 18:38 1450431511.jpg (83KB)
「新月@ゆぐちゃんねる」のユーザーインターフェースを「需」に移植中。
見た目は殆ど変わらないですが、需はいわゆるシングルページWebアプリケーション(SPA)なので動作はかなり速くなっています。
e037b0bd anonymous 2015-12-19 03:28
>>c7edc22a
乙です乙です
dbb00625 >>5cb62859 2015-12-19 13:02
添付ファイルをサポートできた
リポジトリはここ https://github.com/yuuki0xff/mika
一応デバッグ用のdockerコンテナも用意しています。誰かテストしてくれる人いますか?
80b4b0f8 anonymous 2015-12-19 15:19
>>d0dbe869
それは残念

そういや、使い方が書いてないのでここに書いておきますね。
dockerとtsc(typescriptのコンパイラ)とscssが必要

./docker/build.sh
tsc ./static/*.ts
scss ./static/*.scss
./core/settings.pyをテキストエディタで開き、NODE_NAME変数を設定
80番ポートを開放

あとは./docker/control.sh autoを実行してhttp://localhost/にアクセスすると…使えるようになっているはず
ログは./log/に溜まっていくはずです。
停止は./docker/control.sh kill all
d4bbd0c9 anonymous 2015-12-19 21:20
>>d0dbe869
このノードからChrome 47で書き込みしてみたけど、書き込み後に画面がリフレッシュされないね。
9f2e61ac anonymous 2015-12-19 23:19
>>d4bbd0c9
修正しました。
>>923b1b94
しばらく動かしていれば見えてきませんか?
d0dbe869 anonymous 2015-12-19 23:35
>>dbb00625
これでしたっけ。頑張ってますね~
http://133.130.115.168/
ぜひ試してみたいけど時間がないのが残念…
c119ba32 anonymous 2015-12-20 06:17
>>80b4b0f8
Pythonとtypescriptか〜

> http://133.130.115.168/

このノード、うちの環境からは見えないけどどうなってるんだろう…
923b1b94 anonymous 2015-12-20 06:37
>>c119ba32
あ、これはうちの朔や合からは見えていないってことね。
d7be1f6e anonymous 2015-12-20 06:48
「需」のページ遷移の処理を大幅に改善しました。
reagent.coreのイベントの通知の処理がきちんと文章化されていなかったので手間取りましたが、これで一安心です。
1dad7196 anonymous 2015-12-20 14:41 1450590099.png (8KB)
ゆぐちゃんのUIを踏襲しつつ一から作ってみた
df4677e5 anonymous 2015-12-21 23:55
>>1dad7196
頑張れ~
dfabfa0d anonymous 2015-12-23 11:05
支援!
9f7cd51b >>5cb62859 2015-12-23 19:30
マテリアルデザインにしてみた。もう力尽きたので今日の作業はおしまい
http://133.130.115.168/
2d9d8234 anonymous 2015-12-24 06:50
>>9f7cd51b
これは期待。
a2f8af16 anonymous 2015-12-25 00:05
デザインって難しいな
707e1932 anonymous 2015-12-25 01:26 1450974360.jpg (79KB)
「需」はスレッドの表示処理の部分を開発中です。
データはほとんど未加工のままJSONでクライアント側に投げています。
基本的な方針は決まったのであとはコードをガリガリ書くだけです。

Top of this page. | <<last <<new 0 1 2 3 4 5 old>>

limit: 1536KB

(新月実装開発部/255/0.8MB)

Powered by shinGETsu.