[{"data":1,"prerenderedAt":312},["ShallowReactive",2],{"$ft6jtkd6xhw3c":3,"$f2kweb21a111ju":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":266,"title":267,"date":268,"excerpt":269,"image":42,"categories":270,"modified":272,"html":273,"tags":274,"related":278,"prev":296,"next":304},"type-of-bit-is-optimal-as-field-handling-boolean-in-mysql","MySQLに真偽値を格納する場合はbit(1)型のフィールドが最適","2015-02-23T16:30:43","つい最近、自作のWordPressカスタムデータベース管理プラグイン「Custom DataBase Tables」への問い合わせで bit型フィールド についてデフォルト値を指定するとテーブル作成がコケるという不具合報…",[271],{"slug":25,"name":26},"2015-11-24T01:53:45","\u003Cp>つい最近、自作のWordPressカスタムデータベース管理プラグイン「Custom DataBase Tables」への問い合わせで \u003Cstrong>bit型フィールド\u003C\u002Fstrong> についてデフォルト値を指定するとテーブル作成がコケるという不具合報告があって、 \u003Cstrong>MySQLのbit型フィールド\u003C\u002Fstrong> について詳しく調べることになった。その結果、色々と新たにわかったことがあったので、その備忘録も兼ねて記事を書いておこうかと。\u003C\u002Fp>\n\u003Cp>もともとオレ的には、MySQLのbit型はboolean（bool）型と同様に \u003Cstrong>tinyint(1)のシノニム（フィールド形式のエイリアスみたいなもの）\u003C\u002Fstrong> と理解していたので、フィールドの仕様もtinyint(1)と同じだと認識していたんだが、実際は違っていたんだなこれが。\u003Cbr \u002F>\n各フィールドの仕様は下記のようになってた（ちなみにMySQLのバージョンは5.6.16）。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>フィールド型\u003C\u002Fth>\n\u003Cth align=\"center\">表示桁数\u003C\u002Fth>\n\u003Cth align=\"center\">値範囲\u003Cbr \u002F>（※ UNSIGNEDなし）\u003C\u002Fth>\n\u003Cth align=\"center\">値範囲\u003Cbr \u002F>（※ UNSIGNED時）\u003C\u002Fth>\n\u003Cth align=\"left\">CREATE TABLE後のフィールド型\u003C\u002Fth>\n\u003Cth align=\"left\">備考\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>tinyint\u003C\u002Ftd>\n\u003Ctd align=\"center\">1~（※1）\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128~127\u003C\u002Ftd>\n\u003Ctd align=\"center\">0~255\u003C\u002Ftd>\n\u003Ctd align=\"left\">tinyint(1)\u003C\u002Ftd>\n\u003Ctd align=\"left\">数値タイプフィールドに属する\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>boolean\u003C\u002Ftd>\n\u003Ctd align=\"center\">&#8211;\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128~127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-（※2）\u003C\u002Ftd>\n\u003Ctd align=\"left\">tinyint(1)\u003C\u002Ftd>\n\u003Ctd align=\"left\">tinyint(1)のシノニム\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">&#8211;\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128~127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-（※2）\u003C\u002Ftd>\n\u003Ctd align=\"left\">tinyint(1)\u003C\u002Ftd>\n\u003Ctd align=\"left\">tinyint(1)のシノニム、かつbooleanのエイリアス\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bit\u003C\u002Ftd>\n\u003Ctd align=\"center\">1~64\u003C\u002Ftd>\n\u003Ctd align=\"center\">&#8211;\u003C\u002Ftd>\n\u003Ctd align=\"center\">&#8211;\u003C\u002Ftd>\n\u003Ctd align=\"left\">bit(n)\u003C\u002Ftd>\n\u003Ctd align=\"left\">数値タイプフィールドに属する。格納される値がバイナリ値になる\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cul>\n\u003Cli>\u003Cstrong>※1\u003C\u002Fstrong> : tinyint型フィールドの最大表示桁としては通例\u003Ccode>4\u003C\u002Fcode>である。これは、\u003Ccode>-\u003C\u002Fcode>（マイナス）の符号を含めた最小値が\u003Ccode>-128\u003C\u002Fcode>と4桁になるからなのかな？ 表示桁が格納可能値より小さく指定しても、格納値が表示幅を超えた場合には指定値は無視される。格納値範囲が変わるわけではないので注意！ ZEROFILL属性付けた時の0埋めする桁数と思っておく程度でいいかも。\u003C\u002Fli>\n\u003Cli>\u003Cstrong>※2\u003C\u002Fstrong> : CREATE TABLEのSQL文内のカラム定義部には指定できない（指定するとエラーになる）。ZEROFILL属性も同様である。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>では、それぞれのフィールド型に色んな値を格納してみる。\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>INSERT値→\u003C\u002Fth>\n\u003Cth align=\"center\">0\u003C\u002Fth>\n\u003Cth align=\"center\">1\u003C\u002Fth>\n\u003Cth align=\"center\">127\u003C\u002Fth>\n\u003Cth align=\"center\">255\u003C\u002Fth>\n\u003Cth align=\"center\">-128\u003C\u002Fth>\n\u003Cth align=\"center\">65535\u003C\u002Fth>\n\u003Cth align=\"center\">-65535\u003C\u002Fth>\n\u003Cth align=\"center\">true\u003C\u002Fth>\n\u003Cth align=\"center\">false\u003C\u002Fth>\n\u003Cth align=\"center\">&#8216;true&#8217;\u003C\u002Fth>\n\u003Cth align=\"center\">&#8216;false&#8217;\u003C\u002Fth>\n\u003Cth align=\"center\">b&#8217;0&#8242;\u003C\u002Fth>\n\u003Cth>b&#8217;1&#8242;\u003C\u002Fth>\n\u003Cth>b&#8217;1111&#8242;\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>tinyint(1)\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>15\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>tinyint(1) UNSIGNED\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">255\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">255\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>15\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>boolean\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>15\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bool\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">-128\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>15\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bit(1)\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bit(64) (2進数)\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">1111111\u003C\u002Ftd>\n\u003Ctd align=\"center\">11111111\u003C\u002Ftd>\n\u003Ctd align=\"center\">※1\u003C\u002Ftd>\n\u003Ctd align=\"center\">※2\u003C\u002Ftd>\n\u003Ctd align=\"center\">※3\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">※4\u003C\u002Ftd>\n\u003Ctd align=\"center\">※5\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>1111\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bit(64) (8進数)\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">177\u003C\u002Ftd>\n\u003Ctd align=\"center\">377\u003C\u002Ftd>\n\u003Ctd align=\"center\">※6\u003C\u002Ftd>\n\u003Ctd align=\"center\">177777\u003C\u002Ftd>\n\u003Ctd align=\"center\">※7\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">※8\u003C\u002Ftd>\n\u003Ctd align=\"center\">※9\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>17\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bit(64) (10進数)\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">127\u003C\u002Ftd>\n\u003Ctd align=\"center\">255\u003C\u002Ftd>\n\u003Ctd align=\"center\">※10\u003C\u002Ftd>\n\u003Ctd align=\"center\">65535\u003C\u002Ftd>\n\u003Ctd align=\"center\">※11\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">※12\u003C\u002Ftd>\n\u003Ctd align=\"center\">※13\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>15\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>bit(64) (16進数)\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">7F\u003C\u002Ftd>\n\u003Ctd align=\"center\">FF\u003C\u002Ftd>\n\u003Ctd align=\"center\">※14\u003C\u002Ftd>\n\u003Ctd align=\"center\">FFFF\u003C\u002Ftd>\n\u003Ctd align=\"center\">※15\u003C\u002Ftd>\n\u003Ctd align=\"center\">1\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd align=\"center\">※16\u003C\u002Ftd>\n\u003Ctd align=\"center\">※17\u003C\u002Ftd>\n\u003Ctd align=\"center\">0\u003C\u002Ftd>\n\u003Ctd>1\u003C\u002Ftd>\n\u003Ctd>F\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cul>\n\u003Cli>※1 :bit(64)（2進数）での\u003Ccode>-128\u003C\u002Fcode> = \u003Ccode>1111111111111111111111111111111111111111111111111111111110000000\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※2 :bit(64)（2進数）での\u003Ccode>65535\u003C\u002Fcode> = \u003Ccode>1111111111111111\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※3 :bit(64)（2進数）での\u003Ccode>-65535\u003C\u002Fcode> = \u003Ccode>1111111111111111111111111111111111111111111111110000000000000001\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※4 :bit(64)（2進数）での\u003Ccode>'true'\u003C\u002Fcode> = \u003Ccode>1110100011100100111010101100101\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※5 :bit(64)（2進数）での\u003Ccode>'false'\u003C\u002Fcode> = \u003Ccode>110011001100001011011000111001101100101\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※6 :bit(64)（8進数）での\u003Ccode>-128\u003C\u002Fcode> = \u003Ccode>1777777777777777777600\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※7 :bit(64)（8進数）での\u003Ccode>-65535\u003C\u002Fcode> = \u003Ccode>1777777777777777600001\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※8 :bit(64)（8進数）での\u003Ccode>'true'\u003C\u002Fcode> = \u003Ccode>16434472545\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※9 :bit(64)（8進数）での\u003Ccode>'false'\u003C\u002Fcode> = \u003Ccode>6314133071545\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※10:bit(64)（10進数）での\u003Ccode>-128\u003C\u002Fcode> = \u003Ccode>18446744073709551488\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※11:bit(64)（10進数）での\u003Ccode>-65535\u003C\u002Fcode> = \u003Ccode>18446744073709486081\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※12:bit(64)（10進数）での\u003Ccode>'true'\u003C\u002Fcode> = \u003Ccode>1953658213\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※13:bit(64)（10進数）での\u003Ccode>'false'\u003C\u002Fcode> = \u003Ccode>439721161573\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※14:bit(64)（16進数）での\u003Ccode>-128\u003C\u002Fcode> = \u003Ccode>FFFFFFFFFFFFFF80\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※15:bit(64)（16進数）での\u003Ccode>-65535\u003C\u002Fcode> = \u003Ccode>FFFFFFFFFFFF0001\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※16:bit(64)（16進数）での\u003Ccode>'true'\u003C\u002Fcode> = \u003Ccode>74727565\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>※17:bit(64)（16進数）での\u003Ccode>'false'\u003C\u002Fcode> = \u003Ccode>66616C7365\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>tinyint(1)とそのシノニムであるboolean（bool）は純粋な数値型フィールドなので、0や1以外の数値も指定レンジ内であれば取り扱えるし、指定レンジを越えるとそれぞれ最小値・最大値に丸められるというMySQLの数値型フィールドの仕様のままだ。ただ、数値型フィールドながらbit型フィールドは格納される値がバイナリ値（2進数のビット値）になるため、毛色が全く違う。\u003C\u002Fp>\n\u003Cp>まず普通に値を取り出そうとしてSELECT文を流すとバイナリ値が返って来てしまうので、値を取得する場合はn進数のビット値に応じて、10進数なら「{column_name}+0」、2進数なら「BIN({column_name})」、8進数なら「OCT({column_name})」、16進数なら「HEX({column_name})」というふうにビット計算関数を仲介させてやる必要がある。例えば、bit型フィールドの「col_bit」カラムの値をすべて10進数と16進数で取得したい場合、\u003C\u002Fp>\n\u003Cpre>\u003Ccode>&gt; SELECT col_bit+0,HEX(col_bit) FROM table_name;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>のようにしないとならない。bit型フィールドに対して普通にSELECT文流して、しかも値変換せずに直接利用しようとすると文字化けが起きたり、値がNULLになったりするので注意が必要だ（オレのプラグイン「Custom DataBase Tables」（バージョン1.1.13）にもこのバグがまだ残っているんだなこれが…（汗））。\u003C\u002Fp>\n\u003Cp>まだbit(1)であれば、何進数でもすべて0と1のみで値が格納されているので、わかりやすいんだが、bit(2)以上のレンジになると格納値の実際の値が一目ではわからなくなる。上の表の例で、64ビット型フィールド（bit(64)の格納値）が良い例だ。\u003C\u002Fp>\n\u003Cp>しかし、そんな取り扱い注意なbit型フィールドでも、とりわけ「bit(1)」型フィールドはすべての格納値が0と1のどちらかにしかならないという特徴を持っていて、これがboolean型とは名ばかりのtinyint(1)型フィールドと違って、真偽値を格納したいフィールドとしてはまさに最適なフィールドといえるのだ。\u003C\u002Fp>\n\u003Cp>なぜなら、bool値（文字列ではダメ！）をそのままINSERTできるので、\u003C\u002Fp>\n\u003Cpre>\u003Ccode>&gt; INSERT INTO table_name SET bool_bit=true;\nとか\n> INSERT INTO table_name SET bool_bit=false;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>─と真偽値をダイレクトに格納して、\u003C\u002Fp>\n\u003Cpre>\u003Ccode>&gt; SELECT * FROM table_name WHERE bool_bit=true;\nとか\n> SELECT * FROM table_name WHERE bool_bit=false;\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>─のように、非常にわかりやすい真偽値判定ですべての値を絞り込めてしまうからだ。\u003C\u002Fp>\n\u003Cp>bit(1)型フィールドに「NOT NULL」属性を付けておけば、このフィールドには完全に \u003Cstrong>1=true\u003C\u002Fstrong> か、 \u003Cstrong>0=false\u003C\u002Fstrong> のデータしか存在しないことになり、完璧な真偽値判定用フィールドとすることが可能だ。\u003C\u002Fp>\n\u003Cp>なお、テーブル作成時のカラム定義で、bit型フィールドに初期値を設定する場合は、 \u003Ccode>DEFAULT b'{value}'\u003C\u002Fcode> を使わないといけない。 \u003Ccode>{value}\u003C\u002Fcode> の部分は2進数のバイナリ値だ。\u003Cbr \u002F>\n例えば、真偽値判定用にbit(1)型フィールドの初期値を \u003Cstrong>0=false\u003C\u002Fstrong> にしておきたい場合のSQLは、\u003C\u002Fp>\n\u003Cpre>\u003Ccode>CREATE TABLE `table_name` (\n  bool_bit bit(1) NOT NULL DEFAULT b'0'\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>─というふうになるわけだ。\u003C\u002Fp>\n\u003Cp>あと、bit(1)型フィールドを真偽値判定用フィールドとして利用する場合に注意しておかないいけないのは、bit(1)型フィールドで \u003Cstrong>0=false\u003C\u002Fstrong> となる値が格納されるケースが、\u003C\u002Fp>\n\u003Cul>\n\u003Cli>数値の\u003Ccode>0\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>bool値の\u003Ccode>false\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>バイナリ値の\u003Ccode>b'0'\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>─の３つしかないということだ。それ以外の値を格納するとすべて \u003Cstrong>1=true\u003C\u002Fstrong> となってしまうので、格納する際の値のバリデーションが重要なことは言うまでもない。\u003C\u002Fp>\n\u003Cp>さぁて、「Custom DataBase Tables」プラグインのbit型フィールド用のSELECT処理を修正しないとなぁ…。\u003C\u002Fp>\n",[275],{"slug":276,"name":277},"mysql","MySQL",[279,282,286,291],{"slug":77,"title":78,"date":79,"excerpt":80,"image":81,"categories":280},[281],{"slug":84,"name":85},{"slug":131,"title":132,"date":133,"excerpt":134,"image":135,"categories":283},[284,285],{"slug":138,"name":139},{"slug":25,"name":26},{"slug":142,"title":143,"date":144,"excerpt":145,"image":146,"categories":287},[288,289,290],{"slug":149,"name":150},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":154,"title":155,"date":156,"excerpt":157,"image":158,"categories":292},[293,294,295],{"slug":161,"name":162},{"slug":138,"name":139},{"slug":25,"name":26},{"slug":297,"title":298,"date":299,"excerpt":300,"image":301,"categories":302},"my-web-relations-map","マイWebリレーションマップ","2015-02-09T14:29:39","2015年2月現在、オレが常習的に利用しているWEB（サービス）のリレーションマップを作成してみた。 利用してるWebサービスが多くなりすぎて、一旦整理しようと思ったからだ。マップに含めなかったが、アカウント的には他に「…","\u002Fassets\u002Fuploads\u002F2015\u002F02\u002Fmy_web_relation_map.jpg",[303],{"slug":255,"name":256},{"slug":305,"title":306,"date":307,"excerpt":308,"image":42,"categories":309},"comparing-the-css-framework-of-alternative-to-the-bootstrap","Bootstrapに代わるCSSフレームワークを比較してみた","2015-03-03T18:54:38","ここ数年、Webのフロントエンド開発でのレイアウト部分には「Twitter Bootstrap」を長く使って来たが、さすがに飽きてきた（笑） バージョンが3になってからあまりコアに変更もなくなって、つまらなくなって来たと…",[310,311],{"slug":22,"name":23},{"slug":25,"name":26},1793391398563]