エロジンアップデーツ

9351000018
todayweekmonthtimeOnPagebouncesentrancesexits
12000000

ここ2か月間ほど更新がおぼろげになっていたのは、PUBGを再開したのが理由ではなく、新サーバ移行していたからです。

すべてを白紙の0から組み立てなおしました。デザインはもちろん、管理画面からファイルディスクデータベース、IPSec通信やロードバランサーなど極めて高度な技術を徹底して、ゆっくりじっくり慎重に仕上げていたのです。2017年12月から開発していたので、年内には完成させる意気込みだったのでしたが、やはりAMPモードでせんずりをこきながら手こずりました。

特に面倒だったのが抜けた萎えたのボタン。ラジオボタンでどちらか選んで投稿するなんて2度手間のかかるのは古いので1タップで送信できるようにするには、AMPモードではいちいち二つのボタンにそれぞれFormタグを書けなければなりません。

そういうことになると、画像の下に表示された△0のボタンは画像があるごとにFormタグを追加しなくてはなりません。記事本文をフォームタグで囲むなんてあり得ないですし、これはさすがに断念しました。AMPでは画像に評価ができません。

また、1月31日サーバ移行完了してから1時間弱、IEやSafariなどで見れない状態が続きました。HTTP2を取り除くと見れるようになったので、Opensslのバージョンかと思ったのですが、1.0.2[a-z]でもできませんでした。いろいろ./configオプションをいじってたのですが、やはりHTTP2を追加すると見れないのでその日はHTTP2を外した状態で眠りました。

起きてからも何故できないのか考え、『Nginx http2 INET_E_DOWNLOAD_FAILURE』というIEにのみ表示されるエラーコードを付加して検索すると見事解決策が見つかりました。

HTTP2
1/1
7

このイングリッシュによれば、HTTP2ヘッダーに改行してはいけないということです。Content Security Policy (CSP)は長いので見やすいよう沢山改行していたのが仇となりました。こんなつまらないことで1日も悩まされるなんて、PUBGで5回TKされたほうがマシな感じがしました。

大きな変更点はあまり見られず、デザインも0から作った割には前作をインスパイアーにオマージュしたので毛が一本生えた程度ですが、内部構成、管理画面はかなり変わっていますので、前回まで記事更新に3度手間をかけていたのを1手間に改良したので、更新しやすくなり、たくさん更新していきたいと思います。

主な改良点

大前提としてエロジンは自動車のエンジンのように、高速で表示されるエロサイトという目的で作られました。ということでWEB上で高速に表示されるためにはどうすればいいか考えます。それは何もしないということです。

つまりサイトが表示される時に無駄な計算をせず、そのまま作ってある状態のテキストを置いておくだけという単純な仕組みを提案しました。ブログというのはタイトルや本文、タグなどのテキスト(HTML)を投稿した日付の順番に、1つのページに30件表示されるのが一般的です。

最初のトップページ//kvartira-sib.ruに30件の記事を投稿順に置きます。そして全記事数/30を1ページごとに小数点繰り上げで分割します。例えば全記事数が60件だった場合、全部で2ページあれば十分ですが62件だった場合、30で割ると2.0666と無理数整数になりません。3ページ必要なので小数点は切り上げなければなりません。切り上げるのに適したモジュールが用意されていますが原始的な方法を使ったほうがパフォーマンスが上昇するのでこのようにします。

