「アプリケーションエンジニアが知るべきDNSの基本」というタイトルで、builderscon tokyo 2018 で登壇するスライドです
先日慶應義塾大学日吉キャンパスで行われた builderscon2018、最高のカンファレンスでしたね。わたしも「開発現場で役立たせるための設計原則とパターン」というタイトルで発表させていただきました。今回は恒例「実況中継シリーズ」として、プレゼンの再現をブログで行いたいと思います。 なお、過去の実況中継シリーズは前職の技術ブログにまとまっていますので、そちらからご覧ください。 それでは本編を開始したいと思います。 開発現場で役立たせるための設計原則とパターン アバンパート よろしくお願いします。 まず最初に簡単に自己紹介をさせていただきます。 先月転職をしまして、8/1からClassiという会社で働いています。妻と息子がおります。Scalaが好きですが、仕事ではRubyメインという感じです。 Web+DB PressやSoftware Designで何度か特集を書かせていただきました。と
DBの寿命はアプリより長い! 長生きするDBに必要な設計とリファクタリングを実践から学ぶ アプリケーションの寿命よりも長く、データの追加やテーブルの変更で成長し続ける「データベース」と、どのように付き合っていけばよいのでしょうか? 曽根壮大(soudai)さんによる寄稿です。 こんにちは。そーだい(@soudai1025)です。 新しいサービスを始めるとき、必ずと言っていいほどデータベースは利用されています。また今稼働しているサービスの多くでも、RDBMSをはじめ、いろいろなデータベースが利用されています。そんなに広く利用されているデータベースだからこそ、多くの問題の元になるのもまた事実です。 そこで今回は、Webサービスを中心にデータベースの選び方、設計についてお話していきたいと思います。そして私もまさに今、2011年から続くWebサービス「オミカレ」のRDBMSのリファクタリングに携わ
これはbuilderscon tokyo 2016の発表スライドです。 自己紹介 @kazunori_279 クラウドのデベロッパー・アドボケイト エバンジェリストみたいなお仕事 コミュニティ支援:GCPUG、bq_sushi、TensorFlow User Group etc 趣味のFPGA 2013年くらいからいじり始め FPGAエクストリーム・コンピューティング主宰:合計8回 これまでに書いたFPGA記事 はてなブックマークでバズった記事たち マイクロソフトはどうやってBingをFPGAで実装したか: 952 users ハード素人が32bit CPUをFPGAで自作して動かすまで読んだ本のまとめ: 576 users 文字通り「ネットワークがコンピューター」な金融HFTでのFPGAの使われ方: 517 users JP Morgan Chaseがデリバティブ専用スパコンをFPGAで
この記事は、はてなエンジニアアドベントカレンダー2016の5日目の記事です。 こんにちは、はてなでアプリケーションエンジニアをしている id:shiba_yu36 です。先日、buildersconにおいて、現在所属しているプロジェクトでJavaScriptのユニットテストを導入した知見について、「一から始めるJavaScriptユニットテスト」というタイトルで発表しました。 speakerdeck.com この発表は、実際にJavaScriptのユニットテスト環境を作ってみると非常にハードルが高いと感じたので、そのハードルを少しでも下げられればという思いで、非常にシンプルな例で一から環境を作る例を紹介しました。アジェンダは次のとおりでした。 カクヨムのJS環境 JSのテストツールを整理する 通常の関数のユニットテスト DOM操作する機能のユニットテスト カクヨムのJS環境や、JSのテスト
タイトル通りです。本日HENNGE最終出社日で、職業プログラマとして働く最後の日となる予定です。 ちなみに以下ツイートでタイムリーなネタだったので乗ったら、2週間ほど前から準備していたこのブログエントリのタイトルをそのままつぶやいてもらえる、という奇跡が起こりました。 あらためて、今日でプログラマというキャリアを終え、明日からDevRelというか、大規模イベント運営を主眼とした活動を株式会社メルカリでやっていくことにしました。 別にこれからも必要な時にコードは書きます。というか、書かないわけがない。でもそちらを生活の糧とするのはやめて違う業種にピボットすることにしました。 とは言え、自分なりに20年続けてきた分野を主戦場とするのをやめるのはそれなりに大きな決断でしたし、決断をした時は久しぶりに馴染みのバーでぐだぐだと愚痴を吐きました。正直まだ実感は沸いてません。軽い決断ではなかったですが、
はじめまして。そーだい(@soudai1025)です。私は普段は技術コンサルティングや受託開発を請け負う合同会社HaveFunTechの代表として、また、予防治療の自社サービスを展開する株式会社リンケージのCTOという二足の草鞋を履き、日々、さまざまなWebサービスの開発に携わっています。 これまでの開発経験のなかで、データベース設計に関わるさまざまな問題に遭遇してきましたが、本稿ではとくに、アジャイル開発時に発生しやすい問題とその対処についてお伝えしたいと思います。開発の現場で目にしやすい実装におけるアンチパターンを示しつつ、アジャイルという指針を維持しながら、対処となるデータベース設計についてご紹介します。 会員登録のアンチパターンと処方箋 イージーな実装とシンプルな実装 Userと言う名の罠 拡張と破綻 データベースは変化に弱い 仕様変更とテーブル変更 Addで変化に追従する 正規化
設計ナイト2020 を受けて、今どんなアーキテクチャを選ぶべきかという話をしたくなったのだ。 kichijojipm.connpass.com 設計ナイトで高ぶった結果1時間コースの発表資料が完成したので供養場所を探しています。聞いてくれ!!!— Takafumi ONAKA (@onk) 2020年11月1日 お前誰よ 2000年代前半に SI 2000年代後半にブログ、SNS 2010年代にソーシャルゲーム 2020年代に UGC サービス をやってきた人間。数百万〜数億行のデータ、月間数千万〜数十億 imp 程度を主戦場にしています。 今日の話 DDD と PofEAA から学ぶパターン/アンチパターン Rails によって発見された、密結合で速く走れるソフトウェア 今求められているアーキテクチャ 昂ぶって 15,000 字ぐらい書いてしまった。 DDD と PofEAA から学ぶパ
こんにちは id:cohalz です。はてなブログでは2021年4月の公式ブログで、すべてのブログをHTTPSに一本化していくことを案内しました。 ▶ 「HTTPS配信」への切り替えと、ブログの表示の確認をお願いいたします この時点でまだ数百万件のHTTPのブログが残っている状態でしたが、2021年8月には上記の案内に追記したように、全ブログでHTTPS化を完了できました。 完了までに行ってきたことをこの記事で振り返ってみようと思います。 はてなブログのHTTPS化のこれまで はてなブログのHTTPS化は、2017年9月に最初のお知らせを行ってスタートしました。 当初の予定より時間がかかりましたが、2018年2月にHTTPS配信の提供を開始し、これ以降に作成されたブログは最初からHTTPSのみで配信されています。また、それ以前に作成されたブログでも、ユーザ側で設定を変更することで自分のブロ
2013年から毎年、「年ごとにブックマークしたURLでよかったもの集めた」と題して、1年分の「自分がブックマークしたURL」を振り返り、まとめています。2017年分は以下です。 2017年にブックマークしたURLでよかったもの集めた - Really Saying Something 毎年我ながら酔狂なことをやっているなぁとは思うのですが、さすがに4回も続けていると、「自分はこの時こういうことに興味を持っていたんだなー」というのがわかってきて結構便利です。2018年の私の流行は「サマータイム」「マネジメント(エンジニアリング含む)」「写真」あたりでした。2017年のブックマーク総数は約8,000、2018年は約5,500。要因としては体調を崩していた時期が多かったのと、「体調が悪い時はそもそもスマホを見ることをあきらめる」を覚えたこと、2018年後半は眼に疲れが出たので通勤時にあまりブック
この半年間はソフトウェアエンジニアとしてのアウトプットに積極的になるよう意識的に行動してみたので振り返ってみます。長くなってしまったので3行でまとめるとこんな感じです。 成長と刺激を求めて OSS contribution や登壇やイベント運営を頑張ってみた 成長したかはわからないが、知り合いが増えたりして刺激を受けることが多くなった これからも続けていくが持続可能なペースにしたい この半年間、登壇とかイベント運営とかに積極的になるよう"試験運用-セルフコントロール-"してきたのでそろそろ振り返ってまとめたい— 広島の粗大ゴミ (@ohbarye) 2018年9月27日 だいたい2018年上半期の話ですが一部期間外の話もあります。 なぜアウトプットを増やすか 唐突ですが、現職では日常の業務を漫然と続けるだけで成長するフェーズは終わったのかなぁと思っています。新しく何ができるか、何をすべきか
IT エンジニアが退職するときに添えられることが多い東亜飯店の画像今月いっぱいで Increments 株式会社を退職します。今日が最終出社日で、残りは有給消化です。 Increments では何をやってたの?Increments と言えば Qiita を運営している会社というイメージですが、Qiita の開発に直接携わる機会はほとんどなくて、技術基盤や Qiita:Team の開発に携わったりしていました。 分かりやすい例を幾つか挙げると、Qiita API v2、トップページのフィード、通知購読、絵文字リアクション、タスクリスト、qiita-elasticsearch、qiita-markdown、アクセス権限付きグループ、サポートサイト、チーム統合機能の開発や、UI 刷新、絵文字画像セット移行、ログインセッション永続化、Docker 移行、VPC 移行、Terraform 導入、We
TL;DR PHPで動くファミコンエミュレータを作った php-terminal-nes-emulator画面描画は点字を使って文字出力コントローラは標準入力からfread() 経緯 2016年の2月にPHPで動くゲームボーイのエミュレータ、php-terminal-gameboy-emulator に衝撃を受けて、その実装の解説を勉強会やカンファレンスでトークしたりSoftware Design誌に書いたりしました。(*1) カンファレンスでのトークでは時間の都合もあって全体のごく一部しか話が出来ないのですが、Software Design誌では誌面をたっぷり頂いてCPU、メモリアクセス、画面表示とphp-terminal-gameboy-emulator のほぼ全域を解説出来たので満足し、その熱は落ち着いていました。 そんな中、9月に開催されたbuilderscon tokyo 201
日本にはどのような技術カンファレンスがあるのかを調べたことがあるのでメモを残しておこうと思います。「これも載せるべき!」というカンファレンスがある、もしくは説明に不備があるという場合は編集リクエストを送っていただけると幸いです。 全体の雰囲気を知ることができるようなカンファレンス参加レポを見つけたらそれも貼っています(★マークのやつです)。 2016年には開催されていないカンファレンスでも後に復活する可能性はあるので一応載せています。 iOS try!Swift 世界中のSwiftデベロッパーが集まって知見を共有するカンファレンスで、海外からのスピーカーも多く存在していました。同時通訳も付いていたようで、英語が苦手でも安心です。平日3日間を使っての開催です。 ★try! Swift 全日程聞き起こしまとめ | #tryswiftconf 3日間を終えての感想、家に帰ってからが try! S
この記事は、ある程度以上の規模のGUI開発において、React Hooks以後の宣言的UIにより、大規模開発に用いられる設計論に完全に対応できるようになり「ビジネスロジックの変更や追加」に対応するコストを低く保つこと(技術的負債の抑制)ができるようになったことを解説するものです。 技術的負債の抑制には、技術的負債の原因となりがちな「広範囲の密結合」と「適切な疎結合を保つ仕組みの欠如」が欠かせません。それをカバーするのが、大規模開発をクリーンに行える設計論(ここでは「現代的な設計論」とよぶもの)です。クリーンアーキテクチャなんかでGUIによく適用されるHumble Object Patternのようにプレゼンテーションとビューを分離する必然性が無くなるでしょう。 ポイントは ある程度以上の規模で開発するなら設計論をうまく使い設計しないと、技術的負債を抱え込む(ビジネスロジックの変更や追加に対
岡村 直樹(にゃるら)『輝かしい青春』なんて失なかった人。 2023年10月現在、アルバイトが退職となったので次に備えて待機中。 ※なおゲームのシナリオ・企画を担当された『にゃるら』さんとは別の人間です 略歴1988 年代の早生まれ。『輝かしい青春』なんて失なかった人。 2003 年代後半の高校生時代、自滅的にメンタルを病み、そこから 2023年 10月現在も治療中。 とはいえ 2019年 9月頃に N 高等学校を卒業し、 その後 2022年 8月から 2023年 9月末まで Web アプリケーションエンジニアとしてアルバイト就職をするなどした。 2023年 10月現在、次回の備えて精神科でリハビリに通う日々を送っている。 プログラミングスキルは 2005 年頃、 blosxom のために Perl を扱う事を通じて修得し、 そこから 2023年 10月に至るまで継続して腕を磨いている。
Financial troubles have forced Maker Media, the company behind crafting publication MAKE: magazine as well as the… 個別の事由はあるのであくまで一般論なのだが、このニュースから得られるひとつの見解は基本的にイベント開催というものが利益どころか、継続的に開催するための売上をイベント単体で得ることが相当難しい、ということだと思う。 自分のような人間のやっているイベントの売上は基本的に協賛費+チケット料金でまかなっている。このうち、チケット料金は、イベントというプロダクトにへの対価としてエンドユーザが支払ってくれるものであり、イベントそのもののクォリティや方向性によってある程度のコントロールができる。 やっかいなのが、このチケット料金というのはよっぽどの場合を除いてイベント開催の原価
データベースのスペシャリストとして知られる曽根壮大(そね たけとも)さん。ベンチャー企業のCTO(最高技術責任者)やインターネット企業のCRE(Customer Reliability Engineering・顧客信頼性エンジニアリング)を務めるなど、エンジニア系のコミュニティーをけん引している。講演者としても一流で、イベントにも引っ張りだこ。その世界では「そーだいさん」として、多くの人に頼られる存在だ。 しかし、そのスタートは警察官という全く別分野だった。新たな道へ進んだのは、プログラミングの知識もなかった23歳の頃のこと。 何かを始める場合、人によっては「今更始めても遅いかも……」と躊躇(ちゅうちょ)するかもしれない。高度なスキルが求められるIT業界で、そーだいさんがいまの地位までたどり着いた理由はどこにあるのだろうか。 そーだいさんならではの「学び」への姿勢、そして新しいことを始める
2020/07/17: いくつか追記しました はじめに 私は、TechTrainでフロントエンドのメンターとして面談する中で「最近フロントエンドの勉強を始めました!」という方や、フロントエンドエンジニアを目指す学生と話す機会が何度もあります。 その中でよくある質問が 「フロントエンドの情報収集ってどうしてますか?」 です。 何度も質問を貰うので、気になる人は多いのかなと思います。 この記事では「私がどんな風に情報収集しているか」を紹介しようと思います。主に情報収集の流れと、どこからフロントエンドの情報を集めているかについてです。 情報収集の流れ まずは情報収集の流れとして主にプロセス的な観点で整理してみます。 私の情報収集を抽象化すると以下の3つのプロセスがあると思います。 情報源から情報を集める(ex: Twitter, Blog, Qiita) 特定の場所に情報を溜める(ex: はてな
PHPカンファレンス、PyCon JP、builderscon tokyo などのカンファレンスでの登壇についての記事が書かれていました。 これらのカンファレンスで登壇するには、 CfP (発表の募集) に応募して発表の内容がそのカンファレンスの主旨や技術的に価値があると主催者に判断される必要があります。 なのでカンファレンスで登壇するというのはそれだけでも十分な技術的に アピールになります。そして、スポンサー企業にはなっていないカンファレンスにも登壇しこのように成果をアウトプットされていることがわかり、エンジニアの方々の技術力はもちろんのこと積極的に成果を社外に向けてアピールしていくという姿勢を個々に持っていると感じられます。 BASE さんは今のブログでの発信のペースを2年前から継続されています。つい最近マザーズに新規上場しましたし個人的にはものすごく勢いを感じています。 ------
Builderscon 2017で登壇してきました。 builderscon.io 登壇資料はこちらです。 今回も僕が超絶リスペクトしてる id:t-wada さんと そこそこリスペクトしてる 空前絶後のォォ!!!!超絶怒涛にリスペクトしている上司の id:onishi さんの名言を引用させてもらいました。これはテストコードやモニタリングで品質が見える化されますが「見える化されるだけでは問題は解決しない」という本質をお伝えしています。我々はエンジニアなので技術で問題を解決していくわけですし、問題を解決するためには手を動かすしかありません。ですのでまさに今の現場を改善していくのはあなた自身です。 あとは今年、話をしてきたデータベースリファクタリングの総集編って感じです。ホントは実例のRDBアンチパターンを元にリファクタリングしていきたかったんだけど60分では短すぎて「続編に期待」みたいなレベ
こんにちは、SWETの鈴木穂高(@hoddy3190)です。 私はこちらの記事に記載の通り、形式手法の可能性を模索しています。 現在はツールやゲームの仕様を形式的に記述すること(形式仕様記述)で、仕様の欠陥をなるべく早く見つける取り組みにチャレンジしています。 今回は仕様記述をするにあたりよく使う重要な記述テクニックである「Promotion」を紹介します。 形式仕様記述とAlloyというツールを知っている人を対象にしています。 もし形式仕様記述やAlloyをご存じない方は、以前私がbuilderscon tokyo 2019で発表したときに使った資料をご覧ください。 Promotionとは 一般にソフトウェアシステムは複数のコンポーネントから構成されます。 システム全体としての状態(以下、システム状態)は各コンポーネントの状態の組み合わせからなります。 たとえどんなに奥深くのどんなに小さ
2013年から毎年12月末に、「その年にブックマークしたURLでよかったもの集めた」として当年のブックマークを振り返ることを始めました。12/31までには間に合わせたく、2016年版は粗く編集したものを前後編に分けたのですが、 2016年にブックマークしたURLでよかったもの集めた(上半期編) - Really Saying Something 2016年にブックマークしたURLでよかったもの集めた(下半期編) - Really Saying Something やはり粗いのはあとから自分で見返すのに精神衛生上よくないのと、前後編に分かれていてそもそも一覧性にかける(これだけ大量だと一覧も何もないのですが)ため、1エントリーにまとめようとしました。 ところがある程度時間があったにもかかわらず、精査に時間をかけてしまって、年またぎ時点で6月。そして「日が昇るまでは前年」ということで粘ってみま
こんにちは。mattn(@mattn_jp)です。一部の方はご存じかもしれませんが、僕は普段あまり皆さんの前に登場することはありません。どちらかというとお堅いSI業で仕事をしています。社会人になってから今まで一度も、Web業界と呼ばれるB2C(Business to Customer)な職種に転職したこともありません。 ですが、今ではOSS(オープンソースソフトウェア)を通して、多くのエンジニアと友達になり、カンファレンス等で何度かお話しする機会をいただくまでになりました。この記事では、OSSに縁遠いはずの僕が、いかにしてOSSと出会い、そして多くの方たちと知り合うチャンスを得たのかをご紹介したいと思います。 オープンソースとの出会いはVim 日本のVimコミュニティを作る VimConfで作者Bram Moolenaarと握手 Vimから得られたチャンスや出会い GoコミュニティからGo
こんにちは。粕谷大輔(@daiksy)です。インターネット上では「だいくしーさん」と呼ばれることが多いです。現在は株式会社はてなで、Mackerel開発チームのディレクターを務めています。Twitterなどで使っている、地獄のミサワ風のアイコンをご覧になった方もいらっしゃるかもしれませんね。このアイコンは、前職のフロントエンドエンジニアに描いてもらったものです。 今の自分の仕事は、エンジニアとデザイナーで構成される開発チームを指揮し、プロダクトの安定稼働と、定常的なデリバリーに責任を持つことです。「エンジニアリングマネージャー」という言い方をすると、分かりやすいかもしれません。 自分のこれまでのキャリア選択を振り返ると、もちろん結果論のようなところもありますが、ある程度狙いを定めてキャリアを歩んでこられたのではないかと思います。本記事では自分のこれまでのキャリアについて、「どのように狙いを
はじめまして。そーだい(@soudai1025)です。 ソフトウェアエンジニアとして、地方の受託開発会社や「はてな」などを経て、今は都内でWeb系スタートアップ・株式会社オミカレのCTOをしています。 私は生まれも育ちも広島県、今日もカープのセ・リーグ優勝の余韻に浸りながらこの記事を書いています。ソフトウェアエンジニアになった経緯ですが、私も子供の頃からゲームが大好きで「人生で大切なことは格ゲーから学んだ」タイプですから、「自分もゲームを作るんだ!」と幼少期からソフトウェアエンジニアに憧れていました。 そんな私ですが、実は高校を卒業後、警察官として4年半ほど奉職していました。憧れだったソフトウェアエンジニアではなく、公務員だからという理由で警察官を選んだ私は常に後悔の気持ちと向き合うことになります。もちろん、警察官という仕事はやりがいもありましたが、それでもソフトウェアエンジニアの夢を諦め
Skip to the content. Haskell入門 従来の言語では問題を部分化する方法について概念的な限界がいくつかある。関数型言語はこれらの限界を押し広げるも のである。 なぜ関数プログラミングは重要か 関数プログラミングを習得するには,これまで命令プログラミングで培った技術はいったん忘れ,真っ白な気持ちで臨む必要があります。関数型の山を登るためには,命令型の山を降りなければなりません。 第1章 関数プログラミングは難しくない! Haskellは理解すれば理解するほどきれいに書けることを約束してくれます。信頼してください 常にパターンを探しましょう。単純になるとき、またその時だけそれらを抽象化するのです 辛抱強く抽象化を正しく理解しましょう。もしそれが出来たならすべてのことが魔法のようにつじつまが合うようになるでしょう。 実装そのものが設計図となります … Haskell Ma
こんにちは、ゆのん(id:yunon_phys)です。この記事は Akatsuki Advent Calendar 2019 10日目の記事です。 エンジニア組織の成長のために大切にしている2つの事柄 アカツキのエンジニア組織は2~3年かけて成長していく状態を目指しています。 そしてその成長のためには、情熱と技術の積み上げが大事である、と考えています。 1. 情熱という感情を大切に扱う アカツキでは、情熱を持って仕事をしている状態を称賛します。 というのも、その人の想いが込められたプロダクトは明らかに完成物のクオリティが高くなりますし、よりクオリティを上げるためのいかなる努力も惜しまなくなり、結果として人も組織も成長すると考えているからです。 情熱というのは大きな野望である必要はありません。 その人が心からやりたいと思っているものであれば、その情熱の炎に大きさは関係ありません。 個人として
こんにちは、はじめまして。株式会社ソラコムでIoTエンジニアとして働いている@moznionと申します。主に、IoTプラットフォームの開発・運用に従事しています。 このたび「わたしの選択」というテーマで寄稿の機会をいただいたので、かつてレイヤ7(アプリケーション層)で動作するソフトウェアを書いて日々を過ごしていた人間が、いかにしてIoTというIT技術の総合格闘技のフィールドへ身を投じるに至ったかをお話ししたいと思います。 IoTエンジニアをやっていると、よく「正直、何をやってるのか分からない」だとか、「特殊業界っぽい」「Web系とはいろいろかけ離れてるんでしょ?」とか、「俺には関係ないね」だとか、さまざまな所感を耳にします。本記事によって、そういった疑問をお持ちの方にもIoT開発の雰囲気が伝わり、IoTエンジニアというロールに少しでも興味を持っていただけたら幸いです。 なお、私は普段、自ら
2017/8/3〜8/5 に開催の builderscon tokyo 2017 に行ってきました。 ついでに色々あってスピーカーとして登壇してきました。 詳細はこちら。 横山三国志に「うむ」は何コマある?〜マンガ全文検索システムの構築 ウムの数を数えるに至るまで そもそもこの話がどこから始まったかというと、十数年前に 二次裏(虹裏)という掲示板で突如「ウム!」 というコマが貼られだした辺りだと思います。 当時広島で大学生しててCREATIVEという部の部長だったんですけど(今でもあるのかな?)、大学祭のときに何故か皆でウムの人を書き続けるという遊びをしていました。 そこから、それまでは読んだことあるなー程度だった横山三国志に深くハマることになります。 なお、大学では「マルコフ確率場を用いた自動作曲」という、今のDeepLearningが出る前のAIで生成系の研究をしていました。これ
- はじめに - 最近、所属企業でYouTubeの企画やインタビューを進める事になった。 私の所属する企業は、どのような事柄に対しても説明責任を重視する企業であり、ある程度の合理的な理由付けの上でYouTube上での広報活動をしていこうとなったのだが、実際は「Podcastで良いんじゃないか?」「ブログとリーチできる層は違うのか?」という話が後からも出てくる事が予想できるので、自分の中でも整理と記録を取っておきたい。 体感として、特にソフトウェアエンジニアリング業界でのYouTubeに対する評価は、正直半々といった所だろう。 私の認識としては、大きな2つの主張を短く要約すると「YouTube(全般的に)は面白い」「日本のソフトウェアエンジニアのYouTuberが技術の話をしていない」辺りにまとめられる。 これはある種実態を表しているとも言えるし、違うとも言える。 この事も踏まえ、本記事では
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く