[{"data":1,"prerenderedAt":319},["ShallowReactive",2],{"$ft6jtkd6xhw3c":3,"$fw0k8onp1fsw5":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":166,"title":167,"date":168,"excerpt":169,"image":170,"categories":266,"modified":270,"html":271,"tags":272,"related":286,"prev":309,"next":314},[267,268,269],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},"2023-11-22T13:49:36","\u003Cp>つい先日「Ambient」の最新バージョン 1.1.0をリリースして、それに合わせてクラウド版デモサイトも公開してみた。\u003Cbr \u002F>\nなお、クラウド版デモでローカルのホストコンピュータのメディアを再生するには、そのメディアファイルもサーバ側にアップロードしないとならず、メディアファイルの著作権やらサーバ側のストレージ容量等色々と問題が発生するので、今のところ無料素材のメディアファイルだけを数個配信しているのみだ。そのため、動作サンプル用のプレイリストからまともに再生できるのはYouTubeの動画だけとなっている。\u003Cbr \u002F>\nクラウド版デモは下記のURLで公開しているので、「Ambient」がどんなものか是非触って見て欲しい。\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Famp.ka2.org\u002F\">https:\u002F\u002Famp.ka2.org\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch2>バージョン 1.1.0で実装した機能\u003C\u002Fh2>\n\u003Cp>「Ambient」のバージョン 1.1.0で追加された機能は以下の通りだ。\u003C\u002Fp>\n\u003Cul>\n\u003Cli>シャッフル再生\u003C\u002Fli>\n\u003Cli>再生時の初期ボリューム設定\u003C\u002Fli>\n\u003Cli>プレイリストへのメディア追加\u003C\u002Fli>\n\u003Cli>シンボリックリンク作成機能（ローカルPCへのインストール時のみ有効）\u003C\u002Fli>\n\u003Cli>プレイリストのカテゴリー追加\u003C\u002Fli>\n\u003Cli>プレイリストのダウンロード機能\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>開発開始時に考えていた機能はほぼ実装できた感じだ。\u003C\u002Fp>\n\u003Cp>バージョン 1.1.0でプレイリストの\u003Ccode>options\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\">shuffle\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\u003Ctr>\n\u003Ctd align=\"center\">volume\u003C\u002Ftd>\n\u003Ctd align=\"center\">integer\u003C\u002Ftd>\n\u003Ctd align=\"center\">100\u003C\u002Ftd>\n\u003Ctd align=\"left\">再生するメディアの初期音量。プレイリスト読み込み後、設定メニューから変更も可能\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>それでは、各追加機能について紹介していこうかと。\u003C\u002Fp>\n\u003Ch3>シャッフル再生\u003C\u002Fh3>\n\u003Cp>バージョン 1.0.0では「ランダム再生」しか実装していなかったが、これだと再生順が完全にランダムなため、運が悪いと同じメディアが連続で再生されてしまうことがあった。\u003Cbr \u002F>\n一応同じメディアが連続で再生されない施策だけ入れていたのだが、それでもA→B→Aみたいな再生順になってしまうことがあり、「有線放送」的に垂れ流したいという私個人の期待値に応えられていなかったので、シャッフル再生を追加したのだ。\u003Cbr \u002F>\nシャッフル再生ではプレイリストの全メディアの並び順を変更して、プレイリストの全メディアが再生され切るまでは再生されるメディアは重複しないようになっている。\u003C\u002Fp>\n\u003Ch3>再生時の初期ボリューム設定\u003C\u002Fh3>\n\u003Cp>プレイリストのメディアが再生される時のデフォルトの音量を設定できるようにした。\u003Cbr \u002F>\n設定値は数値の0～100の範囲で、プレイリストのオプションにも\u003Ccode>volume\u003C\u002Fcode>プロパティで設定できる。\u003Cbr \u002F>\n未定義の場合の初期値は100となる。\u003Cbr \u002F>\nまた、この音量は各メディアごとにも設定でき、単体メディアに\u003Ccode>volume\u003C\u002Fcode>プロパティが存在する場合はオプションの初期値よりもそちらが優先される。\u003C\u002Fp>\n\u003Cp>ちなみに、これは次のバージョンで実装予定の「疑似フェーダー」機能の事前準備的な機能追加だったりする。\u003C\u002Fp>\n\u003Ch3>プレイリストへのメディア追加\u003C\u002Fh3>\n\u003Cp>「Ambient」で現在アクティブになっているプレイリストに対してYouTubeの動画やローカルPC上のメディアファイルを再生メディアとして追加する機能だ。\u003Cbr \u002F>\n現在公開中のクラウド版デモではYouTubeの動画しか追加できないが、ローカルPCにインストールした場合は自分のコンピュータ上のメディアファイルが追加できるようになる。\u003Cbr \u002F>\nこの機能は下部メニューの右端のオプション・モーダルを開き、「メディア管理」から利用できる。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_media_management.png\" alt=\"メディア追加\" \u002F>\u003C\u002Fp>\n\u003Cp>メディア追加のやり方は、次の通り。\u003C\u002Fp>\n\u003Col>\n\u003Cli>まず、追加するメディア種類を「YouTubeメディア（YouTube Media）」か「ローカルメディア（Local Media）」のどちかから選ぶ。\u003Cbr \u002F>\nなお「ローカルメディア」は「Ambient」をローカルPCにインストールした場合のみ選択可能になるため、クラウド版デモ等、リモートWEB環境へインストールした場合は利用できない。\u003C\u002Fli>\n\u003Cli>次にプレイリストに追加するメディアの所在情報を入力する。「YouTubeメディア」であればYouTube動画のURLをそのままコピペすればOkだ。\u003Cbr \u002F>\n「ローカルメディア」の場合は「Ambient」のインストールディレクトリ下の\u003Ccode>assets\u002Fmedia\u002F\u003C\u002Fcode>フォルダ内に存在しているメディアファイルを指定することになる。これ以外の場所にあるメディアファイルは読み込めないので、その場合は後述する「シンボリックリンク作成」にてメディアファイルが格納されているフォルダのシンボリックリンクを\u003Ccode>assets\u002Fmedia\u002F\u003C\u002Fcode>フォルダ内に作成してからこの操作を行うことになる。\u003C\u002Fli>\n\u003Cli>追加するメディアが所属するプレイリストのカテゴリー（Category）を選ぶ。\u003Cbr \u002F>\nもし新たなカテゴリーに追加したい場合は、後述する「プレイリストのカテゴリー追加」を実行後にこの操作を行うこと。\u003C\u002Fli>\n\u003Cli>追加するメディアのタイトル名（Title）を入力する。「ローカルメディア」の場合、メディアファイル名が初期値としてサジェストされるが、「YouTubeメディア」の場合は初期値のサジェストはないので注意。\u003C\u002Fli>\n\u003Cli>その他の項目は必要に応じて入力する。\u003C\u002Fli>\n\u003Cli>必須項目が埋まり、登録準備が完了すると「メディアを追加する（Add New Media）」ボタンが有効になるので、サブミットすれば完了だ。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>シンボリックリンク作成機能\u003C\u002Fh3>\n\u003Cp>「Ambient」のインストールディレクトリ下にある\u003Ccode>assets\u002Fmedia\u002F\u003C\u002Fcode>フォルダの下に、ローカルPC等のホストコンピュータ内のメディアが格納されているフォルダのシンボリックリンクを作成する機能だ。\u003Cbr \u002F>\nシンボリックリンクを作成することで、今までのメディアファイルの移動やコピーを行うことなく「Ambient」から再生メディアを参照できるようになる。\u003Cbr \u002F>\nローカルPCのメディアファイルを、前述の「プレイリストへのメディア追加」機能を使ってプレイリストに追加する時は、事前にこのシンボリックリンクを作成しておくのが最良である。\u003Cbr \u002F>\nこの機能は下部メニューの右端のオプション・モーダルを開き、「プレイリスト管理」から利用できる。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_create_symlink.png\" alt=\"シンボリックリンク作成\" \u002F>\u003C\u002Fp>\n\u003Cp>シンボリックリンク作成のやり方は、次の通り。\u003C\u002Fp>\n\u003Col>\n\u003Cli>ローカルPC上のメディアファイルが格納されているフルパスを（「Local Media Folder Path」欄に）入力する。\u003C\u002Fli>\n\u003Cli>作成したいシンボリックリンク名（Symbolic Link Name）を入力する。\u003C\u002Fli>\n\u003Cli>必須項目が埋まり、作成準備が完了すると「シンボリックリンク作成（Create Symbolic Link）」ボタンが有効になるので、サブミットすれば完了だ。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>なお、この機能は「Ambient」をローカルPCにインストールした時しか使えないので注意が必要だ。\u003C\u002Fp>\n\u003Ch3>プレイリストのカテゴリー追加\u003C\u002Fh3>\n\u003Cp>「Ambient」で現在アクティブになっているプレイリストに新たなカテゴリーを追加する機能だ。\u003Cbr \u002F>\nこの機能は下部メニューの右端のオプション・モーダルを開き、「プレイリスト管理」から利用できる。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_add_category.png\" alt=\"カテゴリー追加\" \u002F>\u003C\u002Fp>\n\u003Cp>カテゴリー追加のやり方は、次の通り。\u003C\u002Fp>\n\u003Col>\n\u003Cli>追加したいカテゴリー名（Category Name）を入力する。\u003Cbr \u002F>\n既に同じカテゴリー名がプレイリスト中に存在する場合は、自動で枝番が付与される。\u003C\u002Fli>\n\u003Cli>有効なカテゴリー名が指定されると「カテゴリー追加（Add Category）」ボタンが有効になるので、サブミットすれば完了だ。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>プレイリストのダウンロード機能\u003C\u002Fh3>\n\u003Cp>「Ambient」で現在アクティブになっているプレイリストをJSONファイルとしてダウンロードする機能だ。\u003Cbr \u002F>\n追加したメディアやカテゴリーが反映された最新のプレイリストデータとしてダウンロードできる。\u003Cbr \u002F>\nダウンロードしたプレイリストは「Ambient」のインストールディレクトリ下の\u003Ccode>assets\u002F\u003C\u002Fcode>フォルダに設置することで利用できるようになる。\u003Cbr \u002F>\nこの機能は下部メニューの右端のオプション・モーダルを開き、「プレイリスト管理」から利用できる。\u003C\u002Fp>\n\u003Cp>\u003Cimg data-recalc-dims=\"1\" decoding=\"async\" src=\"\u002Fassets\u002Fuploads\u002F2023\u002F11\u002Fambient_download_playlist.png\" alt=\"プレイリストダウンロード\" \u002F>\u003C\u002Fp>\n\u003Cp>プレイリストのダウンロードのやり方は、次の通り。\u003C\u002Fp>\n\u003Col>\n\u003Cli>オプションのチェックボックスでJSONデータに含まれるメディアデータのシーク時間（\u003Ccode>start\u003C\u002Fcode>や\u003Ccode>end\u003C\u002Fcode>の時間設定）を「整数の秒数」もしくは「H:MM:SS形式」にするかを選ぶ。\u003C\u002Fli>\n\u003Cli>後は「プレイリストダウンロード（Download Playlist）」ボタンをサブミットするだけだ。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>プレイリストがアクティブになっていない状態では、ダウンロードできないので注意。\u003C\u002Fp>\n\u003Ch2>今後の予定\u003C\u002Fh2>\n\u003Cp>現在バージョン 1.2.0用の開発を行っているが、次バージョンでは下記の対応を行う予定だ。\u003C\u002Fp>\n\u003Cul>\n\u003Cli>疑似フェーダーの追加（再生メディアに対して音量のフェードイン／フェードアウトを実行できる機能）\u003C\u002Fli>\n\u003Cli>多言語対応（UIの言語切り替え機能）\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>次のバージョンで私が欲しいと思っていた機能は一通り揃うので、そこで一段落って感じになりそうだが、Flutterでリファクタリングしてアプリ版を作ってみようかなぁ……。\u003C\u002Fp>\n",[273,274,277,280,283],{"slug":161,"name":162},{"slug":275,"name":276},"html5","HTML5",{"slug":278,"name":279},"media-player","Media Player",{"slug":281,"name":282},"php","PHP",{"slug":284,"name":285},"youtube","YouTube",[287,292,297,302],{"slug":176,"title":177,"date":178,"excerpt":179,"image":170,"categories":288},[289,290,291],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":154,"title":155,"date":156,"excerpt":157,"image":158,"categories":293},[294,295,296],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":142,"title":143,"date":144,"excerpt":145,"image":146,"categories":298},[299,300,301],{"slug":149,"name":150},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":303,"title":304,"date":305,"excerpt":306,"image":42,"categories":307},"tips-of-sending-emails-that-includes-multibyte-strings-on-php","PHPで日本語のメールを送信する時のおさらい","2020-05-17T22:23:28","久々のおさらいシリーズ。 最近、仕事で単発のメールフォームを作ったのだが、メール送信周りの処理をスクラッチしたところ、受信するメーラーによって文字化けしたり、迷惑メール化しちゃったりと結構色々大変だったので、そのノウ…",[308],{"slug":25,"name":26},{"slug":176,"title":177,"date":178,"excerpt":179,"image":170,"categories":310},[311,312,313],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":154,"title":155,"date":156,"excerpt":157,"image":158,"categories":315},[316,317,318],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},1793391394160]