-(-total_post/>
正の数で割り算切り捨てすれば
10/ = 3

となります。
これを負の数にすることによって逆に繰り上げられるという仕組みです、あとはマイナスをまたつけてプラスに戻すだけ-(-10/ = 4
これによって全ページ数を算出することができました。エロジンでは1600件ほどなので62件くらいとなりました。

ユーザーが2ページ目にアクセスしたとき、日付順から30件スキップした31件目から60件目までを表示させれば、インデックスページは完成です。ここでようやく動的な計算をしていますが、ページだけなので大した処理はしてません。

静的に表示すれば確かに軽量にできますが、後から追加されるコメントや評価などを更新するためにHTMLを都度変更していかなければなりません。例えばYouTubeの動画にコメントすると即時反映されページを更新するとコメントは追加されたままです。静的なサイトでは何かしらイベントを起こさないと反映されません。コメント投稿時にHTML更新するということを考えましたが、Nginxファイルキャッシュによってキャッシュ情報に相違が生じるとエラーを起こしてしまうので断念しました。臨時対処法としてCronTabで12時間ごとに自動更新させています。

本題の改良点は、このCronTabで自動実行のプログラムは、実行するごとに全記事のHTMLファイルを生成するというところにあります。画像に△0の評価ボタンを付けてしまったため、全記事の本文から画像タグ<imgのsrcURLを抽出して、そのURLに与えられた評価を別データベースで取得するという極めて面倒な作業をしています。

posts = list(db.posts.find())
for post in posts:
post['content'] = re.sub(r'<img ([^>]*)src="([^"]+)"([^>]+)>', appendVote, post['content'])

def appendVote(m):

1行目:データベースから全ての記事を配列にして変数postsに格納
2行目:全ての記事を1記事としてループ、つまりpostにはposts[0]最初の記事が入っている
3行目:post['content']は記事本文のことで、それをappendVote関数に置換する。
5行目:置換関数、変数mには記事本文の中に入っている<imgタグの後方参照を取得できる。例えば記事本文にlt;img class="imgs" src="/" alt="a">がある場合、m.group(1)には『class="imgs" 』が入っている。

抜けた
935
10
感動
0
意味不
0
胸糞
0
萎えた
18
保存

この記事へのコメント

いつもお世話になっておりますw

1 / 57

ID:e997c006
reply

今日初めてこのサイト見つけたけどええやんな! 頑張ってくんさい!いろいろサンガツ!

2 / 57

ID:db92a21b
reply

あんまり頑張り過ぎると、抜く時に主の苦労が垣間見えるようになるからほどほどに。ただ、いい仕事っす。

3 / 57

ID:a19ce8e1
reply

ありがとう!

4 / 57

ID:a4821d3b
reply
はるき

頑張ってたんやな!

5 / 57

ID:1e117562
reply

最近日本語おぼつかないアホキャラが失われてる

6 / 57

ID:fd9a9d55
reply

ここの主スペック高くね笑

7 / 57

ID:a74eca98
reply

私にはむつかしくてヽ(∀)ノ何言ってるかわかんないけどお疲れ様です。 2、3年前からずっとこのサイトみてるので とても使いやすくなったと思います(◎▽◎) これからも頑張ってください💪('ω'💪)

8 / 57

ID:65410c4a
reply

更新期待してるで!

9 / 57

ID:eb9571ed
reply

どんどんスタイリッシュなサイトになってとても嬉しいです。

10 / 57

ID:02d4449e
reply

いや作品タグとかどこいってん頼むで

11 / 57

ID:12f780eb
reply

さっぱり分からんが乙!

12 / 57

ID:ff350532
reply

がんばってくれ

13 / 57

ID:7ca45019
reply

ありがとうございます

14 / 57

ID:ab57c810
reply

ほんとハイスペックニート大好き

15 / 57

ID:6aa6d0fe
reply

最近のアフィサイトはゴミ広告貼りまくりかつ内容がないゴミサイトばかりだからここは神サイト 頑張ってくれ

16 / 57

ID:2dda1b80
reply

大好きです

17 / 57

ID:8da52a5d
reply

お疲れ様です! いつもお世話になっています!これで更新頻度も上がるんですね!もっとお世話になります!わら

18 / 57

ID:1650e77f
reply

更新遅いとか文句言ってた自分が憎い!

19 / 57

ID:8d861c32
reply

誰か記事内検索の方法教えて

20 / 57

ID:1fa3d979
reply

更新待ってるで〜〜

21 / 57

ID:73c2ff31
reply
管理人(本人)

文字列検索機能は今日つけたいと思います

22 / 57

ID:522a62b8
reply

面白い昨日付いててくさ

23 / 57

ID:482fac9d
reply

おつかれちゃん

24 / 57

ID:f2ee80c2
reply

この記事にも抜けた萎えたボタン付いてるの草

25 / 57

ID:7120ddac
reply

うーんプロ

26 / 57

ID:a0ae9093
reply

ホント大好きです

27 / 57

ID:cbb82672
reply

取り敢えず抜いた

28 / 57

ID:4bc57207
reply
IT

お疲れ様です

29 / 57

ID:2213d3d2
reply

いろいろさんがつ!

30 / 57

ID:1995ca6f
reply

がんばえーっぽq(^-^q)

31 / 57

ID:c638bca3
reply

ほんと有能

32 / 57

ID:a2c60f09
reply

お前すげーな

33 / 57

ID:346fe3f8
reply

当方エンジニアです。 センズリをこきながら技術記事を毎回楽しみにしています!

34 / 57

ID:1dc4987f
reply

ありがてぇ…

35 / 57

ID:57ef47e2
reply

おつかれ

36 / 57

ID:30ba4c5e
reply

これからも頑張ってください!!!応援してます!!

37 / 57

ID:c85817cc
reply

これは抜ける

38 / 57

ID:7fa0a697
reply

ユニーク‼

39 / 57

ID:125dc358
reply

インテリな文字の羅列で抜いた いつもありがとうございます

40 / 57

ID:4925e2cf
reply

動作が軽いのが好きで長いことお世話になってます。 管理人さん控えめに言ってすこ

41 / 57

ID:72075b06
reply

web系のセキュリティエンジニアを目指してる学生です。 主さんのその豊富な知識と経験はどこで取得されたのでしょうか?

42 / 57

ID:9b246056
reply
管理人(本人)

参考書など読まずにテスト環境を整え、自分で攻撃してどうなるか実践していくのがよいと思います

43 / 57

ID:0bc8a5ad
reply

本当お前さん最高!これからも応援しとるよ

44 / 57

ID:42534f88
reply

こういうサイトでは珍しくアンチが少なくて草 他のサイトとちがって急に湧くポップアップ広告がないだけでも本当に見やすい これからも抜かせてもらいまっせ

45 / 57

ID:a971ff1a
reply
みひろ

まいにちお世話になってますおつかれさまです!主さんスペック高杉(´ཫ`)

46 / 57

ID:6e4c955b
reply

いつも息子がお世話になってます

47 / 57

ID:80054a48
reply

アップデートお疲れ様です! 画像集楽しみにしてます!

48 / 57

ID:71fdb5ec
reply

いつも早くてたすかってマス!

49 / 57

ID:0856d0a8
reply

62/30は無理数じゃないぞ

50 / 57

ID:3c4dbdd3
reply

この記事で抜いた奴多過ぎてワロタwwwww

51 / 57

ID:dc750f3c
reply

強い

52 / 57

ID:c97553cf
reply

コメント伸びとるな

53 / 57

ID:b80cc8d6
reply

ヌッ!(称賛)

54 / 57

ID:744dd4da
reply

支援

55 / 57

ID:7b7722bc
reply

このサイトはなんのサイトなんだ…

56 / 57

ID:f74b4154
reply

UXを考えるのも大変っすよね

57 / 57

ID:15fca934
reply
評価を受け付けました

本文は2字以上、400字以内
名前は空欄可、20字以内

関連記事