Bottom of this page.
|
<<last
<<new
0
1
2
3
4
old>>
-
8d11b5a3
anonymous
2016-01-15 05:23
- @markdown
ああ、こうしなきゃいけないのか。もうちょっと調べてみよう。
```
>>> apollo.sign(util.md5digest("body:test"), "DpmzfQSOhbpxE7xuaiEao3ztv9NAJi/loTs2N43f5hC3XpT3z9VhApcrYy94XhMBKONo5H14c8STrriPJnCcVA", "BAcp0SUgUOSY+TrLhy/MEszzq0Obadi3EhXDEUUD9FmOkv7vhPiNrgg2HR8DmuFiPcXNHdqu44wyGRX5bmdcQA")
'DmjCwvX8DMpsEr30bGB8XIXMgTO6Iwz8Yb5Q0CjACoqZK1kvkYluXjiW3n24QMzZ5qPb3Z49JLPV4ek
LL0yRJA'
```
-
8e6b0c2b
anonymous
2016-01-15 09:39
- ははあわかったぞ。署名対象ハッシュ文字列を数値化するのに失敗してるんだな。長さが120文字になるようにパッディングすればいいのかな。紛らわしいなあ。
-
b31e90a7
anonymous
2016-01-15 15:29
- 原因はパッディングじゃなくてmd5ダイジェストからmへの変換の仕方でした。
[[新月の開発/2f239e11]]
今度こそ大丈夫なはずだけど、えらく時間がかかったな…
-
af4e5fd5
anonymous
2016-01-15 15:40
- @markdown
とりあえず今日の成果。次の書き込みのsignを生成できました。あとは署名機能に関しては面倒くさいことはなにもないはず…
http://saku.nakayuki.net:8000/server.cgi/get/thread_E38386E382B9E38388/1452747955
```clojure
(let [record-body "body:test"
target (digest/md5 record-body)
md5-to-bigint (fn [s]
(apply +
(map
(fn [c n] (* (bigint (int c)) (clojure.math.numeric-tower/expt 256 n)))
s
(range (count s)))))
expt-mod (fn [b e n] (bigint (.modPow (biginteger b) (biginteger e) (biginteger n))))
base64-table
{0 "A" 16 "Q" 32 "g" 48 "w"
1 "B" 17 "R" 33 "h" 49 "x"
2 "C" 18 "S" 34 "i" 50 "y"
3 "D" 19 "T" 35 "j" 51 "z"
4 "E" 20 "U" 36 "k" 52 "0"
5 "F" 21 "V" 37 "l" 53 "1"
6 "G" 22 "W" 38 "m" 54 "2"
7 "H" 23 "X" 39 "n" 55 "3"
8 "I" 24 "Y" 40 "o" 56 "4"
9 "J" 25 "Z" 41 "p" 57 "5"
10 "K" 26 "a" 42 "q" 58 "6"
11 "L" 27 "b" 43 "r" 59 "7"
12 "M" 28 "c" 44 "s" 60 "8"
13 "N" 29 "d" 45 "t" 61 "9"
14 "O" 30 "e" 46 "u" 62 "+"
15 "P" 31 "f" 47 "v" 63 "/"}
bigint-to-base64 (fn bigint-to-base64
[n]
(if (>= n 64)
(concat (list (get base64-table (rem n 64))) (bigint-to-base64 (quot n 64)))
(list (get base64-table n))))
add-padding (fn [s] (str s (apply str (repeat (- 86 (count s)) "A"))))
public-key 1122806372610712283641764701710834148204234645585040684037170652091590554067499953763526724213941221496764286040865822589763248156452468642704658988427843N
secret-key 861280222834211635003719961005341323199464182108597666477205899292436716184420718855991902898025496028982723694319590089136399532658790932223389304471553N]
[
(count target)
target
(md5-to-bigint target)
(expt-mod (md5-to-bigint target) secret-key public-key)
(add-padding (apply str (bigint-to-base64 (expt-mod (md5-to-bigint target) secret-key public-key))))
])
```
-
92d1c88c
anonymous
2016-01-15 17:05
- 署名の確認をこのスレで試してみよう
[[【コテハン】新月黙示録更新報告【大辞典】]]
-
3b326be9
anonymous
2016-01-15 18:03
- @markdown
署名の検証も試してみました。公開鍵とシグニチャから本文のmd5ダイジェスト
(44419214286006158861137771899985306382062246609227984941284330775348791043381N)が
再構築できたのでこれで問題ないはずです。
```
(let [record-body "body:test"
target (digest/md5 record-body)
md5-to-bigint (fn [s]
(apply +
(map
(fn [c n] (* (bigint (int c)) (clojure.math.numeric-tower/expt 256 n)))
s
(range (count s)))))
expt-mod (fn [b e n] (bigint (.modPow (biginteger b) (biginteger e) (biginteger n))))
public-key 1122806372610712283641764701710834148204234645585040684037170652091590554067499953763526724213941221496764286040865822589763248156452468642704658988427843N
secret-key 861280222834211635003719961005341323199464182108597666477205899292436716184420718855991902898025496028982723694319590089136399532658790932223389304471553N
test-signature 485929915806472765213575522933223159394941576528520956259553264248457078912341366480238285348741046848091733570511927351801272738791576365987870892767619N]
[(md5-to-bigint target)
(expt-mod test-signature 65537 public-key)])
```
-
20e85408
anonymous
2016-01-15 18:28
- 忘れないうちにコードの整理をしないと…
-
c4ea9eee
anonymous
2016-01-16 01:17
- なんか無駄にめんどくさそうなことになってたみたいでかわいそう
-
a87b0b31
anonymous
2016-01-16 02:32
- >>c4ea9eee
プロトコルの仕様書を読んだときから嫌な予感はしてたんですけどね~
まあ新月プロコトルの実装が増えればノウハウも自然に集まるでしょう。
-
d93b708e
anonymous
2016-01-16 03:00
1452880853.jpg
(80KB)
- このスレが読みにくかったのでMarkdownに対応させました。
需もだいぶ形になってきた感じです。
-
39887f91
anonymous
2016-01-16 07:56
- そういえば素数テストを朔と完全互換にしなきゃいけないんだっけ。
忘れないようにしないと。
-
5b438af8
anonymous
2016-01-16 08:48
- 素数階段
そすーんさー
-
4760e415
anonymous
2016-01-16 09:04
- なぜか需のAJAXのリクエストとFirefoxの相性が悪くて、特定の条件でFFが落ちるようです。とほほ…
-
590980e0
anonymous
2016-01-16 09:06
- React/reagentの問題だとかなりめんどくさいな。
-
84dee8b2
anonymous
2016-01-16 10:17
- Firefoxをアップデートしたら落ちなくなりました。
気になるけどまあ良しとします。
-
ffe7d06a
anonymous
2016-01-16 12:03
- @markdown
apollo.pyのClojure版が一応出来ました。
```clojure
(def int-to-base64-char-table
{0 "A" 16 "Q" 32 "g" 48 "w"
1 "B" 17 "R" 33 "h" 49 "x"
2 "C" 18 "S" 34 "i" 50 "y"
3 "D" 19 "T" 35 "j" 51 "z"
4 "E" 20 "U" 36 "k" 52 "0"
5 "F" 21 "V" 37 "l" 53 "1"
6 "G" 22 "W" 38 "m" 54 "2"
7 "H" 23 "X" 39 "n" 55 "3"
8 "I" 24 "Y" 40 "o" 56 "4"
9 "J" 25 "Z" 41 "p" 57 "5"
10 "K" 26 "a" 42 "q" 58 "6"
11 "L" 27 "b" 43 "r" 59 "7"
12 "M" 28 "c" 44 "s" 60 "8"
13 "N" 29 "d" 45 "t" 61 "9"
14 "O" 30 "e" 46 "u" 62 "+"
15 "P" 31 "f" 47 "v" 63 "/" })
(def base64-char-to-int-table (clojure.set/map-invert int-to-base64-char-table))
(defn- expt-mod [b e n] (bigint (.modPow (biginteger b) (biginteger e) (biginteger n))))
(defn- hex-string-to-bigint
[s]
(apply +
(map
(fn [[x y] n] (* (bigint (Integer/parseInt (str x y) 16)) (expt 256 n)))
(partition 2 s)
(range (/ (count s) 2)))))
(defn- is-nth-bit-on? [num n] (pos? (rem (quot num (expt 2 (dec n))) 2)))
(defn- bigint-to-base64-
[n]
(if (>= n 64)
(concat (list (get int-to-base64-char-table (rem n 64))) (bigint-to-base64- (quot n 64)))
(list (get int-to-base64-char-table n))))
(defn- add-padding [s] (str s (apply str (repeat (- 86 (count s)) "A"))))
(defn- bigint-to-base64
[n]
(add-padding (apply str (bigint-to-base64- n))))
(defn- base64-to-bigint
[s]
(apply +
(map (fn [c n] (* (bigint (get base64-char-to-int-table (str c))) (expt 64 n)))
s
(range (count s)))))
(defn get-prime-numbers-for-signature
[password]
(let [hashs (str (digest/md5 password)
(digest/md5 (str password "pad1"))
(digest/md5 (str password "pad2"))
(digest/md5 (str password "pad3")))
match (re-find #"^(.{56})(.{72})$" hashs)
p (hex-string-to-bigint (nth match 1))
q (hex-string-to-bigint (nth match 2))
p (if (is-nth-bit-on? p 216) p (+ p (expt 2 215)))
q (if (is-nth-bit-on? p 280) q (+ q (expt 2 279)))
p (bigint (.nextProbablePrime (biginteger p)))
q (bigint (.nextProbablePrime (biginteger q)))
t 30531
e 65537]
(loop [p p
q q]
(let [n (* p q)
d (bigint (.modInverse (biginteger e) (biginteger (* (dec p) (dec q)))))]
(if (= (expt-mod t (* e d) n) t)
[n d]
(recur (+ p 2) (+ q 2)))))))
(defn- md5-string-to-bigint
[s]
(apply +
(map
(fn [c n] (* (bigint (int c)) (expt 256 n)))
s
(range (count s)))))
(defn sign-post
[target password]
(let [[n d] (get-prime-numbers-for-signature password)
public-key (bigint-to-base64 n)
secret-key (bigint-to-base64 d)
target-bigint (md5-string-to-bigint (digest/md5 target))
c (expt-mod target-bigint d n)
signature (add-padding (apply str (bigint-to-base64 c)))]
{:public-key public-key :signature signature}))
(defn verify-signature
[target public-key signature]
(= (md5-string-to-bigint (digest/md5 target))
(expt-mod (base64-to-bigint signature) 65537 (base64-to-bigint public-key))))
```
こんなふうに使えます。
```
(ju.routes.shingetsu/sign-post "body:test" "test")
=>
{:public-key "DpmzfQSOhbpxE7xuaiEao3ztv9NAJi/loTs2N43f5hC3XpT3z9VhApcrYy94XhMBKONo5H14c8STrriPJnCcVA",
:signature "DmjCwvX8DMpsEr30bGB8XIXMgTO6Iwz8Yb5Q0CjACoqZK1kvkYluXjiW3n24QMzZ5qPb3Z49JLPV4ekLL0yRJA"}
(ju.routes.shingetsu/verify-signature "body:test" "DpmzfQSOhbpxE7xuaiEao3ztv9NAJi/loTs2N43f5hC3XpT3z9VhApcrYy94XhMBKONo5H14c8STrriPJnCcVA" "DmjCwvX8DMpsEr30bGB8XIXMgTO6Iwz8Yb5Q0CjACoqZK1kvkYluXjiW3n24QMzZ5qPb3Z49JLPV4ekLL0yRJA")
=> true
```
調べてみたら朔の素数判定の誤り率が1/4^10=1/1048576、
Clojure (Java)のは1/2^100=1/1267650600228229401496703205376だったので
とりあえず素数判定の問題は後回しにすることにします。
-
6521c5fb
anonymous
2016-01-16 19:19
- 気分転換にデータベースをMySQLに変更してみました。
インデックスを幾つか追加したらかなり快適に動作するようになりました。
「ゆぐちゃんねる」にはMySQLを使うので、これで一安心です。
-
435c76f6
anonymous
2016-01-16 21:01
- このページを表示するには広告のブロックを解除してください。
お疲れ様でした。さようなら
-
d87f3237
anonymous
2016-01-16 21:25
- TRANSACTION ISOLATION LEVELの設定を間違えてたので慌てて修正。
危ない危ない。
-
885f1945
anonymous
2016-01-16 21:39
- おかしいなあ、やっぱりデフォルトの設定でいいはずだけど…
とりあえずREPEATABLE READを明示的に設定しておこう。
> In terms of the SQL:1992 transaction isolation levels, the default InnoDB level is REPEATABLE READ.
http://dev.mysql.com/doc/refman/5.7/en/innodb-transaction-model.html
-
ee8f113a
anonymous
2016-01-16 23:46
- サイズの大きなスレでクエリにOFFSETを使うとMySQLではかなり遅くなるので、クエリを書き直し。やっぱりそれぞれのデータベースエンジンにかなり癖がありますね。
-
09753dc9
anonymous
MGlbrmj//PR
2016-01-17 07:06
- 署名機能の実装がようやく終わりました。
署名の確認はサーバーで行って、失敗したらpubkey等をクライアントに渡さないようにしました。
いずれ全部クライアント側で行いたいですね。あとは素数判定だけど、これは暇があるときにします。
-
9a45ba8f
anonymous
2016-01-17 17:28
- 気が向いたので2ch互換インターフェースの実装を開始。
表示の方は直ぐにできました。問題は書き込みだけど、これは後でやろうっと。
-
a87ac3a6
anonymous
MGlbrmj//PR
2016-01-18 06:51
- 需のWindows用の実行ファイルをlaunch4jで作成したらちゃんと動いてしまいました。
JREもバンドルできるみたいなので配布するときにはWindows用のパッケージも用意しようっと。
-
b004def0
anonymous
MGlbrmj//PR
2016-01-18 21:52
1453121550.jpg
(107KB)
- 「新着レスまとめ読み」機能を実装。既読スレッドの未読レスをまとめて表示してくれます。「新月@ゆぐちゃんねる」の同じ機能に比べて性能が段違いに良くなったので、非常に満足ですw
-
66628597
anonymous
2016-01-19 10:29
- UPnP対応のためのメモ。ポート開放が必要なくなるのは大きいですね。
Cling - Java/Android UPnP library and tools
http://4thline.org/projects/cling/
Router port forwarding using cling
http://stackoverflow.com/questions/15324689
-
33706b4b
anonymous
2016-01-20 11:37
- スパムフィルタの実装を開始。とりあえずほとんどは名前とメールのチェックで弾くことが出来ました。
ファイルの数: 1110
レコードの数: 302384
有効なレコードの数: 119203
削除されたレコードの数: 183181
キャッシュサイズ: 5257MB
問題は2013-05-11のTwitterコピペ荒らしですが、これを綺麗に削除するのはちょっと手間ですね。
-
0f12e665
anonymous
2016-01-20 15:36
- Twitterコピペ荒らしを削除してさらにすっきり。
ファイルの数: 1110
レコードの数: 302385
有効なレコードの数: 102421
削除されたレコードの数: 199964
キャッシュサイズ: 5257MB
-
e5f674cc
anonymous
2016-01-20 16:01
- @markdown
下はスパムの削除に使用したコードです。コピペ荒らしは期間とスレが限定されていたので割と楽に削除できました。
```clojure
(defn remove-spam
[]
(dorun (map (fn [record]
(let [record (ju.db.core/get-record-by-id (:id record))
body (String. (:body record) "UTF-8")
elements (->> (clojure.string/split body #"<>")
(map #(re-find #"^([a-zA-Z0-9]+):(.*)$" %))
(map #(do {(keyword (nth % 1)) (nth % 2)}))
(apply merge))
thread-title (unhexify (second (re-find #"^thread_(.*)$" (:file-name (ju.db.core/get-file-by-id (:file-id record))) )))]
(when (or (and (:name elements) (pos? (count (:name elements)))
(:mail elements) (pos? (count (:mail elements)))
(:body elements)
(or (re-find #"^[^ぁ-ゞァ-ヶ]+$" (:body elements))
(re-find #"http://|href=" (:body elements))))
(and (<= 1368259441 (:stamp record)) (<= (:stamp record) 1368334184)
(some #{thread-title}
#{"新月を広める方法を考えよう~♪"
"\"2ちゃんねるに代わる新たな新天地\"\"新月\"\"\""
"【2ch】難民キャンプ【書き込み規制】"
"SPAM"
"雑談しながらリンクを貼るスレ"
"新月の開発"
"【ただひたすら書き込むスレ】"
"雑談"
"初心者用質問スレッド"
"Twitterの真似事"
"ここが新月かぁ~"
"今日の天気を報告するスレ"
"メニュー"
"朔の「状態」を晒す"})
(not (some #{[(:stamp record) thread-title]}
#{[1368269164 "朔の「状態」を晒す"]
[1368288797 "朔の「状態」を晒す"]
[1368322356 "朔の「状態」を晒す"]
[1368291561 "新月の開発"]
[1368292773 "新月の開発"]
[1368324146 "新月の開発"]
[1368287598 "新月を広める方法を考えよう~♪"]
[1368321534 "新月を広める方法を考えよう~♪"]
[1368321715 "新月を広める方法を考えよう~♪"]
[1368323070 "【2ch】難民キャンプ【書き込み規制】"]
[1368289606 "ここが新月かぁ~"]
[1368289928 "ここが新月かぁ~"]
[1368287843 "初心者用質問スレッド"]
[1368294225 "初心者用質問スレッド"]}))))
(ju.db.core/mark-record-as-deleted (:id record))
(taoensso.timbre/info (:id record)
(:stamp record)
thread-title
(:body elements)))
(if (zero? (mod (:id record) 100))
(comment taoensso.timbre/info "Processed" (:id record) "records."))))
(sort #(< (:id %1) (:id %2)) (ju.db.core/get-all-records-with-ids-only))))
(ju.db.core/update-all-files))
```
-
fe589d48
anonymous
2016-01-21 13:42
- 勉強の合間に書き込みのプレビュー機能とレスのコンテキストメニューを実装。
「新月@ゆぐちゃんねる」の機能をほとんどそのまま移植したので結構すんなり出来ました。
とりあえず新しい公開ゲートウェイの試験稼働を早く始めたいので、そのための作業を優先させようっと。
-
3857eec2
anonymous
2016-01-21 13:57
- あ、でも適当なサーバーを借りてテストも兼ねて公開すればいいのか。
-
eac2a786
anonymous
2016-01-21 18:03
- 暇そうだったサーバーに需を入れて動かしてみたんですが、やっぱりメモリが足りないw
とりあえずサーバーをアップグレードしてみたけど、本番までに最適化しておかないと…
-
b0842de0
anonymous
2016-01-21 18:10
- その代わりといってはなんですが、レスポンスは想像していたよりずっといいです。
しばらく様子を見て問題がなかったらアドレスを公開しようっと。
-
10e688af
anonymous
2016-01-21 18:35
- 大丈夫そうですね。アドレスはこれです。
感想や要望があったら是非どうぞ。
http://45.56.121.29:48888/
-
c1fe7ad2
anonymous
2016-01-21 19:32
- 確かに軽く感じますね。
普段使ってるスマホ(SH-02D android2.3.5とSH-13C android2.3.4)の標準ブラウザで見ると、最初の矢印の円の画面から進まないのだけど、まあこれは単純に古いから必要な機能の一部が対応してないのかな…と。実際シェア自体減少傾向というか少ないらしいですしね。
同じ端末に入れてるFirefoxのandroid版では何の問題も無く使えてますし。
セキュリティホールだとか、SSL対応サイトの関係とかで、いい加減新しい端末を買わなきゃいけないとは思うんですがね……。
-
b191dd41
anonymous
2016-01-21 20:09
- >>c1fe7ad2
なんででしょうね~ ちょっと気になりますね…
-
a4bc3fed
anonymous
2016-01-21 20:23
- >>c1fe7ad2
調べてみたらFileAPIに対応していないようです。残念…
-
04dc1a6c
anonymous
2016-01-21 20:24
- あっという間にディスクが満杯になったので現在サーバーを止めてディスクを拡張中。
最初にやっておけばよかった…
-
b1969bec
anonymous
2016-01-21 21:06
- >>a4bc3fed
でもまあ、必要であればp2だとかm2bとか経由して2chインターフェイス経由で見れば事は足りると思うので、さほど問題ないかと。
-
b0e29cf8
anonymous
2016-01-22 05:53
- >>b1969bec
それだと便利な機能があまり使えないのでもったいない気もしますが、まあ仕方がないですね。未対応のブラウザの場合はちゃんとエラーメッセージを出すようにします。
-
a527142c
anonymous
2016-01-22 05:58
- スパムフィルタを改良して、テスト用のサーバーを仕切りなおしました。
性能はすこぶるいいのですが、いかんせんメモリを食いまくりです。
ちゃんと型指定しようっと。
-
1d5098bd
anonymous
2016-01-23 01:18
- >>10e688af
需レスポンス良いな
ストレス無くてよさげ
-
48908d06
anonymous
2016-01-23 01:27
- ちょっと需を止めます。
-
ff9ed6ca
anonymous
2016-01-23 02:49
- うーん、名前とレスがほとんど重複してるスレが結構ある…
半角大文字が小文字に勝手に変換されているようです。
需のバグかと思って顔が青ざめたけどそうでもないみたいなのでかなり謎です。
他のノードに伝播する前に、一応需を止めておきました。
もうちょっと調べてみます。
("自作PC -> 自作pc "
"Linux -> linux "
"ROBOCRAFT -> robocraft "
"TEST -> test "
"【GOOD-BYE 2ch WORLD!】2ちゃんねるの終焉を見届けるスレ -> 【good-bye 2ch world!】2ちゃんねるの終焉を見届けるスレ "
"Freezone -> freezone "
"【P2P】ニュース速報【掲示板】 -> 【p2p】ニュース速報【掲示板】 "
"恒心教綜合P2P支部 -> 恒心教綜合p2p支部 "
"AA保管庫 -> aa保管庫 "
"I2P -> i2p "
"UQ Wimax -> uq wimax "
"Freenet新月支部 -> freenet新月支部 "
"PerfectDark新月支部 -> perfectdark新月支部 "
"NHK総合実況 -> nhk総合実況 "
"AKB48 -> akb48 "
"P2P関連 -> p2p関連 "
"SPAM -> spam "
"AngelBeats -> angelbeats "
"FREEZONE -> freezone "
"えろ画像何でもUp -> えろ画像何でもup "
"えろ画像何でもUp2 -> えろ画像何でもup2 "
"感動FLASHを集めるスレ -> 感動flashを集めるスレ "
"【車輪の】JavaライブラリJunkUtil【再発明】 -> 【車輪の】javaライブラリjunkutil【再発明】 "
"【ny,share】ロリ物総合スレ 94【eMule】新月 -> 【ny,share】ロリ物総合スレ 94【emule】新月 "
"【帯域制限】ISP総合【格安】 -> 【帯域制限】isp総合【格安】 "
"P2Pファイル共有ソフト -> p2pファイル共有ソフト "
"セーラー服 Part.1 -> セーラー服 part.1 "
"SPam -> spam "
"Spam -> spam "
"SPAm -> spam "
"sPam -> spam "
"spAm -> spam "
"spaM -> spam "
"VIPからきますた -> vipからきますた "
"セーラー服+Part.1 -> セーラー服+part.1 "
"Loli -> loli "
"Girls -> girls "
"Kid -> kid "
"thread_E4BD90E38085E69CA8E5B88C -> thread_e4bd90e38085e69ca8e5b88c "
"AAA -> aaa "
"Candydoll -> candydoll "
"【ny,share】ロリ物総合スレ+94【eMule】新月 -> 【ny,share】ロリ物総合スレ+94【emule】新月 "
"IDにhovenが出たら天国に行けるスレ -> idにhovenが出たら天国に行けるスレ "
"Pantyhose -> pantyhose "
"Teen -> teen "
"Crescentのつづき -> crescentのつづき "
"JC -> jc "
"LOLI -> loli "
"Vim -> vim "
"TEST1 -> test1 "
"Linux -> linux "
"Sex -> sex "
"Debian -> debian "
"Ls -> ls "
"【GOOD-BYE+2ch+WORLD!】2ちゃんねるの終焉を見届けるスレ -> 【good-bye+2ch+world!】2ちゃんねるの終焉を見届けるスレ "
"PERVERTS -> perverts "
"U15 -> u15 "
"UQ+Wimax -> uq+wimax "
"銆怭2P銆戙儖銉ャ兗銈归€熷牨銆愭幉绀烘澘銆 -> 銆怭2p銆戙儖銉ャ兗銈归€熷牨銆愭幉绀烘澘銆 "
"DEBIAN -> debian "
"JS -> js ")
-
3abe2d04
anonymous
2016-01-23 05:28
- とりあえず対策をして需を復旧させました。
どのノードからやってくるのか調べないと…
-
9c652d87
anonymous
2016-01-23 08:53
- >>1d5098bd
今の「新月@ゆぐちゃんねる」が遅過ぎなので、需は一から作り直しました。
HTML5の使用を前提にしてかなり積極的にウェブブラウザの新しい機能を使っています。
基本的にページの読み込みは最初の一回だけなのが大きいですね。
-
d0aebe3f
anonymous
2016-01-23 09:42
- スパム対策も兼ねて、レコードをどのノードからダウンロードしたのか記録するようにしようっと。
そうすればTwitterコピペ荒らしみたいなのは簡単に防げるし。
-
89f4e6d7
anonymous
2016-01-23 11:23
- だいたい壊れたデータがどこからやってきたかわかったけどどうしようかな…
-
51bce898
anonymous
2016-01-24 08:21
- 壊れたデータの件が無事に解決できました。もうちょっと過去ログのデータの正当性をきちんと確認できる仕組みがあるといいんですけどね。shingetsu.infoの過去ログももうちょっと参考にさせてもらおうかな。ブロックチェーンを新月に取り込む話も興味深いです。
-
e144bdd8
anonymous
2016-01-24 08:32
- 需を本番用のデータベースでしばらく稼働させていますが、特に問題は無いようです。マスターマスターレプリケーションの冗長構成なので落ちる心配はまずないです。念のためこっちのサーバーもアップグレードしておこうかな。
Top of this page.
|
<<last
<<new
0
1
2
3
4
old>>
(【新月実装】需【Clojure・ClojureScript】/214/0.5MB)