SPAってゆうのね エイジャックスとか言ったら若者に鼻で笑われたわ
Kindleでハイライトつけた内容はKindle: メモとハイライトで閲覧できます。 このページの内容をMarkdownに変換してコピーするためのライブラリを書きました。 azu/kindle-highlight-to-markdown: Convert Your Kindle highlight & Note to Markdown/JSON 使い方 コピーしたい本をKindle: メモとハイライトで開きます ブラウザの開発者ツールの”コンソール”を開きます Firefox: ウェブコンソール - 開発ツール | MDN Chrome: Console overview - Chrome Developers 次のコードを実行するとクリップボードにコピーできます const { parsePage, toMarkdown } = await import('https://cdn.sky
11月16日、Nuxt 3 の初のstable版となる 3.0 がついに正式リリースされました! Public Beta版が公開されてから約1年、RC版で様々な改善と機能追加が行われてきましたが、待望の安定版の登場です。 個人的にこの1年いろいろな機能を試してみた感覚として、Nuxt 3 はあらゆるフロントエンド開発者にオススメできる、非常に使いやすくて優れたフレームワークだと思っています。 Nuxt 3 は非常に多機能かつ巨大なフレームワークであり、「何が優れているのか」を一言で説明するのはなかなか難しいのですが、大きく5つのテーマに分けてその魅力を整理してみました。 まず冒頭に、テーマごとの「最低限これだけ知ってもらいたい!」という要約を載せてから、細かいポイントを解説していきます。 まずは忙しい人向けの要約だけでも読んでもらって、興味が出てきた方は続きを読んで頂ければ嬉しいです! N
AI & MLLearn about artificial intelligence and machine learning across the GitHub ecosystem and the wider industry. Generative AILearn how to build with generative AI. GitHub CopilotChange how you work with GitHub Copilot. LLMsEverything developers need to know about LLMs. Machine learningMachine learning tips, tricks, and best practices. How AI code generation worksExplore the capabilities and be
「Streamlit」の使いはじめ方をまとめました。 1. Streamlit「Streamlit」は、機械学習およびデータサイエンスのためのWebアプリケーションフレームを簡単に作成して共有できるPythonライブラリです。 2. HelloWorldの作成HelloWorldの作成手順は、次のとおりです。 (1) Pythonの仮想環境の準備。 (2) パッケージのインストール。 $ pip install streamlit(3) helloworld.pyの作成。 ・helloworld.py import streamlit as st st.text("Hello World!")(4) helloworld.pyの実行。 $ streamlit run helloworld.pyブラウザが自動的に開いて、Webアプリケーションが表示されます。 3. 風船を飛ばすボタンの作成あ
Next.jsで多言語対応を試みた経緯 以前趣味でブログのRSSを登録するとブログの投稿率をGitHubの草のようなヒートマップ形式で表示でき他のユーザーと継続率を競えるサービス、Blog Friendsを開発しました。 今回のこのサービスをProductHunt(海外の自分が作ったWebサービスやアプリを投稿できるサイト)に提出しようと思い英語対応をしました。 日本語サイトがこちらで、 英語サイトはこちらです。 ProductHuntに提出してみた結果は以下のように12Upvotedでなんとも言えない結果でしたが、多言語サイトを作る上で勉強になったので後悔はしていません。 Next.jsで多言語サイトを作る方法 ルーティングを理解する 公式サイトにもあるのですが、Next.jsで多言語サイトを作る方法として以下の二つのルーティング方法があります。 Domain Routing Sub-p
こんにちは。レシピ事業部のkaorun343です。我々のチームではレシピサービスのフロントエンドを Next.js と GraphQL のシステムに置き換えている話 - クックパッド開発者ブログにて紹介したとおり、レシピサービスを Next.js ベースの新システムへと移行しています。今回は、この新システムのCSS in JSをEmotionからゼロランタイムのvanilla-extractへ変更した話です。 vanilla-extract.style 背景 以前書いた レシピサービスのフロントエンドに CSS in JS を採用した話 - クックパッド開発者ブログでは、CSS in JSライブラリとして Emotion(@emotion/react)を採用した経緯と開発環境整備を紹介しました。採用理由としては以下の通りでした。 セレクタに一意なIDが割り振られるので、スタイルを適用した要
はじめに 近年、深層学習を用いた自然言語処理技術の進展が目覚ましいです。 その中でも、GPT-3をはじめとする大規模言語モデル(LLM)には大きな可能性を感じています。 最近ですと、AI技術者以外にも大きなインパクトを与えたChatGPTが記憶に新しいでしょう。 今後もLLMの進化は止まらないと予想されており、私たちもどうやって活用するかを具体的に検討すべきフェーズに入ったのではないでしょうか。 しかし、LLMを実業務に適用するとなると、越えなければならない課題がいくつも出てきます。 今回は、以下にあげた第2・第3のハードルを越えるために役立つlangchainというライブラリをご紹介します。 第1のハードル:機密データの扱い LLMはOpenAPIのGPT-3等、モデル自体は公開されておらずWebAPIだけが提供されているというパターンが多いです。 そのため、機密データを社外に送信すると
こんにちは、韓国在住のsanaです! 今回は、パイソンを使った実践的なスキルを身につけるために役立つ3つの講座を紹介したいと思います! 1️⃣Python無料講義(活用編1) - 思い出の娯楽ゲームを作る(3時間) 実際の開発に役立つスキルを深めることができます。初心者でも安心して取り組める内容なので基礎知識がある方、パイソンの応用力を身につけたい方におすすめです!📈 2️⃣Pythonプログラミング 基礎からスタートし、徐々にプログラミングの力を養うことができます。プログラムを書く力を身につけたい初心者の方にぴったりです👨💻 3️⃣Pythonベースライブラリから積み重ねる機械学習 機械学習に興味がある方には、このパイソンを使った機械学習の講座が最適です! パイソンの基本から実務で使える技術までしっかり学んでいきましょう🌟 ぜひ、週末に挑戦してみてください!
宣伝💡 この記事の内容の超大容量版がこちらの本になります。興味がある方は是非チェックしてみてください。 Web業界に新卒で入ってから7年と数ヶ月が経ちました。私はデザインからフロントエンド全般が守備範囲です(Next.jsを使った軽めのWeb開発くらいまで)。 最近ようやく自分の中での「コーディングの手法やルール」が固まってきたので、言語化してこの記事で解説していこうと思います。 はじめに まず最初にこの記事の方針や前提をいくつか書いておきます。 用語や知識の詳しい解説はしていないので、分からない内容が出てきたら調べながら記事を読んでいただくとより理解しやすいと思います 実務を数年経験していないと理解できない部分があるかもしれないです(完全初学者向けではなく、初・中級者向け) あくまで自分の中での手法やルールであり、全ての実装者・会社・プロジェクトなどに当てはまるわけではありません(もち
皆さんこんにちは。虎の穴ラボの辻村です。 この記事は「虎の穴ラボ 夏のアドベントカレンダー」17日目の記事です。 目次 目次 対象とする読者 前提 開発・実行環境 ホスト環境 Docker環境 既存環境調査 アプリケーションサーバー OSバージョンに基づく対応イメージ特定 Amazon Linux 2の場合 CentOSの場合 ライブラリ確認 まずはコンテナ作成 ライブラリバージョン突合 依存ライブラリリストの見方 Rubyのバージョン突合 Dockerfile記述例 Bundlerのバージョン突合 Dockerfile記述例 サーバーのタイムゾーン突合 Dockerfile記述例 サーバーの言語設定突合 Dockerfile記述例 所属グループ突合 Dockerfile記載例 その他使用ミドルウェア、ライブラリ突合 DBサーバー バージョンを確認 キャラクターセット、照合順序設定、タイム
この記事はGraphQL Advent Calendar 2021の22日目の記事です。 またこれは書籍、出来る100%TypeScript 作って学ぶNext.js + GraphQL + Prismaに掲載していたコラムに加筆修正を行ったものです。 GraphQLは一言でまとめてしまえばDSL(GraphQL query language)による宣言的な記述を介してGraphQLサーバーから柔軟にデータを取得/提供する事が出来る仕組みです。文法は全く異なりますが動作モデルとしてはSQLとRDBの関係に近いかもしれません。なおHTTP上で利用される事がほとんどですが特に決まりがあるわけではありません。 元々はFacebook社(現Meta社)で開発され2012年からfacebook.comで利用されている技術で、その後2015年にはオープンソース化されFacebook以外でも徐々に利用さ
はじめに こんにちは。Sugawara Yuutaです。"Go言語で最速のJSONデコーダーを作った話", "それでも僕はGoで最速のJSONデコーダーを作りたかった"...以来の方はまた読んでいただきありがとうございます。まだの方は、経緯を伝えやすくなると思うので、そちらの方も読んでいただけたら幸いです。 その後 Go言語チームのメンバーが取り組んでいる新しいバージョンのJSONライブラリであるgo-json-experiment/jsonというレポジトリを発見しました。(厳密に言うと、知ってはいたのですが中身等は見ていない状態でした。) そこで学んだことが少しでも役に立てばとissueを提出したところ、そのときのJSONデコーダーに足りないものが見えてきたため、今回は僕の見つけた課題と、どのように解決しようとしたか・したかを話せればと思います。 見つけた課題 パフォーマンスも重要ですが
はじめに モチベーション pnpm が提供するセキュリティ機能 strictDepBuilds allowBuilds trustPolicy trustPolicyExclude blockExoticSubdeps 実際の移行手順 移行してみての所感 まとめ はじめに こんにちは、クラウドサインでフロントエンドエンジニアをしています篠田 (@tttttt_621_s) です。 普段のソフトウェア開発において、OSS の活用は欠かせません。クラウドサインも多くの OSS に支えられています。 しかし一方で、OSS には一定のリスクもあります。2025 年を振り返ると、npm パッケージにおけるサプライチェーン攻撃がたびたび話題になりました。 本記事では、サプライチェーン攻撃への対策の 1 つとして npm から pnpm へ移行した経緯とその過程で得た知見を共有します。 モチベーション
Next.js v13 への移行でやったことまとめ 準備 基礎となる記事に目を通した -> https://zenn.dev/link/comments/eefa4975aaedaf マイグレーションガイドを見て一つずつ対応しようかなと思ったけど、記事が長いのでnext devで動かして出てきたエラーを潰していく方法にした。とりあえずビルドできるようになったら、見落としやより良いやり方があるか確認するために読む。 ページコンポーネントに対して pages にあるファイルを app ディレクトリに移動させる 規約 通りに page と layout にコンポーネントを分割する getServerSideProps の処理をasync function getData() に変更する コンポーネントを async 関数にする props ではなくコンポーネントの中でgetData()の返り値を
インクリメンタルに新しい技術を取り入れる方法では、VueからReactへ段階的に移行していったという話を紹介していました。 このReactの採用を決定してから大きな論点となったのは、ReactでCSS(スタイル)をどのように書くかについてです。 Reactのスタイリング方法には、デファクトと言えるものはありません。 Styling and CSS – React CSSファイルとclassNameを使う方法、CSSファイルをimportするCSS Modules、JavaScriptでCSSを書くCSS in JSなどさまざまな方法があります。 スタイリングライブラリの選定は、表現力はそこまで大きく変わりませんが選択肢が多過ぎます。 そのため、VueやReactを選ぶといった技術選定よりも難しい部分があります。 KARTE Blocks(以下、Blocks)では、最終的にReactのスタイ
We're laying the foundation for the future of Next.js with 12.2: Middleware (Stable): Dynamic routing for your entire application. On-Demand ISR (Stable): Update content without redeploying. Edge API Routes (Experimental): High performance API endpoints. Edge SSR (Experimental): Server-render your app, at the Edge. SWC Plugins (Experimental): Extend compilation with your own plugins. Improvements
この記事では、GraphQL を利用したアプリを Next.js で構築していきながら、GraphQL の初歩について書いていく。 GraphQL のクライアントもサーバも、Apollo を用いる。 また、できるだけ型安全に開発したいので、graphql-codegenで型定義ファイルを生成する方法も扱う。 利用しているライブラリのバージョンは以下の通り。 @apollo/client@3.5.10 @graphql-codegen/cli@2.6.2 @graphql-codegen/typed-document-node@2.2.7 @graphql-codegen/typescript-operations@2.3.4 @graphql-codegen/typescript-resolvers@2.5.4 @graphql-codegen/typescript@2.4.7 @type
After years of running Next.js applications serving thousands of users at Elevantiq, I've learned that self-hosting Next.js in production is fundamentally different from clicking "deploy" on Vercel. When you're dealing with horizontal scaling, multiple replicas, and enterprise-grade requirements, the default Next.js setup breaks down in ways that aren't immediately obvious. This guide contains eve
転職会議事業部の srkw です。 今期事業部内で利用する eslint および prettier の共通ルールを管理するパッケージを作成したので、その工程と成果物をご紹介したいと思います。 なお、今回紹介するパッケージの内容には多分に要修正箇所があり、今後他のプロジェクトとの優先順位を鑑みて、都度改善される可能性があります。その際はこちらの記事も併せて更新できればと考えています。 TL;DR 最終成果物は以下のリポジトリで公開しています。利用リポジトリ側での設定等は README に記載しております。 https://github.com/livesense-inc/eslint-config-template モチベーション 転職会議は現在ページごと・機能ごとにサーバーを別で管理するマイクロサービス構成で開発を行っています。その中で利用する静的コード分析やコードフォーマッタのルールは
TypeScriptのコンパイラをGo言語でネイティブ化、10倍速にした「TypeScript Native Previews」が公開 マイクロソフトは、TypeScriptのコンパイラを始め各種ツール群をGo言語に移植することでコンパイラの処理速度を10倍速にした新バージョンとなるTypeScriptのプレビュー版「TypeScript Native Previews」の公開を発表しました。 Today we're announcing previews of the native port of TypeScript! These nightly previews will be available on npm and the VS Code marketplace! npm install -D @typescript/native-preview npx tsgo --vers
10月23日、ISRGが「RustlsがOpenSSLやBoringSSLを凌駕する」という記事を公開した。この記事では、Rustlsのメモリ安全性とパフォーマンスに焦点を当て、TLSライブラリの進化について詳しく紹介されている。 10月23日、ISRGが「RustlsがOpenSSLやBoringSSLを凌駕する」という記事を公開した。この記事では、Rustlsのメモリ安全性とパフォーマンスに焦点を当て、TLSライブラリの進化について詳しく紹介されている。 以下に、その内容を紹介する。 Rustlsとは何か? Rustlsは、Rust言語で書かれ、メモリ安全性に優れたTLS(Transport Layer Security)実装である。 Rustlsはすでにプロダクション環境に対応しており、さまざまなアプリケーションで利用されている。C APIとFIPSサポートも備えており、既存のプログ
はじめに タイトルは若干煽りですが、TS 5.0 でBundlerという設定値が追加されたため、Nodeを使う場面はほぼ無くなったと思います。今回は Node.js と TypeScript のモジュール解決の仕組みについて、moduleResolutionというオプションの観点から解説します。この記事を書くにあたって実際に動作確認は行っていますが、もしも間違っているところがあればご指摘いただけると幸いです。 なお、 Node.js LTS v18、TypeScript v5.0 時点での情報です。今後のバージョンアップにて変更がある可能性があります。 TL;DR "moduleResolution": "Node"は使わないほうがいい おそらく求めているものはBundler tsc をビルドツールとして使用している場合はNode16 / NodeNextがベスト Nodeを使う場合でもN
年イチでちょっとしたブラウザゲームを作ってます(→ 去年)。今年はそこそこ遊べる可愛いアクションゲームを4KB以内で作ってみました。 🎉宣伝させてください! 🐱今年も無事、猫の日ゲームができました!https://t.co/XnDD8AXx4k 今年は可愛さはそのまま、限界までコードを削って4KBにおさめました。PCの方はソース表示して見てみてね pic.twitter.com/j0QqH6iSSn — ゆき (@yuneco) February 20, 2022 作ったもの:ブラウザで動く4KBのゆるかわアクション URL: https://yuneco.github.io/mezashi-4kb/ ソース: https://github.com/yuneco/mezashi-4kb つまりどういう...コト? index.htmlという名前のファイルを作って下のコードをコピペする
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 自分は2021年に新卒でweb系の開発会社にフロントエンジニアとして入社し2022年で2年目になります。 実務ではReact×TypeScriptを利用したフロント周りの開発をメインで行なっていなす。 今回は実務でNext.jsプロジェクトにテストを導入することになり「React-Testing-Library」と「Jest」について改めて学び直したのでその内容を紹介します。 はじめに「React-Testing-Library」と「Jest」の概要を説明しその上で具体的なテストコードを何パターンか書いていきます。 この記事の
JavaScriptでは任意の値を例外としてthrowすることができますが、実際にはErrorのインスタンスをthrowするのが慣例です。 エラーの原因をより正確に説明したいときはErrorを継承するのが望ましいですが、単に継承するのではなく以下のように書くのがオススメです。 class MyError extends Error { static { this.prototype.name = "MyError"; } }その背景について以下で説明します。テーマは以下の3つです。 nameプロパティcaptureStackTracecauseプロパティnameを正しくセットするNode.jsでエラーを表示させると、クラス名が正しく表示されます。 > throw new (class C extends Error {})() Uncaught C [Error]ここで出力されている "C
はじめに こんにちは、ダイニーの ogino です。 この記事では GitHub の bug bounty で脆弱性を報告し、実際に報奨金を受け取った時の体験を共有します。 私は特にセキュリティの専門家ではなく、偶然に問題を見つけて初めて報告をしました。読者の方が同じようなチャンスに遭遇した時スムーズに行くように、海外からお金を受け取る上での意外なつまずきポイントや、実際に貰える金額などについて紹介します。 どんな問題を見つけたのか 今回見つけたのは、GitHub Copilot の VSCode 拡張機能に関する問題です。 この拡張機能のソースコードは本来公開されていないはずですが、TypeScript のソースマップによって元のコードが露出していました。 そもそも VSCode の拡張機能は .vsix という拡張子の付いたパッケージ形式で配布されます。これは実態としてはただの zip
Like n8n, but inside your codebase. Build AI agents visually, import your functions, deploy with your app. Works with VS Code, Cursor, Windsurf. Plays nicely with Claude Code, Gemini CLI, and more. This flow demonstrates LLM integration across multiple providers (OpenAI & Anthropic) with structured output generation, content processing, and response formatting.
緑コーダーになり仕事に好影響が出始める 私が従事している仕事では、プログラミングはまったく必要ありません。 ところが緑コーダーになった頃から、仕事中に「あれ?これはPythonでやれば速く終わるのでは?」というような、効率化・時短のアイデアが思いつけるようになってきました。 これは以前にはなかったことでした。 たとえば法人で自動車を購入する際、減価償却という作業を通じて費用化しますが、同じ取得価額であったとしても、新車と中古車とでは当期の償却額が異なります。当然、正確に計算しないといけません。 会社勤めをしていると、このような「つまらない。でも正確にやらないといけない」という仕事が沢山あります。私はこういう仕事については計算用のプログラムを書いて、片っ端からPythonにやらせる事にしました。 またある時は、業務管理ソフトを変更する事になり、旧ソフトでエクスポートした約10万行のcsvファ
ANDPAD フロントエンドエンジニアの小泉です。 普段は Vue での開発をメインにしているのですが、並行して React のプロジェクトも担当しています。 今回は、「ANDPAD 資料承認」というプロダクトのサービスページを Next.js から React Router に移行した際の、 GitHub Copilot の活用法について紹介します。 特に、「コーディングエージェントが凄いのはわかったけど、実際のプロダクト開発にどう取り入れて良いかわからない」という悩みを持っている方の参考になれば幸いです。 なお、この記事は、ある程度 Copilot や コーディングエージェントを使ったことのある方に向けた内容となっています。そもそもの Copilot の導入・設定方法、基本的な使い方・事例について知りたい方は、以下の記事を先に読んでいただくのがオススメです! tech.andpad.c
はじめに 今回の記事では、PythonでWeb開発を進める際に使われるWebフレームワークである「FastAPI」と「Flask」について、両者それぞれの特徴と強みを具体的なソースコードを用いて解説する。 この記事の対象とする読者 これからPythonでWeb開発を進めることを検討している人 APIを開発したいものの、どのような技術を使うべきが迷っている人 FlaskとFastAPI両方とも、あるいはどちらか一方に興味を持っている人 社内あるいは個人開発の技術選定で、FastAPIあるいはFlaskの導入を検討している人 Flaskとは FlaskはPythonで開発された軽量のWSGI(Web Server Gateway Interface)製のWebフレームワークである。 Flaskの説明に入る前に、WSGIについて簡潔に説明させてほしい。WSGIを完結に説明すると、Pythonにお
はじめに 昨今の激アツChatGPTブームを見ると、これをアプリとして開発してみたいと思う方も多いのではないでしょうか。気になって調べてみるとLangChainやLlamaIndexというライブラリに行き着く方も多いはずです。 そしてすぐ壁に直面すると思います。 結局これらのライブラリが 何で どういう時に どう使えば良いのか わからない! そうです。私です。 特にLangChainは初めてLLMアプリ開発される方には少し難解です。LangChainは非常に積極的な開発がされているライブラリで、課題や良い方法が発見されればそれをすぐ実装!というスピード感で動いています。 その分、ドキュメントこそ整備されているものの膨大な情報量に迷子になりやすい状況です。 そこで、今回はLangChainのメンタルモデルを簡単に説明してみることにしました。 全体感が抑えられていればコアな情報、追加で必要とな
バクラク事業部エンジニアの id:upamune です。最近、ローカル開発環境構築に対して人より熱意があるということに気がつきました。 ということで、この記事ではバクラク事業部での、ローカル開発環境構築の今について書きます。 はじめに 近頃、AIの発展により開発、特にコーディングのハードルは大きく下がりました。弊社でもプロダクトマネージャーやデザイナーがエンジニアに混じってPRを出しています。 詳しくはバクラクビジネスカードでプロダクトマネージャーをしている原山がnoteを書いているのでご覧ください。 note.com しかし、ここで開発の障壁となるのが最初のローカル開発環境の構築です。セットアップドキュメントは存在しますが、主にソフトウェアエンジニア向けに書かれており、ローカルでアプリケーションを動かすだけなら不要なツールまでまとめてインストールするため、時間のかかるものになっていました
この記事ははてなエンジニア Advent Calendar 2021 の 22 日目の記事です。 昨日の記事は id:shimobayashi さんの アジャイル推進活動にここ1年で吉兆がみえてきた要因について - 下林明正のブログ でした。 Chrome の DevTools の UI 部分は Web 技術でできています。Web 技術でできているので、DevTools を DevTools で inspect することもできます。 example.com を inspect している画面を inspect している様子 このことを知ったのは、10MB くらいある JavaScript ファイルにブレークポイントを貼りつつデバッグしていたら DevTools が固まるようになってしまい、ブレークポイントを解除しようにもその前に DevTools がフリーズしてしまうので詰んだ……、という出
今日からあなたはフロントエンドエンジニアです! え、面接でバックエンド・インフラしかやってなかったって言ったのに!?フロント!?どうしよう 😭 [1] どうも、株式会社カナリーでお部屋探しマーケットプレイスの CANARY を開発している shusann です! 本エントリーでは、 もしあなたが明日から急にフロントエンドエンジニアを任されることになっても困らないよう、私がこの半年間で何をどうやって学んできたかをシェアすることで道しるべとなれることを目指しています。 これから同じ境遇に立つ人やフロントエンド興味あるけど何から手を付ければいいかわからないようなエンジニアにとって、この記事が参考になれば嬉しいです 😍 とはいえ、本エントリーは半自伝的な記事で「ああ、こんなことやってたんだ」という読み物として話半分に読んでいただければ幸いです。 自己紹介 本題の前に、半年前の入社当時の自分の状
Next.jsを初心者向けツールとして捉えている自分が、実践 Next.js を読んでみて2024-03-28 この記事は 実践 Next.js の書評です。 見本誌を頂いた上での記事です。(PR記事?) tl;dr App Router のメリットを理解しつつも、学習コストに割り合わないと思っている人にオススメ!ドキュメントを読めるようになるし、学習コストが下がる。 はじめに 自分はどちらかというと今の Next.js に対しては否定的な感情の割合の方が高く、仕事で困らない程度の最低限の知識しか持っていない。 しかし、なんだかんだ勉強の必要性に駆られていて、そのキャッチアップとして同書の発売を楽しみにしていた。 そんな折に @takepepe さんから見本誌をいただいたことで、この週末に読んだので書評を書きたい。 俺は今のNext.jsが好きではない 書評を書く前にポエム書かせてくれ!
Lee Robinson I’m a developer and writer. I work at Cursor teaching about AI. Previously, I worked at Vercel. I’ve been coding for 15 years and teaching for the second half. My life’s work is to make technology easy to understand and interesting to learn about. I’m a husband, father, and a massive music fan. I last listened to How Will I Know by Whitney Houston. Some of my favorite writing includes
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く