[{"data":1,"prerenderedAt":318},["ShallowReactive",2],{"$ft6jtkd6xhw3c":3,"$f2l9dtydx7yz8h":263},{"featured":4,"latest":129,"categories":227},[5,14,27,37,48,56,66,76,86,96,106,114,122],{"slug":6,"title":7,"date":8,"excerpt":9,"image":10,"categories":11},"custom-database-tables","Custom DataBase Tables","2015-11-24T02:29:34","You can create the new own table freely in the your WordPress database via this plugin. Then, you can make the management of table or (as view or entry or edit) data in a simple user interface.\\nAlso,","\u002Fassets\u002Fuploads\u002F2016\u002F02\u002Fcdbt-overview.png",[12],{"slug":13,"name":7},"cdbt",{"slug":15,"title":16,"date":17,"excerpt":18,"image":19,"categories":20},"10_php_tips_for_developers","PHP開発者が心得ておくべき10の鉄則","2016-01-11T18:38:09","PHPだけに限った話ではないが、プログラミングを行うに当たって、心得て、準備しておくと失敗が劇的に減る事柄をまとめてある良い記事を見つけたので、私なりの解釈で意訳しつつ、経験則を踏まえてあらためてまとめてみた。 オリジナ…","\u002Fassets\u002Fuploads\u002F2016\u002F01\u002Feyecatch-php-10-tips.jpg",[21,24],{"slug":22,"name":23},"column","コラム",{"slug":25,"name":26},"development","開発関連",{"slug":28,"title":29,"date":30,"excerpt":31,"image":32,"categories":33},"jquery-timeline-v1","2種類の横型タイムラインを簡単に作成できる「jQuery.Timeline」をリリース","2017-05-29T14:55:46","現在開発しているサービスで利用するべく、横型タイムラインを生成できるjQueryプラグインを自作したので、そこだけ単独でリリースしてみた。 ソースコード等はGitHubの方にリリースしてあるので、興味のある方は、そち…","\u002Fassets\u002Fuploads\u002F2017\u002F05\u002Fjquery_timeline_image.png",[34],{"slug":35,"name":36},"jqtl","jQuery.Timeline",{"slug":38,"title":39,"date":40,"excerpt":41,"image":42,"categories":43},"optimize-browser-cache-of-static-resources","更新されたJS、CSS、画像のみブラウザキャッシュを破棄して読み込ませる","2018-01-31T15:47:47","WEBサービスの保守や開発をやっていると、JavaScriptやスタイルシート、画像などの静的リソースを更新した際、しばしば「確認したけど、更新されてないよ」とか云われて、「ブラウザのキャッシュを消してからもう一度見て…",null,[44,47],{"slug":45,"name":46},"codes","コード集",{"slug":25,"name":26},{"slug":49,"title":50,"date":51,"excerpt":52,"image":53,"categories":54},"jquery-timeline","jQuery.Timeline version2 – full documentation","2019-03-04T20:40:48","Plugin Overview The jQuery.Timeline plugin provides you two types of the horizontal timeline. You can create a…","\u002Fassets\u002Fuploads\u002F2019\u002F03\u002Fjquery.timeline_v2.jpg",[55],{"slug":35,"name":36},{"slug":57,"title":58,"date":59,"excerpt":60,"image":61,"categories":62},"released-the-sloth","Released the Sloth of mobile-first CSS micro framework!","2019-04-16T18:04:25","I released the “Sloth” that is mobile-first CSS micro framework. I have long used frontend framewo…","\u002Fassets\u002Fuploads\u002F2019\u002F04\u002Fsloth_doc_head.png",[63],{"slug":64,"name":65},"sloth","Sloth",{"slug":67,"title":68,"date":69,"excerpt":70,"image":71,"categories":72},"challenge-to-conceal-the-wordpress-site","WordPressサイトを徹底的に秘匿化する","2020-02-02T23:59:58","私は自分の個人サイトをはじめ、仕事でもWordPressサイトを運用している。WordPressは気軽にサイトを立ち上げられてカスタマイズも簡単な、素晴らしいオープンソースなのだが、世界中で使われまくっているその知名度…","\u002Fassets\u002Fuploads\u002F2020\u002F02\u002Fshutterstock_1878005929.jpg",[73],{"slug":74,"name":75},"wordpress","WordPress関連",{"slug":77,"title":78,"date":79,"excerpt":80,"image":81,"categories":82},"what-is-forkor","Made a shortened URL app called Forkor","2020-07-07T22:27:01","What’s Forkor? Forkor is a service that provides a shortened URL feature that allows you to redirect any…","\u002Fassets\u002Fuploads\u002F2020\u002F07\u002Fforkor.png",[83],{"slug":84,"name":85},"forkor","Forkor",{"slug":87,"title":88,"date":89,"excerpt":90,"image":91,"categories":92},"manual-about-svg-japan","インタラクティブな日本地図を生成するJSプラグイン「SVG Japan」","2020-11-16T21:19:58","各都道府県をそれぞれ選択・クリック可能なインタラクティブな日本地図を生成するネイティブJavaScript建てのプラグイン「SVG Japan」を作ったので、その紹介と使い方をまとめておく。ちなみにソースコードはgit…","\u002Fassets\u002Fuploads\u002F2020\u002F11\u002Fsvg-japan.png",[93],{"slug":94,"name":95},"svg-japan","SVG Japan",{"slug":97,"title":98,"date":99,"excerpt":100,"image":101,"categories":102},"wp-ignitor-plugin-to-conceal-wordpress-site","WordPressサイトを秘匿化するプラグイン「WP Ignitor」","2021-01-19T15:28:21","以前「WordPressサイトを徹底的に秘匿化する」という記事で、WordPress建てのサイトを秘匿化する方法を取り上げたのだが、あれをサイト構築時に毎度実施するとなるととても労力が必要であった。そこで、もっとお手軽…","\u002Fassets\u002Fuploads\u002F2021\u002F01\u002Fbanner-1554x500-1.png",[103],{"slug":104,"name":105},"wp-ignitor","WPイグナイタ",{"slug":107,"title":108,"date":109,"excerpt":110,"image":111,"categories":112},"tastewp","無料でWordPressサイトを複数作成できるWEBサービス「TasteWP」","2021-03-25T20:21:59","私が日本語翻訳に協力しているWEBサービス「TasteWP」について紹介しようと思う。 https:\u002F\u002Ftastewp.com このサービス、サインアップすることなく無料で自分用のWordPressサイトを作れるとい…","\u002Fassets\u002Fuploads\u002F2021\u002F03\u002FTasteWP_screenshot.png",[113],{"slug":74,"name":75},{"slug":115,"title":116,"date":117,"excerpt":118,"image":119,"categories":120},"monster-hunter-rise-skill-simulator","モンハンライズのスキルシミュレータを作ってみた！","2021-06-28T20:24:52","コラムで連載していたNintendo Switch版『モンスターハンターライズ』のスキルシミュレータ開発がやっと一段落して一通り完了した。いやぁ、記事書きながら同時並行で開発すると思っていた以上に時間がかかるもんだなぁ…","\u002Fassets\u002Fuploads\u002F2021\u002F06\u002Fmhrss_v100.png",[121],{"slug":25,"name":26},{"slug":123,"title":124,"date":125,"excerpt":126,"image":42,"categories":127},"comparison-of-javascript-date-libraries","JavaScriptの日時ライブラリを比較してみた","2021-07-28T22:39:19","ネイティブJavaScriptで日時を取り扱う場合、ビルトインされているDateオブジェクトを使うことになるのだが、このDateオブジェクトは取り扱いにクセが多く、直感的に日時を操作できない点でも有名である。そこで、専…",[128],{"slug":25,"name":26},[130,141,153,165,175,184,192,195,198,206,213,220],{"slug":131,"title":132,"date":133,"excerpt":134,"image":135,"categories":136},"pulllog_launched","ガチャ履歴を記録・分析できるWebサービス「PullLog」","2025-08-22T13:05:30","このたび、新しい個人開発サービスとして 「PullLog（プルログ）」 をリリースした。 URLはこちら https:\u002F\u002Fpulllog.net PullLogとは？ PullLogは、ソーシャルゲームのガチャ履歴を記録…","\u002Fassets\u002Fuploads\u002F2025\u002F08\u002Fpulllog_stats_jp.png",[137,140],{"slug":138,"name":139},"industries","プロダクト",{"slug":25,"name":26},{"slug":142,"title":143,"date":144,"excerpt":145,"image":146,"categories":147},"mockapi-php-openapi-schema-generation","モックAPIのレスポンスから OpenAPI 3.0 スキーマを自動生成するPHPツール","2025-04-17T09:31:52","私自身がそうなのですが、OpenAPI仕様書を毎回手作業で書いていて「面倒だな」と思ったことはありませんか？ そんな（私と）あなたにぴったりのツールがあります。 レスポンスの例さえ用意すれば、OpenAPI 3.0 スキ…","\u002Fassets\u002Fuploads\u002F2025\u002F04\u002Fswaggerui-preview.png",[148,151,152],{"slug":149,"name":150},"mockapi-php","MockAPI-PHP",{"slug":138,"name":139},{"slug":25,"name":26},{"slug":154,"title":155,"date":156,"excerpt":157,"image":158,"categories":159},"ambient_playlist_customize","Ambientでメメントモリのラメントプレイヤーを作る","2023-11-30T17:32:39","「Ambient」の最新バージョン 1.2.0で実装した「疑似フェーダー」機能を使って、ソーシャルゲーム「メメントモリ」のYouTube公式チャンネルで公開されているMVを集約したラメント専用プレイヤーを作ってみた。 ラ…","\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_mememori_1.png",[160,163,164],{"slug":161,"name":162},"ambient","Ambient",{"slug":138,"name":139},{"slug":25,"name":26},{"slug":166,"title":167,"date":168,"excerpt":169,"image":170,"categories":171},"released_ambient_demo_version","Ambientメディアプレイヤーのクラウド版デモを公開","2023-11-22T13:47:36","つい先日「Ambient」の最新バージョン 1.1.0をリリースして、それに合わせてクラウド版デモサイトも公開してみた。 なお、クラウド版デモでローカルのホストコンピュータのメディアを再生するには、そのメディアファイルも…","\u002Fassets\u002Fuploads\u002F2023\u002F10\u002FAmbientMediaPlayer-typologo.png",[172,173,174],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":176,"title":177,"date":178,"excerpt":179,"image":170,"categories":180},"ambient-media-player","YouTubeと自分のPC内メディアを同時に再生できるメディアプレイヤーを作ってみた","2023-10-20T00:00:25","私はよくPCで何か作業をするときには音楽を垂れ流していることが多い。 そういう時にかける曲は、手持ちのアルバムCD等からPCに取り込んだ音源だったり、さらにはYouTubeの動画だったりとメディアや再生環境がバラバラだ。…",[181,182,183],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":185,"title":186,"date":187,"excerpt":188,"image":189,"categories":190},"what-is-the-sunorhc","Sunorhc is a date-time library for JavaScript","2021-08-25T22:55:55","Sunorhc is a lightweight library for handling dates and times for JavaScript. The library wraps a native JavaS…","\u002Fassets\u002Fuploads\u002F2021\u002F08\u002Fshutterstock_1091212919_resized.jpg",[191],{"slug":25,"name":26},{"slug":123,"title":124,"date":125,"excerpt":126,"image":42,"categories":193},[194],{"slug":25,"name":26},{"slug":115,"title":116,"date":117,"excerpt":118,"image":119,"categories":196},[197],{"slug":25,"name":26},{"slug":199,"title":200,"date":201,"excerpt":202,"image":203,"categories":204},"mhrise-skill-simulator-creation-chapter-12","モンスターハンターライズのスキルシミュレータを作ってみる！ 第12回","2021-06-21T13:11:46","今回は「マイセット登録」と護石データの「エクスポート／インポート」機能の追加をしていく。折り良く（悪く？）「FF7リメイク・インターグレード」や「FORTNITEシーズン7」が出たこともあって、そっちをプレイしてたらこ…","\u002Fassets\u002Fuploads\u002F2021\u002F04\u002Fb6ca09e9a7f6faf27641f62dabe64c6ff97b4f326aa478379e3c112aa28eb9ab.jpg",[205],{"slug":22,"name":23},{"slug":207,"title":208,"date":209,"excerpt":210,"image":203,"categories":211},"mhrise-skill-simulator-creation-chapter-11","モンスターハンターライズのスキルシミュレータを作ってみる！ 第11回","2021-06-07T14:52:31","さて、今回はユーザー個別データの管理部分を開発していく予定だが、まずその前にやっておくことがある。 新スキル「風雷合一」に対応する Ver.3.0の大型無料アップデートで追加された新スキルに「風雷合一」というのがある…",[212],{"slug":22,"name":23},{"slug":214,"title":215,"date":216,"excerpt":217,"image":203,"categories":218},"mhrise-skill-simulator-creation-chapter-10","モンスターハンターライズのスキルシミュレータを作ってみる！ 第10回","2021-06-02T00:29:10","今回は、護石管理画面の作成だ。この護石管理では、ユーザーごとに護石の登録を行う機能と、登録した護石を削除する機能を持つ仕様になる。この画面から登録した護石データはデータベースに格納するので、フロントエンド側からのリクエス…",[219],{"slug":22,"name":23},{"slug":221,"title":222,"date":223,"excerpt":224,"image":203,"categories":225},"mhrise-skill-simulator-creation-chapter-9","モンスターハンターライズのスキルシミュレータを作ってみる！ 第9回","2021-05-22T23:56:27","さて、今回はVuexによるデータ・キャッシュの実装だ。一度データベースから読み込んだデータをフロントエンド側で再利用可能なストアに格納することで、データベースへの接続回数を減らしてシステム負荷を下げるとともに、UX的な…",[226],{"slug":22,"name":23},[228,230,232,236,238,239,240,241,242,244,247,248,250,252,254,258,261],{"slug":161,"name":162,"count":229},3,{"slug":13,"name":7,"count":231},7,{"slug":233,"name":234,"count":235},"csnp","Custom Sticky Notes",2,{"slug":84,"name":85,"count":237},1,{"slug":35,"name":36,"count":229},{"slug":149,"name":150,"count":237},{"slug":64,"name":65,"count":237},{"slug":94,"name":95,"count":237},{"slug":74,"name":75,"count":243},37,{"slug":245,"name":246,"count":237},"wpqt","WP Qiita",{"slug":104,"name":105,"count":237},{"slug":22,"name":23,"count":249},29,{"slug":45,"name":46,"count":251},16,{"slug":138,"name":139,"count":253},5,{"slug":255,"name":256,"count":257},"lifelog","ライフログ",64,{"slug":259,"name":260,"count":235},"uncategorized","未分類",{"slug":25,"name":26,"count":262},45,{"type":264,"post":265},"post",{"slug":154,"title":155,"date":156,"excerpt":157,"image":158,"categories":266,"modified":156,"html":270,"tags":271,"related":288,"prev":308,"next":313},[267,268,269],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},"\u003Cp>「Ambient」の最新バージョン 1.2.0で実装した「疑似フェーダー」機能を使って、ソーシャルゲーム「メメントモリ」のYouTube公式チャンネルで公開されているMVを集約したラメント専用プレイヤーを作ってみた。\u003Cbr \u002F>\nラメント専用プレイヤーと言っても、実際は「Ambient」用にラメントMV集のプレイリストを作るだけなのだが……まぁ、プレイリストカスタマイズのTIPSにもなるかと。\u003C\u002Fp>\n\u003Cp>なぜ、メメントモリなのか？──って、先日購入したアルバム「メメントモリ Lament Collection Vol.1」に私の推し曲「燐光」（イリアのラメント）が収録されていなかったので、「燐光」が聴けるメディアプレイヤーが欲しかったのだ。ちょうど新アモールも追加されたタイミングで旬だしね。\u003Cbr \u002F>\nあと、やっぱり気軽にフル尺の全ラメントが聴ける環境があることは（自分的に）素晴らしいのだ！──メメントモリのラメントは全て神曲なので。\u003C\u002Fp>\n\u003Cp>なお完成したプレイリストは下記クラウド版デモのページで公開しているので、興味がある人はデモ用「Ambient」で \u003Ccode>mememori-youtube.json\u003C\u002Fcode> のプレイリストを読み込んでみて欲しい。\u003C\u002Fp>\n\u003Cp>https:\u002F\u002Famp.ka2.org\u002F\u003C\u002Fp>\n\u003Ch2>バージョン 1.2.0で実装した機能\u003C\u002Fh2>\n\u003Cp>「Ambient」のバージョン 1.2.0で追加された機能は以下の通りだ。\u003C\u002Fp>\n\u003Cul>\n\u003Cli>疑似フェーダー\u003C\u002Fli>\n\u003Cli>UIの言語切り替え\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>疑似フェーダーの詳しい説明は後述するとして、もう一つの言語切り替え機能については詳しい説明は不要かと。\u003Cbr \u002F>\nクラウド版デモではデフォルト言語である「English」に追加して日本語の翻訳ファイルをアサインしているので「日本語」への切り替えが可能になっている。\u003Cbr \u002F>\nなお、どちらの機能も設定メニューから切り替えが可能だが、言語切り替えを行うとプレイヤーの初期化（再読み込み）が行われるので、プレイリストを選択する前に切り替えておくのが良い。\u003Cbr \u002F>\n言語設定は一度切り替えるとその設定言語がCookieに保存されるようにしているので、次回以降のアクセス時には改めて切り替える必要はない。\u003C\u002Fp>\n\u003Ch2>疑似フェーダーについて\u003C\u002Fh2>\n\u003Cp>「Ambient」の「疑似フェーダー」とは、再生メディアごとに音量のフェードイン／フェードアウトを行うための仕組みである。\u003Cbr \u002F>\nプレイリスト側に設定された値に沿って、自動で埋め込みプレイヤー側のボリュームを動的に変更することで実現しており、再生メディア自体がフェードイン／フェードアウトを行っているわけではないので疑似的な処理として「疑似フェーダー」と呼称している。\u003Cbr \u002F>\n「疑似フェーダー」の制御を行うにあたって、バージョン 1.2.0からプレイリストの\u003Ccode>options\u003C\u002Fcode>プロパティに\u003Ccode>fader\u003C\u002Fcode>の設定値を追加している。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth align=\"center\">プロパティ名\u003C\u002Fth>\n\u003Cth align=\"center\">型\u003C\u002Fth>\n\u003Cth align=\"center\">初期値（省略時）\u003C\u002Fth>\n\u003Cth align=\"left\">値の説明\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd align=\"center\">fader\u003C\u002Ftd>\n\u003Ctd align=\"center\">boolean\u003C\u002Ftd>\n\u003Ctd align=\"center\">false\u003C\u002Ftd>\n\u003Ctd align=\"left\">再生するメディアに疑似フェーダーのエフェクトを有効化するかどうか。プレイリスト読み込み後、設定メニューから変更も可能\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>また、各メディアデータ側にはフェードイン／フェードアウトの範囲を秒数で指定するためのプロパティが追加され、再生メディア単位でフェードイン／フェードアウトを指定できるようになっている。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth align=\"center\">プロパティ名\u003C\u002Fth>\n\u003Cth align=\"center\">型\u003C\u002Fth>\n\u003Cth align=\"left\">値の説明\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd align=\"center\">fadein\u003C\u002Ftd>\n\u003Ctd align=\"center\">integer\u002Ffloat\u003C\u002Ftd>\n\u003Ctd align=\"left\">音量がフェードインするまでの時間を秒単位で指定。再生開始のシークタイム（\u003Ccode>start\u003C\u002Fcode>プロパティ）が設定されている場合、再生開始から設定した秒数だけフェードインする\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd align=\"center\">fadeout\u003C\u002Ftd>\n\u003Ctd align=\"center\">integer\u002Ffloat\u003C\u002Ftd>\n\u003Ctd align=\"left\">音量がフェードアウトするまでの時間を秒単位で指定。 再生終了までのシークタイム（\u003Ccode>end\u003C\u002Fcode>プロパティ）が設定されている場合、再生終了から設定した秒数後にフェードアウトが始まる\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>フェードイン後およびフェードアウト直前の音量は、メディアデータ側に再生音量（\u003Ccode>volume\u003C\u002Fcode>プロパティ）が指定されていればその値に、もしくは\u003Ccode>options\u003C\u002Fcode>に初期ボリュームを指定している場合はその値に変更される。フェードイン／フェードアウトの音量の変遷を視覚化すると下図のようになる。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_fader.png\" alt=\"疑似フェーダーによる音量の変遷\" \u002F>\u003C\u002Fp>\n\u003Cp>フェードインは再生開始時間(\u003Ccode>start\u003C\u002Fcode>が指定されている場合はその時間)から\u003Ccode>fadein\u003C\u002Fcode>プロパティで設定された時間（秒数）分行われ、その間再生音量が0から既定音量（初期ボリューム値）まで増加する。\u003Cbr \u002F>\nフェードアウトは再生終了時間（\u003Ccode>end\u003C\u002Fcode>が指定されている場合はその時間、未指定時はメディアの再生終端時間）から\u003Ccode>fadeout\u003C\u002Fcode>プロパティで設定された時間（秒数）分遡った時点から行われ、その間再生音量が既定音量（初期ボリューム値）から0まで減少する。フェードイン後からフェードアウト開始時点まではプレイヤー側での音量変更が可能だが、フェードイン／フェードアウト中は100ミリ秒単位で自動で音量変更が行われているため、結果的にユーザー側からの音量変更が無視されるので注意が必要である。\u003C\u002Fp>\n\u003Cp>なお、「疑似フェーダー」はYouTubeの動画およびローカルメディアのどちらにも使用できる。\u003C\u002Fp>\n\u003Ch2>プレイリスト欄のサムネイル\u003C\u002Fh2>\n\u003Cp>これは、バージョン 1.0.0から実装されている隠し機能なのだが、各メディアデータの\u003Ccode>image\u003C\u002Fcode>プロパティに指定できる再生メディアのサムネイル画像について、ファイル名の末尾に\u003Ccode>-thumb\u003C\u002Fcode>か\u003Ccode>_thumb\u003C\u002Fcode>のサフィックスを付けた画像ファイルを前述の画像ファイルと同じパス上に設置しておくと、左ドロワーのプレイリスト一覧のサムネイルとして優先的にそちらが使われる。プレイリスト一覧用に別のサムネイル画像を表示したい時に利用できる。\u003Cbr \u002F>\nプレイリスト一覧に表示されるサムネイルは幅と高さが等しいアスペクト比の画像が最適で、YouTubeから自動で読み込まれたサムネイル等は横長なためにはみ出した部分の画像は表示が切り取られてしまうため、別途プレイリスト用に正方形の画像を準備することで、プレイリスト一覧を綺麗に表示することができるようになる。\u003C\u002Fp>\n\u003Cp>クラウド版デモではこのプレイリスト欄用のサムネイルを準備していないので確認はできないが、プレイリストごとにネオスキューモフィズム的な色合いを持たせることができるのが、「Ambient」の隠れた特長でもある。\u003C\u002Fp>\n\u003Ch2>最後に\u003C\u002Fh2>\n\u003Cp>プレイリスト・カスタマイズの参考に、プレイリスト欄を含む各種サムネイル画像や背景等をメメントモリの世界観に合わせて作ったプレイリストのデータを下記Gistに公開しておく。\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgist.github.com\u002Fka215\u002Fe1685ad07a3419740bb3661b4f9e5423\">mememori-youtube.json\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>諸々の画像を準備してからこのプレイリストを読み込むと、以下のようにまさにメメントモリの専用プレイヤーみたいにデコレーションできる。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_mememori_1.png\" alt=\"メメントモリ・ラメントプレイヤー\" \u002F>\u003C\u002Fp>\n\u003Cp>さて、今回のバージョン 1.2.0で「Ambient」の開発はひとまず一段落だ。\u003Cbr \u002F>\nまぁ欲を言えばプレイリスト管理をもっと強化して、メディアの編集や削除、指定フォルダ内のメディア一括追加などの機能も実装できればアプリとして完成度が高まるのだろうが、個人利用する分にはプレイリストのJSONファイルを直接編集してしまった方が早いので、もうこの辺で機能は十分かなぁ……と思っていたり。\u003C\u002Fp>\n\u003Cp>何気に、「Ambient」使い出したら他のメディアプレイヤーはCDの音源取り込みぐらいでしか使わなくなってしまった……我ながら良いアプリ作ったものである。\u003C\u002Fp>\n",[272,273,276,279,282,285],{"slug":161,"name":162},{"slug":274,"name":275},"media-player","Media Player",{"slug":277,"name":278},"mementomori","MementoMori",{"slug":280,"name":281},"youtube","YouTube",{"slug":283,"name":284},"%e3%83%a1%e3%83%a1%e3%83%b3%e3%83%88%e3%83%a2%e3%83%aa","メメントモリ",{"slug":286,"name":287},"%e3%83%a9%e3%83%a1%e3%83%b3%e3%83%88","ラメント",[289,294,299,303],{"slug":166,"title":167,"date":168,"excerpt":169,"image":170,"categories":290},[291,292,293],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":176,"title":177,"date":178,"excerpt":179,"image":170,"categories":295},[296,297,298],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":131,"title":132,"date":133,"excerpt":134,"image":135,"categories":300},[301,302],{"slug":138,"name":139},{"slug":25,"name":26},{"slug":142,"title":143,"date":144,"excerpt":145,"image":146,"categories":304},[305,306,307],{"slug":149,"name":150},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":166,"title":167,"date":168,"excerpt":169,"image":170,"categories":309},[310,311,312],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":142,"title":143,"date":144,"excerpt":145,"image":146,"categories":314},[315,316,317],{"slug":149,"name":150},{"slug":138,"name":139},{"slug":25,"name":26},1793391394160]