画力・博士号・油田 @bd_gfngfn 英語母語話者なら “B if A” と発話するであろうところをことごとく “if A, then B” と発話していたらあだ名がVisual Basic Manになった人の話好きすぎる 2023-06-28 09:42:17
TailwindCSSを始めようとしている人へ JSフレームワーク内でスタイルをどのように当てるべきかは,多く議論されるものであるが,そんな中でTailwindCSSが注目と人気を集めている様子である. それはそうと私はなかなか使うまで踏み出せなかったが,v3.0以降にようやく使ってみたので, 使い方をざっくり知りたい人 できることをざっくり知りたい人 TailwindCSSをエアプしたい人 に向けて個人的な所感と要点を書いていく. TailwindCSSをすごく簡単に classNameに特定のclassを指定することでStyleを当てていくCSSフレームワーク. 例えば,ここにあるように, bg-red-600とclassNameをつけることで,CSSのbackground-color: #dc2626;と同様のCSSプロパティを当てたことになる. 普段このように書くところを
Steven J. Vaughan-Nichols (Special to ZDNET.com) 翻訳校正: 川村インターナショナル 2024-05-15 07:30 「Python」や「JavaScript」が学ばれるようになるずっと前、米国時間1964年5月1日の夜明け前の暗闇の中で、コンピューター史におけるささやかながら非常に重要な出来事がダートマス大学で幕を開けた。数学者のJohn G. Kemeny氏とThomas E. Kurtz氏がGeneral Electricの「GE-225」メインフレームを操作して、独自に考案した言語の最初のプログラムを実行した。その言語こそ、初心者向け汎用記号命令コード、すなわち「BASIC」だ。 BASICは最初に普及した言語ではない。その栄誉を得たのは、ビジネス分野では「COBOL」、エンジニアリング分野では「FORTRAN」だった。しかし、19
この記事はBuild your own WebAssembly Compilerを翻訳・意訳したものです。また独自の説明を加えた部分もあります。 前置き もしあなたがWebAssemblyについて聞いたことがなく、本当に詳しい紹介をしてほしいのであれば、Lin Clark氏のCartoon Guideを読むことをお勧めします。 このブログ記事ではWebAssemblyが「何か」を学ぶことができますが、「なぜ存在するのか」についても簡単に触れておきたいと思います。 私の視点では、この図が非常に簡潔にまとめられています。 上の図は、ブラウザ内での JavaScriptコードの実行を簡略化したタイムラインです。左から右に向かって、コード(一般的にはminifyされた状態で提供されます)は AST に解析され、最初はインタプリタで実行され、徐々に最適化/再最適化されて、最終的には非常に高速に実行さ
Javaのエンジニアだった私がGo言語でREST APIを作る上で学んだことをまとめています。 プロジェクト構成、単体テスト、Dockerイメージの作成など実際にREST APIを開発する上で必要だと思われる要素を盛り込みつつサンプルプロジェクトを作成していきます。 はじめに Javaのエンジニアだった私がGo言語でREST APIを作る上で学んだことをまとめています。 プロジェクト構成、単体テスト、Dockerイメージの作成など実際にREST APIを開発する上で必要だと思われる要素を盛り込みつつサンプルプロジェクトを作成していきます。 今回はできるだけ外部ライブラリやフレームワークを使わずにGo言語の標準機能のみで開発しました。 これからバックエンドにGo言語を使用することを検討されている方の参考になれば幸いです。 ※この記事は既にGo言語の開発環境をセットアップ済みで基本的な文法を学
estie でソフトウェアエンジニアをしている徳永(@yTo_9)です。 estie では Ruby を書いたりTypeScriptを書いたりしています! estie 夏のブログ祭りにかこつけて、せっかくなら普段は追わない部分だけど、気になっていたYJITなるものを深掘りしてみようと思い、「YJITがなぜRailsアプリケーションの高速化を実現できたのか」を調べてみたので紹介したいと思います。 「どうせ難しいんでしょ?」と思いながら調べてみたのですが、講演や論文の説明がわかりやすく、意外に概要を把握することは難しくありませんでした。 YJIT の核となっているのは Lazy Basic Block Versioning (LBBV) という手法で、これはRubyだけに限らず動的言語全般に適用可能な強力なアプローチであることがわかりました。 「あるタイプの条件分岐は、ほとんどの場合で片側しか
はじめまして、ライクル事業部 エンジニアの菊池@kichionです。 普段の業務では主にエンジニアチーム運営・運用の課題解決やビジネスサイドとのやり取りが多く、中長期目線でのアプローチを行っています。 エンジニアとして行っている技術選定や実装関連についてはZenn - kichionにも投稿していますので興味があればご覧になってください。 今回はライクル事業部として少しづつ取り入れ始めている「ドメイン駆動開発」に焦点を当てて見ます (ドメイン駆動に関わる内容については、端的ですがQiita - kichionにも投稿してますので気になったらご参照ください) ドメイン駆動開発(DDD) ドメイン ドメインモデリング 技術的要素 ドメイン駆動開発の目的 ドメイン駆動開発を浸透させるための取り組み ドメイン駆動開発 勉強会 ドメインオブジェクト整理会 今後やっていきたいこと 続・DDD勉強会 現
Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。佐伯氏は、WebAssemblyのWebの外の応用について発表しました。全2回。前半は、Wasmがアツい理由とデザインゴールについて。 今回のテーマは「Kernel/VM的WebAssembly入門」 佐伯学哉氏(以下、佐伯):佐伯が『WebAssemblyのWeb以外のこと全部話す』というタイトルで発表します。 まず、WebAssemblyとは何ぞや? という一般的な話なのですが、「Wikipedia」からの引用によれば、「Webブラウザーのクライアントサイドスクリプトとして動作する低水準言語である。ブラウザー上でバイナリフォーマットのかたちで実行可能であることを特徴とする」とあります。 実際の応用例としては、WebでGoogle Meetの背景ぼかしに使われていた
✎ 基礎知識編 CSRF とは何か? CSRF (Cross-Site Request Forgeries) を意訳すると 「サイトを跨ぐ偽造リクエスト送信」 です。 簡単に言うと,罠サイトを踏んだ結果,自分が無関係な別のサイト上で勝手にアクションをさせられる攻撃です。具体的には,ネットサーフィンをしているうちに知らない間に自分のIPアドレスから掲示板に犯罪予告が書かれていた,といった被害を受けます。 この攻撃を防ぐ責任は「無関係な別のサイト(具体例では掲示板)」側にあります。Web サイト作成者には,利用者が意図しない操作を勝手に実行されないように,利用者を守る責任があります。 また上図からも分かる通り,この攻撃の最大の特徴はアカウントがハッキングされたというわけではないということです。ログイン状態の利用者のWebブラウザを利用して攻撃が行われている,というのが重要です。 オリジンとは何
マイクロソフト、「C#は進化させ続ける」「Visual Basicに新しい構文の導入はしない」。.NETのプログラミング言語に関する最新の戦略を明らかに マイクロソフトは、.NETでサポートする3つのプログラミング言語「C#」「F#」「Visual Basic」の今後に関する戦略を、最新版にアップデートしたことを明らかにしました。 下記はマイクロソフトで.NETのプリンシパルプログラムマネージャを務めるKathleen Dollard氏のツイート。 We've updated our .NET Language Strategy. You can read more and get the links here: https://t.co/SsmZJBSEUA — Kathleen Dollard (@KathleenDollard) February 6, 2023 最新版の戦略はこれま
はじめに ここ最近TypeScriptの学習をしていまして、その学習記録をZennに投稿し続けていました。 その中で、TypeScriptの基礎学習の最後として投稿した以下の記事では、TypeScriptを用いてReact開発をする際に最低限必要となるであろうTypeScriptの型について簡単にまとめました。 TypeScript 学習記録 #8(Reactに関わる型定義) 先述の記事を書いている際、TypeScriptを用いたReactの基本的な型定義について網羅的にまとめている記事がまだまだ多くないように感じたため、今回「React × TypeScriptの基本の型定義」について改めてまとめ直してみることにしました。 TypeScriptの基礎学習を終え、これからTypeScriptを利用してReactやNext.jsでの開発をしてみようという方の参考になれば幸いです。 そこそこ長
はじめに 今年は、SNS でありプロトコルでもある Nostr に出会いました。2023年2月の参加でしたがもう、どういった経緯で Nostr を見付けて参加したのかすら思い出せなくなってしまいました。ここ数年、X/Twitter が API という物を開発者に触らせなくなってしまいました。僕は X/Twitter が大きくなった理由の1つが、API をオープンにした事で数多くの bot やサービスがが登場した事だと思っていて、API が自由で無くなった X/Twitter をとても残念に感じています。次第に SNS に関連する何かを作るモチベーションはさっぱり無くなってしまっていました。 そんな中で見付けた Nostr はエンジニアのオアシスとでも言える SNS だと感じました。 Nostr の思想 X/Twitter は中央集権型の SNS であり、以下の様な問題を持っています。 障害
話したネタ デザインパターンとは? ソフトウェアパターン 書籍: オブジェクト指向における再利用のためのデザインパターン Gang of Four 進研ゼミみたいなもの Composite パターン デザインパターン以外のソフトウェアパターンとは? アーキテクチャパターン、アンチパターン、コンカレンシーパターン AWSクラウドデザインパターン パターンにはフォーマットがある GoFのデザインパターンはいつ頃生まれたもの? GoFのデザインパターン登場時に、ソフトウェア業界では何が起きていたのか? Ruby 20 周年記念パーティーレポート ―― プログラミング初心者の運営スタッフが見た Ruby コミュニティ C、C++、Perl、Smalltalk、Visual Basic の時代 デザインパターンには、どういうカテゴリがある? 生成・構造・振る舞い Javaのクラスライブラリにおけるデ
はじめに 品質管理部の河野です。先日、 ソフトウェアテストシンポジウム 2021 東京 の企画セッションで「仕様整理のためのテスト設計入門」というタイトルで発表してきましたので、本ブログでは発表に至った経緯や発表の感想などを報告いたします。 発表の経緯 まず、タイトルを見た方は、仕様を整理するためにテスト設計を使うのか? と考えられたと思いますが、その通りでテスト設計はテストケースを設計する行為なのですが、実はテストケースを設計する過程で仕様を整理していることが多いです。ということで、テスト設計のための技術である、テスト設計技法を理解しながら、演習を交えて仕様の整理を実感できるような構成でチュートリアル形式で90分の発表を行いました。 それで、このようなテーマを思いついたきっかけは、私が以前作成したテスト設計の入門のテキストを近くの開発者の方に「開発者向けにやったら需要ありますか?」と質問
業務で扱う(最小)単位でデータとロジックをひとまとめにして整理する技法 ドメインモデルが実現する世界 どこに何のロジックが書いてあるか、(ソースを見るだけで)わかる 改修しやすいプログラム ドメインモデルで解決したい問題 どこに何のロジックが書いてあるかわからない問題 - わからないから適当に書く→適当に書くからわからない → わからないから・・・ - ある修正をしようと思っても、どこまでが影響範囲かわからない - 使用している箇所全grepして調査 - 同じような処理、分岐が重複してしまう これを解決したい。これだけを考える。 なぜ(今までのシステムは)改修は難しいのか 機能クラスと、データクラスをわけてしまうから そのデータクラスを呼べる箇所 = 業務ロジックがかけてしまう どこになにが書いてあるかわからなくなる 共通クラス、Utilクラスを作ってしまうから 誰でも呼べる = そのクラ
JavaScriptやTypeScriptのコードには?.のような記号やasのようなキーワードが使われます。こういった記号やキーワードはGoogleで検索しづらく、意味を調べるのは難しいものです。 この索引は、JavaScriptとTypeScriptの記号やキーワードから、その名前や意味を調べられるようにするためのものです。コードを読んでいて未知の記号やキーワードに出くわしたら、その意味や使い方を調べる手がかりにしてください。 ここで扱う記号とキーワードには、JavaScript由来のもの、つまり、JavaScriptとTypeScriptに共通して使えるものと、TypeScriptでのみ使えるものを併記しています。JavaScript由来のものにはのマークを、TypeScript固有のものにはマークを表示しています。 記号! 論理否定演算子 (logical not operator
ナイルでは、社内研修用としてSEOを学べるドリルを用意し、新入社員を中心に取り組んでもらっています。社内研修では、最低限のSEO知識の獲得およびSEOの考え方の取得を目的にしています。 今回は、その中から初級レベルを中心に30問を抜粋して公開!実際にSEOコンサルをする中で、現場でよく質問される内容がベースになっています。 ■ダウンロード ※SEOドリルの問題編がダウンロード可能ですので、問題用紙としてご利用ください。 SEOドリルは、すべて記述式です。まずは問題を解いてから、記事内の解答をご確認いただく流れを想定しています。なお、情報の精査は丁寧に行っておりますが、記載内容に違和感や誤りなどありましたら、ご指摘ください。 \SEO知識の獲得におすすめ!資料ダウンロードはこちら/ SEOドリルにチャレンジする前に SEOドリルに取り組む上で、お伝えしておきたいことがあります。このドリルは、
blog.codinghorror.com Stack Overflow の共同創業者、あるいは「FizzBuzzテスト」を広く世に知らしめた(?)ことで知られる Jeff Atwood が、彼の世代にもっとも影響を与えた BASIC 時代の本を取り上げている。 それは1970年代に刊行された BASIC Computer Games だが、この本に掲載されたゲームを遊ぶために BASIC のコードを打ち込んだよねということで、日本でいうと1980年代のマイコンBASICマガジン(ベーマガ)に近い存在だろうか。 で、単にノスタルジーでこの昔の本を取り上げているのではなく、彼はこれに掲載されたゲームの BASIC のソースコードを Java や Python や C# など8つの現代のプログラミング言語に移植するプロジェクトを立ち上げている。 github.com ライセンスは The Un
BunのおかげでZigに注目する人が増えたように感じます。 個人的にZigを使ってる人間として紹介がてら自分のZigに対する印象を書いていきます。 どんな言語か(公式) 「堅牢で最適で再利用可能なソフトウェアを維持するための汎用プログラミング言語」 公式のより詳しい紹介はこちら Cをベースに現代的な機能を追加している Raylibのサンプルコード // raylib.comから引用(いくつかのコメントを削除) #include "raylib.h" int main(void) { const int screenWidth = 800; const int screenHeight = 450; InitWindow(screenWidth, screenHeight, "raylib [core] example - basic window"); SetTargetFPS(60);
ミクシィには、探究心溢れるエンジニアがたくさん在籍しています。 その探究心は業務で扱う技術にとどまらず、趣味で書いているプログラムだったり、個人的に研究している言語だったりと、自身の気になった技術への追求も留まることを知りません。そこで、社内のエンジニアに“好きな技術”について、思う存分に語ってもらうシリーズを始めました。 ルールはこの通り。 ・業務で使っている技術でも、使われていない技術でもOK ・あくまでも個人的な見解で ・その技術のどこが面白いのか ・愛を込めて語り尽くしてもらう 第3回目は、新規プロダクトを目下開発しているSREグループの神谷に、「WebAssembly」の魅力をたっぷり語ってもらいました。 Webの技術でもないしアセンブリでもない? ━━早速ですが、今アツい技術について教えてください! 今回話すのは「WebAssembly(以下Wasm)」についてです。生まれた背
はじめに こんにちは!CTOのはせがわです。 先日公開された、Flatt Securityさんのブログ「開発者が知っておきたい「XSSの発生原理以外」の話」、おもしろいですね。このXSSの記事に限らず、Flatt Securityさんのブログは役に立つ記事が多い*1ので、個人的には記事が公開されるのを毎回楽しみにしています!*2 たしかに、XSSの脅威についてはなかなか理解してもらうことが難しく、また一般的にはSQLインジェクション等と比べても脅威が低く見られることも多いため、XSSの脅威について少し掘り下げて考察したいと思います。 なお、この記事は「XSSの発生原因くらいは知ってるよ」という人を対象にしています。「XSSって何だっけ」という方は クロスサイトスクリプティング対策 ホンキのキホン (1/3):CodeZine(コードジン) などの記事を参照してください。 技術的な面からの解
概要 先日のブログで記事を書いた、ラズベリーパイを使って作ったIoTシステムに「脆弱性がある」と指摘を受けたので、素人ながら調べつつ最低限のセキュリティ対策を施した話。 westgate-lab.hatenablog.com (ちなみに、上の記事ははてなブログの週間ランキング2位になってしまった) 今週のはてなブログランキング〔2020年2月第1週〕 - 週刊はてなブログ 背景 先日上記のブログ記事を公開したところ、「システムに脆弱性がある」という指摘を多々頂いた。システムというのは、「ラズベリーパイでインターホンを監視して、呼出音を検知したら条件に応じて解錠ボタンを押す」というものである。 もともとは、予定された配達か否かで2通りの解錠方法を考えていた。 予定された配達の場合(廃止済み) 予定していなかった配達の場合(現行版は常にこれ) 受けた指摘は主に2つ。 もともと予定された配達時間
2021年3月27日(土)わずか10行のコードで書かれた最新のレトロゲームMSX2用RPG『10 Lines Hero』が製作者より無料公開されました! ほのっぺ @honowi BASICプログラム10行で作られた #MSX 用RPG『10 Lines Hero』、完成しました!! よければリンクから飛んで遊んでみてください!(起動まで約30秒ほどかかります) 説明書とプログラムのスクショをこのツイートにぶらさげます。 #MSXBASIC #BASIC #10liner #MSX10行RPG webmsx.org/?MACHINE=MSX2&… pic.twitter.com/UJiwpaN0PO 2021-03-27 18:30:38
こんにちは。AWS事業本部のKyoです。 簡単に静的サイトを構築・管理したいといった場合、Amplifyが選択肢の1つに上がってきます。 Amplifyと聞くと「ReactとかVue.jsとか必要なんでしょ?」そんなイメージをお持ちの方も多いのではないでしょうか。 今回紹介するAmplify Consoleはそれらの知識はナシに、従来CloudFront + S3構成で対応していた静的サイトをより簡単に構築・管理することができます。 また、本ブログではホスティングに加えて、カスタムドメインの設定や開発環境の追加、Basic認証にも触れます。これらに関してはCloudFront + S3構成で実装するよりもはるかに簡単に設定することができます。 具体的なユースケースとしては、コーポレートサイトなどにハマるのではないかと思っています。 Amplify is 何? まず、言葉を整理しましょう。
{"name": "佐藤", "age": 22, "edu-background": "Hoge University"}, {"name": "鈴木", "age": 24, "edu-background": "Fuga University", "foreign-lang": ["English", "Spanish"]}, {"name": "髙橋", "age": 25, "edu-background": "Fuga University", "foreign-lang": ["English"], "written-book": ["Intro to DB"]}, {"name": "田中", "age": 33, "edu-background": "Foo University", "written-book": ["Intro to Java", "Advanced
月間10万人が読んでいるCoral Insightsのニュースレターにご登録いただくと、Coral Capitalメンバーによる国内外のスタートアップ業界の最新動向に関するブログや、特別イベントの情報等について、定期的にお送りさせていただきます。ぜひ、ご登録ください! 本記事はTemma Abe氏による寄稿です。Abe氏は東京大学経済学部を卒業後に新卒で三菱商事に入社。2016年からのアクセンチュア勤務を経て、2019年からは米国西海岸に在住し、UC BerkeleyのMBAプログラムを経て、シリコンバレーで勤務しています。現地テック業界で流行のニュースレターやポッドキャストを数多く購読しており、そこから得られる情報やインサイトを日本語で発信する活動をされています。 本記事は3本シリーズの中の1本目のPart1です。 Web3の「外の人」が調べまくって得た6つの視点(Part1)※本記事
React Hook Formは、フォームの入力データを検証まで含めて、まとめて簡単に扱えるライブラリです。ただ、導入のページ(「はじめる」)にコード例は示されているものの、説明があまりありません。本稿は、その中から基本的なコード例8つを採り上げ、公式ドキュメントの引用やリンクも加えて解説します。コード例はわかりやすい(あるいは動く)ように手直しし、CodeSandboxにサンプルを掲げました。 インストール React Hook Formは、npm installコマンドでつぎのようにインストールします。 アプリケーションを手もとでつくるには、Create React Appを使うのがよいでしょう。本稿のコード例の場合には、TypeScriptのテンプレートを加えてください(「React + TypeScriptのひな形作成とFullCalendarのインストール」参照)。 基本的な使い
Laravel のログイン認証周りのカスタマイズをする度、 「この場合どこをいじればいいんだっけ・・・」と混乱するので、 図にまとめてみました。 全体感を掴んでいただくことが目的ですので、 この記事では、具体的なカスタマイズのコードは紹介しません。 ご了承ください。 まずは登場人物一覧 ガード (guard) Laravel では「認証」と呼ぶことが多いです。 ログイン機構の種類を表します。 たとえば、ECサイトの「管理者」と「会員」など。 ログイン画面の数だけガードがある、というイメージです。 provider (認証方法) と driver (認証状態の管理方法) で構成されています。 config/auth.php に定義されており、追加・変更ができます。 ガードドライバ (driver) ログインの認証状態をどうやって管理するか。 多くの場合はセッション認証 (session) で
本連載ではKubernetesの簡単な説明からはじまり、開発者の方にとってKubernetesを利用することで何が嬉しいのか、どのように開発フローが変わっていくのかについて、イラストを交えながら紹介します。今回は、Kubernetesとは何か、どんな特徴があるのかについて解説します。 はじめに はじめまして。サイボウズ株式会社のあおい(@_a0i)です。最近Kubernetesという単語を聞くシーンが増えてきましたよね。もともとインフラに関わっていなかった開発者の方でも、身近で聞くことが多くなってきたのではないでしょうか。 しかし、「最近Kubernetesについてよく聞くけれど、なんだろう?」「Kubernetesを使ってみたいけれど難しそう、どこから始めればいいかわからない」こう言った悩みを抱えている方もいると聞いています。本連載ではKubernetesの簡単な説明からはじまり、開発者
In one of my recent PRs I changed all interfaces to types because there were already more types than interfaces. In the review, I was asked to revert the change. I did it, but as well I wondered what the actual difference between interface and type. Let’s figure out this. I use the latest TS (v3.5.1) for examples in this post. Similarities Records 1interface IAnimal { 2 name: string; 3} 4 5type An
はじめに おはようございます、加藤です。今回はフロントエンドエンジニア向けに静的なWebサイトをホスティングなどが出来るサービスであるAWS Amplify Consoleの使い方や出来る事を紹介します。 古の時代、ただの静的なコンテンツを表示する為だけだとしてもサーバーを建ててApache or nginxをインストールして...という事をやっていました。フロントエンドエンジニア or デザイナーが作成し、インフラエンジニアに依頼する必要がありました。古の時代といった通り現代では、NetlifyやFirebase hosting、そして本ブログで紹介するAmplify Consoleを使えば自分自身で簡単に簡単にリリースを行うことができます。より多くのエンジニアにそういった体験をして貰えれば良いなと思いこのブログを書きます。 AWS Amplifyとは AWS Amplify(以降、Am
EKS初心者の方向けに、EKS周辺のAWSリソースがどのように関連して動作しているのかをステップバイステップでEKSCTLが担っている役割を中心に説明しました。 先日、「EKS祭り」をテーマにJAWS-UGコンテナ支部 #16を開催しました。 JAWS-UGコンテナ支部 #16〜EKS on Fargateローンチ記念!EKS祭りだワッショイ - connpass EKS縛りというだいぶ濃いイベントの中で、自分はトップバッターで「今こそ振り返るEKSの基礎」と第して喋ってきたのでその内容をまとめます。基礎といえども普段隠れがちなEKSに関連するAWSリソースについてフォーカスを当てたある意味マニアックな内容だと思うので、EKS気になる方は是非ご覧ください。 (祭) ∧ ∧ Y ( ゚Д゚) Φ[_ソ__y_l〉 EKS タノシイヨ コレマジデ |_|_| し'´J この記事の
デザインシステムという単語が、曖昧に、広い意味で使われているように感じるこの頃。 デザインシステムについて見聞きすることが増えてきました。 かくいう自分も、デザインシステムに関してブログを書いたり、参考にしたりしています。 モバイルアプリ業界に、デザインシステム導入や検討の流れが来ているようです。 ただ、デザインシステムの議論には話の筋がとっ散らかっているという印象が拭えません。 「デザインシステムで解決したいこと」や「デザインシステム導入のコスト」、そ「デザインシステムを誰が管理するか」あたりが、特に雑多な印象です。 デザインシステムとはナニで、どう適用されるモノなのか。 そして、特に起きがちなデザインシステムの過度な一般化について、扱ってみます。 デザインシステムの過度な一般化 試みたいこと デザインシステムのカバー範囲の分解 Level 0 Level 1 Level 2(広義のデザ
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く